Happy Developing

楽しい開発ライフ 🦀

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…

RUST FOR RUSTACEANSを読んだ感想

読んだ本 きっかけ まとめ FOUNDATIONS TYPES Types In Memory Alignment Layout Dynamically Sized Types and Wide Pointers Traits and Trait Bounds Compilation and Dispatch Generic Traits Coherence and the Orphan Rule Trait Bounds Marker Existen…

proconio::input!の仕組みを追ってみる

この記事ではRustのproconio::input! macroについて書きます。 documentやtest caseで想定されているユースケースをどうやって実現しているのかを追っていきます。 versionは記事を書いている時点で最新のp-v0.4.3 を対象にしています。 proconio::input! と…

Parser combinator nom 入門

この記事ではparser combinator nom1について書きます。versionは v6.1を前提にしています。 nomは小さいparserを組み合わせて、目的とするデータ構造を入力から読み取るためのpackageです。 nushell のコードを読んでいてみかけたのが初めてでしたが他のpac…

Rustのlifetimeとvariance

nomicon を読んでいてSubtyping and Variance の話がでてきたときにどうして継承の概念がないRustにvarianceの話がでてくるのかなと思っていました。 その後、Rustの動画をyoutubeに投稿されているJon Gjengsetさん のCrust of Rust: Subtyping and Variance…

Web APIの設計を読んだ感想

読んだ本 https://www.shoeisha.co.jp/book/detail/9784798167015 本書を読みながら、参考になったところ、普段自分が開発していて思ったところなんかを書いていきます。 本書でいうところのWeb APIはもっぱらRESTが前提です。(GraphQL,gRPCについても言及は…

Key Value Storeを作りながら学ぶtokio

本エントリーではKey Value Storeをtokioで作るうえで学んだことを書いていきます。 RustのLT会 Shinjuku.rs #13で話させていただいた内容です。 発表時のスライド source code 作ったもの TCP Server Max Connection Graceful shutdown Stream read/write w…