59-バイナリは常に1つ

プログラマが知るべき97のこと」の59個目のエピソードは、ビルドとバイナリに関する話です。自分の経歴の7割以上はJavaによるソフトウェア開発であることもあり、バイナリにまつわる問題はほとんど経験した事がありません。ソフトウェアのほとんど同じだけど少しだけ違っているバージョンを作らざるを得ない状況も数えるほどしかありませんでした。Javaが実現しようとしていた「Write once, Run anywhere」のポリシーがあるからでしょう。Javaを使っている以上は、悩まされるのは環境に依存した改行コード・文字コード・ファイルの区切り文字程度であり、それらも少しだけ注意を払うことで実装を変更する必要はほとんどありません。
ですが、Javaや他の言語でのウェブアプリケーション開発などでも共通するような事はあります。開発環境がWindowsで実行環境がLinuxというケースであれば、環境に依存しないコードであることが望ましいでしょう。開発時から本番で使うバイナリと同じものを使う事は問題の発生を多く減らせるという実感もあります。
また、最近のウェブアプリケーションフレームワークやビルドツールでは、環境毎に設定ファイルを読み込ませる機能が提供されています。開発用の設定やステージング環境用の設定が外部ファイルとして記述され、アプリケーション本体では可能な限り環境を意識しないようなコードを記述します。デプロイのプロセスも自動化しておけば、同じコードをそのまま幾つかの環境に間違えなくデプロイすることも出来ます。
自分にとってはバイナリはあまり身近な問題ではありません。しかし、「皆が常に同一のバイナリを使用するようにする」という事と「環境に関する情報もバージョン管理の対象とする」という2つのルールは、スクリプト言語による開発であってもJavaの開発であっても共通して重要な事だと思います。それらの事を実現するためにはそれなりのノウハウが必要ですが、学習する価値は高いでしょう。ビルドプロセスの自動化までは基本スキルです。

プログラマが知るべき97のこと

プログラマが知るべき97のこと