WEB+DB PRESS Vol.125

バックナンバーを読んだのでメモを残しておく。

特集1 プログラミング言語のしくみ

まず抽象構文木インタプリタを実装し、次に構文解析器という流れ。ボトムアップから、動く状態のものを作りながらイテレーションをまわすのがエタりにくい。良いアプローチ。いきなり構文解析器からだと敷居高いだろうし。

DBもそうだったけど、作って学ぶシリーズで車輪の再発明を実際にやるのは、学習にピッタリ。

特集2 GraphQL 完全ガイド

GraphQL はスキーマファーストとコードファーストどちらでも始められる。クライアントはスキーマファーストが向いてそう。スキーマからTypeScriptのコードを生成するのは、OpenAPIと変わらない。

サーバーはどちらでもいけるけど、個人的にはコードファーストが好み。その場合、サーバーはモノリス前提かな。マイクロサービスで、ゲートウェイとしてのGraphQLなら、スキーマファーストでもいいかも。

カーソル使ってページネーションを実装できるとして、ページ遷移で結果が変わると困る場合どうすればいいんだろう。集計結果を保存しておくしかないのか?ストリームデータを扱いたいときも、どうしたものか。

GraphQLでコスト大きそうなクエリを実行されてしまうことの対策として、コスト計算してクエリを許可・不許可するGitHubの手法良さげ。

特集3 速習DynamoDB

DynamoDB は用途が限定されそうだな。ピッタリのケースでないと活用できなそう。活用できれば効果大。例として紹介されている Amazonのカートや、チャットアプリには確かに合いそうだ。ただ、NewSQLが出てきた昨今、あえてDynamoDB 選ぶ動機が、なかなか見つけられそうにない。