【書籍】Webを支える技術

書籍情報

Webを支える技術 -HTTP、URI、HTML、そしてREST

メモ

ネットワークのことがさっぱり。
GET/POSTもようわからんので、まずはWeb全般の繋がりとして全容を理解できればな、と読んだ。
2010年代の本なので、まぁ古い記述もあるんだろうなと読み飛ばしつつも、技術のつながりについて理解できた。
全5部構成。

第1部 Webとはなにか

いわゆるブラウザの成り立ちから、現在どのような形に落ち着いたのかを語る章。
REST:リソース指向なアーキテクチャスタイル。多分、これはこれで別の本読んで勉強したほうがいい。

第2部 URI

≒URL。
リソースを一意に識別できるデータ。
データのいい感じの名前の付け方とか。

第3部 HTTP

ステートフル(店員が注文を覚えてくれるようなやり取り)とステートレス(店員にすべての注文を告げ直すようなやり取り)についてとか。
GET/POST/PUT/DELETEとか、返ってくるエラーコードの説明とか。
おそらく、次にこのあたりの具体的な使い方について勉強していきたい。

第4章 ハイパーメディアフォーマット

HTMLの書き方とかAtomとかもろもろ。
別にWeb屋さんになるわけではないからな、と読み飛ばし。
きっと必要になったときに覚えるのが早い。

第5章 Webサービスの設計

別にWebに限らずに設計として考えるべきことの概略がまとまっててとてもとても良い。
郵便番号から住所を検索するよくあるシステムの例だけど、↓みたいに分離して説明してる。

  • リソースをどうやって管理する?
  • リソースの名前の付け方
  • クライアント向けのAPIの内容
  • リソースの結びつけ
    RESTの考え方自体をこの本で初めて触れたので、もっと勉強して理解を深めたいと感じる。

【書籍】CleanCode

書籍情報

Clean Code アジャイルソフトウェア達人の技

メモ

CleanArchitectureが既読棚に積んであるくせに読んだ記憶がない疑惑の判定で読みだしたところ、こっちの本の参照を見かけて作者同じやん!って軽く目を通してただけのはずがいつの間にか読み切ってた。
ソースコードきれいに書きたいブームのときに買ってちまちま読みつつ忘れかけてた本。
学生時代に買うとしたら気が引けるけど、業務経験出てきたり、会社に置いてあると嬉しい1冊(所感)。

クリーンコードな心がけ

第1~13章(P25~254)は1章ずつが独立しつつも1章ずつが大切なテーマについて語ってるので初心を忘れてしまったら読み返したい。
名前の付け方(2章)、コメント(4章)の即効性のある内容からエラーの書き方(7章)、システム(11章)、スレッドの並行性の話(13章)の重い話まで色々。1章あたり10~20ページくらい割いて説明されてる。
スレッド関係はよくわかってないので読み飛ばしてる。
なんかもうちょっと専門の本とか、自分の仕事に関わるようになってから読み返すと違うものが見えそうだ。

実践編

第14~16章(P255~370)はリファクタやってみました話。
つまり割とピンとこない話なので読み飛ばし。
リファクタ対象とした内容自体が読み解くのにエネルギー使うので、テスト駆動開発の方が読みやすくてTDDチャレンジもしてみたくなる。(そういえばそちらは読んだ本履歴に書いてないや)

標語

第17章「においと経験則」はたった30Pでこの本から学ぶべき問題あるソースの注意点をまとめてくれてる。全部覚えるまで毎日仕事前に1回眺める習慣付けてもいいんじゃないってくらいには大切なことが小さくまとまってる。

【書籍】ドメイン駆動設計入門

書籍情報

ドメイン駆動設計入門

メモ

最近DDD勉強会#1とかをよく見るので、ちゃんと1から勉強してみようかなと買った本。
すごく大当たりな本で、最初に本家のエリック・エヴァンス本とか駆動設計本読んでたら心が折れてたんじゃないかと思う(未読)

説明はC#をベースにしてはいるけど難なく読める。
(そもそもこの手の本のソースコードをまともに読まないのだけど…

まずはDDDのなんたるかの簡単な説明があった上で、
値オブジェクト:パラメータを管理する構造体
エンティティ:内部パラメータが可変かつ同一性を持つ構造体
リポジトリ:値オブジェクト・エンティティを管理する
ドメインサービス:ふるまいを管理する
アプリケーションサービス:ユーザーに向けたユースケースを組み立てる
…の構造を丁寧に説明してる。
 (もしかしたら表現ミスとかあるかもだから、ちゃんと本読んで。

FighTimerのアーキテクチャもこれを読んだあとではあぁああしておけばよかったなぁという後悔ばかり。設計に向き直るには良い機会なのである。

「境界づけられたコンテキスト」がよく理解出来てなかったけど、「同じものを指しつつ違う役割を持った存在である」(サークルに所属するUser情報・ログインに所属するUser情報)の概念を理解出来たのは嬉しい。

とにもかくにもおすすめできる。
この調子で次は実践ドメイン駆動設計に挑戦してみたいところ。