同じ会社にいるけど、真逆の感想を持っている。Makefile読まないと副作用が分からないし、Rakefile/package.jsonだけで済むのに無駄に1つレイヤ増えていて、Makefileできたときからいる人は楽だけど、途中から入った人にとっては学習コストが高い。 twitter.com/terry_i_/statu…
2020-09-13 23:21:54これめっちゃわかります...弊社もそうなってて、なんでも「make で起動」「make initで環境構築」でめちゃクソ楽だと感じた記憶。Makefile自体はC時代からあるもので、意外と歴史深いというのも結構意外でしたが。 twitter.com/gaplant_tr5/st…
2020-09-13 22:59:57golangでMakefileを使うのは分かる。 ただ、RubyやNode.jsのリポジトリなら $ git clone xxx $ cd xxx $ bundle install && rake もしくは npm install && npm test で環境構築ができることを期待する。
2020-09-13 23:25:50@terry_i_ 個人的にはmake configureのないMakefileは使い方を間違っているのでは...と思っています。複雑なコマンドを短くするならシェルスクリプトを使う方が妥当で、Makefileを使うのは間違ったツール選定してる印象です。
2020-09-13 23:46:19@terry_i_ Makefileは何か成果物を作るときのフレームワークとしては便利なので、そういう用途で使うのは正しいかなと思います。OpenAPIのドキュメントを生成するのを、 $ make configure $ make でyamlが生成されるとかなら、納得感がある。
2020-09-13 23:48:53@terry_i_ 社内だとMakefileがタスクランナーとして使われているのが標準みたいなところあるので、仕方がない...。個人的にはMakefile嫌いだけど、消すほどの納得力ある説明もできないので、放置してる感じですね。
2020-09-13 23:55:20@sinsoku_listy あー、なるほど...。たぶん神速さんとコンテキストあってないかもしれなくて、僕が複雑なMakefileに出会ってないだけかもです。(コマンドフルでベタ打ち環境→makeだったので、そもそも他との比較をできていない)
2020-09-13 23:40:11@sinsoku_listy あー、わたしも「なんでもmakeで」って文化苦手です… 結局ああいうの「書いた人しかわからない」んですよね ビルドシステムある言語はそれ使ってほしいし、Makefileのなかでdocker runしてるやつとか見たことあって「いやcomposeあるやろ」って思う そもそも2020年に全環境でmake入ってると思わないし
2020-09-13 23:41:51コマンド実行のインタフェースとしてのmakeは本当に優秀だと思う。 makeからsbtとかnpm呼び出してるだけなんだけど、git clone した後にやることが、どのリポジトリでもmake叩けば環境できるようになってるっていうのは本当に楽だった。 twitter.com/Kei198403/stat…
2020-09-13 22:29:47【日記】最近読んだ本「Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち」|Kei @Kei198403 #note note.com/kei198403/n/n2…
2020-09-13 19:14:56これめっちゃわかります...弊社もそうなってて、なんでも「make で起動」「make initで環境構築」でめちゃクソ楽だと感じた記憶。Makefile自体はC時代からあるもので、意外と歴史深いというのも結構意外でしたが。 twitter.com/gaplant_tr5/st…
2020-09-13 22:59:57makefileテクニックはかなり邪悪手法にまで踏み込んだし、余り無いTIPS集になったんじゃないかな。今まで見たプロジェクトで一切使われてないけど便利なディレクティブを解説してるし。
2020-09-13 23:29:02うちの会社、エンジニアはOS何使ってもOKなので、環境構築に中々時間をかけることが多い。やれDockerが遅い、MakefileはWinじゃ動かない、.envファイルがなんかおかしい。なんかうまいこといかないもんかね?全環境一発で構築したいものなんだが。
2020-09-14 00:00:09@mazgi 慣れれば慣れるほどmakeに頼りたくなってしまう罠みたいなものがある気がします。何故そうなってしまうのかはわかりませんが。 (他人の書いたモリモリMakefile見てイラッとするのに、同じことを気付くと自分がしてしまっている...みたいな)
2020-09-14 00:01:51makeでループと条件分岐をやりたくなったら地獄のはじまり… twitter.com/ymotongpoo/sta…
2020-09-14 00:18:54まさにこのMakefileいじらないといけなくてブチギレそうになってるんだが???? github.com/open-telemetry…
2020-09-14 00:15:07Makefileをdocker build&pushのショートカットに使ってるけど、 buildの成果物(ファイル)に指定すべきものがよく分からないので、 buildとpushの依存関係を指定すべきなのか指定しないほうがいいのかずっと悩んでる
2020-09-14 00:10:10便利 makefile 用意するよりも普通の shell スクリプトファイル用意するんじゃダメなんだろうか
2020-09-14 00:11:32makefile、複雑なやつだとエントリポイントがわからん。コマンドの前にpublicとかprivateとか書けたらいいのかな。タスクランナーとして使うなら。あとはWindowsに入っていれば。
2020-09-14 00:13:54まさにこのMakefileいじらないといけなくてブチギレそうになってるんだが???? github.com/open-telemetry…
2020-09-14 00:15:07Makeというのはシェルスクリプトを安全に巻き取る効用が強いんで、ぶっちゃけシェルスクリプトよりかはMakefileで頑張った方が良いよ
2020-09-14 00:17:55使われている言語が統一されていて、その言語特有のタスクランナーがみんなわかってる、みたいな状況であればそれ使えばいいだろうけど、いろんな技術を使っている状況だったり、これを動かすにはこれとこれと……みたいな感じだとまぁMakefile楽だしそのコンテキストが共有出来ればいいじゃん派です
2020-09-14 00:18:13ちなみに元のスレッドの趣旨は要約すると「単なるスクリプトでできることをMakefileにするな」なので、それは100%同意。 Makefileは依存関係と更新時系列を調べて最小限コマンド(=差分ビルドを)を実行するツールなので、単に決まった手順するだけのことに使うべきじゃあないよね。
2020-09-14 00:20:41makefile便利だよ。自作ツールの実行方法メモしないでもmakefile読めばわかるもの
2020-09-14 00:22:29本来のmakeの使い方としてはファイルを作るような使い方が正しい。だが、タスクランナーとして便利やねん。goやrust(最近はcargo-makeか)あたりでもconfigureのないMakefileが使われてるし
2020-09-14 01:15:20あるツールとあるツールの間を受け持つような使い方がmake使ってて好きだな。docker build してタスク定義jsonを生成して、ecspressoでデプロイするみたいなことが、シェルスクリプトよりMakefileのが完結に書けるし、それぞれを独立に実行することもできる
2020-09-14 01:17:39make up, make update, make stop, make attach とかはいつもプロジェクトで使ってて、Makefile無い時や既にあるときはこれでOverrideしてる github.com/iberianpig/mak…
2020-09-14 01:10:00makeの良い点の一つに「インストール不要」ってのがあって、プロジェクト入ってきた人が、どういうツールが必要か分からなくてもMakefileを見れば分かるし、そのセットアップが実行可能になっている(のが理想
2020-09-14 01:12:43僕もPerl界出身なので、Makefileってのは自動生成されるもので中身はよくわからないし読むものではないって思ってたけど、全然そんなことなかったんだよな。
2020-09-14 01:29:45makeとシェルスクリプトでやれることは変わらないし、makeタスクが複雑になったらシェルスクリプトに切り出してMakefileからそれを呼び出せば良いだけの話だけど、タスクのインデックスとして提供されていることに意味がある。
2020-09-14 01:30:30例えばtools/setup.shを叩けば開発環境が整うのだとしても、プロジェクトに入ってきた人はそんなことわからないので、Makefileに setup: tools/setup.sh って書いてあれば、make setupでセットアップできるってことがわかる。
2020-09-14 01:31:39ISUCONでも僕が適当なMakefileをリポジトリに突っ込んでおいたら、チームメイトが察してmake deployでガンガンdeployしてくれてたし、必要に応じて勝手に修正してくれて便利だった
2020-09-14 01:42:27Makefileはむしろ単純だし、単純が故にむしろそれを自動生成させるというアプローチが流行ってしまったことがむしろ地獄の始まりだったのではないか (Makefile自体も複雑なことやろうとするととたんに意味不明になるというのもある
2020-09-14 01:50:27make本来のビルドシステムとしての利用用途を望むのであればmtimeに依存した仕組みは流石にそぐわない局面も多いので、今はBazelとかを使うべきでしょうね
2020-09-14 02:15:01でも、npm devやnpm startでjs界隈も統一しようとしてるところを見ると、makefileが普段使いの言語で書けないという壁は思っているよりでかいのかもしれない。
2020-09-14 01:44:29Makefile って例えば Vim とかのようなプロジェクトだとたしかに意味不明なんだけど、0から書き始めてみると難しいことなにもないんだよな。俺は CSV の前処理によく使ってた
2020-09-14 01:53:53Makefileは本来はファイルの依存関係を記述して効率的にコンパイルを行うためのものだけど、単純に人間とshellscriptを繋ぐインターフェースとして利用しても便利
2020-09-14 01:57:54Makefileの、依存関係でJOBの処理を解決していくというアプローチがたいへん汎用的なので未だにshell scriptをラップするのに便利なんだよな、、、
2020-09-14 01:59:35