$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

tech

開発効率化のために最近入れたツールたち(indent-rainbow / TabNine / Tree Style Tab / Clipy)

indent-rainbow (VSCode拡張) https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow インデントに色を付けてくれる。それだけなのにすごく見やすくなって便利。 TabNine (VSCode拡張) https://www.tabnine.com/ deep learningでいい…

TypeScriptプロジェクトのテストとlintをGitHub Actionsで実行する

お試しでTypeScriptプロジェクトのテストやlintをGithub Actionsで実行してみた。 lintの設定 https://github.com/shibayu36/typescript-cli-project/pull/1 push時にはeslintが走り、PullRequestにはreviewdogがコメントしてくれる構成にした。この設定だけ…

PullRequestからチーム開発の生産性・健全性を測るCLIツールを書いてみた

最近、開発チームの生産性や健全性をどのように計測したら良いかについて興味を持っている。その中で「LeanとDevOpsの科学」の中に書いてあるようなデプロイの頻度・変更のリードタイム・MTTR・変更失敗率の4指標や、開発チームの生産性・健全性を客観的に知…

現代のソフトウェア開発を学ぶために「正しいものを正しくつくる」を読んだ

最近はいかにエンジニアリングの立場でプロダクトを成長させられるかについて考えている。そこで、現代のソフトウェア開発やアジャイルについて学ぶため、同僚にオススメされた「正しいものを正しくつくる」を読んだ。 正しいものを正しくつくる プロダクト…

TypeScriptでCLIツール作りをするためのプロジェクトサンプルを作ってみた

最近TypeScriptの学習をしようと思い、何でもTypeScriptで作ってみている。今回はCLIツールを作ろうと思ったのだが、ビルド環境やeslint環境など考えることが結構あった。そこでTypeScriptでのCLIツールのプロジェクトサンプルを作りながら勉強してみた。 作…

SCRUM BOOT CAMP THE BOOK【増補改訂版】を読んだ

スクラムを基本から学びなおしたいので、スクラムガイド(2017)読んだ - $shibayu36->blog;に続いて、SCRUM BOOT CAMP THE BOOK【増補改訂版】を読んだ。 SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発作者:西村 直人,永瀬…

開発チーム運営では問題発見・改善だけでなく、良かったことの共有も大事にする

開発チームをスクラムなどを使って運営している時、改善がどんどん行われることは良いことである。しかし、その時によく起こりがちなのが、問題発見と改善にフォーカスしすぎた結果、チームの悪いところばかり見すぎてしまうことだ。過剰に悪いところばかり…

締め切りが厳しいプロジェクトで、プロジェクト初期にまずやっておきたいこと

これまで僕は締切がかなり厳しいプロジェクトを数回経験してきた。その経験から、締切が厳しいという特性を持ったプロジェクトの初期にまずこれだけはやったほうが良いということがいくつか見つかったので、今回はそれらを紹介していこうと思う。 前提となる…

スクラムガイド(2017)読んだ

スクラムを基本から学びなおしたいと思い、スクラムガイドの2017年版を読んだ。もともとスクラムは学んでいたので、ある程度知っている事柄が多かったが、今回読み直すことで、開発チームの最適人数・デイリースクラムの役割・ふりかえりの役割あたりが自分…

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/…

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翔泳社Amazon 読んだ。 エンティティ、値オブジェクト、集約など、自分の中でなんとなくの理解になっていたところを、より具体的に言語化出来たことが良かった。一方、用語が難解なため理解が難しく、…

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>…