2022/8/29(月)

うおーコメントシステム開発ひと段落した!細かいアラとか付けたい機能とかは色々あるけどとにかく形になった!U-22でなんかの賞をもらえるかどうかは分からんが、Rust×VueによるWeb開発のなかなかいい経験になった。いろいろ勉強になった。

何か知らんけどdiesel_embed_migrationがどのバイナリに埋め込むかによって挙動が違う…

アプリ本体を提供するmain.rsとCLI操作ツールを提供するbin/cli.rsがあるのだが、embedded_migrations::run_with_outputをどちらでやるかによって異なる挙動を起こす。main.rsでやるとなんか上手く行くがbin/cli.rsでやるとMigrationDirectoryNotFoundが出る。diesel_embedクレートを使っていればマイグレーション関係の処理は全て実行ファイルに埋め込まれるもののはずなのだが。

とにかくデータベースのセットアップはmain.rsからやるという場当たり的な対処で上手く行った。

それから、entry-point.shというスクリプトにコンテナスタート時の処理の全てをまとめたのだが、どうも順番が前後している気がする。シェルスクリプトでそんなことある???とりあえずechoコマンドで進捗を報告させてsleepでいちいちウェイトを挟んだら変な感じの動きはしなくなった。さすがに自分の勘違いだとは思うが、こんなことで変な動きがなくなるならそれに越したことはない。

cargo buildの結果(targetフォルダ)やnode_modulesをdocker buildのたびに手作業で除いていたのだが、.dockerignoreという文明の利器があることをだいぶ作業が進んでから知った。これはひどい。

ページに埋め込む際の高さ調節機構が実装されないまま放置されていたのに気づいたので慌てて実装した。8/1の日報にもあるのでこの時に勉強も実験も一度したはずなのだが、実装はしていなかったらしい。

提出直前になってちょっとした重要なバグに気付いた。mailtrapからmailhogに切り替えて実験したところ、base64が上手く解釈されない。どうやらlettreは非ASCII文字のbase64エンコードはデフォでやってくれるようだが、content-typeとencodingヘッダは指定しないと入れてくれないらしい。危ない危ない。

こまごまとした部分を整え、READMEとLICENSEを入れ、とりあえず「ちゃんとしたOSSプロジェクトです」みたいな風情を出した。ビルドしたイメージはDockerhubにも公開し、誰でも利用できるようになった。この再利用性がOSSの面白さよ。githubと連携してDockerhubに自動デプロイみたいなことも出来るらしいが、そこまで手を回す余裕はない。

次はVR開発フレームワークの方に移る。こっちは間に合うかな~。


区切りを付けようと躍起になって生活リズムが崩れてしまった。まあ許容範囲かもしれないがよくなーい。

Categories: