$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

workflow_dispatchを使うとGithub Actionsのデバッグも楽だった

github.blog こういうの来て便利だな〜と思ってたけど、デバッグにも有用だった。 例えばGithub Actionsのon scheduleを使ってcronのように実行したい時、これまでだと デフォルトブランチにmergeして、その時間になるまで待つ ワークフローをトリガーするイ…

特定のファイルだけgit stashする

いつの間にか普通に出来るようになっていた。 git stash push hoge.txt fuga.txt 参考 Stash only one file out of multiple files that have changed with Git? - Stack Overflow Git 2.13くらいから出来るようになったっぽい?

長い期間、継続的にブログを書き続けるための工夫

10年前からブログを始めて、10年間コツコツコツコツ学んだことや考えたことを記事として書き続けてきた。その結果、ついにブログの記事総数が1000記事近くになってきた。10年間かなり頑張ってきたなあと感慨深い。ありがたいことに読者数も1000人ほどいて色…

メンターを初めて経験する人に、最初に読むものとしてオススメしている書籍たち

社内ではこういうおすすめをしてますね(文字数多いのでスクショで...) pic.twitter.com/uzqCh6zubs— 柴崎優季 (@shiba_yu36) 2020年7月7日 こういうツイートして、そういえば社内でメンターを初めて経験する人にオススメしている書籍たちを外部に公開してな…

「MBAより簡単で英語より大切な決算を読む習慣」読んだ

エンジニアをやっていく上で、ビジネス側の素養もあったほうがビジネスサイドの人からも相談しやすかろうと思い、昔おすすめされていた「MBAより簡単で英語より大切な決算を読む習慣」を読んだ。 MBAより簡単で英語より大切な決算を読む習慣作者:シバタナオ…

今見ているファイル内をSearchしやすくするVSCode拡張を作りました

今見ているファイル内をSearchしやすくする「Search in Current File」というVSCode拡張を作ったので紹介です。 https://github.com/shibayu36/vscode-search-in-current-file https://marketplace.visualstudio.com/items?itemName=shibayu36.search-in-cur…

「Visual Studio Code実践ガイド」を読んだ

最近コードを書く時はもっぱらVSCodeを使っていて、拡張とかも書いてみたいなと思い始めていたので、基本知識を付けるために「Visual Studio Code実践ガイド」読んだ。VSCode使い始めたばかりの人には基本的な概念や、便利拡張紹介、簡単なカスタマイズ、拡…

VSCodeでQuickOpenの幅を広げ、ファイルを探しやすくする

VSCodeで大きめプロジェクトを触っていると、QuickOpenでファイルを探すときにコマンドパレットの幅が狭くて探しにくいな...と思うことがあった。調べたら広げる方法があったのでメモ。 まず Option to widen the command palette · Issue #85374 · microsof…

Goで書いたツールの依存管理をdepからGo Modulesに移行した

昔作った notify-issues-to-slackの依存モジュールはdepのままで管理していたが、勉強がてらGo Modulesに移行することにした。 参考にした資料 Go 1.13 に向けて知っておきたい Go Modules とそれを取り巻くエコシステム - blog.syfm Go Modulesについてざっ…

Github Actionsをcronとして利用し、notify-issues-to-slackを動かす

以前、レビュータイムや定期的なissueチェックのためにGithubのissueを検索してSlackに投稿するCLIツールを作ったで紹介したnotify-issues-to-slackだが、これまでは 適当に立てたサーバーのcronで動かす Jenkinsなどで実行する という方法で動かしていた。 …

Next.jsアプリケーションを動かす環境をaws-cdkを使って構築する(with CloudFront/S3/Fargate)

Next.jsをproduction環境で使うために外観を掴んでおきたいと思い、Next.jsアプリケーションを動かすAWS環境をaws-cdkを使って構築するサンプルを作ってみた。だいぶ荒削りだけど、参考になる例にはなったと思う。 https://github.com/shibayu36/nextjs-on-e…

Next.jsアプリケーション用のDockerイメージを作る

Next.jsアプリケーションをECSで動かしたいと思い、Dockerfileを作ってみたのでメモ。 設定の用意 Dockerfileと.dockerignoreを用意し、ビルドコマンド用にMakefileも用意した。 Dockerfile # syntax = docker/dockerfile:experimental FROM node:12-stretch…

AWS CDKのTHE TYPESCRIPT WORKSHOPをやった

AWS CDKについて学んでおこうと、https://cdkworkshop.com/20-typescript.html をやった。 CDKめっちゃいいやん今後絶対使っていきたいという感想 CloudFormationでは、IAMのロールをドキュメントをにらめっこしながら作って、そのロールをこのLambda Functi…

Next.jsのドキュメントを全部読んでみた

最近Next.jsのドキュメントが更新されて、APIリファレンスが付くなど読みやすくなったので、この機会に全部読んでみた。メモを置いておく。 https://nextjs.org/docs/routing/introduction#dynamic-route-segments pages/post/[…all] → /post/* (/post/2020/…

最近連載開始して3巻程度で好きな作品たち

社内の朝会のスピーチで発表したのを公開しておく。 漫画の連載追いかけるの好きです。最近連載が始まって単行本3巻程度のもので、好きな作品を紹介します。 大ダーク・1巻 大ダーク (1) (ゲッサン少年サンデーコミックス)作者:林田 球出版社/メーカー: 小学…

