『単体テストの考え方/使い方』を読んだ

book.mynavi.jp

 

いい本だった。テストに関する本だと思ってたけど、プロダクションコードのよい設計に関する本でもあった。なぜなら、よいテストが書けることと、プロダクションコードがよい設計で書かれていることは深く結びついているため。よいテストを書くためによいコードを書くという趣旨も述べられている。これはいいことだね。よいテストを書くより強いインセンティブが生まれる。

 

思い出す新卒研修

 

冒頭ではよい単体テストとは何かを論じる過程で古典学派とロンドン学派の比較に関する議論が展開されていた。本書では古典学派が推奨されているが、自分の新卒研修ではバリバリロンドン学派のやりかたを教えられたなと苦笑いしてしまった。ここ数年の経験で自分もよい設計についてよく考えるようになり、当時の研修のもやもやに対する回答も自分でだせるようになった。本書が古典学派を推す理由も既に本質的な理由を理解できていたので答え合わせのような感じで爽快な読書体験になった。

 

ここでもDDD


DDDなどとは全くもって銘打っていないが、良い設計の文脈でDDDのコアの部分が登場し、それを前提に理論が展開される。本書の内容とDDDの内容が矛盾しないということは、お互いがその妥当性を認め合っているということを示唆しているので、本書の提唱する理念もDDDと同様にソフトウェア開発にとって有用な概念であろうという自分の信念が強まった。あと関数型アーキテクチャも触れられていてなおさら。

 

プロダクションコード/テストに関する設計論として読みやすく有用

 

Twitter井戸端会議で不定期で設計論が盛り上がるが、その内容がかなりわかるようになると思う。この本読んでて今までわからなかった議論の答え合わせ的なものができて気持ち良かった。

 

例としてはモックの使い方、使ってよい場所、副作用の扱い方、単体テストが検証すべきことなどがあるが、これらのプラクティスは繋がりのないオムニバスじゃなくて、本書で提案されるよい設計の実現例でしかないという構造になっているので認知負荷を押さえて理解ができる。

 

本書の構成として、先に「よい単体テストの定義や性質」などの一般的な話から入り、その後種々の具体例が展開されるので非常に読み進めやすい。もし自分にソフトウェアエンジニアとしてのおすすめの書籍を紹介する機会があったら、これはそれに入ると思う。

20年弱auを使い続けたが、重い腰を上げてahamoに乗り換えるの巻

現状

「スマホ台に5,000円以上かけるなんてありえない」みたいな言説を見るようになって久しい。対して今の俺が使ってるのはこれ。

www.au.com

 

現状の微妙な点を列挙するとこんな感じ。

  • データ通信量を軸にすると圧倒的に高い
    • 1Gまでなら2000円程度だけどだいたい超える
  • 1/3/5GBで段階課金なので、外でインターネット使うのためらう
    • 基本家にいるからあまり被害ないけど、外でTwitter開くの躊躇われるのはよく考えると異常だ(Youtubeは論外)
    • ので高い時はその他オプションも合わせては6000~8000円ついている
  • 大手キャリア特有の謎のオプションが付いている
    • 以前見直したのでこれでもかなり削れているが、まだ0じゃない
    • そもそも店員がモリモリオプション前提で話を持ちかけてくるので、それを一つずつ剥がしていく作業は容易ではない(精神的にも)

今のプランがよくないのはわかってるんだけど

一方で代替手段となる格安SIMや、UQ mobile、ahomo、LINMOなどの大手キャリアのサブブランドを使えば今より3000~4000円ほど安くなりそう。しかしなかなか腰が重い。理由はいろいろある。

 

本当に安くなるのか、罠があるんじゃないかと不安なのが1点。だって提供しているサービス内容はほとんど変わらないのに、なんでこんなに価格差があるんだろう。たまに無料でこちらに得しかないようなキャンペーンを勧められた時にも思うけど、なぜそれが相手にとっても嬉しいのかの構造が見えないと逆にこちらが損するのではないかと身構えてしまう。

 

インターネットの関連情報がすべてポジショントークに見えるというのもある。消費者のとして意思決定に関する情報は自分にとってはどうにも世俗的な色合いが強く、そこから正しく情報を取捨選択をする自信をなくさせる。やはりこういうのは自分の近しい人がすでにやっているという実績が効くんだろう。この時代にも(信頼できると判断している人経由の)口コミというのは有効だ。

 

