Logicky Blog

Logickyの開発ブログです

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

Rust(Rocket)でtracingを使った詳細なエラーログ出力とエラーハンドリングの改善をしてみました

Rust の Web フレームワークのRocketで作っている Web アプリで、tracing を使った詳細なエラーログ出力とエラーハンドリングの改善をしてみました。 前提 クリーンアーキテクチャっぽい構成を想定しています。controller, use_case, repository があります…

Rust(Rocket)でsqlxを使って並列的にDBの統合テストをする

先日この投稿を書いたのですが、Rocket と sqlx でクリーンアーキテクチャっぽくしたものの、トランザクションをうまく使えなくて、都度 truncate を実行する直列的なテストをしていましたが、超簡単にトランザクションが使えることにやっと気づいたので、並…

c++23で順列を扱う

C++

c++23 にする 下記で c++23 でコンパイルできる。 g++ -std=c++23 hoge.cpp -o hoge.out vscode のコンパイルするタスクも下記で c++23 でコンパイルできる。 { "version": "2.0.0", "tasks": [ { "label": "c++ build for AtCoder", "type": "shell", "comm…

WSL2のArchLinuxのpacmanのアップデートでトラブった時の解消法

これが魔法のコマンドです。 sudo pacman -Sy archlinux-keyring && sudo pacman -Syu

AtCoderをc++でやるときのWSL2環境設定メモ

参照 AtCoder の C++環境構築 VSCode+WSL2 で快適に! メモ 基本上記の通りにやったらいい感じになりました。一部自分なりの設定に変えたりした部分があったのでメモ。 コンパイルの自動化をタスク化する場合の設定例 { "version": "2.0.0", "tasks": [ { "l…

VS Codeでvimプラグインを使っていると日本語入力がおかしくなる件

参照 VS Code で VSCodeVim v1.26.0 プラグインを利用時に文字変換が変な挙動になったときの対処方法 メモ まさに上記記事の状況がおきており、日本語入力時に vscode(vim)が使い物にならない状況になっていました。1 つ前のバージョンに戻したらとりあえず…

RustのRocketとSqlxでクリーンアーキテクチャっぽいやつを作ってみました

Rust の Rocket と sqlx でクリーンアーキテクチャっぽくして、ディレクトリとか モジュールもなるべくいい感じに分けつつ、テストもしやすい・モックも作りやすい状態を、頑張って作ってみました。 以前 Axum でも同じようなことをやりました 以前 Axum で…

SvelteKitでCookieはどう生きるか

SvelteKit には、クライアントとサーバ両方の側面がありますが、今開発中のシステムは、SvelteKit をフロントとして、バックエンドに API サーバを置いています。 SvelteKit は、http://localhost:5137 にあり、API サーバは、 http://localhost:8000 にあり…

Rocketでデータベース設定を環境によって切り替える

設定ファイルと環境変数 ここに書いてありますが、Rocket は Rocket.toml というファイルで設定を管理できます。また、環境変数もROCKET_xxxxという形式にすることで、Rocket.toml の値を上書きすることができます。そして、環境変数にROCKET_PROFILE=devな…

RustのRocketでエラーハンドリング

Rocketで controller のハンドラ関数でリクエストを受けて、use_case や repository で詳細の処理を実行するようになっています。use_case, repository で発生したエラー毎にレスポンス時のステータスコードを決めないといけないです。 ですので、use_case, …

tmuxとかnvimとかVSCodeとかの設定の整理(Windows)

久しぶりに tmux, nvim, VSCode の設定やショートカットキーなどを整理したり、思い出したりしたいと思います。 Windows11 で WSL2 の ArchLinux を使っています。 tmux 設定内容 .tmux.conf キーバインドのメモ Ctrl+s H(J, K, L)で pane リサイズ Shift+le…

SvelteKitで親コンポーネントから子コンポーネントの関数を実行する

子コンポーネントで、関数を export しておきます。 Child.svelte <script lang="ts"> export const hoge = () => { console.log("hoge"); } </script> <div>Child</div> 親コンポーネントから子コンポーネント利用する際に、下記のように子コンポーネントの関数を bind します。 +page.svelte <script lang="ts"> imp</script>…

RustのRocketのメモ(リクエスト)

Rust のRocketのリクエスト関連のメモです。ここを読みながら確認してみたこと等をメモします。 リクエスト パラメータの型 下記のようにage:u8となっている場合、/bob/32/trueとかだと OK。でも/bob/a/trueとか u8 型を求めているのに文字列とかだと 404 エ…

RustのRocketアプリをrenderにデプロイする

下記のような超シンプルな Rocket アプリを render にデプロイしてみます。 #[macro_use] extern crate rocket; #[get("/")] fn index() -> &'static str { "Hello, world!" } #[launch] fn rocket() -> _ { rocket::build().mount("/", routes![index]) } …

SvelteKit, Rust, Cloudflare, renderでブログサイトを作りました

SvelteKitの prerender モードで、このブログサイトを作りました。ブログ記事は md ファイルをビルド時に html ファイル化しています。 Markdown を html に変換するのは、MDsveXを使いました。トップページに Github の各種情報(コミット数、獲得スター数…

SvelteKitでurqlとgraphql-codegen(client-preset)を使って GraphQLサーバにリクエストする

SvelteKit で urql と graphql-codegen を使って GraphQL サーバにリクエストするメモです。graphql-codegen の client-preset というのを使っています。 リクエストする GraphQL サーバは下記を使わせていただきました。 https://swapi-graphql.netlify.app…

NestJS + Prisma + GraphQL + Passportの始め方のメモ

NestJSとPrismaと PostgreSQL を使ってブログっぽいものを作ります。NestJS で開発するときの始め方のメモです。GraphQL(コードファースト)も使います。 NestJS のプロジェクトを作成 下記で作成されます。今回は npm を使います。 nest new cms Prisma を…

Next.js(Client)とNestJS(API)でNextAuthの認証を使ってみた

JWT 関連の RFC (by ChatGPT4) RFC 7519 - JSON Web Token (JWT): JWT の基本概念、データ構造、エンコーディング手順を定義しています。これは JWT の基本的な仕様を提供するドキュメントです。 RFC 7520 - Examples of Protecting Content Using JSON Obje…