『達人プログラマー 職人から名匠への道』を読んで

はじめに

達人プログラマー 職人から名匠への道』を読んで学んだ内容を整理する。

本書の概要

達人プログラマー 職人から名匠への道

達人プログラマー 職人から名匠への道

本書では、ソフトウェアエンジニアが備えておくべき「規律ある行動」について述べられている。

原書『The Pragmatic Programmer: From Journeyman to Master』の初版は、1999年に Andrew HuntDavid Thomas によって書かれた。

原題と邦題のギャップには少し違和感がある。笑

達人プログラマーになるための要点

本書で述べられているプログラマーが意識すべき事柄について、特に心に留めておきたいものを整理する。

割れた窓をなくす

「割れ窓理論」は、1つでも「割れた窓」があると、心理的に他の窓が割れることの関心が薄れ、次第に全体の秩序が乱れていってしまうという理論。

実際にこの理論を参考にし、ニューヨークでは小さい犯罪(=割れた窓)の取り締まり強化することで、重犯罪の削減に成功したことがあるらしい。

ソフトウェアエンジニアリングでも同様のことが言え、汚いコードや設計を放置しておくと、その範囲がどんどんと拡大していく温床となる。

石のスープを触媒にする

他人の協力が必要なチャレンジをする時は、丸腰で協力を募るのでなく、石だけが入ったお湯(=石のスープ)など何でも良いので、簡単なプロトタイプを用意する。

すると、「人参も入れた方がいい!」や「確か家にじゃがいもが余ってたはず…」など、「石のスープ」をより良い形にするための自発的な行動を促すことができる。

このように変化が必要な場合は、その触媒となる「石のスープ」を意識する。

蛙の煮物の蛙になるな!

蛙を熱湯に入れると、その熱さにビックリして外に飛び出るが、蛙を水に入れた状態から徐々煮沸させると温度の変化に気づかず最終的に煮物にされてしまう。

この「蛙」にならないように、常に外部環境の変化にアンテナを張っておく。

直交性を保つ

直交性とは、複数のものが違いに独立しており、1つを変更しても他のものに影響を与えないようなものをいう。

仕様の変更や拡張に柔軟に対応できるように、直交性のあるシステム設計を意識する。

シェルを使いこなす

GUIは直感的に操作でき便利であるが、全てのコマンドに対応している訳ではない。

このようなGUIがサポートしていないコマンドでも、シェルからは実行可能なため、普段からシェルを活用しコマンド操作に馴染んでおけば、より高い生産性を発揮できる。

1つのエディタを極める

自分が気に入ったエディタを一つ選び、その操作を極めることで生産性を向上させる。

キーを叩く回数を減らせるように絶えず効率化を追求する姿勢を忘れない。

早めにクラッシュさせる

プログラムにエラーが発生した場合は、早めにクラッシュさせる。

クラッシュされず処理が進んでしまうと壊れたデータによりDBが汚されてしまう。

偶発的プログラミング

信頼できるよう手法だけを用い、なぜ自分の書いたコードが正しく振る舞うのかを常に理解する。

たまたま動くコードで押し進めると、あとあと修復不能な自体に陥ってしまう。

どこでも自動化

ツールを活用して、繰り返し作業や決まった作業は全て自動化できるようにする。

期待を少し上回る努力をする

システム設計段階からユーザを巻き込み、システムの仕様に関する「期待」をうまくコントロールする。

その上で、ユーザが喜ぶようなちょっとした機能を追加してあげれば、結果的に高い満足度に繋がる。

所感

ソフトウェアエンジニアが備えておくべきハードスキルについてよく取りまとめていると感じました。

1つ1つのことを心がけて日々取り組んで行きたいですね。

「割れ窓理論」とかほんとそうだと思って、小さいことでも妥協せずに取り組む姿勢が大事だと再認識させられました。

1つ言っておくとすれば、本書は全体的に比喩やちょっとしたジョークを織り交ぜて説明が行われているんですが、和訳されているせいかそれが冗長に感じて若干読みにくかったです。

1度読んで終わりというよりかは、大事な姿勢を忘れないために、ちょっとした時間を使って定期的に目を通したい感じの本ですね。

Source

達人プログラマー 職人から名匠への道

達人プログラマー 職人から名匠への道

兵庫県西宮市生まれのフリーランスRailsエンジニア。海外を拠点にデジタルノマド生活中。/ 前職・資格:公認会計士 / プログラミング言語:Ruby, JavaScript, HTML, CSS / 日本語・英語
コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です