最後に自分の節約に対する意識の低さ。たとえ少し多くの料金を支払っていたとしても、相手は国内の大手企業なので、それが本邦の企業活動に少しでも貢献できるならそれでいいと思っているところがある。ただフルタイム賃労働者として構造的な資本家の道具として働いて数年。小規模の昇給にもそれなりの苦労がいることを実感するようになり、そこまで悠長なことを言っている余裕は無くなってきている。景気が悪くて苦しいですね。

ありがとうChatGPT

ChatGPTなどのLLMを使わない日は既になく、日常の調査や作業にもはや自然に組み込まれている。

 

前述の懸念もChatGPTに聞いてほぼ全て解決し、ようやく踏ん切りがついた。

 

例えば改めて格安SIMの定義とはなにか、電話番号を維持できるか、なぜこんなに安いのか、自分の生活スタイルではどれがいいか、現在端末もauで一緒に買って分割代金が残っているが、その支払いだけ残して乗り換えは可能かなどを聞いた。こういう気楽にできる調べごとはお風呂に入りながら音声入力の質問などを使っている。便利な時代すぎる。

ヤマダ電機へ

先日家電を買った時に、さまざまのキャリアの店舗が全部まとまって包括的にサポートをしているブースがあったのを思い出したので、まだ乗り換え先を決めかねていたのもあってこちらに向かった。

 

ヤマダ電機、店舗によるかもだが静かで広くて本当に好き。土地が高いせいでなんでもぎゅうぎゅう詰めにしないといけない都会にこんな空間がまだあるんだ。実家の最寄りもヤマダ電機で愛着があるし、会員になるとポイント還元がとんでもないし、一生繁栄して欲しい。

すごいぞヤマダ電機

移転先を決める際、それぞれが独自の基準を打ち出して正当な比較が難しかったが、ここではデータ通信量や通話オプションなどを主要な項目を軸に取り扱いサービスを同一基準で比べられる表があっていたくみやすかった。加えて特定のサービスへの乗り換えに関してはキャッシュバックなどのキャンペーンもやっていた。

手続きは一瞬、毎月3000円以上の費用削減

解約するauへの手続きはMNP予約番号の発行のための電話一本のみだった。もっとも、これを手に入れる前に、担当者から延々と解約することでできなくなること、享受できなくなるお得なサービスを聞かされるターンを耐えないといけない。プロスペクト理論に従ってフローが設計されていてえらい!が、あんまり意味がないと思うのでやめた方がいい。

結果的にはdocomoのahamoにした。月30GBの容量で、電話も毎回最初の5分は無料なので、よくなった点しかなさそう。月々の支払いも税込2970円なので、現状から3000円以上の費用削減になる。また、乗り換えキャンペーンもあり、15000円のキャッシュバックも得られてラッキー。

特に煩わしさや難しさもなくすぐに終わったので、もっとはやくやってもよかった。人生における意思決定のボトルネックは覚悟定期。

余談

今回契約したahamo、Twitterで見ると全然ネットに繋がらないという阿鼻叫喚の声で溢れている。実は事前にうっすら知っていたんだけど、対応してくれた店員がdocomoの人でahamoをうっすら勧めていたので断れなかった。自分の悪いところだと思う。でも乗り換え自体は簡単にできることがわかったので、使ってみてやっぱりダメだったらまた乗り換えキャンペーンをやっている時期を狙ってやればいいのでかなり気楽な気持ちでいる。

 

最近読んだ本(技術書も、それ以外も)

最近というのは多分嘘で、去年の夏ぐらいから今までに読んだ本のいくつかを紹介します。読書感想記事はちまちまやっていたんだけど、ここ1年くらいははやく次の本を読まないといけないという強迫観念に駆られてできていなかった。もう前の本は当時の感想をもう掘り起こせないけど、やらないよりはマシ。

 

 

データ指向アプリケーションデザイン

www.oreilly.co.jp

 

巷で『イノシシ本』と呼ばれるやつ。エンジニア向けに「とりあえず損はないから読んどけ」として紹介されるバイブル的な扱いをされることが多い気がする。

