技術日記5/7-5/10
protocol buffersのversion3でrequired, optionalがなくなっていることを知った
そのため定義してあるフィールドには必ず値が入るようにしなければならない
とはいえoptionalを表現したいときはある
自分は別フィールドで has_~
といった感じで表現することにした
.protoファイル例
message Sample { bool has_hoge = 1; string hoge = 2; }
そもそもなんでrequiredがなくなったのかというと
requiredを使うと過去互換を取りにくくなるからとのことだった
最初に設計したときは必須だと思っていても、将来的にそのフィールドが必須であり続ける保証はない
でも、一度requiredにしてしまうと後から削除するのは難しいからとのこと
ふむ、わかるようなわからないような
今更だけど排他ロックと共有ロックのちがいを理解した
簡単に言うと読み取り(SELECT)を許すかの違い
排他ロックではUPDATE、DELETE、SELECTができない
共有ロックならSELECTは通る
SELECT~FOR UPDATEは排他ロック
この文は取得した値を利用して更新をかける際に使われることを想定している
クリーンアーキテクチャでのDBトランザクションどうするか問題にハマっている
blockchainゼミに入ったからblockchainの記事を漁っていた
blockchainの将来性が大変気になる
本当にこの技術は将来使われるのかとか
でも既にblockchainを使用したサービスはいくつも誕生しているみたい
例えばYouTubeのような動画配信サービスのDtube
ただこれらのサービスが既存のサービスからシェアを奪う未来はくるのだろうか
blockchainを使ってうまくクリエイターに還元する流れができると良さそうだけど、その還元金額が既存のサービスを上回るような設計が必要そう
もっとアーキテクチャのこと勉強したいから下記の書籍を購入した
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (131件) を見る
分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計
- 作者: Brendan Burns,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/04/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る