2012年10月22日

良いコードを書く技術

本日は縣俊貴氏の
良いコードを書く技術
です。
良いコードを書く技術 −読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)

仕事でプログラムを書くことがあるので、
その参考にしようと思い本書を購入しました。


プログラマは忙しくて、目の前の仕事だけに
神経が集中してしまうかもしれません。

ただ、その仕事はやりようによっては効率を
10倍、100倍に高めることができるかもしれないのです。

この本には、「センス」という言葉で済まされていた
さまざまなテクニックが体系的に書かれています。

構成も、普通、中級、達人という
3人のプログラマの会話形式となっていて
とても読みやすかったです。


なお、私は半導体のエンジニアで
プログラミングは専門家というわけではありません。

しかし、ネーミングやテスト、抽象化の考え方などは
自分の仕事にも大いに活かせる考え方だ、と思いました。

そんな意味で、プログラマーはもちろんですが、
少しでもプログラムを書く、全てのエンジニアに、
読んでもらいたい一冊です。



私たちが書いたコードは、私たちが想像するよりも長く利用されます。


将来の自分は記憶力において他人と同然です。


場合によっては、単純作業を自作のDSL
(Domain Specific Language、ドメイン特化言語)に置き換えたり、
テストが難しいレガシーなコードをテスト可能で検証できるコードに
変更したりすることで、品質や生産性を数百倍に高めることさえあります
(おおげさではなく、本当に数百倍の場合もあるのです!)。


ありとあらゆることを自動化の対象とみなして、改善していきましょう。


名前付けがうなくできないときは、設計を見直したほうがよいことが多い


「クラスの名前付け」=「設計」なのです。


YAGNI(You Aren't Going to Need it、どうせいらないって)
という言葉があります。
これは、将来ばかりを考え過ぎても予想は外れることが多いので、
今必要なことだけをシンプルにやっていきましょう、という考え方です。


コードの重複は悪ですが、まとめ過ぎには注意が必要です。
本来まとめるべきではないものをまとめてしまうと、
それはバラしていくのは意外と大変です。


ユニットテストが習慣になると、テストがないコードでは
不安で信頼がおけなくなってくることでしょう。


抽象化をうまく利用すれば、
それこそ10,000行のコードが100行になることもあります。
抽象化はプログラミングが持つパワーや醍醐味そのものです。


単なるループも単なるメソッドも、
「複数のデータ間でプログラムの構造を共有する部分を抜き出す」
という意味においては立派な抽象化です。








engineer_takafumi at 01:23│Comments(0)TrackBack(0)★理系本の書評 | ⇒ コンピュータ・情報科学

トラックバックURL

コメントする

名前
URL
 
  絵文字