特集
カテゴリー
タグ
メディア

【訂正あり】他人のコードを「破壊」しながらプログラミングを学ぶ方法:リバース・エンジニアリング

  • カテゴリー:
  • TOOL
【訂正あり】他人のコードを「破壊」しながらプログラミングを学ぶ方法:リバース・エンジニアリング
追記:翻訳に誤って訳された部分がございました。原文における「break」は「破壊する」意ではありません。お詫びして訂正いたします。また、今後はこのような誤りのないよう、最大限の注意をもってサイト運営をしてまいります。(2013.10.21 11:30)

コードを学ぶベストな方法のひとつは、既存のコードを「リバース・エンジニアリング」することです。コードトーレニング企業の「Treehouse」が、コードの一部をわざと「破壊」しながら、コードを分析する方法を教えてくれました。Nick Pettit氏はTreehouseブログの中で、プラウザでの3Dプログラミングの学習事例として、Javascript「Three.js」を一行づつテストする方法を解説しています。

var light = new THREE.PointLight(0xffffff);

light.position.set(-100,200,100);

scene.add(light);

プログラミング経験者なら、上記が何をするコードかだいたいわかるはず。わからない部分があれば、次のやり方でテストできます。

  1. コードを一行ずつ削除して、その行がゴールに不可欠なものかを調べる(各行を順に調べる)
  2. コードを一行ずつ削除して、各行の役割を把握する。予測がつく行でも、試しに削除し、期待どおりの結果になるかを確認する
  3. 変数や引数の値を変えてみて、期待どおりに動作するかを調べる
  4. 行を並べかえて、コードが「故障」するか、また、演算の順序にどんな重要性があるかを調べる

一行づつテストしながら、頭の中に想定モデルを構築していきます。また、それまでの仮定で間違っていたものは随時訂正します。やがて、プログラムの全体像が見えてきます。

ポイントは、一度に1カ所だけを「破壊」しながら、結果を確かめ、コードの各部分の関連性を理解することです。

独学のプログラマーなら、既存コードを「リバースエンジニアリング」する価値はご存じですね。しかし、「Treehouse」も指摘するとおり、この方法はまだまだ活用されていません。オープンソースコードのおかげで、誰かが作ったコードを「破壊」しながら学ぶ環境は整っています。ぜひ活用してください!

The Secret to Learning to Code | Treehouse Blog

Melanie Pinola(原文/訳:伊藤貴之)

swiper-button-prev
swiper-button-next