プログラミング日記(18-07-31)

2018-07-31 23:57

はじめに

今日は TDD のことを中心にやっていこうと思う

やったこと

  • Kindle
    • Kindle for mac は古いらしく、CPU リソースを大量に消費するので、あんまり起動したくない
    • Kindle Cloud Reader は開けないリソースがあるらしい
    • 結局 iPhone で開いてやることとする。
  • Seahal.net
    • Archive ページを作成中
  • TDD
    • テスト駆動開発
      • 前にもこのテキストで勉強したことがあったのだけど、途中でリタイアしてしまった。
      • Java の環境を作るのはしんどいし、Java は 1.5 世代で脳が止まっている人なので Ruby で書くことにする
      • 付録B. フィボナッチ
        • 個人的気には TDD は puts とか printf でやるデバッグを毎度毎度コードに書くのがうんざりしてきた人に TDD を教えたら捗ると思っているが、多分それは正しいという自信をココでも得た
      • Section 1. 仮実装
        • テストするコードが存在しないのでどうすんのよ、って思ったが、これがテストファーストか…
        • しかし、これが Java か…
      • Section 2.
        • そもそものコードがまずい、って思うのは後で言及があったような気がするから、いいか…
      • Section 3. 三角測量
        • そもそも三角測量とはなんだっけ、という話はさておくとする…
        • 1つ assert を書いたら、実装コードを書き、2つめの assert をかいて、動作を確認か…
      • Section 4. 意図を語るコード
        • Ruby と Java だと#equal? メソッドが異なるので、ちょっと再現できんなココは
      • Section 5.
        • ちょっといみがわからん
      • Section 6.
        • リファクタリングの話だな、ここは
        • 方キャストしなくていいのは動的言語の強みだな
      • Section 7. 疑念をテストに翻訳する
      • Section 8.
      • Section 9.
        • 設計が悪い、ってレベルの話だな、というのは XP の提唱者の前では無意味か
        • デザイン・パターンを知っておかないと、わからないわけではないが、飲み込みに時間がかかるなぁ
      • Section 10.
        • テスト・ファーストだけど、例外としてエラーを見たいときとかはテストを書かなくてOKか
      • しんどくなってきたので、今日はココまでにしておく
      • 明日までに第Ⅰ章を完了させて、明後日は第Ⅱ章をクリアしたと思ってるが、飲み込みが悪いんでわからんね
  • C
    • Practical C Programming, 3rd Edition
      • Chapter 5. Arrays, Qualifiers, and Reading Numbers
        • C言語の配列が Ruby とか JavaScript の配列だと思うからおかしいことになるのだ、ただただ配列のフリをしたポインタだと理解すればいいだけの話なのだ
        • しかし C言語の文字処理はクソだな、ほんと
        • i++ とか ++i なんかを Side Effect って書いてあったけど、なるほど、確かにコイツラは副作用を生み出す連中だ
        • C言語の xUnit ツールはどれがいいのか
  • Python
    • Introducing Python
      • Chapter 1.
        • import this なんだこれ
        • いきなり JSON の話とかでてくるからびびったが、まぁ、この章は要は Python に出来ること・できないことを書いてるだけの章だな

おわりに

TDDの箇所は大い時間の浪費に使ってるようにみえるけど、実際にはそんなに時間を使っているわけではない。あと8月からは IPA平成30年度秋期試験に向けた勉強も開始していこうと思う。というわけで、おやすみなさい。

関連記事