質問するログイン新規登録
teratailトーク(公式)

teratail運営による意見交換のお題投稿「teratailトーク!」の専用タグです。 ※ユーザーさまは質問にこのタグを設定することはできません。カジュアルな意見交換には「雑談」タグをご使用ください。

意見交換

クローズ

7回答

1272閲覧

綺麗なコードを書くコツを教えてください!

teratail-talk

総合スコア10

teratailトーク(公式)

teratail運営による意見交換のお題投稿「teratailトーク!」の専用タグです。 ※ユーザーさまは質問にこのタグを設定することはできません。カジュアルな意見交換には「雑談」タグをご使用ください。

1グッド

1クリップ

投稿2025/08/31 23:00

1

1

🖊️テーマ

「綺麗」なコードを書くのって、意外と難しいですよね……
実際どうすれば書けるようになるのか、コツや心掛けてることを共有しませんか?
命名規則を統一するといったことや、インデントを綺麗に揃えることなど、皆さんが実践してる「綺麗」なコードを書くコツ、教えてください!🙌

👤運営メンバーの回答

運営メンバーの一人は、以下のような内容を心がけているそうです

  • 機能ごとにファイルを分割する
  • 関数やメソッドの役割を小さく保つ

〜teratailトーク!とは?〜

詳細を公式ブログで公開しています。ぜひお読みください。
「teratailトーク!」スタート🎉 気軽に意見交換しよう!

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

回答7

#1

fana

総合スコア12293

投稿2025/09/01 02:50

編集2025/09/01 02:59

なにはともあれ「綺麗なコード」って何ですか? っていうのが意味不明であるが……

  1. 私が(何らかの意味での)「綺麗なコード」を書くことは必須ではない
  2. 私が「汚いコード」を書く際に,その「汚いコード」を「(何らかの意味での)内側」に閉じ込めておけば,( いつか誰かが )「外側」に影響を与えずにそこを「綺麗」な方向に修正できる可能性を残せる
  3. 実際にそのような修正が行われた暁には,相対的に「綺麗なコード」になるのだろう

……とかいう考えの中での 2. が「心掛け」と呼べるのかもしれない.
なので,上記の話の中での「内側と外側の境界」みたいなのを可能な限り明確にはしておく.「綺麗なコード」はきっと誰かが作り上げてくれるだろう(それが本当に必要なのであれば).


命名規則だのインデントだの言う 見た目の 方向の話なのであれば……

  • 自分一人でやってるならばそこをわざわざ自分が「汚い」と思うように書くことは無いだろうから,そんなところを「心掛け」とは呼ばないと思う.
  • それらが「場のルール」になっている状況下であれば,そのルールが自身の感性と合わない場合には「このルールの下では絶対に綺麗なコードは書けない」っていうことになるのではなかろうか.こっちの場合だと「綺麗とかなんとか考えるだけ無駄」ってことになりそう.

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

HoshiMizu

総合スコア104

投稿2025/09/01 05:47

ソースの書き方を統一する。
インデントを合わせる。
同じような処理を書かない。
コメントを書きすぎない。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

miyabi-sun

総合スコア21548

投稿2025/09/01 05:55

黙ってリーダブルコードを読め以外に言うことある?
短時間で多くの情報を引き出せるのが綺麗で良いコードって定義もちゃんとある


何にせよとにかく変数名、プロパティ名だね。
嘘書いてたり、中身のないゴミみたいな変数名使うと一気にコードが読みづらくなるし、
適切な変数名を使うだけでかなり読みやすくなる。

変に命名規則で楽しようとすると、
「じゅげむじゅげむごこうのすりきれ」みたいなクソ長い呪文みたいな変数名が量産されてしまいかねないから、
この文脈でuserって言ったらWebサイトの訪問者やろ?みたいな感じで、
ネームスペース、クラスや関数で世界を細かく分けてその中で短くて誤解の少ない変数名を使って行くあたりが綺麗なコードを保つコツだと思う。

こういう所は一生考え続ける必要があるから大変。
ChatGPTに「こういう変数名にしようと思うのですが、誤解はありますか?代替案はありますか?」
こう聞くのはかなり有効な手段だと感じた。

ポチョムキン理解の問題があるから、
すべてのコーディング・プログラミング作業をLLMに任せて寝てるだけはまだまだ通用しないと思うけど
コードが読めるか読めないかの判定・評価者としてはかなり有用になってきてると思う。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