Next.jsでNot FoundページやISEページをカスタマイズする

https://nextjs.org/docs/advanced-features/custom-error-page を見て設定したが、特にstatusCode周りでハマったのでメモ。 pages/_error.tsxを作ると、SSR(Server Side Rendering)時やCSR(Client Side Rendering)時に例外が起きるなどした時やルーティング…

Next.js利用時の静的画像配信の方法

静的な画像を使いたくなったら、基本はnext-imagesを使っておけば良い。https://github.com/zeit/next-plugins でも紹介されている。 このライブラリはNext.jsを使う時のwebpackのfile-loaderの推奨設定を書いてくれているだけの薄いライブラリ。file-loader…

エリック・エヴァンズのドメイン駆動設計読んだ

エリック・エヴァンスのドメイン駆動設計作者:Eric Evans出版社/メーカー: 翔泳社発売日: 2013/11/20メディア: Kindle版 読んだ。 エンティティ、値オブジェクト、集約など、自分の中でなんとなくの理解になっていたところを、より具体的に言語化出来たこと…

yarn workspaceを使っている時でもvscodeでeslintプラグインが動くようにする

例えばyarn workspaceを使って、 packages/hoge/ packages/fuga/ のようにワークスペースを二つに分けて開発したいときがある。この時、ワークスペースごとでeslintの設定やインストールするpackageが分かれてしまっているのでESLintプラグインがうまく動か…

Next.jsのpages/ディレクトリ以下にはページ用のファイル以外は置いてはならない

Next.jsではpages/ディレクトリ以下にページ用の実装ファイルを置く規約となっているが、それに追加して、このディレクトリ以下にはページ用以外のファイルは置いてはならないということが分かった。ページ用以外のファイルとは、例えばテストのファイルや共…

MySQLのALTER TABLEでTEXT NOT NULLなカラムをエラー無しで追加する

課題 MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.6 データ型デフォルト値によると、 MySQLのTEXTカラムにはデフォルト値を設定できない 厳密な SQL モードを有効にした場合、NOT NULLなカラムがINSERTに含まれていないとエラーが発生する そのため、…

Next.jsのrouterをモックして、ページの単体テストをする

課題 例えばこのページにあるような例をテストしたいとする。 import { useRouter } from 'next/router'; import Layout from '../components/MyLayout'; const Page = () => { const router = useRouter(); return ( <Layout> <h1>{router.query.title}</h1> <p>This is the blo</p></layout>…

「初めてのGraphQL」読んだ

最近は開発でGraphQLを使うようになってきたので、一度基本から勉強しようと思い、読んだ。初めてのGraphQL ―Webサービスを作って学ぶ新世代API作者: Eve Porcello,Alex Banks,尾崎沙耶,あんどうやすし出版社/メーカー: オライリージャパン発売日: 2019/11/1…

Next.jsのページ遷移・ページロードの仕組みをコードリーディングで追いかけた

Next.jsのLinkとRouterの挙動がよく分からなかったので、Next.jsのコードリーディングをした。ページ遷移やページロードの仕組みが結構つかめたのでメモ。 LinkではクリックするとsingletonRouterのpushを呼んでいる pushはchangeメソッドを呼んでいる next/…

vscode-powertoolsを使って、VSCodeの挙動を自分好みに変える

VSCodeを使っていると、より便利にするために挙動を少し変えたいと思うときがある。ほんとにちょっとした変更の場合、拡張を書くまではしたくないので、いい方法がないかなと思っていたところ、vscode-powertoolsを使うと自分好みにできそうだった。 今回僕…

TypeScript 3.7.2でjsonをimportした際に、json構造によっては二度目の代入が型エラーになるバグを踏んだ

表題のとおり。TypeScript 3.8.0-dev.20191126では直っていたので、3.8.0が来るまで気長に待ちましょう。 再現コードはこちら。 https://github.com/shibayu36/typescript-json-module-bug/blob/master/test.ts import data from "./data.json"; type Data =…

Next.jsチュートリアルやった

SPAをやるにあたって、Server Side Renderingの仕組みも知っておいたほうが良いと感じ、Next.jsについて学んでみた。チュートリアルがよく出来ていたので、これをベースに学んだ。 チュートリアルをやった感じ、Next.jsは以下のようなものがメインの機能のフ…

「エンタープライズアプリケーションアーキテクチャパターン」を読んだ

ソフトウェア設計に関する知識が昔のままで止まっていて、最近の設計のためのワードはぼんやりと理解できるものの、はっきりと分かっていないなと感じていた。そこでまだ読んでいなかった設計に関する本を読もうと思い、まずは「エンタープライズアプリケー…

0になるくらいなら0.1でもいいから学ぶ

以前は、学習するときはきちんと頭に入ることを重視しようという考え方をしていて、パソコンに向かえる時に集中して勉強するようにしていた。最近はその考えを変えようとしていて、0になるくらいなら0.1でもいいから学ぶと思うようにしている。この考えに変…

vscodeのFiles ExplorerのショートカットをEmacs風に

vscodeを触っていて、Files Explorerを素早く操作できないことにストレスを感じていた。そこで素早く操作できるようにキーバインドを調整してみた。新しいキーバインドを覚えられないので、Emacs風になるようにセットアップしてみた。 // Files ExplorerにC-…