よい職業プログラマ
「よいプログラマってなんだろう? http://blog.clouder.jp/mt/mt-tb.cgi/1074 」というブログ記事を見て、僕も考えてみました。
ただし、よいプログラマではなく、よい職業プログラマです。
なんでかって言うと僕自身はナージャ・ジベリみたいなプログラマもよいプログラマだと思ってるので、これから書く条件ではそういうプログラマを評価できなくなってしまうからです。
と、いう訳でよい職業プログラマの条件。
- 汚いコードを整理・改善できる。
- 抽象化のセンスがよい。
- データ設計が誰でも理解しやすい構造になってる。
- メタな設計をやたらと濫用しない。
- 変数名・クラス名のセンスが良い。
- 何を意味しているのかがよくわかる。
- クラス名から想像できる機能を持ったメソッドが定義されている。
- 改善の手段・足がかりをコードやDBに残しておける。
- 例えば、データの増分の推移や、スナップショットを要件外だったとしてもDBに残すなどの備えを作っておく。
- コード中に拡張ポイントをいくつか用意しておく。
- ドキュメントを書ける。
うん、基本的には誰でも理解できるプログラム(を書ける|に書き直せる)のがよいプログラマだと僕は思ってます。職業プログラマって言うのは、パズルを作る人じゃないですから。自分がプログラムを書かなくなった時に、いつでもそのプログラムを他の人に引き渡せるような状態にしておく事を心がけるのがよい職業プログラマですよね。
この手の記事って、そこらじゅうに散らばってるのでかぶっている事や矛盾してる事も沢山あるでしょうし、あくまで僕の見解という事で。