課題を見据えているか
課題が見えないとそもそも設計する意識が生まれない
メソッド10行以内、クラス100行以内か
RuboCopのデフォルトでは、コードの行数とクラスの行数が10と100だ。違反すると警告される。
# サイロマティック複雑度が15以内に収まっているか
循環的複雑度 | 複雑さの状態 | バグ混入確率 |
---|---|---|
10以下 | 非常にいい構造 | 25% |
30以上 | 構造的なリスクあり | 50% |
50以上 | テスト不可能 | 70% |
75以上 | いかなる変更も誤修正を生む | 98% |
# クラス内部で取り扱う概念が4±1になっているか
# コード分析をサポートする各種ツール
Code Climate Quality
Understand
VS Code シンタックスハイライト