Be simple

”当たり前”が誰かのためになる

プログラマが知るべき97のことを読んで #1

はじめに

こんばんは!

お久しぶりです。今日は久しぶりに本を読んだので所感を書いていこうかと思います。

 

今回読んだ本はこちらです。

 

プログラマが知るべき97のこと - オライリージャパン (2010/12/18) 

 

 ビルド時間中や空き時間に読み進めているのでまだ3分の1だけしか読んでないですが、今までの経験から気になった部分をピックアップして、読んだ感想を書いていこうと思います。

 

 

ちなみに、参考までに目次は下記リンクから見れます。

www.oreilly.co.jp

 

ユーザが何をするかを観察する(あなたはユーザーではない)

この章で書かれていることでなるほどなと思ったのは、「先入観」についてです。

 

開発している側(開発者)と開発していない側(ユーザー)で操作の仕方や考え方が大きく異なる点があるというのがなるほどと感じました。

 

開発者はある程度アプリを作ってきていたりするので、もし操作方法が分からなかったとしても多分こうだろうという経験則や知識に基づいて操作します。

 

一方、そういったバックグラウンドがない人が触ると操作方法が分からなくて頓挫してしまう可能性もあるし、効率化するための手段を考えようとしないので目的さえ達成されれば他の機能を使ってみようとか知ろうとはしないというのは確かにと僕は思いました。

 

これは、どういうことかというと、結局苦労して開発期間を持ったにもかかわらず結局その機能を使ってくれなかったりそもそもユーザーが欲していない機能であればコストに変わってしまうのです。

とはいえ、ユーザーが何を考え何を欲しているのかを分かったら苦労しないよねって話なんですが、自分が最近思うのは重要な機能だけ絞ってしまいシンプルに動作を限ってしまえばいいような気もしています。

 

とはいえ、その考え方をプロダクトに活かすとなると難しいことはあるので、 作り出す前に、まずはユーザーを知りそれが本当に必要なんだっけ?というのを意識して再度確認していくという作業をしてから開発をやっていくというのがいいと僕は思います。

 

コードレビュー

コードレビューの目的と成功させる方法についてです。

僕がこの章を読んで感じたのは、コードレビューの本質といいますか認識しておいた方がいいなと感じました。

 

コードレビューの目的は次のように書かれています。

チーム全員に同じ知識を共有させること、またコーディングにおいて全員が守るべきガイドラインを確立すること

 

コードレビューというと、技術的に差があったりするとレビューを見られているときには、お互いの関係性が構築されていなければ、まるで公開処刑のように感じることになると思います。

 

文中にもありますが、建設的な議論に進めるためにもお互いに友好的であると良いというのは確かにそうだなぁと思います。正しいことがいいことではなくて、建設的な議論になることがいいことであると思います。

 

文章だけだとさらに冷たく見えてしまうこともあるので、僕はなるべく変な風に伝わらないように言い方に気をつけてはいます。実際どんなもんなのかはわからないですが。

 

また、ありがちなのが技術的に特化していたりして辛辣な批判をしたり、揚げ足をとるようなことはしてはならないです。ここに関して言えば、レビューに限らずやってはならないと僕は思います。

 

気をつけてはいるものの自分も完ぺきではないので、部分的にみて正しいことに執着しすぎて全体的に見たときに適切ではないといった経験はあります。

 

開発は楽しいものです。レビューも楽しくやっていくのがいいと思います。

 

そして、楽しくあるために今も気を付けてはいるのですが、個別の事柄に執着するのではなく全体を見るということを今後も心がけていきたいです。

 

 

 

コードに書けないことのみをコメントする

この章を読んで、思ったのは大学の授業をふと思い出しました。

 

大学のプログラミングの実習では、なぜその処理を書いたのかを逐一コメントにしたうえで提出しコメントの内容も含めて評価になるというのがありました。

大学は勉強をする場で、理論を学ぶ場所です。実践とはちょっと違います。

 

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)にも確か似たようなことが書かれていたと思いますが、

 

コメントは不適切であればマイナスになりそういったコメントが多ければやがて読む人は読み飛ばすようになってしまう

 

というのは確かにそうだと思います。

 

初めての現場に入った時、自分は実習の癖が抜けず意識してはいたもののいらないコメントを書いたり、逆に必要なのに書かなかったりしていて良くなかったなぁと振り返ると思います。今も必要なのに書いてなくて指摘されることはあります。

 

見ればわかることは書かないし、ちょっと問題があってこうしているというのはコメントした方がいいというのは簡単そうではあるのですがたまにやってしまうこともあるのでなるほどなぁと思いながら読んでいました。

 

おわりに

今回は一応読んだ中で気になった部分について自分の経験も併せて共感できた部分についてピックアップしたものの所感でした。

 

この本に書かれていることは、駆け出しエンジニアや新卒エンジニアには勉強になることが多いと思います。

読んでいて、ああぁ、やったことある、、、とか、そういう観点もあったかといった気付きを得ることができるので読んで損はないと思います。

 

また、今後も読み進めていって気になった部分を適宜記事にしたいと思います。