clean-functions について
clean-functionsは、関数をシンプルで予測しやすく保つためのコード品質スキルです。引数の削減、副作用やフラグ引数の回避、未使用関数の削除に関するルールを示します。
主な機能
- 01関数の引数を3個までに制限
- 02入力を変更せず値を返す
- 03真偽値のフラグ引数を避ける
- 04未使用関数を削除
活用シーン
- 01引数が多い関数のレビュー
- 02引数を変更する副作用の発見
- 03真偽値フラグに隠れた処理の分割
- 04未呼び出し関数の整理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ertugrul-dmr/ clean-code-skills --skill clean-functionsインストール後、Claude Code で/clean-functionsを入力して読み込まれたか確認します。
詳細
クリーンな関数
F1:引数が多すぎる(最大3つ)
# Bad - too many parameters
def create_user(name, email, age, country, timezone, language, newsletter):
...
# Good - use a dataclass or dict
@dataclass
class UserData:
name: str
email: str
age: int
country: str
timezone: str
language: str
newsletter: bool
def create_user(data: UserData):
...
引数が3つを超える場合、その関数は処理を詰め込みすぎているか、データ構造が必要です。
F2:出力引数を使わない
副作用として引数を変更しないでください。代わりに戻り値を返してください。
# Bad - modifies argument
def append_footer(report: Report) -> None:
report.append("\n---\nGenerated by System")
# Good - returns new value
def with_footer(report: Report) -> Report:
return report + "\n---\nGenerated by System"
F3:フラグ引数を使わない
ブール値のフラグがある場合、その関数は少なくとも2つの処理を行っています。
# Bad - function does two different things
def render(is_test: bool):
if is_test:
render_test_page()
else:
render_production_page()
# Good - split into two functions
def render_test_page(): ...
def render_production_page(): ...
F4:使われていない関数を削除する
呼び出されていないなら削除してください。「念のため」のコードは不要です。Git が履歴を保持します。
コメント
Markdown 対応