インタプリタの作り方-言語設計/開発の基本と2つの方式による実装-
著者が文章を書くのが上手い。ユーモアを交えつつ設計における決断とその代替手段のメリデメみたいなのが書いてあってなるほどなーと読み進められる
パフォーマンスを気にしないJava実装のあとにCで再実装という流れも面白い。Java版はJavaで、C実装版をRustで写経してなんか満足したところで読むのをやめた
メモリレイアウトみたいなことをRust上でやってもいいけどなんだかなとStringをそのまま文字列に使ってしまった
Zigとかならまた面白いことがあったかも
Goでインタプリタみたいな本を以前読んだので途中から似たことやってるなーとなった
単体テストの考え方/使い方
単体テストをどう書くかにおいて雑に言うとモックを多用するロンドン学派とあんまモックしない古典学派があって、古典学派を推す著者による書籍
個人的に好きな技術書ベスト3に入ったくらいよかった
このときクリーンアーキテクチャで依存する層をモックするテストを書きまくってて意味あんのかなと思ってたのでめちゃくちゃ刺さった
間接層は少ないほど良いとか書いてあってこれまた刺さる
最近のDeNAのSWETの人が書いた記事を読んだが、さすがテストに専門性がある人はすごいなと思った
RustとWebAssemblyによるゲーム開発
wasm_bindgen, web_sysとかのRustのコードをWASM、ブラウザのAPIと結びつけるやつを使って2Dゲームを作っていく本
ゲーム開発でハードルとなりそうな画像や音声のリソースは用意してあって、写経していけばそれっぽいゲームができておもしろい
これまでWebサーバーくらいしかRustをまとまった量書いたことなくて、Webサーバーだとリクエスト・レスポンスで処理が終わるためにライフタイムが単純でゲームみたいなずっと起動してるみたいなプログラムでRust書くとどうなるか興味があった
やっぱりというかゲームを管理する `GameLoop` 構造体をフレームごとに更新する処理は `*g.borrow_mut() = ...` みたいなものすごいコードが出現していた
正直よくわからんなと説明読みつつ写経したのでやっぱRustむずいなで終わる程度の自分の能力だった