差分を読む
差分は変化そのもの
AI が編集を終えると、変更前と変更後の違いが表示されます。これを差分と呼びます。行の先頭の記号で意味が分かれます。
プレーンテキスト
- 消えた行
+ 足された行
そのままの行コード全体を読み直す必要はありません。変わったところだけを見れば、AI が何をしたかは分かります。差分を読む習慣がつくと、レビューの時間が一気に減ります。
3つの問いで読む
差分を前にしたら、上から順に眺めるのではなく、次の3つを順に確かめます。
プレーンテキスト
1. 頼んだことをやっているか
2. 頼んでいないことをやっていないか
3. 消えた行は、消えてよかったか1つ目は当たり前に見えて、意外と外れます。似て非なる実装が返ってくるからです。
2つ目が実務で効きます。関数名の変更、import の並べ替え、コメントの削除。足された行より、頼んでいない変更の方が事故になります。
3つ目が最重要です。マイナスの行こそ危険です。足された行はテストで検証できますが、消えた行が守っていた条件は、消えた瞬間にテストからも見えなくなります。
マイナス行を先に読む
差分を読む順番のコツは、プラスより先にマイナスを読むことです。
プレーンテキスト
- if amount <= 0:
- continue
+ total += amountこの差分は、足し算を1行追加したように見えます。実際に起きたのは、マイナス金額を弾いていた条件が消えたことです。プラス行だけ見ていると気づけません。
消えた行を見つけたら、それが何を守っていたかを一言で言えるか自問してください。言えないなら、まだ差分を理解していません。
判断は3択
差分を読んだ結果は、次の3つのどれかになります。
プレーンテキスト
採用 頼んだとおり。取り込む
差し戻し やりたいことは合っているが実装が違う。具体的に指摘して直させる
破棄 方向がずれている。元に戻して依頼から書き直す迷ったら破棄が正解です。分からないコードを取り込まない。 差分が理解できないということは、そのコードが後で壊れたときにも直せないということです。
今回の演習では、条件を1つ失った関数を直します。何が消えているのかを自分で見つけて、それを指示に書いてください。
完成条件
- 触ってよいのは kakeibo.py だけです
- カテゴリは完全一致で比べます
- totalOfCategory 関数の戻り値で採点します