tamoto

総合スコア4370

投稿2025/09/02 01:21

「コードのきれいさ」には、大きく分けて外面のきれいさと内面のきれいさがあります。

外面というのは主にインターフェースの設計や命名で、書いたものが「外から見てどのようなものなのか」の表現なので、
最低でも、コメントを一切読まなくてもインターフェースの定義から「何をするものなのか」が分かるようになっているのが大前提です。
これについてはただやるしかないので特に言うことはありません。

内面というのは主にコードの構造やロジックのことです。
以下は内面にフォーカスした話をします。

きれいなコードを一言で表現すると、そのコードの「やりたいこと」が直接書かれたコードです。
有名な例ですが、「整数配列をループし、偶数を判定し、足し合わせる for 文」は、「整数配列を偶数でフィルタし、その合計を求める」というコードに置き換えられるというのがありますね。
前者は「やりたいこと」に対して「どうやって実現するのか」を書いているのであって、「やりたいこと」を直接書いているわけではないのです。
コードの重複を避ける (DRY) という規則も、コードが「やりたいこと」単位できれいに分割できていて初めて機能するわけです。

例えば、

  • 条件 X のとき A, B, C を処理する、条件 Y のときは A', B, C, D を処理する

というフローがあったとき、
この中で B, C が重複しているからといってこの「やりたいこと」の表現を分解するのは必ずしも適切ではないということです。
ABC がひとまとまりの「やりたいこと」であるなら、上記の条件式は素朴に書き下される方が「きれいなコード」と言える可能性があるわけです。

「適切にコードを分割する」とは、「適切でないコードの分割をしていない」という意味でもあることを忘れないようにしましょう。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

u2025

総合スコア101

投稿2025/09/03 04:18

vs codeなどのコードエディタ(やIDE)を導入するのが必須だと思います。
vs codeでは基本コメントは緑色で表示されますから、まずはコメントを書きましょう。
そして、アスタリスクやスター、ハートなどの文字をたっぷりとコメントとして記述します。
あなたが綺麗だと思う文字列をコメントとして書くことで綺麗なコードになります。

他にはvs codeであればテーマを変える機能もあるので、綺麗だと思う色味のテーマにしてエディタを綺麗にしちゃいましょう。
フォントやサイズなども綺麗かどうかの美的センスに左右されるかもしれません。

その他にはコードの行頭をそろえるとか、同じ演算子は縦でそろえるとか。あるいは綺麗に書くことを目標にしたプログラミング言語を選ぶとかもあるでしょう。
中間置記法は前置記法に比べてインデントで綺麗に見せるのが難しいなどありますからね。

綺麗に見えるプログラミング言語やエディタ、ソフトの開発をするのも実際にはアリでしょう。

chatGPTに書いてみてもらいました。

C言語

1/*・゜゚・*:.。..。.:*・'☆'・*:.。. .。.:*・゜゚・* 2 🚀 ここからメインロジックが始まるよ 🚀 3 *・゜゚・*:.。..。.:*・'☆'・*:.。. .。.:*・゜゚・*/

綺麗の感性は人により異なりますが、お好みに合うようにデコられるとよいと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

jimbe

総合スコア13422

投稿2025/09/03 13:53

編集2025/09/03 16:24

(私のコードが他人から見て綺麗かは置いといて)むか~しからの癖が残ってます。

ドキュメント・関連文書・プログラムで用語・単語は統一する。
変数のスコープは極力小さく。
コメントはだらだら書かない。
tab は使わない。(python は例外)
コードの区切りは、日本語の文章の"段落"と同じように空行を適切に使う。
巨大な処理ブロックは要チェック。(目安は20行程度?)
深すぎるインデントも要チェック。
環境に因る"見易さ"に頼らない。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#7

mei_13

総合スコア1

投稿2025/09/03 20:35

命名規則やインデント、コメントの付け方など、ルールとして定められているものは基本的に練習すれば書けるようになりますが、ことマクロ的な要素、例えば関数やクラスの設計については、コードレビューを受けたり開発の現場で実践して、はじめて身に付くようなものだと思います。
このマクロ的なコードのきれいさというのはなかなか文章では説明しづらいのですが、私は「適切に関数を作成する」ことだと思っています。きれいな関数が積み重なって、きれいなコードになっていくのではないかなということですね。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問