mcpField
C
clean-functions

clean-functions

github.com/ertugrul-dmr開発208120 回インストール27 週間前に更新
リポジトリ

clean-functions について

clean-functionsは、関数をシンプルで予測しやすく保つためのコード品質スキルです。引数の削減、副作用やフラグ引数の回避、未使用関数の削除に関するルールを示します。

主な機能

  1. 01関数の引数を3個までに制限
  2. 02入力を変更せず値を返す
  3. 03真偽値のフラグ引数を避ける
  4. 04未使用関数を削除

活用シーン

  1. 01引数が多い関数のレビュー
  2. 02引数を変更する副作用の発見
  3. 03真偽値フラグに隠れた処理の分割
  4. 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 が履歴を保持します。

コメント