Don't Repeat Yourself

Don't Repeat Yourself (DRY) is a principle of software development aimed at reducing repetition of all kinds. -- wikipedia

2021-01-01から1年間の記事一覧

Rust の新しい HTTP サーバーのクレート Axum をフルに活用してサーバーサイドアプリケーション開発をしてみる

この記事は Rust Advent Calendar 25日目の記事です。Merry Christmas! 今年の Web バックエンド開発関連で一番大きかったなと思っているイベントに、Axum のリリースがあります。2021年の夏頃に tokio チームからリリースされた Web アプリケーション用のラ…

はてなブロガーに10の質問に答える

はてなブログ10周年特別お題「はてなブロガーに10の質問」 ブログ名もしくはハンドルネームの由来は? Don't Repeat Yourself はプログラマの間では言わずと知れた DRY の原則というから得ています。タイトルの下にどういう意味かは書いてあります。ブログ名…

『詳解Rustプログラミング』(Rust in Action)を読みました

先日発売になった『詳解Rustプログラミング』という本をひとまず一通り軽く読んでみました。実は原著の Rust in Action をすでに読んでしまっていたので、内容の流れは把握していたのですが、私は一応日本語ネイティブなので日本語の書籍は非常に嬉しいです…

複数のテストケースをまとめたい際に使える test_case クレート

test_case というクレートを使用すると、複数のパターンのテストを1つのコードでまとめて記述できるようになります。実際に私もこのクレートを使用して、いくつかのテストをまとめて書いてみました。メリットは、重複コードを減らしつつ、テストがどこで失敗…

RustConfメモ

さすがに時差の関係で全部は見られませんでしたが、出席していたのとアーカイブが残っていたので、いくつか気になったものを見てみました。ただ、家事などの合間に聞き流ししていた内容を思い出して書いているので、記憶が曖昧なところがあります。ご了承く…

Rust.Tokyo 2021 を開催しました

9/18 に Rust.Tokyo 2021 を開催しました。2020年はコロナの影響が読みきれずキャンセルとしたので、2019年以来2度目の開催です。この2年間で Rust そのものやコミュニティイベントに関してさまざまなことがあったような気がしますが、それは後ほど書くこと…

Swift で filter や map 、flatMap などのコンビネータを実装してみる

今年の言語として Swift を選んで最近練習しています。Swift は iOS を作るために使用されることが多いですが、言語としての表現力が非常に豊かで、たとえば Web アプリケーションのサーバーサイド開発に利用できるのではないかと思っています。まだ Swift …

Rustで型を強めにつけ、バリデーション情報を型に落とす方法

Rust を読んでいると、さまざまなものに型付けをするコードをよく見かけます。強めに(厳密に)型付けをする文化があるプログラミング言語、と言えるかもれません。 バリデーションチェックに対してもこうした強めの型付けが適用できます。具体的なバリデー…

『Amazon Web Services 基礎からのネットワーク&サーバー構築』を Terraform でチャレンジする

アプリケーションエンジニアではあるものの、AWS はかなり触る機会が多いです。アプリケーションエンジニアといえど、AWS に関してある程度知見をもっていないとよりよいアプリケーションを作ることができない時代になってきました。それだけ、AWS に依存し…

Multimap を Rust でも使う(と、クレートの選び方)

先日仕事で、Rust を使用してとあるアプリケーションを作っていたところ、Guava の Multimap のようなデータ構造がほしいと思う場面がありました。 Guava の Multimap というのは、Java のライブラリ Guava に存在する HashMap の value 側がリストやベクタ…

Vec::retain の最適化

先日 rustc に上がっていた PR にこんなものがありました。Vec::retain を最適化したという PR です。他の PR の様子なども見る限り、以前からここは取り組まれていたようですが、この度ようやく修正が入り、Vec::retain が高速化しました。 github.com 実際…

Rust でステートマシンを扱えるライブラリを書いてみた

TL; DR Rust でステートマシンをいい感じに扱えるようにするライブラリを書いてみた。 とくに他の言語のライブラリを調査したわけではないので、もう少しいいアイディアがあるかもしれない。 何を作ったか Rust でマクロや他のライブラリを一切使わずにステ…

Rust を始めるための資料集

かとじゅんさんのお誘いで、私塾匠真堂にて登壇させていただき、Rust に関する話をさせていただきました。ありがとうございました。 今回のセッションを通じて Rust を始めたくなった方向けに、Rust をはじめるための資料をいくつかリストアップしてます。よ…