Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

[読書中]Titus Winters, Tom Manshreck, Hyrum Wright

「ソフトウェアエンジニアリングとは時間で積分したプログラミングである」という定義に腹落ちした。スタートアップで 10 年働いたエンジニアでも、1〜2 年の保守経験がないことがある、という指摘は耳が痛い。ソフトウェアエンジニアリングでは、長期の保守や、言語のバージョンアップへの対応が期待される。コストや優先度から「変化しない」という選択を取るのは良くても、そもそも変化に対応できない状態は好ましくない、という指摘はごもっともだ。

一方で、「コードの想定稼働時間」が短ければ、合理的な理由から保守性を作り込まないこともある。ただ自分の経験上、書き捨てのつもりのコードを使い回してしまうこともある。想定稼働時間を正しく見積もること自体が、ひとつの難しいタスクだと思う。個人的なプラクティスとしては、書き捨てのコードは JupyterLab で書き、Python コードに移すタイミングで再利用を意識するようにしている。

Amazon で見る: Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス