makefileはベンダーのサンプルコードそのまま流用とか使ってないマクロびっしり残しとくとか、そういうアグリーなのは本当に良くない。綺麗にしておかないとそれこそ技術的負債まっしぐら。
2020-09-14 02:07:01@songmu Makefileは依存関係から「今足りてないもの」だけを紐解いて必要なことだけをする物なので、開発サイクルでは変更したファイルから再構築が必要なものを素早く最低限実行するのに常用してたな。シェルスクリプトとかで同じことやろうとするとだいぶ冗長になるね
2020-09-14 02:08:17今日Makefileなpostをよく見かける。 なんでもいいけど、マニュアルのシンプル化とLocalとCIなどで同じ事するなら手順の変更に対してeasyに対応できるといいな。
2020-09-14 02:41:05GNU Make や bash に依存すること自体は問題ないけども、shbang を /bin/sh にしたりせんでくれという所は強く主張したい。あとできれば Makefile じゃなくて GNUmakefile って名前にしてくれれば要らんストレスが減る
2020-09-14 02:42:40当たり前だけどMakefileの中で何でもかんでも処理するんではなくて(複雑になってきたらscripts/とかまとめる事が多い)「そのプロジェクトで必要なタスクのリスト」としてのランナーとして置いとくだけでだいぶ意味がある。かつ、ほぼどこでも動くというのも大きい(make叩けばいいんでしょ?ってなる
2020-09-14 03:04:45make のいいところの一つに意味とコンテキストが扱いやすいことがあると思う。アプリケーションの主な操作はMakefileに、コンテキストにスペシフィックなものは docker.mk や ci.mk に、それらの中で多くの人が「多分こうだろう」と理解しやすい表現で書けるのがよい
2020-09-14 03:09:26それでも本来の用途とは異なりタスクランナーとして使う以上、多少の補足は必要で、README を多少書く術はセットであるとよりよいとも思う。使わなくなったターゲットを消す基準にもなる。README もなるべく簡素に書くのが良い状態を保つコツな気がする。
2020-09-14 03:12:13全くだと思うが、 *makefileについて知ってる *適切な命名を知っている。つまりReadableCode節。 というリテラシーが最低条件なので、 そういう新人が降ってくる現場はいいなあ的。 あと環境も、 *ほんとにそのターゲットが動作する *動作「させて」いい。共同所有権&"許可でなく謝罪" が必要
2020-09-14 08:04:19手順をMakefileにしておくと、オペレーションの依存関係も明示できるし、ちゃんと書いておけば適切な並列実行も、途中からの(あるいは途中までの)部分実行もできて便利。 と言ってたら「Rakefileの方がコード書けて便利ですよ」って若者に言われたことがある。そこ混ぜない方がいいと思う。
2020-09-14 08:08:22江添亮のC++入門を読んでたら、序盤にMakefileをゼロから実用するまでの丁寧な章があって「こんな良いものが手元にあったのか」と感動した。npmプロジェクトでgulpと置き換えられる場所も多いと思う。 twitter.com/songmu/status/…
2020-09-14 08:46:49makeはこう「こんな良いものが手元にあったのか」みたいな青い鳥を見つけたときみたいな気持ちと、もう少し何とかなって欲しいみたいな気持ちが両方ある
2020-09-14 00:47:07ビルド時の生成ファイルに依存する処理順の管理という、npm文化圏の人間がちょいちょい困る問題は、ある程度makeで解決できると思っている。 シェルに切り出した処理をnpm scriptsで呼び出す派閥もあるけど、もう一歩踏み込んでMakefileに切り出した処理をnpm scriptsから呼び出すと使い勝手が良さそう
2020-09-14 08:52:57GNU Make、PowerShell 使ってるマンとしては Makefile の中で sh の機能を呼ばないで、実行ファイルだけ呼んでほしい。sh や bash を明示的に呼んでほしい。
2020-09-14 09:16:13わかる。 人間は欲深いので、気づいたらMakefileがfatになってくる。そしてMakefile読み込まないとわからなくなる。 twitter.com/sinsoku_listy/…
2020-09-14 09:52:45同じ会社にいるけど、真逆の感想を持っている。Makefile読まないと副作用が分からないし、Rakefile/package.jsonだけで済むのに無駄に1つレイヤ増えていて、Makefileできたときからいる人は楽だけど、途中から入った人にとっては学習コストが高い。 twitter.com/terry_i_/statu…
2020-09-13 23:21:54Makefileのコメントからドキュメントを作成するpostd.cc/auto-documente…
2020-09-14 10:16:46Makefileはちょっと勉強したことがあるぐらいだけど、あれは成果物を作るDSLであって.PHONYの意味を理解してから本来はタスクランナーではないと感じた。
2020-09-14 10:16:53Voyage のリポジトリに Makefile があるの、前から聞いてたしとても便利だと思ってるけど、自分たちの会社でやろうと思ったことは一度もない(事情が違うので当たり前の話) その代わりJXだとdocker-composeがある
2020-09-14 10:31:44個人的にはMakefileあると結構嫌な気持ちになる。複雑なセットアップが必要な可能性があり、言語公式のランナーで動かないのかなとか考えるから
2020-09-14 10:43:07@cynipe ですです。 そこが多分もともとの発言との差異を生んでいると思ってて、makeはタスクランナーとしても便利だけど多言語環境とモノリスrailsとの違いというか。 それでヘイトの溜まるMakefileの話とかが交差して槍玉に挙げられてる感ww
2020-09-14 11:43:39makefileで複雑な条件分岐するくらいならshell scriptのほうが良いし、shell scriptで複雑な条件分岐するくらいならランタイムが必要になったりコンパイル後サイズが大きくなっても他の言語のほうが良くない?goとか… って話、20年前からされてる気はする(20年前はgoじゃなくperlとかだったが)
2020-09-14 11:46:20@the_uhooi Fastlaneがあるじゃないって言おうと思ったら既に言及してましたねw Fastlaneの導入込みで初期構築をMakefileでやってるところも結構ありますよねー
2020-09-14 12:13:48しばらくMakefileとシェルスクリプトと格闘した経験から言うと、Makefileは主に以下の3つの目的に留め、それ以外はシェルスクリプトにした方が良いと思ってる。 1. タスクの引数に名前を付ける 2. タスクの引数のデフォルト値を決める 3. 複数のタスクを定義する
2020-09-14 13:02:39念の為言うとやろうと思えばMakefileでもできる。 シェルスクリプトよりMakefileの記述に慣れてる人が集まってるなら良いんだけど、多分多くのプログラマはシェルスクリプトの方が慣れてると思う。
2020-09-14 13:13:56Makefile、仕事のJavaプロジェクトだと見たこと無かったんですが、これは標準の開発PCがWindowsだったからなのか、文化的にMavenのAntタスクでやっちゃうからなのか気になる
2020-09-14 13:20:20@laqiiz 文化の違いなんですかね、自作キーボードのキーマッピング焼くのにMakefile大活躍しててなるほどってなりました
2020-09-14 13:26:452018年のアドカレでもnpm scriptsが太って辛いからMakefile使おうぜっていうのがあったんだな "JavaScriptの開発でGNU Makeを使ってみた - Qiita" qiita.com/Hoishin/items/…
2020-09-14 13:57:30「◯◯さんが書いたMakefileのアイデアをパクらせてもらおう」が最高のエンジニア賛辞の1つ、という時代&環境にいました
2020-09-14 14:02:40簡易的なcliツールでいうと、bashで書くとzshじゃ動かないって言われるし、shellで書くにはfatになるのでmake。 Makefileが変数ばかりで読みづらくなったりfatになったらGoにすることが多いですね。 あとREADMEに開発環境初期セットアップをつらつら書くよりmake等でコードとして表現させたい
2020-09-14 14:16:40Makefileが1枚なら良いけど、パッケージ毎(コード書いた人毎)にMakefileが散在しているMakefileをメンテしていたりビルドしていた人間からすると、Makefileといわれたら吐き気は正直感じる。
2020-09-14 14:18:52Makefile の嫌われる点はこんな感じ? - タスクではなく、ファイル生成の定義 - 依存関係の解決がファイル生成の可否 - 先頭がハードタブ - 行単位のコマンド実行(not shell script) - 変数が遅延評価 ちょっとコマンド書くぐらいだったらそんなに難しくはないと思う
2020-09-14 15:08:50いろいろなコマンドのオプションを覚えたくない(し,そもそも覚えられない)のでなんでもMakefileにまかせてる. twitter.com/gaplant_tr5/st…
2020-09-14 15:35:19コマンド実行のインタフェースとしてのmakeは本当に優秀だと思う。 makeからsbtとかnpm呼び出してるだけなんだけど、git clone した後にやることが、どのリポジトリでもmake叩けば環境できるようになってるっていうのは本当に楽だった。 twitter.com/Kei198403/stat…
2020-09-13 22:29:47Makefile、 Makefile で済むのにはガンガン活用したいが GNU 拡張とか使いたくなるようなケースの時にちょっと悩む
2020-09-14 15:36:26とはいえMakefileの中身を理解しつつも使わないチームメンバーもいるし、それでいいんだよな〜って気持ち 使いたい人が使えばいい、Makefileの中身を理解しやすく保つ必要はあれど
2020-09-14 15:43:29@yamaneko1212 そうですね、ただ複雑なことが出来ないっていうのは利点でもあるかなと。以前に全てをやろうとしている長大なMakefileのメンテで精神をやられたことがあるので……
2020-09-14 15:46:47