YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← 04-05 Art Of Deduction

Get Embed Code
3 Languages

Showing Revision 2 created 06/24/2014 by Fran Ontanaya.

  1. ホームズが現代に生きていたら
    優れたプログラムデバッガを
  2. 作り出していたでしょう
  3. 私たちの目前にある問題は次のように言えます
  4. "不可能な事が起きた時信頼できる情報は
    起こったという事実だけだ"
  5. "だからその理由を発見するには
    結果から過去にさかのぼらなければならない"
  6. カーニハンとパイクの著書
    「The Practice of Programming」からの言葉です
  7. 結果から過去にさかのぼって考えることです
  8. これがデバッグに応用できる推理術です
  9. 身近な例を使ってどういうものか解説していきます
  10. ここにまたremove_html_markup関数を出します
  11. 補足ですがこの関数の役割は
    HTMLタグに挿入されたテキストfooのような
  12. HTML入力を処理することです
  13. <b>タグのレンダリングをオンにしたりオフにしたり
  14. これをHTMLタグが削除されている
    テキストに変換したりします
  15. これによって変数をたくさん使用できます
  16. タグが現在タグを処理しているかどうかチェックします
  17. つまりこの3文字の中ではタグはTrueのはずです
  18. tagモードでない場合に限り
  19. 文字を変数outに追加します
  20. そして最後にある変数outは返されます
  21. ですからこのコードを処理している間
  22. タグはこの3文字に対しTrueになります
  23. そのあとFalseになります
  24. fooが出力に追加されます
  25. それから追加されないタグ文字がさらに4つあります
  26. 最後に取得するのはこの文字列fooです
  27. それでは今から演習です
  28. この最後のアサーションが失敗したという設定で
  29. 推理術の練習をしてみましょう
  30. このコードが
    削除されていないHTMLタグを含む出力を
  31. 作り出すということは分かっています
  32. この観察から取り掛かります
  33. 過去にさかのぼって
  34. アサーションがどのように失敗したのか考えてみます
  35. 分かっていることは変数outが小なり記号の開始タグを
  36. 含んでいるということです
  37. この文字を変数outに追加できる唯一の場所が
  38. ここです
  39. この行に達するために
    多くの条件を満たさなければいけません
  40. これらすべての条件は失敗しないはずですが
  41. 今回はこの条件が失敗したに違いありません
  42. ここにある変数tagに注目してみましょう
  43. 変数tagの値は何だったでしょう
  44. いつ小なり記号が追加されたのでしょう
  45. 答えをどうぞ