個人的によかったところは2点。
1つ目は何よりも、トランザクション・レプリケーションやパーティションの必要性と問題・合意といった、分散システムのカギとなる概念が、多数の事例と共に解説されていたこと。本書の特徴的に広く浅くという感じなのでより深く厳密に理解するためには他の書籍や論文を当たる必要があるが、入り口としてはとてもよかったと思う。

特に合意に関してはその意義が理解できてよかった。合意は基本的には単一ノードでは当たり前のことを複数ノードでやっているだけなので、見方によっては特別なことをしていないように見えるので意義がわかりにくい。現代システムにおける分散システムの必要性と、単一ノードでできたことを複数ノードで同じようにやるのがどれほど難しいかを理解して初めて、合意のご利益を真に理解できるのだろうと思った。

2つ目は膨大のデータを使ったアプリケーションの様相をなんとなく把握できたこと。自分はこの領域については疎いので、ざっと読んでいるだけでも知らない世界が広がっていて新鮮だった。データは様々なユースケースで使われるが、すべてのユースケースを満たせる単一のツールやシステムはないので、各ユースケースに応じた複数のツール/システムを用意する必要がある(単純な例でいうとDBとその前段のキャッシュ)。そしてこれらはすべて単一のソースを持っている、別のビューであるだけということがほとんどで、ツール/システム間でデータに関するある種の一貫性を保持し続けなければいけないという難しさもある。

逆によくなかったところもある。この本自体は結構読みにくいと思う。巷で大絶賛されているので、自分以外の人はみんなこの分厚くてわかりにくい本をすらすら読んで理解を進めているのかと何度も絶望した。自分は、一定以上の複雑性を持った情報は木構造のように立体構造を持っていると思っている。そして、それを他者に伝えるということは、その人の頭の中に、全く同じ構造を作り上げることである。それをするためには、ボトムアップなりトップダウンなり、適切な部分木に認知スコープを切りながら、一つ一つを収集して組み上げて、組み上げた者同士を適切な関係でつなぎ合わせる必要がある。しかしこの本はそうしていない(ように見える)。粒度もスコープも違うノードを矢継ぎ早に提示してはその組み上げを読者になげうっているように見える。セクション名も粒度がそろっていないところがあるし、セクション名がその内容の主題になっていないところも多く、主張を掴みにくい。

この本のおかげ分散システムに対する理解が少し進んで、実際に業務で扱う問題も相まって興味が喚起されたので、関連分野を学んでみたい。

気になっているのはこの辺。

www.distributed-systems.net

www.maruzen-publishing.co.jp

 

ベルリンうわの空 シリーズ

全3冊ある。作者のベルリン滞在経験をもとにした、半分フィクション半分ノンフィクションのルポ風漫画。

あまりにも救いの物語すぎて普通に泣いてしまった。こういう生活が、共同体がどの世界にもあってほしいと感じる。また、テーマや絵柄などあらゆる要素が現在本流のエンタメからは少し距離を置いていて、その意味でエキゾチックな魅力があり、同時に食傷気味で息が詰まりそうな消費体験とは一線を画す安らぎを得られた。

この手の作品を読むことはほとんどなかったんだけど、自分にも刺さるんだという発見があった。

 

関数型ドメインモデリング

tatsu-zine.com

設計自体にはずっと興味があったが、学問体系としてあまり成熟しておらず、流派があり、玉石混合の主張であふれているイメージがありなかなか手を出せなかった。一方で関数型プログラミングに対して一定の評価があるのは周知の事実で、多くの汎用プログラミング言語には多くの関数型言語からのエッセンスの輸入がある。この本は自分の所属しているクラスタでの評価が高かったので選択したが、結果的にはとてもよかった。

代数的データ型とパターンマッチの有用性は自分も主張するところだが、それがなぜ、どう有用なのかを様々な具体例で理解することができる。また、プログラミングによるロジック記述の本質は(副作用のない)データの変換であるとし、プラレールの部品を組み立てるように全体のワークフローを設計するというメンタルモデルには得心がいった。

ドメイン駆動設計モデリング/実装ガイド

booth.pm

DDDの入門として読んで、とてもよかった。いい本というのはセクションの粒度がそろっていて、セクションタイトルと内容の主題が一致しているので、読書メモが取りやすい。読書メモが取りやすい本は良書。200ページくらいで要点がまとめられているので読みやすい。

 

ドメイン駆動設計 サンプルコード&FAQ

booth.pm

↑の本の続編かつ副読本みたいな立ち位置の本。多くの実践例とDDDに関するFAQがまとまっていて理解が深まってよかった。例示は理解の試金石。

 

りあクト! TypeScriptで始めるつらくないReact開発(3部作)

booth.pm

個人開発でフロントエンドをReactで書きたくて読んだ。設計思想とかフロントエンドエコシステムの歴史とかも書いてあって面白かった。

今期のアニメ感想(2025Q2クール)

総括

最高だった。マジでありがとう......。凶作のあとに豊作ありが経験則なので今期は大丈夫かなと思っていたが、大丈夫どころではなかった。いいアニメが多すぎて若干窒息気味。日常作品からラブコメ、意欲作、正統社会派作品とバラエティにも富んでいて楽しかった。

 

作品別感想

評価SSSS

前橋ウィッチーズ

アニメ史に燦然と輝くエポックメイキングな作品。アニメをずっと追い続けてきたわけじゃない自分が使うにはだいぶおこがましいけど、それでもこう形容せずにはいられない、そんな作品だった。本作品の影響を受けて、今後も似たような姿勢で物語を描くアニメが増えてほしい。

 

例えるならNHKが朝ドラで描くような社会派のテーマを美少女アニメのコンテキストに違和感なく取り込んで視聴者を魅了してみせた。オタクに都合のいいように人格を矯正されたキャラはいなくて、みんなそれぞれ実際に友人として付き合うには面倒くささや憎らしさがあり、それが非常に「リアル」に感じた。

 

特に印象的だったのは第8話。主要人物の一人であり、ヤングケアラーとして心身をすり減らしながら魔女修行に勤しむ三俣チョコが、「しんどい」を学校の大人に伝えたことをきっかけに行政の福祉サービスにつながり、少しだけ楽になるというシーンがある。このアニメは舞台となった前橋市も積極的に協力してPRを行っている町おこし的な色合いも強い作品なのだが、その作品が行政のサービスと繋がるという(些細ではあるが着実な)解決策を提示したという事実にかなりくらってしまった。解決に至るまでの描写も非常に丁寧でまったく説教くさくなくて、心が温かくなり、号泣してしまった。

 

8話の良さはこれだけじゃない。同エピソードにてチョコの家庭事情を聞いた北原キョウカは、それに比してちっぽけな悩みで苦しんでいた自分を激しく嫌悪してしまうのだが、それに対してこの作品は「主観的な悩みや苦しみは誰かと比べるものじゃない」というメッセージを打ち出すだけじゃなく、「それでも客観的に見たときにどちらがより苦しいかという問題に答えがだせることもある」という事実を仄めかしているように見える。本エピソードの最後になされたキョウカの決意表明にはそんなことを感じたし、普段自分も、より恵まれている人間が社会のためにハードワークをするべきであるという意見を持っているので、そこに強く共鳴してそこでも泣いてしまった。安易で無責任な相対主義に安住せず、そこから先を踏み出す勇気を備えた物語だった。

 

この作品のいいところは他にも山ほどある。ぜひ本編を見てほしい。せめてこのかっこいいOPだけでも見ていってほしい。

youtu.be

 

www.maebashi-witches.com

 

評価SSS

鬼人幻燈抄

不幸な因果に巻き込まれ鬼の力を得てしまった主人公、甚夜の視点から江戸から平成までを辿る壮大な和風ファンタジー

 

この作品の好きなところは、物語の力を信じてひたすら物語に誠実なところ。登場人物をみればわかるが、キャラ売りなどかけらも気にしていなそうなキャラクターデザインになっている。その中身も例に漏れず、作品の世界観を壊すような、露骨にキャラ付けされたような人間はいない。みんな、時に醜く、時に美しく、その時代を精一杯生きる様を見せてくれる。何らかのメッセージがあってもそれを決して言葉にせず、丁寧に丁寧に、人物の行動、人物感の関係、その積み重ねによって描きあげるから心地よい。悲しく残酷な出来事もたくさん起こるけど、それは現実も同じだ。そんな出来事に対して作中の人物はその身いっぱいをつかって懸命に生きている。その過度な脚色のない丁寧な描写の積み重ねがこの物語にとびきりの優しさと儚さを与えている。

 

