生成コードのレビューとは
コードレビューとは、書かれたコードを、使う前に別の目で点検することです。AIアシスタントが書いたコードも、自分が書いたものと同じように、レビューしてから使います。
動いて見えるコードにも、条件の抜けや、危ない書き方が混ざることがあります。
このレッスンのゴール
メモ
自分が書いていないコードを、読む、動かす、問うの順で点検できる。
今日のキーワード
| ことば | いみ |
|---|---|
| レビュー | 使う前に、コードを別の目で点検することです。 |
| 差分 | 変更の前と後の違いです。 |
| 例外 | 実行中に起きる、失敗の知らせです。 |
| リソース | ファイルなど、使い終えたら返すものです。 |
| 前提 | コードが当たり前としている条件です。 |
学生が入力するセルは、このプレビューでは空白です。
レビューは読む、動かす、問う
レビューは3つの手順で進めます。まず読んで、1行ずつ何をしているかを説明します。次に動かして、実際の答えを見ます。最後に、なぜこの書き方か、ほかの場合はどうかを問います。
読むだけでも、動かすだけでも、見落としが出ます。
レビューの3つの手順
| 手順 | 見ること |
|---|---|
| 読む | 1行ずつ説明できるか |
| 動かす | テストと例で、答えを見る |
| 問う | ほかの入力ではどうなるか |
学生が入力するセルは、このプレビューでは空白です。
ラボのコードで入口を探す
読むときは、まず関数の入口を探すと、全体の形がつかめます。次の Run は、ラボのプロジェクトで function という言葉を含む行を、行番号つきで探します。
最初の状態では、3つの関数の行が出ます。中身を読むのは、そのあとです。
関数の入口を探す
docker exec -w /home/node/project agent grep -n function shop.jsここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
動いても危ない書き方がある
例外を全部飲み込む書き方は、失敗を隠します。次のコードは、文字が入ってもエラーにならず、0 を返してしまいます。
年齢が 0 のデータが静かに混ざり、あとで見つけにくい誤りになります。
失敗を隠すコード
def read_age(text):
try:
return int(text)
except:
return 0
# 文字が入っても、エラーになりません。
print(read_age("20"))
print(read_age("二十歳"))
# except: を except ValueError: に変えて、もう一度実行します。
よくある危ない書き方
| 書き方 | 起きること |
|---|---|
| except: だけ | どんな失敗も隠す |
| eval(入力) | 入力がコードとして動く |
| open() を閉じない | ファイルが開いたまま残る |
| 未完成の印が残る | 途中のコードが混ざる |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
「AIが書いたから、きれいで正しい」「動いたから、レビューは済んだ」と考える人がいます。動くことと、安全で正しいことは別です。動いた後に、読んで問う手順が残っています。