スポンサーリンク

【実務で評価される】読みやすく変更しやすい「綺麗なコード」の書き方|悪い例と改善ポイント

クラス設計・OOP入門

はじめに

プログラミングを学んでいると、「とりあえず動けばOK!」という気持ちになりがちですよね。
もちろんコードが動くこと自体は大事なのですが、実際の仕事では「チームの人が読みやすく、変更しやすいコード」を書けるかどうかが大きな評価ポイントになります。

なぜなら、プロジェクトは一人で完結することがほとんどなく、複数人でコードを共有しながら進めていくからです。読みづらいコードは、後から修正する人を混乱させ、余計なバグや時間のロスを生み出してしまいます。

この記事では、避けるべき「悪いコード」の典型例と、それを改善して綺麗なコードにするためのポイントを紹介します。学習段階から「読みやすさ」を意識して修正していくことで、実務に直結する「プロっぽいコード」が書けるようになりますよ。




避けるべき悪いコードの典型例

ここでは、初心者がやりがちだけれども実務ではNGとされる「悪いコード」の典型例を紹介します。
どれも「動くには動くけれど、後から読む人が困るコード」です。自分のコードと照らし合わせながら確認してみましょう。

1. 意味の薄い変数名

例えば、次のように n という変数を使ったコードです。

n = 6
puts "サイコロを#{n}回振ります"

これでは n が「何の数字」なのか一目で分かりません。チーム開発では読み手に負担をかけてしまいます。

2. マジックナンバー

コードの中に突然現れる「6」や「100」といった数字。これをマジックナンバーと呼びます。

6.times do
  puts rand(1..6)
end

「6」が何を意味しているか不明瞭で、後から見た人は「6は何の回数?」「サイコロの目の数?」と混乱してしまいます。

3. 制御構造の不統一

Rubyには timeseach など便利な繰り返しメソッドがあるのに、安易に while を使うと読みづらくなります。

i = 0
while i < 6
  puts rand(1..6)
  i += 1
end

動くことは動きますが、Rubyらしい書き方ではなく、コードスタイルがバラバラになりやすいです。

4. 入力値の検証不足

ユーザーの入力をそのまま to_i で変換すると危険です。

rolls = gets.to_i
rolls.times { puts rand(1..6) }

ここで文字列や負の数が入力されたらどうなるでしょう?
「クラッシュ」「予期せぬ動作」につながりかねません。

5. 出力フォーマットの分かりづらさ

実行結果が「ただ数字が並ぶだけ」だと、何が何回目なのか分かりません。

3.times { puts rand(1..6) }

チーム開発では「読みやすいコード」だけでなく「使いやすい出力」も重要です。

次の章では、これらの問題を「どう直せば綺麗なコードになるのか」を具体的に見ていきましょう。




綺麗なコードに改善するためのポイント

それでは、先ほど紹介した「悪いコード」をどのように直せば良いのかを具体的に見ていきましょう。
ここでのポイントは「自分だけでなく、チーム全員が理解しやすいコード」に仕上げることです。

1. マジックナンバーを定数化する

唐突に出てくる数字は定数に置き換えると意図が明確になります。

MAX_FACE = 6   # サイコロの目の最大値
ROLL_COUNT = 3 # 振る回数

ROLL_COUNT.times do
  puts rand(1..MAX_FACE)
end

これなら「6」や「3」が何を意味しているのか一目で分かります。 より深く学びたい方は以下の名著がおすすめです。
👉 『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック』

Amazonで見る楽天市場で見る

2. 責務を分離する(関数化・クラス化)

入力処理、検証、メイン処理をそれぞれ別の関数に分けると、役割が明確になります。

def validate_input(value)
  abort("正しい数値を入力してください") unless value.positive?
  value
end

def roll_die
  rand(1..6)
end

def play_game(rolls)
  rolls.times { |i| puts "#{i+1}回目: #{roll_die}" }
end

rolls = validate_input(gets.to_i)
play_game(rolls)

このように関数ごとに「責務」を分けると、保守性がぐっと高まります。

3. 変数名を明確にする

n よりも rollsindex のような名前にするだけで、コードは格段に読みやすくなります。

4. ガード節(早期リターン)を活用する

条件分岐のネストを深くするのではなく、最初に不正値をチェックして処理を終了させるとスッキリ書けます。

rolls = gets.to_i
abort("1以上の数値を入力してください") if rolls <= 0