原作は2011年ごろから投稿されており、2016年には完結しているらしい。なるほど、最近の加速したアテンションエコノミーの影を一切感じないのはそういうことかもしれない。時間がゆっくり流れるから本当にここちよかった。EDテーマもヒルクライムが歌っててめちゃくちゃ懐かしい。連続2クールなのありがたすぎるよ。

 

youtu.be

 

kijin-anime.com

 

評価SS

九龍ジェネリックロマンス

大人のロマンス×「懐かしさ」をテーマにしたSFという、夏の特大バフも受けてエモさ満点の作品だった。ヒロインの鯨井礼子はある日、想いを寄せる工藤発の引き出しから、自分と瓜二つの別人の女性と彼が仲睦まじげに写っている写真を見つけてしまう。

 

あまりに眩しい日々は、その終わりを予感させるから余計に苦しい、何も変わらないでほしい。そんな誰かの想いに呼応するかのように、妖しくも美しい街九龍は何度も同じ夏を繰り返す。自分は「懐かしい」という感情が一番好きで、よく定期的にこの最高に気持ちいい死にたさを味わっているので作品の雰囲気にかなり惹かれて良かった。

 

OP、EDともに作品のテイストにあっていてかなり気持ちいい(苦しい)です。

youtu.be

 

 

youtu.be

 

kowloongr.jp

 

mono

かなり良質な日常アニメだった。日常アニメは底は高いけど天井はそこまで(なぜなら無難だから)という感じになりがちなんだけど、monoはそれを破った気がする。

 

まず最低限に、日常作品に徹していて、安っぽい主張をしなかったこと。主人公3人の女子高生が、思うがままに生活範囲を探検し、喜怒(?)哀楽全部使ってその体験を堪能する。とってつけたような薄っぺらい教訓を視聴者に投げかけたりしない。

 

そして上質な作画とカメラワーク、カット割。これが一番大きかったかも。詳しくないのでちゃんと言語化はできないが、かなり動的というか今ここにしかない瞬間を躍動感あふれる演出で描いていたように思う。

 

漫画家同士のあつまりや、明らかに非現実的なオカルト描写が本当にうけつけなかったんだけど、それを差し引いてなおこの評価になるくらいいいアニメだった。

 

OP、EDどちらも好きです。4,5月の山梨のイメージ。

youtu.be

 

youtu.be

 

 

mono-weekend.photo

評価S

日々は過ぎれど飯うまし

主人公の下宿先の家があまりにもでかすぎるのが嫌だったんだけど、それ以外は完璧だった。こんな上質な日常アニメがmonoと並んで2つも同クールにあったのが奇跡だと思う。主要人物5人のキャラが全員ちゃんと立ってたことで「みんなで」一緒に何をするということの尊さが際立っていたと思う。

 

モコ太郎の中の人スキナー説大好きだった。

 

hibimeshi.com

 

アポカリプスホテル

雰囲気良し、ヤチヨ良し、設定良し、作画良しの優等生作品。1話を見た時は少女終末旅行的なもの寂しい感じになると思ってたけど全然違った。この最高に期待させる舞台設定から物語をどう展開するのか恐る恐る見ていたけど、結果的には無難なギャグにおちついたんだなという印象。物語の力強い主張、こだわりみたいなのがなかった(もしくは自分にささらなかった)のが惜しいし、あとは軽率にタヌキ星人一家への暴力描写があったもの安直だなぁと思っていた。

 

apocalypse-hotel.jp

 

 

未ル

5つの異なる制作スタジオが作った話からなる全5話のオムニバス形式のアニメ。今の時代にはかなり珍しい形式な気がする。全てに共通するテーマは人間とロボットの関わりで、昨今その文字を見ない日はないくらいの隆盛を極めているAIについて切り込む意欲的な作品だった。各エピソードが1話しかないから全然突っ込んだ話はないけど、それぞれの話でそれぞれの切り口でロボットと人の関係を語っていて、そこに多様性があるのが心地よかった。

miru-anime.com

 

To be HERO X

人々からの信頼が力になり、またそれに束縛されるという世界観で、ヒーローという職業がある社会の話。これがアテンションエコノミーに陥ってどのような帰結をもたらすかは想像に難くなく、その意味での意外性はなかった。

 

