Effect」の日本語参考訳です。版はこちらからご利用になれます。コピーペーストを使用して引き起こされる多くのエラーを調査した結果、プログラマーが最も多くミスを引き起こしているのはホモジニアスなコードブロックの最後の部分であることが分かりました。プログラミングに関する書籍でこの現象についての記述をこれまで見たことがないため、ここに記しておくことにします。私は、この現象を「最後の行問題」と呼んでいます。スタティック・アナライザーを使用してさまざまなアプリケーションのプログラムコードを解析し、発見したエラーや不具合の説明を記録するという、変わった作業を行っています。宣伝するという実用的/金銭的なものです。スキームは非常に単純です。次に、そのバグを記事にします。その記事が弊社の潜在的な顧客の目に止まります。顧客から仕事の依頼があります。今回の記事はアナライザーに関するものではありません。さまざまなプロジェクトの解析を行ったときに、私は見つけたバグと対応するコードを特別なデータベースに保存しています。興味のある方はだれでも、このデータベースを見ることができます。errors」セクションにアップロードされています。このデータベースはほかに類を見ないものです。コードとエラーが含まれており、プログラマーによる研究で、これらのエラー間に特定のパターンがあることが明らかにされるのを待っています。将来の研究、マニュアル、記事のベースとして役立つかもしれません。私は、これまで収集した情報について特別な調査を行ったことはありませんでした。明らかにあるパターンが出現していることに気付き、そのパターンをより深く調査することにしました。私は、多くの記事で、「最後の行に注意してください」というフレーズを書く必要がありました。これには何か理由があると考えたのです。最後の行問題プログラムを記述するとき、プログラマーは一連の似た構造のコードを記述しなければいけないことがよくあります。同じコードを何度も入力することは退屈で非効率です。そのため、プログラマーは、コピーペーストを使用し、コードの一部をコピーしてほかの部分に貼り付けてから、コードを編集することがよくあります。この方法の悪い点は明らかです。貼り付けた行の一部を変更することを忘れると、エラーが発生するリスクがあることです。現時点でほかに良い選択肢はありません。私が発見したパターンについてお話しましょう。私は、ほとんどのミスは最後に貼り付けたコードのブロックで起こっていることを突き止めました。次に簡単な短い例を示します。変更することを忘れています。この例はこの記事用に作成したサンプルであると思われるかもしれませんが、このコードは実際のアプリケーションで実際に使用されていたものです。この記事を最後まで読むと、この問題が頻繁に発生する一般的な問題であること、そして「最後の行問題」と呼んでいる理由が分かるでしょう。プログラマーは、同様の編集作業の最後によくミスをしているのです。私は、山頂まで残りわずかな距離で登山者が減るという話を聞いたことがあります。彼らは疲れていたのではありません。私は、同様のことがプログラマーにも起こっていると考えています。具体的に説明しましょう。ブロックにミスが含まれていました。