宣言的マクロでfor内包表記を部分的に実装する

Rustの宣言的マクロ(declarative macro)でScalaのfor内包表記(for comprehension)を部分的に実装してみた。Scalaの for { x <- xs y <- ys } yield doSomething(x, y) をRustで for_vec! { x <- xs, y <- ys; do_something(x, y) } のように書けるようにする…

現場で役立つGraphQLの知見をまとめた"Production Ready GraphQL"を読んだ

GraphQLを久しぶりに使うことになったので、復習のために"Production Ready GraphQL"を読んだ。 book.productionreadygraphql.com 著者はGitHubとShopifyでGraphQL APIの開発に携わっていた人なので、信頼感がある。GraphQL APIの開発をしようとした人はだい…

Axumのハンドラで任意で渡されるクエリパラメータを受け取る

たとえばAxumのハンドラでクエリパラメータ page を受け付けるときに、 page=1が付与されていれば値として1を使う page=aのように値が無効ならデフォルト値を使う pageが付与されていないならデフォルト値を使う page=のように値が空ならデフォルト値を使う …

SQLxでテスト実行時にDBのデータを管理する

RDBをデータストアとして使うWebアプリケーション(のバックエンド)の開発で、テストを通じてDBに作成したレコードを自動で削除できると、開発環境のDBが汚れず、また他のテストによって変更されたDBの状態に影響されないので便利。Rustではこれをどうやる…

『セキュア・バイ・デザイン 安全なソフトウェア設計』を読んだ

セキュア・バイ・デザイン: 安全なソフトウェア設計 Compass Booksシリーズ作者:Dan Bergh Johnsson,Daniel Deogun,Daniel Sawanoマイナビ出版Amazon ドメイン駆動設計(DDD)の方法論をベースに、ドメインに対する深い理解を獲得し、その理解を設計に反映させ…