ただ展開がいつもまったくよめなくて、安心できる時間がほとんどなく心臓に悪い。ほとんど意図的に、工学的な気配を感じるほど巧妙に視聴者を飽きさせないプロットが練られているのを感じる。

 

あとはこのアニメの裏にある膨大な量の設定やその公開の仕方に少しアークナイツみを感じる。中国の良コンテンツにはこういうのありがちなんだろうか。コンテンツ供給が多すぎて普通の消費者は全部を消化できないという特徴がある。

tbhx.net

 

ウィッチウォッチ

令和にスケダンが帰ってきて泣いちゃった。完全にスケダンですね...。逆ハーレムのラブコメでちゃんとオタクに人気があるのすごいと思う。

witchwatch-anime.com

評価A

Summer Pockets

2クール嬉しい。本当に夏がよく似合う作品だと思う。残念ながら2025年現在、我々が「そこにすべてがあった」と信じてやまない夏は本邦から失われてしまったが、この作品にはその夏が確かにあると感じられる、それだけで十分に気持ちがいいアニメ。夏のイデア

 

主人公とヒロインの恋愛関係が、ヒロインの抱える苦しみを救うというメサコン的な文脈でしか今のところ発生していないのが窮屈なんだが、これは駆け足でやらざるをえないアニメだから食傷気味になっているだけで、原作ゲームをプレイしているといくらか緩和されるんだろうか。いずれにしても、お互い別に一人でも何不自由なくいきていける二人が一緒に生きる意思決定をするというタイプの恋愛関係の方が僕は好きです。

 

OP、ED両方大好き。ああ、この夏にはすべてがある......

youtu.be

 

youtu.be

 

summerpockets-anime.jp

 

ロックは淑女の嗜みでして

演奏シーンは本当にかっこいい。あと主人公の声優さんの演技がとても上手くて、お淑やかなお嬢様と世の中クソ喰らえのロック全開口悪女の演じ分けが絶妙。でも中指立ててるところに毎回モザイクかかってるのはかなりダサいと思う。露骨でエロと百合で釣りに来てる感じもある(し、実際それで大量に連れてしまう)。結構人気だったイメージがあるので2期やるのかな?またロックレディの演奏を聴けるのを楽しみにしてます。

 

rocklady.rocks

 

LAZARUS

も、もったいね〜〜〜!!世界が滅ぶというどちゃくそでかい問題を前にしてちんたらちんたらエピソード重ねてるのでスキナーが泣いてたし彼のメッセージも結局視聴者に全然届かなかった。ラザロのメンバーの活躍を大人気長寿ドラマみたいに描き続けたいのであれば(視聴者も見たいはず)、いきなり世界滅亡カウントダウンをしないほうが絶対に良かった気がする。それ以外は完璧だった。

 

2期の伏線もちゃんと貼ったし、次はうまいこと小さな事件を少しずつ解決していってほしいよ。

 

lazarus.aniplex.co.jp

 

宇宙人ムーム

途中でリタイアすると思ってたけど思ったよりずっと面白くて毎週楽しみだった。2クールなの嬉しい。

 

頭のネジが何本か外れたとんちきな日常コメディものなんだけど、エピソードが更新されたら最速で確認したくなる変な魅力がある。純粋に話がおもしろくて、今回はムームーがなにをやらかすのかなとか、天空橋先輩はでてくるかなとか。

 

OPが好きです。ふつうの軽音部で知ったサバシスターが歌っててテンション上がった。

youtu.be

ucyujin-mumu.com

評価B

ある魔女が死ぬまで

むずかしい...。明確につまらなかったところはあげられないけど、最後までハマりきれなかった。主人公のメグの明るくおちゃらけた感じのキャラはいままでありそうでなかった気がして、それはすごく新鮮で良かったしおもしろかった。

arumajo-anime.com

 

ざつ旅

旅がざつなのは全然いいんだけど、安直な百合や安直なキャラ設定が口に合わない年齢になってきたのか、そこまで刺さらなかった。旅も日常の延長という感じがしなく、その回のために取ってつけたような問題を解決することが目的になっていて、必ずなんらかの教訓や成果を得る構図になっていることが窮屈に感じられた。

 

窪田等さんをナレーションに抜擢した旅の演出はとてもよくて、ご飯や旅館の描写には自分も行きたくなる魅力があった。

