3歩進んで2歩下がる

Software Engineer

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

トランザクションを考慮したアプリケーション実装

オニオンアーキテクチャやクリーンアーキテクチャなど、関心ごとのレイヤーに分離した実装をするとき、トランザクションをどのレイヤーで管理するかは悩みの種だと思います。 ユースケース層でトランザクションを管理する 個人的な推しは「ユースケース層で…

ミニマムなパッケージマネージャを作ってみる

ミニマムなパッケージマネージャを作ってみました。実装はGoでおこなっています。パッケージマネージャの仕組みについて少しばかり学べたので記録として残しておこうと思います。 github.com 参考元 動機は以下のリポジトリ・記事で、挙動としてカバーしてい…

メールの受信トレイを空にする運用を始めた

Gmailをメーラーとして使っているのですが、これまで受信トレイをちゃんと管理してきませんでした。具体的には、未読メールが溜まった状態の受信トレイをたまに開いて、大事そうなものだけチェックする、という感じです。しかし、以下のような問題にフラスト…

Remixの複数mutation実装にzodのdiscriminatedUnionを活用する

Remixでデータの更新を行う際に利用するactionですが、1つのリソースに対する複数の更新操作やユースケースごとの更新操作をまとめたくなる場面があります。例えばTODOアプリケーションであれば、アイテムの追加・更新・削除を行いたいケースが考えられます…

Remixのresource routeをリダイレクト用途で使う

Resource Routes とは Remixでは「特定のUIを定義せずにデータを返却するだけのroute」すなわちResource Routes という機能が備わっています。例えば、公式ドキュメントではPDFをダウンロードする用途が紹介されています。 remix.run 今回は、この resource …

Remixの toast notification

はじめに Remix で以下のような toast notification を実装する方法について試行錯誤したログです。 今回紹介するサンプル実装はこちらのリポジトリに置いています。 https://github.com/Kazuhiro-Mimaki/remix-toast-notification 単一のページにおける toa…

git checkout の代わりに git switch / git restore を使う

これまで git checkout を使っていたのですが、職場で git switch / git restore について会話する機会があり、遅ればせながら乗り換えようかなと思いました。 ※ docs に THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE. と書かれているため、将来…

はてなブログを開設しました

はてなブログを開設しました。 都内でソフトウェアエンジニアとして働いています。 当ブログではエンジニアリング・技術の話を中心に発信する予定です。 細々とでも続けていけたらと思います。