Webナイト宮崎Vol.8

~てげ良いコード書きたい~

shoya yamamoto

2020 / 1 / 31

@若草hutte & co-ba Miyazaki

今日お話すること

リーダブルコードから学ぶ

良いコードの考え方

About me

  • 名前:山元 彰也 (28歳)
  • 職業:システムエンジニア
    • ​Ruby,Rails、CMSの保守開発
  • ​好きなもの / こと
    • ​音楽 ( ELLEGARDENとか )
    • ​関ジャニ∞
    • ゲーム
    • ​3月にハーフマラソン走ります!!

🎉🎉今日で301日🎉🎉

SNS Accounts

Twitter

yamamon_zawawa

facebook

山元 彰也

LINE

32153721

今週のQiitaのトレンド 1/29(水)時点

Milestone

  • 「良いコード」とは?

  • 表面上の改善について

リーダブルコード

「良いコードを書くには」ということを

詳しく解説している本。

未経験で現場に入ると高確率で

先輩からおすすめされる本。

ループとロジックの単純化

表面上の改善

コードの再構成

選抜テーマ

「良いコード」とは?

良いコードの定義

原則

コードは理解しやすくしないといけない

読みやすく

理解しやすいとは・・・

  • 他の人が最短時間で理解できる
    • 他の人には自分も含む ← 大事

どうせ自分しか編集しないし・・

ダメ。ゼッタイ。

ループとロジックの単純化

最短理解のために

表面上の改善

コードの再構成

「表面上の改善」について

美しいコード

名前の付け方

コメントの書き方

表面上の改善

名前の付け方

  • 名前に情報を埋め込む
  • 明確な単語を選ぶ
  • 汎用的な名前は避ける
  • 処理自体を表現する具体的な名前
  • スコープに応じた命名
  • 誤解されない名前

名前に情報を埋め込む

(例)ユーザー名の文字数に関する変数

# 文字の長さとわかる
text_length = @user[:name].length

# 名前の長さだとわかる
name_length = @user[:name].length

#ユーザーの名前の長さだとわかる
user_name_length = @user[:name].length

美しいコード

  • 一貫性のあるレイアウト
    • 縦線をまっすぐに(インデント)
    • 適切に改行する
      • 空行を適切に使う
  • 似ているコードは似ているように見せる
  • 関連するコードはブロック

美しいコードはどっち?

(例)同じ処理のif文と三項演算子

# 三項演算子
ans = a ? b ? "両方true" : "aはtrue" : b ? "bはtrue" : "両方false"

# if文
if a && b
  ans = "両方true"
elsif a && !b
  ans = "aはtrue"
elsif !a && b
  ans = "bはtrue"
elsif !a && !b
  ans = "両方false"
end

Summary

  • 他の人が理解できるコードを書こう

  • 変数などの名前に意味を持たせる

  • 一貫性を意識して美しいコードを書こう

  • 何はともあれリーダブルコードを一読!

Webナイト宮崎Vol.8

By Shoya Yamamoto

Webナイト宮崎Vol.8

Webナイト宮崎 Vol.8~てげ良いコード書きたい~ 2020/01/31(金) 19:00 〜 21:00 若草hutte & co-ba Miyazaki URL:https://tegehoge.connpass.com/event/160183/

  • 1,114