総レビュー
説明できないコードは自分のものではない
前回で月次レポートの中心ができました。次にやるのは、書き上がったものを全部説明できる状態にすることです。
基準は1つです。このコードは何をしていますか、と聞かれて、AI に聞き直さずに答えられるか。 答えられない行が残っているなら、そこはまだ他人のコードです。動いていても、壊れたときに直せません。
差分の全体を1回で読む
1つずつ承認してきた変更でも、最後にまとめて読み直します。個別に見ていたときは気づかなかったものが見えます。
プレーンテキスト
git diff見るのは3つです。
プレーンテキスト
重複 同じ処理が2か所に増えていないか
置き場所 レポートの計算が表示側に混ざっていないか
取り残し 使われなくなった関数や変数が残っていないか取り残しが一番多く出ます。 機能を積み上げていくと、途中で役目を終えた関数がそのまま残ります。残っていても動きますが、次に読む人 (半年後の自分を含む) は「これはまだ使われている」と思って読みます。
説明文を自分で書く
レビューの仕上げは、変更内容を自分の言葉で1段落書くことです。AI に書かせてはいけません。
プレーンテキスト
月次レポート機能を追加した。
monthlyReport が対象月の記録を絞り込み、合計とカテゴリ別内訳を返す。
対象月の記録が無いときは total 0 と空の内訳を返す。書けない箇所があったら、そこが理解できていない箇所です。書いてみて初めて「前月比のときの分母をどうしたんだっけ」と気づく、ということが起きます。説明文はドキュメントであると同時に、理解の抜けを見つける検査です。
整理も1つずつ頼む
レビューで見つけた問題を直すときも、まとめて頼まないでください。
プレーンテキスト
悪い 気になったところを全部きれいにして
良い report.py の formatReport から、合計を計算している部分を取り除いてください「きれいにして」は、AI にとっては何をしてもよいという意味になります。動いていたものが動かなくなる変更が混ざっても、差分が大きいと気づけません。
演習
レビューで見つかった典型的な問題を1つ直します。合計を出す処理が2か所に重複していて、片方が古い計算のままになっています。重複を1つにまとめ、正しい方に揃えてください。
完成条件
- 触ってよいのは kakeibo.py だけです
- 戻り値は {"total": 合計, "count": 件数} の形にしてください
- summarizeReport 関数の戻り値で採点します