simple-web-system technology

Webに関する技術をシンプルに扱うブログ

プログラマーが考える整理整頓術メモ

最近、部屋の整理をしていて「これってプログラミングと同じだな」と思ったので、メモがてらまとめてみる。 完成されたノウハウじゃなくて、考えながら書き出した走り書きみたいなもの。 分類の基準を適当に決めない プログラムの設計と一緒で、最初に適当に…

TestcontainersでMySQLの時刻を固定した話

背景 E2EテストでTestcontainers(docker)を使ってMySQLを動かしてたが、サーバー側でデータを作成したときに created_at の値が一定にならず、snapshotテストが毎回落ちる問題があった。 内部でNOW() や CURRENT_TIMESTAMP を使った処理が日によって変わるの…

XとかでのAIに関するポストに対するモヤモヤメモ

AIで遊んでいる記事や、プログラミング等の実践的なユースケースに関してはすごく面白い。 しかし、最近はあんまりな投稿が多くてモヤモヤするので、LLM(Grok)と対話してどこがモヤモヤするのかをまとめた AIのSNS投稿、なんかモヤモヤするんだよね。なん…

gum でかっこいいUIのシェルスクリプトを作る

TL;DR 個人用のwhich-keyを作りたくて、何で作ればいいか検討してみたが shellscript + gumがよかった。 shellscriptにした理由は、ファイル一つで完結したかったのと、cdが楽だし、セットアップも簡単だったのが理由。 ただ、それだけだと味気ないのでshell…

react-router v7でいい感じなディレクトリ構造(ソフトウェアアーキテクチャ)

自分でreact-router v7で作ったアプリの経験から良さそうだと思ったディレクトリ構造を geminiに聞きながら整理した。 良さそうだったら参考にしてください。 github.com TODO .clinerulesとcompolot-instructions.mdをもっと詳しく書く

ts-morphを使ってファイル名をcamel caseからsnake caseにリファクタリング(typescript)

typescriptでファイル名をcamel caseからsnake caseに変換する必要があったので調べたところ、ts-morphがとても良かった ts-morph の概要 ts-morph は、TypeScript コードの静的解析、操作、生成をプログラム的に行うためのライブラリである。 AST (Abstract…

Makefile とtmux で複数サービス起動をゆるく管理する

最近、フロントエンド・API・データベースの3つとか、microserviceとかで、複数のサービスを同時に起動して開発することが増えてきました。そうなると気になるのが、「あれ、DB 起動してから API 起動しないとエラーになっちゃうよね…」「ポート 3000 っても…