一人で書くときは。
個人で書くときとチームで書くときは良いコードの意味が違う。
チームで書くときと個人で書くとき
プログラマーの命題的なものに「良いコードとは」みたいなのがあると思う。
でも、それは開発するチームの体制によって変わってくるのではないかと思う。
で、オレオレ実装というとネガティブな印象が強いんだけど本当にそうだろうか。
チームで書くときはオレオレ実装は疎まれる。でも個人で書くときは自分が分かれば良い。開発が進めば良い。
個人開発 = 実装 < モチベーション
個人の開発(OSSとか色々)はモチベーションのほうが大事。なんというか。綺麗にコードを書こうとすると僕みたいな一般人は手が止まる。手が止まると作業が進まない。いつの間にか開発をやめる。
オレオレ実装で良いからインクリメンタルに開発していく。オレオレ実装でコーディングを楽しむ。作り上げる。あとから見てオレオレ実装だったと反省する。すると、チームでの開発に活かせる。
オレオレ実装をしたことがない人はオレオレ実装を反省することも改善することも出来ないかもしれない。
オレオレ実装も積んでいくと洗練されていく。オレオレに特化する人もいるので難しいところではあるが。。。
チーム開発 = みんなのやりやすさ > オレオレ実装
チーム開発だからこそオレオレ実装は疎まれる。皆が見て皆が分からないから。
みんなが共通理解を持って、コードを通じて「会話」が出来るととてもコミュニケーションがスムーズになってやりやすくなる。
皆が見て皆が分かるというのは共通のコンテキストを構築するということであり、なんというかお互いの理解が深まる。
ジェンガを皆で綺麗に積む感じというか。
こうやったらココが危ないのが分かるかなとか、こうやったらココが安全なのが分かるかなとか。
ただし、技術的なものを妥協して皆のやりやすさに降りて行き過ぎるのもオススメしない。そうするとプログラムとしての分かりやすさから離れてタダの内輪の理解になってしまう気がする。
技術的な分かりやすさから乖離して低レイヤになってしまうような危機感みたいなものがある。
言いたいこと
チームで書くときと個人で書くときは良いコードの定義が違うんじゃないかとか思う。
個人で書くときは”自分だけ”の理解や思い出すスピードが最短のものが望ましい。つまり個人で開発する時(しかもスピーディに実装する)にはオレオレ実装が理想な気がする。
ある程度プロダクトが育ってオープンになってからみんなにとってもの「良いコード」を考えても良いんじゃないかと思う。
大抵はそこまで育つ前にモチベーションが縮んで「オレオレ実装」すら書かずに終わる。
まとめ:良いコードとは
開発者(チーム、もしくは個人)にフィットし、開発を円滑にするもの。
技術の進歩から乖離せず効率化されているもの。
0 件のコメント:
コメントを投稿