関数を、副作用と計算に切り分けさせるプロンプトです。 テストが書けない関数に当たったときに。たいてい計算と副作用が混ざっているのが原因です。切り分けの提案だけさせて書き換えはさせません。どこを切るか分かれば自分で直せます。
プロンプト
0 回コピー
以下の関数を、副作用のある部分と、入力から出力を計算するだけの部分に切り分けてください。 # 出力形式 ## 1. 副作用の一覧 | 箇所(行や式) | 何を触っているか(DB/ファイル/通信/時刻/乱数/グローバル変数/画面) | |---|---| ## 2. 計算だけの部分 - [箇所] / 入力は何で、出力は何か ## 3. 切り分けの提案 - どこで分けるか(関数の境界を1つ提案する) - 分けた後、それぞれの名前の案 - 分けた後にテストが書ける部分はどれか ## 4. 分けにくい箇所 - [箇所] / なぜ分けにくいか ## 5. 隠れた副作用 - 引数のオブジェクトを書き換えている / 例外を握りつぶしている / 現在時刻や乱数に依存している、などがあれば挙げる - 無ければ「該当なし」 # 制約 - 書き換えたコードを出さない。切る場所の提案まで。 - 提案する境界は1つだけ。複数出すと手が付かなくなる。 - 「テストしやすくなります」で終わらせない。どのテストが書けるようになるかを具体的に書く。 - 元から副作用が無い関数の場合は、その旨を書いて終える。無理に分けない。 # 言語 (例:TypeScript / Python) # 関数 (ここに貼る)