プロのプログラマであり続けるための処方箋
プログラマのためのサバイバルマニュアル Josh Carter 長尾 高弘 オライリージャパン 2012-08-22 |
プログラマを生業としている方はその世界に長く
居続けるとついつい近視眼的になりがちです。
仕事のやり方に固執してしまったり、自分しか理解できない
コードを書いてしまったり。
※ 数年前の私もそうだったので、自戒の意味も込めて。。。
本書はプログラマとしてプロであり続けるために知っておくべきこと、
やるべきことをTips形式でまとめたものです。
Tipsには参考文献がついているので、その内容についてより知りたい
場合は参考文献を見ればよいという親切さがうれしいです。
サンプルコードは簡単なRuby/C/C++が主なので、読みやすいです。
■プロとしての品質
プログラムの品質を計る方法は2つあります。
それは、「バグがないこと」と「読みやすいこと」です。
○ バグがないこと
バグがないことを確認するには、テストをするしかありません。
テストには目的別に複数の種類がありますが、その目的を
キチンと理解しないと、テストが足りなかったり、過剰な
テストをしてしまったりします。
プログラマとしてはどのテストで何を確認するべきかを
正しく理解することが重要です。
○ 読みやすいこと
いくらバグがないプログラムであっても、読みにくいと話になりません。
作った人がずっとメンテナンスし続けるわけではなく、
システムに携わる他の人が見てもわかるようにするべきです。
i = i + 1; // iに1を加える
こんなコードを見ると力が抜けてしまいます。
読みやすいコードを書くためのポイントは「スタイル」と
「ネーミング」です。
スタイルはインデントや構造などが読みやすい形になっているかどうかを確認すること。
ネーミングは変数名や関数名などが適切につけられていること。
最近はcheckStyleなどのツールもあるので、ある程度は
自動的に担保できるものになっています。
■生産性を上げる
生産性を上げるためにやるべきことは主に2つです。
○ ツールの活用
プログラミング環境は日々進化していっています。
ミスを軽減するための仕組みや自動化の仕組みなどが増えていっています。
これを適切に活用することが、生産性を上げるポイントです。
例えば、
- IDEを活用する
- バージョン管理の仕組みを入れる
- ビルドツールを入れて、ビルド➡テストを自動化する
などがあります。
○ 言語に精通する
プログラミング言語も新しいものがどんどん出てきています。
Webアプリ開発向けの言語が主流になっていた時代から
モバイル向け、クラウド向け、ビックデータ解析向けなど
システムニーズに合わせて変化していっています。
これらに対応するには、やはり継続的な学習が必要になります。
本書では有名な1万時間ルールが記載されていますが、
1つの言語を押さえて、横展開していけば、そこまで時間は
かからないと個人的には思います。
■ビジネスを知る
ただの職人でなく、ビジネスパーソンとしてのプログラマに
なるためには会社やビジネスを知る必要があります。
製品のライフサイクルやマーケットを意識することで、
求められているものが何なのか?を知ることができます。
■編集後記
本書のような自分の所属している業界ドンピシャな書籍を
読むとやはりリアリティが違います。
あげられている事例も他の職種の方がみてもチンプンカンプンな
ものが思わず笑えて(笑えない物もありますが)しまいます。
コメント