Spartan Programmingに関するJeff の投稿は本当に楽しかったです。そのようなコードは読むのが楽しいことに同意します。残念ながら、一緒に仕事をすることが必ずしも楽しいものになるかどうかはわかりません。
何年もの間、私は「1 行に 1 つの式」という慣行について読み、それを順守してきました。多くのプログラミング本が次のようなコード例でこのアドバイスに反論したとき、私は善戦し、自分の立場を維持しました。
while (bytes = read(...))
{
...
}
while (GetMessage(...))
{
...
}
最近では、より実用的な理由から、1 行に 1 つの式を使用することを推奨しています。デバッグとプロダクション サポートです。「65行目」でNullPointer例外を主張する本番環境からログファイルを取得すると、次のようになります。
ObjectA a = getTheUser(session.getState().getAccount().getAccountNumber());
いら立たしく、完全に回避できます。null である「最も可能性の高い」オブジェクトを選択できるコードを専門家に提供することはできません...これは実際には非常に苦痛です。
1 行に 1 つの式を使用すると、コードをステップ実行するときにもかなり役立ちます。私はこれを、ほとんどの最新のコンパイラが、作成したばかりの余分な一時オブジェクトをすべて最適化できるという前提で実践しています...
私はきちんとしているように心がけていますが、明示的なオブジェクトでコードを雑然とさせることは、時には面倒に感じます。一般に、コードの閲覧が容易になるわけではありませんが、本番環境でトレースしたり、自分や他の人のコードをステップ実行したりする場合に非常に便利です。
あなたはどのようなスタイルを提唱し、それを実際的な意味で合理化できますか?