🗿

Makefileを使ってチームに影響を与えずに開発効率を上げたりコマンドの実行し忘れを防ぐ

2020/12/12に公開

(qiitaにも同じ記事あげてます)
*初学者~中級者向けのライフハック的な内容です。

最近様々なプロダクトで開発をさせていただくことが増えたのですが、プロダクト毎によって開発中に必要な手順が異なることは多いと思います。
特に参加し初めなどで必要なコマンドを実行し忘れて起動しなかったり、自動生成させずにPRを投げてしまったりなど無駄に時間を取られてしまうことが多々ありました。
副業をしていたり、フリーランスで複数企業を掛け持ちしたり、社内で複数プロダクトを担当したりなどで同時期に複数のプロダクトを担当される方は似たような経験をされたこともあるのではないでしょうか?

今回はそんな問題を解決するために個人的にやっている内容を簡単に紹介したいと思います。

手順

1.作業ディレクトリに個人用のMakefileを作成する

読み進めていただければわかりますが、ここで作成するMakefileのファイル名は固定にしましょう。
他のディレクトリにあるMakefileや将来的に生成されそうなファイル名と被らないように気をつけましょう。
絶対に被らないように自分は苗字の前二文字を使ったりしています(Yamafile.mkなど)

2.globalなgitignoreファイルに上記のファイル名で登録する

作ってそのままだとgit管理が面倒なのでglobalなgitignoreで除外しましょう。
参考 docs.github.com

~/.gitignore_global
Yamafile.mk

3.aliasでコマンドを設定する

お使いのシェルによって記述するファイルは変えてください。
苗字やあだ名などでコマンドを設定すると他のコマンドと衝突しにくいと思います。

~/.zshrc
alias yama='make -f ./Yamafile.mk'

4.あとは作ったファイルを使いやすいように編集しましょう!

以下のように個人的には設定しています。
特にmysqlなどのRDBなどにアクセスする場合などは便利です!

作業ディレクトリ/Yamafile.mk
.PHONY: mysql
mysql:
	docker exec -it [mysqlのコンテナ名など] mysql -u[ユーザー名] -p[パスワード]

.PHONY: run
run:
	// 起動コマンド前に準備が必要な場合など

.PHONY: before-commit
before-commit:
	// 自動生成系のコマンドやlinterやtestなど

あとは生成したファイルがあるディレクトリ配下で以下のように実行できます

pwd
=> .../作業ディレクトリ

yama mysql
mysql> //お馴染みのやつ

まとめ

いかがだったでしょうか?
この方法は特に一つのPCで複数のプロダクトに関わらなければならない時にとても便利です。

便利だなと思っていただけたら幸いです。

Discussion