テーマ・知りたいこと
良いコードの条件はなんでしょうか?
可読性、変更に柔軟にたいしょできること?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答13件
#1
総合スコア14039
投稿2025/02/13 10:31
一言で言うなら、「読んで理解しやすいコード」だと思います。
いろいろな取り決めなどは、それを実現するための手段という理解です。
#3
総合スコア526
投稿2025/02/13 10:59
編集2025/02/13 11:08自分で考えてもいいですが、Wikipediaのソフトウェア品質を参考にしてみるのもいいと思います。
:理解可能性
目的が明確である、あるいは明らか
:完全性
維持可能である
:簡潔性
無駄がない、不必要な内容や複雑な構造をしていない
:移植性
依存が最小限である
:一貫性
記法の一致
:保守性
改良(機能追加や削減)が容易
:試験性
不具合の発見が容易
:ユーザビリティ
学習が容易、体験が効率的、思い出しやすい、ミスが起きづらい、ストレスがなく満足度が高い。
:信頼性
継続的に動作する、回復の手段が用意されている、例外処理がある、健全な値チェックがされている
:構造化の度合い
整理されており、変更しやすく直観的な構造、必要な部分を見つけやすい
:効率性
動作が早い、リソースの使用が効率的、確保と解放が適切なタイミングに実行される。
:セキュリティ
不正や異常なデータの影響が防止されている
補足
ちなみに、時の流れによって色々変わる(あくまで品質の話だけど外してないと思う)
https://qiita.com/UT_ITDaiku/items/ae2c2ae83e7e6dbb1ee2
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#9
総合スコア176
投稿2025/02/15 09:22
車輪の再発明になっていたら悪いコードかな。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#10
総合スコア137
投稿2025/02/18 02:25
以下のような設計である場合は「こいつ‥‥できるな!」と思うことがあります。
- 将来的に拡張することを視野に入れた設計であること
- 変更が既に実装している人たちへの影響を与えにくいところ
- 変更が最小限ですむ構成になっていること
こういう話題のときはアンチパターンのほうが理解しやすいと思いますので、悪いコードの例も挙げておきます。
- 同じような処理を何度も書いてる
- 更新の際、修正箇所が何箇所もある
- 変更した結果、影響を受ける範囲がわからない
どうですか?最低でしょう :-D
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#11
総合スコア2884
投稿2025/02/18 03:55
テストが書きやすいかです。
テストが書きやすければ、可読性も拡張性も変更容易性もだいたい高いです。
ただし、基準は”チームにとって”という部分で正解はチームで決めてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#12
総合スコア2
投稿2025/02/18 04:52
ほぼほぼ既に回答が出ていますが、パッと思いついたのは、
- テストが書きやすい・書いてある。
- 色んなパターンの拡張を意識していて拡張性が高い。
- 適切にコメントが書かれている。
- いつ使われなくなったかわからないコードなどの無駄なコメントアウトがない。
- 変数・定数名が短すぎない、スペルミスしてない。
- どこに何が書いてあるのかわかりやすい。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#13
総合スコア6145
投稿2025/02/18 15:40
編集2025/02/18 15:41チームのみんなが無理なく読めて、自分が離れてもメンテナンスが続くようなコードは良いコードだと思います。
逆に読むのが大変だったり、いろんな理由でメンテナンスを諦めさせるようなコードが良いコードかどうかは疑問です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。