It Made My Day

Acutally, my whole life is just one big yak shaving exercise.

読書メモ 2022年1~3月

詳しくない技術を触りに行った3ヶ月だった。来期は深める勉強やりたい(できるのか?)。

OAuth徹底入門 セキュアな認可システムを適用するための原則と実践

業務で認可基盤を開発することになったので読んだ。認証について概要を掴みたくて色々ググった時期もあったが、そんなことをする必要は一切なかったなと思うほどわかりやすいし、基礎となる理論からテクニカルな仕様まで、ソースコードも提示しながら丁寧に説明している。

手前味噌だが、JavaScript以外の言語で書かれたサンプルコードを探してもなかったので、Goで書き直してみた。

「OAuth徹底入門」のサンプルコードをGoで書いてみた - It Made My Day

[Web開発者のための]大規模サービス技術入門 ―データ構造,メモリ,OS,DB,サーバ/インフラ

はてなのブログ系サービスがスケールする際に困ったポイントと、その解決策の選択肢や周辺技術の概要を説明した本。同社がインターン生に説明していた内容を書き起こしたものらしく、非常にわかりやすくテンポよく読める。

2010年発行のため、クラウドベンダーのフルマネージドなサービスを使った開発が非常に身近なものとなった現在においては少し古く感じる内容ではある。が、システムデザインの勉強をしていた際 (こういうのとか) には理屈だけで理解していた実務のイメージがより具体的に理解でき、個人的にはとても楽しめた。

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

4月からRuss CoxのMemory Modelsについての記事を読むことになったので、事前準備も兼ねて趣味で読んだ。コンテナの仕組みを理解したいならまずこれ、ともよく聞くやつ。

断片的な知識しかなかったところを実際にプログラムを動かして確認しながら理解を深めることができてとても良い本だった。低レイヤが垣間見える話はやっぱり楽しい。 個人的にはCの書き方にもちょっと慣れることができて良かった。

初めてのGraphQL ――Webサービスを作って学ぶ新世代API

www.oreilly.co.jp

なんとなく触ったことはあった程度だったので、ちゃんと入門してみた。RESTと違う世界観で仕様の変化に強そうと思った (似たようなエンドポイントの量産とか、バージョン管理の煩雑さがかなり軽減できそう) し、ツールも充実してそうだった。ネットワークで重くなりすぎるリスクへの対処とかページングとか、Pub/Subとかキャッシュとかもシュッと実装できて至れり尽くせりみたい。

全く調べてないけど、N+1とかそういう、クエリ流してみるとあれってなる事象もありそうだし、やっぱりGraphQLのメンテはサーバーサイド側でやるんだろうか。現場で運用するとRESTとは違うハマりポイントがありそう。知らんけど。

この本では他のスタイルとの比較はなかったが、APIアーキテクチャスタイルの比較にはこういう意見があるようだ。