2021年1月第3週レポート
先週は仕事にかなりリソースを割いていました。そこで調べたこと書いたことたくさんあったのでインプット/アウトプットの量は多い1週間だったのですが、公開できるものがないので記事自体は少なめです。
インプット
📝 「Cause」と「Reason」の違い
先週にひきつづきからの変数命名ネタなのですが、ある状態に至るにあたった理由や原因を表す変数を作る機会がありました。ぱっと思いついたところだと「Cause」と「Reason」が頭に浮かんだのですが、それぞれどういったニュアンスを持っているか理解できていなかったので調べてみました。
個人的にしっくりきた説明として以下の通りです。
cause は、物事を引き起こす「原因、要因」の意味で、ある効果(effect)や結果(result)を直接的に生じさせる事柄や状況を指します。
reason は、「理由、動機、原因、根拠」という意味で、ある結果や行動などを引き起こす原因(cause)とか動機(motive)に関する説明を指し、ある程度の必然性があることを示します。
参考 cause, reason「原因」意味の違い、使い分け
📝 Azure Table Storageの設計パターン
過去、何度か読んでいて、最近また読み返す機会がありました。Table Storageは低コストでAPIもシンプルなNoSQLデータベースです。Cosmos DBに比べると性能やクエリの柔軟さに難がありますが、小規模で要件がマッチするならば充分実用に耐え得るサービスかと思います。
とはいえ、その特性を理解していないと思った以上に性能が出なかったり、システム内での整合性が崩れてしまったりしてしまいます。個人的にTable Storageを活用するにあたってもっとも参考となる資料は以下のドキュメントだと思います。
このドキュメントを入り口にして、PartitionKeyとRowKeyの特性、エンティティグループトランザクション、ETag、デザインパターンを一通り学べるんじゃないかなと思います。
📝 「どうして Fastify は生の Node.js より速いの?」を読んだ
Node.jsのWebフレームワークとしてはFastifyがかなり早いというのは割と知られていますが、どうしてそんなに早いのかは前々から気になっていました。
その解説記事を見つけたのでちょっとなるほどと思いました。
どうしてFastifyは生のNode.jsより速いの? - NER
JSON操作で差が出ているんじゃないかという考察のようです。記事にも記載されていますが、FastifyではJSON操作にfast-json-stringifyを利用しているとのことです(このパッケージはじめて知った)。自分もJSON操作を行うことがあるのでこのパッケージはあらためて調べてみようと思います。
アウトプット
Rustファミコンの方は内部の実装をちょっとリファクタリングしたくらい。このままだと仕事にかまけて飽きてしまうよくあるパターンに陥ってしまいそうなので歯止めをかけたい。