パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

書きやすさと読みやすさ

単なる書きなぐり。

最近、プログラムの書きやすさと読みやすさはちょっと違うかなぁ、という気がしている。C++ のテンプレートとか。DRY 原則に従って、共通部分をできるだけまとめようとすると、定義のネスト(なんじゃそれ)が深くなってしまう。書いている本人がアクティブなときのプログラムの修正はやりやすいかもしれないが、これは読むときに障害になる。
適切な名前を付けて、深いネストの部分をブラックボックス化できればいいんだろうけど、ブラックボックスの中身を適切に表現できる名前なら、名前だけでプログラムできそうだ(逆に言うと実装コードを名前にしないといけないとか)。コメントに詳細を書いてもいいが、読むのに時間がかかるのと、無駄にコードが長くなり一覧性が悪くなるのは良くない。VisualC++ で、コメントを隠せる機能はいいが、操作が面倒。

ある程度、中身が連想できる名前にしておいて(小生は省略・短縮キーワードも好きだ)、後は、人間の記憶と連想能力に頼るしかないかなぁ。関数名のマウスオーバーで、バルーンみたいなのがでて、どんどんコードのネストをもぐっていける機能とかはいいと思う(この辺り 2chViewer は良くできている)。

プログラマやコードレビューアのコードをトレースできるスタックの深さにも依存する。人により読みやすいコードは違うということだ(というか、同じ人でもその時の頭のキレ具合でも違う)。DRY 原則も、盲信するよりも時と場合で使い分けるべきか。