2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

はじめに

エンジニアとして働き始めて早半年。ワオ!

3ヵ月目だったときのわたしに、超すごすご先輩エンジニアの方が「リーダブルコード」を読むだけで実装力変わるよ、と教えてくれたので、必死で読みました。
その時の学びを今更ながら記録しますう📝。

駆け出しエンジニアでも入りやすいポイントばかりですし、少し意識するだけで可読性増し増しぃ➚🔥 なので、よければ参考にしてみてください。
長めなので、少しずつ意識するのがおすすめです🙆‍♀️

命名

- **「具体的」な命名を**
😕get... どこから取ってくるの?キャッシュ?db?

🙆🏻‍♀️FetchPage..インターネットから取ってくるとわかる!pageが付いてることで、「何を」取ってくるかまでわかる。

🗝ヒント

- 類義語を探していくとぴったりな言葉が見つかるかも!
- 変数名には大切な情報を入れると良い(time →time_msだったらミリ秒なことがわかる)
- 特殊やなつ(ファンバサダーとか)は、チーム全体で決めて認識揃えると良い
  • 他の意味に誤解されないか確認してみる

    名前を決める前に、反対意見を考えるなどして、他の人が自分のコードを読んだときに誤解されないか想像してみよう!

    🗝ヒント 

    • 限界値 min-max
    • 範囲の指定 first-last(その値も含んでいることが分かる)。begin-end(beginはその値を含み、endはその値を含んでいない。けど少し曖昧。けどこれがイディオムだから最善🤔)
    • bool is,has,can,shouldをつけると良い。否定形よりも肯定系のものの方が良い(例:disable_ssl = false; → use_ssl = true;)

美しさ

- 改行でまとまり意識 - 同じ内容ごとに塊にして、改行とか。 - 同じことを何回もしているのなら、1つの関数にまとめる - 意味のある並び順(どの順番でも良いなら、重要順, アルファベット順にするとか。また、同じコード内では同じ順番にすべき) - 複数行で同じ内容のことをしているなら、シルエットを揃える

コメント内容

👆コメントの目的は、書き手の意図を読み手に知らせること

コメントすべきこと

  • なぜそうしたかなどの自分の考え

  • コードの欠如(TODO:〜を使うとかで書く

  • 他の人が後から見た時にハマりそうな罠に書く

  • コードの理解に役立つwhat(全体像、何をしているのか) how(どうやってるのか) why(なぜやったのか)

    ※ただし、コメントで補おうとせず常に綺麗なコードを意識

どうコメントすべきか

  • 代名詞は避ける(×それ、これ。どれやねん
  • 実例を書いてみる
  • 情報密度の高い言葉を使って簡潔に(例:この情報はデータベースとここに保存する。このクラスを読み込むときにメンバが存在してたらそこから読み.....→このクラスは、データベースのキャッシュ層である

制御フローを読みやすくする

- if/elseの順番
```jsx
if(a == b ){
 //第一ケース。
 //1,肯定系の条件を使う ▲ a!==b
 //単純な方を先に書く →if/esleが同じ画面に表示されてわかりやすい
 //目立つ条件を先に書く
 } else {

 }
```
  • 三項演算子

    • 基本はif/else 。それによって簡潔になるもののみ三項演算子。
  • 早期リターンはウェルカム🌺

  • ネストは浅く

    • 変更するときに、既存のコードに付け足しちゃえ〜は危険。そうやってネストしていく...一歩下がってみて全体をみよう!!!
    • 失敗ケースを早めに返す、ネストが消える
  • 要約変数・説明変数

    • 式を変数に代入しておく

      
       if(user_id === doucument.user_id) {
       ...
      }
      
      
      
       const user_owns_document = user_id === document.user_id
      if(user_owns_document){
      	 ....
      }
      if(!user_owns_document){
       ....
      }
      

    ※何でもかんでも変数はダメ。✖️一度しか使わないもの

  • 反対を考えてみる

  • プライベートとグローバルの使い分け

    • 基本プライベート、他でも使う時にグローバル(変に他で使われないように!!
  • 書き換えれない変数

    • letよりconstの方がベター

コードに思いを込める

- 誰もが分かるように書くべし!
手順

1. コードの動作を簡単な言葉で同僚にもわかるように説明する
2. その説明の中で使ってるキーワードやフレーズに注目する
3. その説明に合わせてコードを書く!✌️

🗝ヒント

デバック時にもかなり役立つ!

ある大学で、生徒はデバッグに悩んだ時に、🧸に問題を声を出して説明する。それだけで解決策が見つかる!!(ラバーダッキング

短いコードを書くべし

- 必要な要件のみ

 任意のユーザーの緯度経度にたいして、最も高い店舗を検索する

🙆🏻‍♀️テキサス州のユーザーに、テキサスにある最も高い店舗を検索する

テキサスで考えられるものだけに絞られた!

  • たまにライブラリを15分読もう

 知らなかった出来ることがでてきそう!

テストと読みやすさ

💁🏻‍♀️他のプログラマが安心してテストの追加や変更ができるよう、テストコードを読みやすくしよう
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?