バックナンバーを読んだのでメモを残しておく。
特集1 プログラミング言語のしくみ
まず抽象構文木とインタプリタを実装し、次に構文解析器という流れ。ボトムアップから、動く状態のものを作りながらイテレーションをまわすのがエタりにくい。良いアプローチ。いきなり構文解析器からだと敷居高いだろうし。
DBもそうだったけど、作って学ぶシリーズで車輪の再発明を実際にやるのは、学習にピッタリ。
特集2 GraphQL 完全ガイド
GraphQL はスキーマファーストとコードファーストどちらでも始められる。クライアントはスキーマファーストが向いてそう。スキーマからTypeScriptのコードを生成するのは、OpenAPIと変わらない。
サーバーはどちらでもいけるけど、個人的にはコードファーストが好み。その場合、サーバーはモノリス前提かな。マイクロサービスで、ゲートウェイとしてのGraphQLなら、スキーマファーストでもいいかも。
カーソル使ってページネーションを実装できるとして、ページ遷移で結果が変わると困る場合どうすればいいんだろう。集計結果を保存しておくしかないのか?ストリームデータを扱いたいときも、どうしたものか。
GraphQLでコスト大きそうなクエリを実行されてしまうことの対策として、コスト計算してクエリを許可・不許可するGitHubの手法良さげ。
特集3 速習DynamoDB
DynamoDB は用途が限定されそうだな。ピッタリのケースでないと活用できなそう。活用できれば効果大。例として紹介されている Amazonのカートや、チャットアプリには確かに合いそうだ。ただ、NewSQLが出てきた昨今、あえてDynamoDB 選ぶ動機が、なかなか見つけられそうにない。