zatsutabi.com

読書感想記事『詳解Rustアトミック操作とロック』

とってもいい本です。

本の内容

自分に刺さった部分を中心に再構成すると、基礎パート、理論パート、実践パートの3つがよかった。

基礎パートではその後全編にわたって核となるアトミック操作について丁寧に説明している。

理論パートでは、メモリオーダリングについてある程度形式的に説明されていてこれがとてもよかった。メモリオーダリングとはアトミックに操作の時に指定するRelaxedとか、Acquireとか、Releaseとかのことで、正しい並行プログラムを書くためには理解が欠かせないところだ。本書では「先行発生関係」という用語を用いてこれらのオーダリングが何を保証してくれるのかを形式的に定義する。さらに詳しくやりたい場合はメモリモデルの本をあたるとよさそう。

実践パートでは、今まで説明した道具を使っていろいろな並行プリミティブを再発明する。スピンロック、チャネル、Arcでは、素朴な実装から初めて段々と最適化を進めていくインクリメンタルな構成になっていて、改善のモチベーションがわかりやすかった。さらにMutex、条件変数、リーダ・ライタ・ロックといったもっとプリミティブな実装の再発明も行っていた。魔法のからくりを垣間見れてよかった。

 

Rustとの関わり

本書はRustで書かれているのだが、レイヤーが低いのでunsafeまみれのコードになる。これがよかった。unsafeは、Rustの安全性を保証するために型システムがやってることを代わりにプログラマが保証して使わないといけない。これを正しく使うためには、Rustの型システムが何を保証しているのかを理解していないといけないので、unsafeを使って安全なインターフェースを作ることでRust自体とプリミティブなところの機微が少し理解できた気がする。これは例えばMutex、MutexGuardといったデザインのモチベーションとか、UnsafeCellといった内部可変性を持つデータのモチベーションとかである。

 

他の本との関連性

『並行プログラミング入門』とは非常に関連が深い。自分は最初にこちらを読んでしまったが、今回の『詳解Rustアトミック操作とロック』を最初に読んだ方がいいと思う。メモリオーダリングの説明をちゃんと理解したり、よりシンプルな道具の再発明をやってからの方がおそらくいい。『プログラマのためのCPU入門』は部分的に関連がある。どちらを先に読んだ方がいいとかはあまりない気がする。どちらもいい本なので好きなタイミングで読むと言い。

読書感想記事『徹底解説v6プラス』

引越し時の回線契約における立ち回りがわかるという書評を見て、また全体として100ページほどしかないコンパクトな本だったこともあって積読キューから引っ張り出された。

 

どういう本か

v6プラスに関する本だった。v6プラスとは何で、v6プラスを使うと我々インターネットユーザーにはどういう恩恵があるのか、その恩恵はどのような背景技術からなるのか、v6プラスを使うにはどうすればいいか、v6プラスに関するFAQとトラブルシューティング事例など、v6プラスに関する包括的な説明がコンパクトにまとまっている。

 

v6プラスとは何か。まず、IPv6ネットワーク上でIPv4サービスへの接続を実現する技術や仕組みを一般にIPv4 over IPv6と呼ぶ。v6プラスは、IPv4 over IPv6を実現する、JPIXという企業の商用サービスの名称である。

 

総じて極めて実用的。引越し時の不安が軽減される

私は引越しの時の回線契約選びで毎回かなり苦労する。巷では、謳われているネット速度に全然届かないとか、いわゆるNAT越えができなくてオンライン対戦ゲームができないかもとか、いまいち正体の掴み切れない罠がたくさんあるように感じるのに、どうやったらそれが回避できるかわからない。プロバイダの公式サイトの説明も、統一されたベンチマークを使っていない(あるいは自分がそれを読み解けない)からわかったようでわからない。極めつけには、こういったネットの品質(や選べる契約)が物件ごとに微妙に違っているのに、賃貸業者はこのような情報を全く公開していない。結果として、そこそこな費用と時間をかけて引越しをするのに、インターネット環境という現代では死活問題になる要素のよしあしは幸運を祈るしかないという状況になりがちになる。

 

