- 2022年4月25日
はじめに
まず身の上話なのですが、ユニフェイスでエンジニアとして働き始めて、そろそろ3年目に突入します。プログラマという仕事は非常に楽しいのですが、毎日難しさに直面し悩んでいます。
その中で、新人エンジニアが読むべき本! 5選│uniface.hub (uni-face.co.jp)に『プリンシパルオブプログラミング 3年目までに身に着けたい一生役立つ101の原理原則』という本が挙げられているのを見つけ、読んでみました。
読みながらプログラマは何が難しいのか。そして解決のヒントは何か。を考えたので、書いていこうと思います。
そもそも難しいとは?
「難しい」と一言にいっても、内容は多岐にわたると思います。
人によって難しいと感じることは違うと思います。今回は、個人的に最近難しいと感じたことを列挙し、また、解決策(もしくはそのヒントとなるもの)を、プリンシパルオブプログラミングの中に記載のある原則名を記述するスタイルで説明します。
1. コードの量が多すぎて全体像が掴めない
コードの量が多すぎて、脳の処理能力をオーバーしてしまうことがあります。脳もコンピューターと同じように、メモリのような割り当て領域があるらしく、あまりにも膨大なコードを扱うことは処理の効率を落とします。
以下に、コードの量を減らしたりシンプルにすることを良いこととする原則を紹介します。ほかにもたくさん関連する原則がありますが、詳細の記述は控えておきますので、本を読んでみてくださいね。
KISS
プリンシパルオブプログラミング 30ページ
Keep It Simple, Stupid.
または Keep It Short And Simple.
コードはできるだけ短くシンプルに書きましょう、というわかりやすい原則です。新しい技術だったり、難しいけどカッコ良い書き方にしよう、という誘惑に負けずとにかく短く・シンプルにしていきましょう。
DRY
プリンシパルオブプログラミング 34ページ
Don’t repeat yourself.
繰り返し書くことをやめようという原則です。同じ内容を書いてしまうと、例えば修正する時にも2箇所修正する必要があるなどデメリットが多くあります。
2. 完成のイメージが思い浮かばない
プロトタイプを作る・作りたいものの骨格を作るなど、手を動かして荒くでも動くものを作るという原則が書かれていました。
即行プロトタイプ
プリンシパルオブプログラミング 164ページ
Build a prototype as soon as possible.
作りたいものをできるだけ早く目に見える形にしようという原則です。その作りたいものが現実的かどうかを知り、手戻りをできるだけ少なくすることができます。
曳光弾
プリンシパルオブプログラミング 234ページ
Tracer ammunition
プロトタイプから踏み込んで、動作する土台となるソフトウェアを作ろうという原則です。動くものを作ることで、ユーザーからのフィードバックを得やすくなるため市場への影響力などを測ることができます。
3. どこまで出来たら完成なのかわからない
普段僕もよく悩んでいるところですが、解決につながりそうなヒントとなる原則を以下に記します。
・90パーセント解
プリンシパルオブプログラミング UNIX哲学 小定理 181ページ
90パーセントの解を目指します。
どんなことであれ、100パーセントうまくやることは困難です。90パーセントのことをうまくやれるようにするほうが、はるかに効率的であり、費用対効果が高くなります。
個々の前提条件(例えば、明快な答えが提示されていて、それを目指して作る等)によりどの程度の完成度を目指すのかが変わりそうなところではあるのですが、自分としても使えるところでは使っていきたい原則だと感じました。
4. そもそも良いコードとは何か?がわからない
アーキテクチャ根底技法
プリンシパルオブプログラミング 80ページ
Enabling Techniques for Architecture
良いコードを作るための技法がまとめられています。昔からたくさんの人が考えていたことであるため、「型」という形で技法がまとめられています。
他にもさまざまな技法がありますが、紹介しきれないので、続きは読もう!!
プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則 | 上田 勲 |本 | 通販 | Amazon
まとめ
本当に勉強になりました。もっと早くに読んでいればよかったなと思うぐらい良い本でした。新人だけでなく、これから新人に教えるよ、という方も、教え方の勉強になるのではないか、と思います。是非皆さんも読んでみてはいかがでしょうか。