読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

ビューティフルコード・その2

昨日に引き続き、ビューティフルコード (THEORY/IN/PRACTICE)を読む。
#またまた読み進めながら書いていきます。

6章:テストのための統合的フレームワーク

この HTML 解析器。
再帰木構造を使った構文解析ってキレイなコードになるんだね。

  • あえてコンストラクタで解析処理をしてしまうことで、そのクラス全体がシンプルになるというのも初めて理解した。
  • ところどころでシンプルさのための一つの手段として再帰が提示されていて、再帰を理解すればいかに有用かということがよく分かった。

7章:ビューティフル・テスト

ここまでの章で一番、目から鱗な章。
今までテストケースを作る際の思考過程が分からなかったけど、その取っ掛かりがここに書かれている。


しかもテストの方法はさることながら、「ならば(→)」の意味が良く分かった。
「ならば(→)」はプログラマの数学記事)で初めて知った論理なのだけど使いどころが全然分からなかった。
この論理はテストにこそ使う理論なんだね。


帰納・論理・命題(ついでに対数もか)とプログラマの数学で知った内容が盛りだくさん^^;
せっかくなので数学ガール (数学ガールシリーズ 1)も読んでみようかなと思う。

8章:画像処理のためのその場コード生成

結論。
分からん^^;


やろうとしていることはよく分かる。


ただ、画像処理の計算が分からないのでどうにも理解できない^^;


一つ収穫だったのは C# というか .NET 系の言語で中間言語を直接生成する方法があったということ。
C# のコードを IL のコードに代えたら速度が4倍かそれ以上と書いてあったけど、C++ + CLI の組み合わせでやったらどうなるんだろうか?
アンマネージドコードになるから趣旨が違う?


とりあえず、C# で速度が出ないときは IL 直接生成。
System.Reflection.Emit
コレをチェック!!