rolls.times { |i| puts "#{i+1}回目: #{rand(1..6)}" }

5. 出力フォーマットを分かりやすくする

単なる数字だけでなく「何回目なのか」「何をしたのか」を表示すると、ユーザーにも分かりやすい結果になります。

3.times do |i|
  puts "サイコロを振った結果 (#{i+1}回目): #{rand(1..6)}"
end

Rubyの書き方を体系的に学びたい方は以下の本も参考になります。
👉 『プロを目指す人のためのRuby入門』 Amazonで見る楽天市場で見る

ここまで実践できれば、ただ動くだけのコードから「プロっぽいコード」へ大きく前進できます。




実務で評価される「綺麗なコード」とは

「綺麗なコード」とは、見た目が整っているだけではありません。
誰が読んでも理解でき、変更や拡張がしやすいコードのことを指します。これは一人で作業する個人開発よりも、複数人で進めるチーム開発でこそ真価を発揮します。

1. チーム全員が理解しやすい

コードレビューで「何をしているのか分からない」と言われるコードはNGです。変数名や関数名、処理の流れが直感的に理解できると、チームの生産性は一気に上がります。

2. 修正・拡張がしやすい

要件変更があっても「この関数を少し直せばOK」といった状態なら安心です。逆に、複雑に絡み合ったコードは小さな修正でもバグを生むリスクが高くなります。

3. 技術的負債を減らす

読みづらいコードは「技術的負債」を増やします。負債が溜まると、開発スピードはどんどん落ちてしまいます。
綺麗なコードを書くことは、未来の自分や仲間への投資でもあるのです。

4. キャリアアップでも評価される

実は、「リーダブルコードを書けるエンジニア」ほど転職市場でも高評価を受けます。
コードの美しさはチーム全体の生産性を左右するため、採用担当者は大きなポイントとして見ています。

もし「綺麗なコード」を武器にキャリアアップを考えているなら、エージェントサービスを活用するのもおすすめです。
👉 社内SE転職ナビ は社内SEや自社開発案件が豊富で、安定した環境を探している方にぴったり。
👉 TechClipsエージェント は自社サービス企業に特化し、年収UPを狙いたい方に人気です。

最近、「仕事が楽しい」って思えるようになった【社内SE転職ナビ】

ITエンジニア専門の転職エージェント【TechClipsエージェント】

「コードが読める・書ける」から「チームに貢献できるエンジニア」へ。 それが綺麗なコードの持つ、最大の価値と言えるでしょう。




まとめ

本記事では、プログラミングにおいて避けるべき「悪いコード」の例と、それを改善して綺麗なコードにするためのポイントを紹介しました。

  • 動くだけのコードではなく、読みやすく変更しやすいコードを意識する
  • マジックナンバーは定数化し、意味を明確にする
  • 処理ごとに責務を分離し、関数化・クラス化を活用する
  • 変数名は誰が読んでも分かるように付ける
  • 早期リターンや分かりやすい出力で、コードと動作をシンプルにする

これらを意識するだけで、コードは格段に「プロっぽく」なり、チーム開発でも信頼される存在になれます。


あわせて読みたい

今回の記事で紹介した「綺麗なコードを書く力」は、他の学習テーマとも深くつながっています。さらに理解を深めたい方は、以下の記事も参考にしてください。


よくある質問(Q&A)

Q
コードが動いているのに「悪いコード」とされるのはなぜ?
A

コードは動けば一見問題ないように思えます。しかし、チームでの保守や変更を考えると、読みづらいコードは大きな負担になります。
「動く」ことよりも「読みやすい・直しやすい」ことの方が、実務でははるかに重要です。

Q
学習段階から変数名や定数化を意識すべき?
A

はい、意識するのがおすすめです。学習段階で癖をつけておくと、実務に入ったとき自然に「綺麗なコード」が書けるようになります。
逆に、雑な書き方に慣れてしまうと後から直すのが大変です。

Q
Ruby以外(PythonやJava)でも「綺麗なコード」の考え方は共通?
A

基本的な考え方はどの言語でも共通です。
例えば「マジックナンバーを定数化する」「変数名を意味のあるものにする」「早期リターンでシンプルに書く」などは、PythonやJavaでも同じように推奨されます。
言語ごとの慣習(Rubyならeach、Pythonならfor ... in など)に沿って書くことが、綺麗なコードの第一歩です。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク