「美しいコードとは、概念モデル(ドメインモデル、とそこに含まれる知識など)をそのまま表現したコートである。技巧を凝らしたコードのことではない。」
第3回関西PHP勉強会で久保さん(@iteman)がそのような趣旨のことを話されていました。
開発者の視点の高さ・視野の広さによって、美しいコードの意味が異なってくると思います。
たとえば
- 関数やメソッドなど個々の処理を見ている開発者
「技巧を凝らしたコードが美しいコードだ」
-
クラスを見ている開発者
「理解しやすく再利用しやすいようにデザインパターを巧みに駆使したコードが美しいコードだ」
-
システム全体を見ている開発者
「ドメインモデルを忠実に表現したコードが美しいコードだ」
視野が広がるにつれて、「美しいコード」の抽象度が上がっています。
理解できるようになるには、知識と経験が必要になると思います。
「美しいコード」は、その人のレベルによって意味が異なります。
そのようなことを考えました。