• GIZMODO
  • FUZE
  • DIGIDAY
  • gene
  • gene
  • cafeglobe
  • MYLOHAS
  • Glitty
  • roomie
  • machi-ya
  • GIZMODO
  • DIGIDAY
  • gene
  • cafeglobe
  • MYLOHAS
  • Glitty
  • machi-ya
  • roomie

itou  -   10:25 PM

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

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

リバース・エンジニアリング


追記:翻訳に誤って訳された部分がございました。原文における「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(原文/訳:伊藤貴之)

  • ,,,,, - By

    香川博人

    LIKE

    2020年に向けて進むキャッシュレス化。 企業にとっての「電子決済」のメリットとは?

    Sponsored

    2020年に向けて進むキャッシュレス化。 企業にとっての「電子決済」のメリットとは?

    2020年に向けて進むキャッシュレス化。 企業にとっての「電子決済」のメリットとは?

    先日、政府は2017年度から公共料金や備品経費の支払いを全面的に電子決済にすることで、30億円の人件費削減が期待できるという発表をしました。 電子マネーやクレジットカード、ネットバンキングの普及により、私たちは現金だけではなく、時間と手間のかからない電子決済を活用する機会が増えていますが、それは企業や法人にとっても大きなメリットがあるようです。 そこで今回、現金決済から電子決済へとキャッシュレス  05:00 PM

MORE FROM LIFEHACKER

powered by
    
    
    
  

lifehacker

Recommended

© mediagene Inc.