LoginSignup
2
0

はじめに

こんにちは。エンジニア2年目のasukittです。
今年は読書習慣を付けるため1か月に1冊本を読む目標を立てています。
またアウトプットをして定着させるために本記事の作成にいたりました。

今回の書籍

現在の業務で、汚いコードで悩んでいる同僚がいて軽く話を聞いて自分も該当しているのではと思って調べている内にこの本と巡り合いました。
また「技術書 おすすめ エンジニア」と調べたら、ほぼ確実に入っている良書なので買いました。
それが、
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

81+3DpjuMdL.SL1500.jpg

できていたこと

・ネストを浅くすること

・if文で否定形を使わないこと

・正確な内容のコメントを書くこと

・do/whileは極力使わない

・ドモルガンなどの発想の転換でコード量を減らす

・1つの関数には1つの機能

・日本語で説明してからコードに落とし込むこと

学んだこと

変数の命名方法

読みやすいコードにするためには、
・変数に使う英語を正確に選定する(Get→Fetch,Download)

・汎用的な変数を避ける(tmpなど)

・具体的に名前を付ける(ServerCanStart→CanListenOnPort)

・変数に大事な情報を追加する(秒だと_ms)

変数の命名には気を付けていましたが、それは禁止事項だったり最低限のマナーを守っているだけだったことがわかりました。

変数の表す範囲

・限界値を含める時は○○_limitではなく○○_min,○○_max

・○○_start,○○_stop→○○_first,○○_last

・複数の意味で取れる単語は避ける(read,get)

見やすい書き方

・改行位置を揃える

・縦の線を揃える

・宣言をブロックごとに分ける

不要なコメント

・コードを見たらすぐにわかること

・わかりにくい変数をコメントで説明するなら変数名を変える

必要なコメント

・定数の理由をコメントで示す

・コードが他のやり方でない理由

・ファイルやクラスの全体像の概要

まだ難しかった内容

・一時変数、中間結果を削除する→リファクタリング段階ではできることもある程度だった

・無関係の下位問題の抽出→無関係かどうかを判断するのが難しかった

・テストコードも簡潔化→テストコードをあまり使ったことがないので理解が難しかった

・CやC++独特の書き方の部分→習熟度が低く難しく感じてしまった

・ベルトコンベヤー設計と時間バケツ設定→C++で書かれていたこともありあまり理解ができなかった

まとめ

これまで自分が読みやすいコードを書くためにしたことといえば、Pythonの習得の際にPEP8を軽く読んだことだった。またわかるように必要以上に丁寧にコメントを書いていたことも気づいた。
また現在の現場ではコードレビューをしてもらう機会がないのでこのように自分で気を付けていくことが今後の人のためだなと思った。
この本はコードを書いていてふと気づいたときに読み直しながら実践し徐々に力をつけていくものなので普段から念頭に置いてコーディングをしようと思った。

次に読みたい本は下記
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方

オブジェクト指向でなぜつくるのか 第3版 知っておきたいOOP、設計、アジャイル開発の基礎知識

コンピュータはなぜ動くのか 第2版 知っておきたいハードウエア&ソフトウエアの基礎知識

プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識

世界一流エンジニアの思考法

達人に学ぶDB設計+SQL

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0