本書では、それに対してv6プラスという1つの回答(これ以外にも道はあるだろう)を示してくれることで、上述の問題を大きく緩和してくれる。どのような回線契約やオプションをつかえばいいかわかるから、物件選びはそれを基準にすればいいし、v6プラスの技術的背景も説明されるので、それを用いれば、例えばv6プラス以外でも自分の求めるネット環境を得るにはどこに気をつければよいかわかり、主体的な意思決定を支えてくれる。もちろん、現代ではもはや必須となっているインフラに関する知的好奇心も満たしてくれる。

 

徹底解説 v6プラスwww.lambdanote.com

 

www.jpix.ad.jp

読書感想記事『パニック・裸の王様』


初版は昭和35年の短編集。俺が大好きな、この大地に行ける全ての命と尊厳に対して誠実な物語、アークナイツを通じて知り合ったフォロワーがくれた本です。俺がその内に既に複雑な構造を組み上げた面倒な人間だと知ってなお物語をおすすめしてもらえるのはありがたいね。

 

4つの短編があったけど、全体的に好きな感じだった。リアルよりの題材を選んだうえで、読み手の感情を煽ってこない文体が好きだった。題材がリアルだと容易に現実世界や自分の生活を連想してしまうので、こちらの感情に働きかけようという意思がみえると消耗してしまう。淡々と出来事を描写し、その一切の解釈を読者に委ねるような物語は好きだ。そんな観点を中心に1つずつ簡単に感想をまとめる。

 

 パニック

(少なくとも自分が好きな)小説の登場人物ってあんまり激情に駆られない、あるいはたとえそうなっても露骨な描写がないんだと思う。俊介はネズミによる甚大な被害を予想していながらもまともに取り合ってもらえず、いざ彼の予想通りの現実が立ち現われても見直されるばかりか顰蹙を買ってしまうような、辛酸を舐める時間が続くけど、それに対して俊介が怒り、失望するさまがあくまで淡々と描かれているのがよかった。俺はあてられやすいので。

 

巨人と玩具

この話が個人的には一番だったかも。子供向けのキャラメルの売り上げをめぐって、同業他社と熾烈な争いが描かれる。この販売経路に関わるあらゆる人間が、それぞれの持ち場で精一杯働き、そして消耗してゆく様を感じた。一度高速に回転を始めた回し車が簡単に止められないように、経済の流れを誰一人個人として止めることはできず、ひたすら走るしかない、その帰結がなんであるかを考えている暇などない。語り手である「私(名前があったかも忘れてしまった)」からはあまり自己主張が感じられなかったことも、登場人物たちが制御不能なシステムに組み込まれている印象を強めた。別にこれがテーマではないと思うけど、人間社会の中に普遍的に存在する力学の存在を感じさせる美しい物語だった。

 

裸の王様

芥川賞を受賞した作品で、他の3作とは少しだけ毛色がちがい、作者、あるいは私と登場人物の距離が近かった。あんまり組織とか社会みたいなものは感じず、人間の物語だったように思う。自分は今の今まで、芸術というものをまったく理解できずに生きてきた気がするので、先生の芸術論は耳が痛い。中学の時の美術の先生がかなりおかしな人で、ある日の授業で課題の作品を作って評価をもらいに行ったところ、「お前はその程度か」と言われたことを思い出した。あの人はこの物語の先生をどう見るんだろう。本の裏表紙には「打算と偽善と虚栄に満ちた社会でほとんど圧殺されかかっている幼い生命の救出を描く」とあるけど、これは違和感があった。社会というほどの規模や一般性は感じなかったので、普通に不幸な家庭の話だと思う。太郎はこれで救出されたかもしれないが、太郎の母はどうだろう。

 

流亡記

よかった。いつも思うけど、人類の歴史のほとんどは野蛮で残虐でグロテスクで人権も尊厳もゴミ同然で、およそ生きるには耐えられない人生(少なくとも現代の自分にはそう思える)を送った人がほとんどなのに、なぜ子孫を残してまだ種が存続しているんだろう。今なんかよりもっと、こんな世界に自分の子供を迎えたくないという気持ちになりそうなものなのに。敗者がいれば勝者もいるので、たとえ一時的であったとしてもその勝利の興奮と愉悦の中で子をなしたり、たとえ勝者ではなくても一時的な平穏と幸福の中で世界に対する希望を抱いたりするからだろうか。今の自分たちの生活水準も、遠い未来の人たちからしたら耐えがたい苦痛にまみれたものなんだろうか。