Happy Developing

楽しい開発ライフ 🦀

tracing/tracing-subscriberでログが出力される仕組みを理解する

本記事ではRustのtracing/tracing-subscriberでログが出力される仕組みをソースコードを読みながら理解することを目指します。 具体的には以下のコードにおいてtracingがどのようにしてログを出力するかを見ていきます。 use tracing::{info, info_span}; fn…

GraphQL Specificationを読んでみる

本記事ではGraphQLの仕様を読んだ感想について書きます。具体的にはOctober 2021 Editionです。 仕様を読んでみようとおもったきっかけなのですが、Githubのgraphql apiにリクエストを送ろうとHttp requestを作っていた際に最終的にどういうjsonのbodyを作れ…

cqrs-esからみるRustのCQRS & Event Sourceの実装

最近会社でThis week in rustならぬThis week in fraimという会が週1で行われる様になりました。そこでCQRS and Event Sourcing using Rustというドキュメントを教えてもらいました。 このドキュメントはcqrs-rsというRustのCQRS lightweight frameworkにつ…

proc-macro-workshop/builderをやってみる

本記事ではdtolnay先生のproc-macro-workshopのbuilderをやっていきます。 workshopはprocedural macrosの学習を目的に作られており、workshop内の各projectをstep by stepで実装していくことで自然とprocedural macrosに慣れることができます。 本workshop…

RabbitMQ Essentials 2nd Editionを読んだ感想

読んだ本 RabbitMQ Essentials - Second Edition 2020出版でRabbitMQ関連の本で比較的新しめだったのと、Taxi ApplicationにRabbitMQを組み込んでいくという形がおもしろそうだったので読んでみました。 1 A Rabbit Springs to Life 概要やインストールにつ…

RabbitMQ TutorialsをRustでやってみる

本記事ではRabbitMQ TutorialsをRustでやっていきます。 RabbitMQはAMQP 0-9-1というプロトコルの実装という位置づけなので、登場するコンセプトについてはAMQPに基づいて理解していきます。(以降AMQPはAMQP 0-9-1を前提にします) Tutorialsは以下の7つから…

deadpoolでConnectionPoolを作る

本記事では、deadpoolを利用したConnectionPoolの作り方とその仕組みについてみていきます。 外部リソースを抽象化した形でPoolが提供されているので同時利用数に制限のある外部リソースを複数作成して、必要に応じて使いまわしたい場面においてdeadpoolが利…

RustのAPI Guidelinesを読んでみる

Rustのブログ記事でよく言及されることが多いので、API Guidelinesを読んでみました。 本GuidelinesはRustのlibrary teamによってメンテされているみたいです。 Guidelinesの位置付け 本Guidelinesの位置付けはAboutで述べられています。 These guidelines s…

error-stackを試してみる

この記事では最近(2022-06-10)0.1.0がリリースされたerror-stackを試してみます。 READMEには error-stack is a context-aware error-handling library that supports arbitrary attached user data. とあり、crate/moduleで利用する、Result型を提供してお…

tower::Service traitを理解する

tower::Service traitについての公式のGuideがとてもがとてもわかりやすかったです。 そこで本記事ではこれを辿りながらtower::Serviceがなにを抽象化しようとしているかの理解を試みます。(libraryのAPIがどうして今のsignatureに至ったのかをここまで丁寧…

入門WebAssemblyを読んでWASMをはじめた

読んだ本 入門WebAssembly The Art Of WebAssemblyの翻訳書です。 本書を読みながらサンプルコードを写経したので感想を書いていきます。 著者のWebサイトには他にもWebAssemblyについてのトピックがあります。 サンプルコードはGitHubから見れます。 canvas…

Rustのexponential retry実装 againのソースを読んでみる

本記事では、Rustでexponential retryの機能を提供するagainのソースを読んでいきます。 (lib.rs 1ファイルだけの小さなcrateなのですぐ読めます) 基本的にproductionでnetwork callを行う際はretryが必要になってくると思います。sidecar等の透過的なinfra …

ソフトウェアアーキテクチャの基礎を読んだ感想

読んだ本 ソフトウェアアーキテクチャの基礎 Fundamentals of Software Architecture 日本語版は紙、英語版はKindleで読みました。Kindle版は図がカラーで見れます。 本書を読んだ感想を書いていきます。 Chapter 1. Introduction Software Architectureとは…

AWS CDK Conference Japan 2022の感想

2022/4/9に行われたAWS CDK Conference Japan 2022の動画を見たので感想を書きます。 Keynote: What is CDK v2? CDK v1とv2の主な違い Deployまでの流れ パラメータに関するCloudformationとの差異 Construct Levels 3年目のCDKを振り返って 初学者にCDKをオ…

cargo-nextestの使い方と仕組み

この記事では以下の点について書きます。 cargo-nextestの使い方 ソースを読んで理解できた範囲内で仕組みの解説 Contents cargo-nextestの使い方 概要 Install Testの実行 Retry Flaky Test Partitioning Test Testの一覧表示 Config Profile Github Action…