はじめに:今日一番言いたいこと
先に結論から言いますね。
「ソースコードを書いたら、動かす前に必ず机上チェックをしましょう!!」
これ、当たり前のように聞こえるかもしれませんが、今の時代だからこそあえて強く推したい習慣なんです。
PythonやJSの「手軽さ」という罠
最近のメインストリームであるPythonやJavaScript/TypeScriptって、本当に便利ですよね。CやC++、Javaみたいに「重たいコンパイル」を待つ必要がありません。
スクリプトを書いて保存した瞬間に、なんなら保存すら不要で、即実行・即デバッグができてしまいます。
このスピード感は最高なんですけど、その反面、**「とりあえず動かして、エラーが出たら直せばいいや」**という思考に陥りがちじゃないですか?
「一見動いている」の恐怖
「とりあえず動いた!ヨシ!」
……これ、一番危ないやつです。
とりあえず動いてはいるけれど、実は特定の条件でしか通らないロジックだったり、境界値で死ぬコードだったり、しょうもないタイプミスが潜んでいたり……。
こうした「隠れた爆弾」は、リリース直前や、最悪の場合は本番環境でユーザーが触っている時に大爆発します。後から直すコストは、書いているその瞬間に直すコストの何十倍にも膨れ上がります。
歴史に学ぶ:昔のエンジニアは「一発勝負」だった?
ちょっと昔話をしましょう。
はるか昔、コンピュータの利用が今よりずっと高価だった頃、**「コンパイルができるのは週に1回だけ」**なんていう現場もあったそうです。
一回失敗したら次のチャンスは来週。そんな環境では、失敗した時の手戻りがデカすぎて、みんな必死に机上でソースコードを穴が空くほどチェックしていました。
逆に、モダンなWeb開発の世界(HTML/JSなど)では、**「多少間違っていてもブラウザが気を利かせて動かしてくれる」**という文化があります。これはユーザー体験を損なわないための知恵ですが、開発者としては「ミスに気づきにくい」という副作用も生んでいます。
今の時代、僕たちは恵まれています。でも、だからこそ**「あえて立ち止まる」**文化を取り戻すべきだと思うんです。
【保存版】まずはここから!セルフレビューの5つの観点
「机上チェックって言われても、どこを見ればいいの?」という方のために、わたしが意識している簡単なチェックリストを公開します。動かす前に、この5つを自分に問いかけてみてください。
-
「正常系」が本当に最後まで通るか?
途中のif文の条件は本当に合ってる?戻り値の型は期待通り? -
「もし〇〇だったら?」の意地悪な視点
データがNone/nullだったら?リストが空っぽだったら? -
その変数名、1ヶ月後の自分に説明できる?
「マジックナンバー」が直書きされていないか、名前だけで役割が伝わるか。 -
ログとエラーメッセージは「親切」か?
万が一バグった時に、どこで何が起きたか具体的にわかるようになっている? -
AIやリンターの「赤線」を無視してない?
ESLintやPyrightの指摘を「まあ動くから」でスルーしていませんか?
AIを「最強のレビュー相手」にするプロンプト例
今の時代、自分一人で唸る必要はありません。ChatGPTやClaude、GeminiなどのAIに「机上レビュー」を手伝ってもらいましょう。コツは**「役割」と「観点」を指定する**ことです。
ロジックの不備を徹底的に叩き出すプロンプト
プロンプト例:
あなたは経験豊富なシニアエンジニアです。以下のコードを、実際に動かす前に「机上レビュー」してください。
【依頼内容】
- ロジックに矛盾や考慮漏れがないか確認してください。
- 特に「境界値」や「異常系(None/Nullなど)」でエラーにならないか重点的に見てください。
- 処理効率(パフォーマンス)で改善できる点があれば指摘してください。
【ソースコード】
(ここに貼り付け)
セキュリティと保守性に特化したプロンプト
プロンプト例:
あなたはセキュリティ専門のエンジニアです。このコードに脆弱性が含まれていないか、また、後から読む人が理解しやすい「保守性の高いコード」になっているかレビューしてください。改善案があれば修正例も提示してください。
【ソースコード】
(ここに貼り付け)
注意: 会社の機密情報やAPIキーは絶対に貼り付けないようにしましょう!
最後に:一呼吸おいて、技術力を上げよう
ソースコードを書き終えて、実行ボタンをポチッと押したくなる気持ち、めちゃくちゃ分かります。
でも、そこをぐっと堪えて、大きく深呼吸。
一旦動かす前に、机上でチェックをしてみてください。
これを繰り返すだけで、バグが減るだけでなく、コードの「読み」が深くなり、確実に技術力が上がります。
さあ、次のコミットの前に、まずは「机上チェック」から始めてみませんか?
最後まで読んでくださりありがとうございました。