『Webを支える技術』の感想

はいどーもこんばんはニートです。
皆さんはWebを支えている技術について詳しいですか。
僕はHTMLやらJSONやらくらいは使っていましたが、全くの門外漢と言っても過言ではないでしょう。
ちゅーわけで本日は『Webを支える技術』を読んだ感想を書いてみようと思いますよ。

なんでWeb関係の本なのか

Unityを使って外部のAPIと連携を取るとき、なんやら外部のサイトと通信をしなければならないときがあります。
そのとき通信APIとしてUnityWebRequestやらWWWやらHttpWebRequestやらを使うわけなのですが、これらのクラスの説明を読んでも僕は全く理解できなかったのですね。
これらのAPIが何を取得しようとして、取得した結果がどのような形で格納されているかなどの知識が全くありませんでした。
というわけでAPIの説明を読んでもいまいち理解ができず、通信系の処理はなるべく避けていました(あと非同期処理が基本なので、そこも嫌なところでした)。
しかしいつまでも苦手意識を持ったままではいかんということで、本腰を入れて本書を買ったわけです。
果たして本書はこれからの基礎となってくれるのか!?

対象読者

本書が対象としている読者は「規模の大小にかかわらずWeb技術を使った開発経験のある人」とのことです。
解説は非常に平易なので、何らかのプログラミング言語およびデータベースをサラッとでも触ったことがあれば特に問題なく読めるかなと思いました。
以下は気になった部分のメモみたいな感じとなります。

アーキテクチャスタイル

MVCやパイプ&フィルタ、イベントシステム等のことをアーキテクチャスタイルと言うらしいです。
デザインパターンはアーキテクチャスタイルよりも粒度の小さい設計様式を意味するようです。
何となくは理解していましたが、改めて言葉で説明されると頭がスッキリますね。
ちなみに本書ではRESTというアーキテクチャスタイルを通し、アーキテクチャであるブラウザ・サーバ・HTTP・URIなどなどを何やらしていきます。

妥協する

「ソフトウェアやシステムの設計ではアーキテクチャスタイルの理想から妥協しなければならないところも出てくるでしょう。理想を念頭に置きながら、実際に動作して価値を提供できるシステムを作ることが重要です」
この言葉はプログラマに限らず、創作系のことをしている人なら何かしら思うところがあるのではないでしょうか。
僕も「価値を提供」することを目指したいと思いますよ。

べき等

僕は数学に疎いので知らなかったのですが、べき等とは「ある操作を何回行っても結果が同じこと」を意味するそうです。
HTTPにおけるPUTやDELETEはこの性質を持っているようです(ただこの性質を壊してしまうこともできるようですが)。
べき等は基本的に歓迎される性質であり、「同じ入力に対しては同じ出力を返すメソッドは不具合を生みにくい」という考え方にも通じますね。
僕もなるたけPOSTの代わりにPUTを使いたいなあと思いました。

rel-nofollow

個人サイト全盛期だった頃、怪しげな業者が掲示板にURLを大量に貼り付けることがありました。
これは自分のサイトの参照リンク数を上げるためなのでしょうが、rel-nofollowを利用すると参照リンク数が上がらなくなるようです。
まあ今はブログのコメント欄とかですかね……。
最近のツールなら荒らし予防的な機能は予め盛り込まれていそうですけど、業者って今も息してるんですかねえ。

バルクアップデートとパーシャルアップデート

リソースを更新する際、リソース全体を送信する更新方法をバルクアップデートと呼ぶそうです。
逆にリソースの一部分だけをピンポイントに送信して更新する方法をパーシャルアップデートと呼ぶそうです。
「そんなのパーシャルアップデートの方がいいに決まっているじゃないか」と思ったのですが、どちらも一長一短なのだなあと考えを改めました。

楽観的ロックと悲観的ロック

名前が面白いなあと思いました。
それだけですw

設計のバランス

分野を問わず、設計をおこなっていると「ウーン、ここは何かイマイチだな……。でもこっちをこうするとあっちがダメになるし……」みたいなことはよくあると思います。
そんなときどうすればいいかということですが、やっぱりこれは経験がものを言うんでしょうね。
本書では設計作業を以下のように定義しています。
「過剰に品質を求めて納期が遅れては元も子もありませんし、かといって必要最低限の品質を満たせていないと後悔することになります。各種のパラメータを加味して、自分が最もバランスがとれていると感じるところに落ち着かせるのが設計作業です」
この「自分が最もバランスがとれていると感じるところ」を見つけるのが難しいんですが、僕もボチボチ設計に慣れてきたいですねえ……。
来年あたりまでにもう少し上手い具合に設計できるようになりたいです。

おわりに

いかがでしたでしょーか。
僕的にはわりと豊作でした。HTTPの基礎とかを知りたい方にはオススメします。
ただこの本だけでは理解できなかった部分があったのも確かです。
不足を補ってくれるだろうという期待を込めて、次に買う本も通信系のものを予定しています。
それから実際にUnityで何やらいじってみて理解を深めたいと思いますよ。

ほなそんな感じでまた。
あ、お仕事も募集中です。

フォローする