お金をいただいて、プログラムするっていろいろあると思う。
天才プログラマのやることに文句をつけるつもりはない。
凡人プログラマのつぶやきです。
凡人プログラマができることっていったら、
1日100ビルドエラー、1日100grep
だと思う。
夜型の凡人プログラマでない限り、午前中にビルドしない日は、仕事してない日だと思っていいかも。
朝から打ち合わせが入っても、手元のコンピュータではビルドしてるって当たり前やん。
議事録担当だっても、まわりの人に、発言内容はチャットで送ってねって頼んで、
なるべくビルドに専念してる。
議長の時だって、題材が別のプロジェクトの場合は、手元のビルド過程を間違って画面共有してはいけない。流石に、議長の時は、題材のプロジェクトをビルドしよう。
そして、時間の半ばくらいで、そういえば、さっきビルドしたエラーを、チャットで送ったけど、誰か、このエラーとったことありますか?ってネタ振ろう。
ビルドもせずに、ありえない架空の話で打ち合わせの時間を無駄にすごさせようという人がしばしばいる。
脳内コンパイラの性能のいい方なら、脳内コンパイラのエラーを取ることに意味はある。
脳内コンパイラが全部だけということはない。コンパイラを書いたことがある人なら、
脳内コンパイラの方が、実在するコンパイラより性能がいいということはしばしばある。
まだ、その人の脳内コンパイラを、ソースコードに落としていないだけなんだったり。
早く、ソースコードにしてって頼もう。
脳内コンパイラの性能がありえない状態なのに、脳内コンパイラのエラーが、納期までの題材では関係ないのに、延々と発言しつづける場合がある。お客様の場合には、止められない。
もくもくと、自分の手元のビルドエラーをとりつづけながら、関連性の有無の確認は都度するようにするといいかも。
毎日、絶帝100ビルドしているかっていうとそうじゃないです。
100ビルドは目標ではないです。
手から出てくるプログラムが、コンパイルエラーがないものしか書かない人がいる。
つぎつぎと、エラーなしでビルドできるのなら、それはそれでいい。
それも才能のうち。
凡人プログラマは、文法なんかおぼえちゃいない。
詩のように、思いついた言葉を書き出して、コンパイルして、コンパイルエラーがでてから、文法に沿ったプログラムに書き換えている。
ビルドエラーがでないこともある。ソフトウェアのインストール作業で、よく使うOSの版についてビルドするときには、そんな日もある。誰もつかっていないOSの版だとつぎつぎビルドエラーがでることもある。
100ビルドする時のある例を紹介しよう。
新規開発で、対象OSのバージョンが3種類あり、最終出荷コンパイラが決まっていないため、3種類のコンパイラでコンパイルしているときには、同じソースで同時に9回ビルドする。
基本、9種類dockerを起動し、gitでソースを取り込んでビルド。
リリース用のビルドと、テストコードを含んでビルドする場合の2種類を同時にビルドする場合がある。合計18種類を同時にビルド。
Visual Studioを利用している場合には、まず定義に飛ぶ。
100grep
ビルドエラーがでたら、エラーメッセージにもとづいてすぐにgrep
エラー対象の文字列が、どのファイルに存在するか。どれくらいの頻度で出現しているか。
共出現する単語になにがあるかなどの分析をする場合もあれば、しない場合もある。
正規表現の書き方に慣れていない時には、2−3回やりなおすことがある。
そんな状態だと、1ビルドで数回grepすることもある。
慣れてきて、grepが何を出すかがわかってくると、grepしなくてもよくなるかもしれない。
構造のよいソースコード群だと、何回かgrepしているうちに構造がつかめてくる。
構造の悪いソースコード群だと、grepするたびに発見があるかもしれない。
延々とgrepする日は続く。
grepする数が減ってくるのはそれでよい。
ずっと1日100ビルドエラー、1日100grepという趣旨ではない。
最初にそのソースコード群に出会った時には、それくらいするといいかもという目安。
目標ではない。
文書履歴(document history)
ver. 0.01 初稿 20230917
ver. 0.02 grep追記 20230918
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.