simple-web-system technology

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

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

Claude Codeではてなブログに投稿した記事を、zennで投稿できるmarkdownに変換するClaude Skillを作ってもらった

こんな感じ github.com 精度上げるために、記事だけパースして余計なものの消してからllmで処理みたいな LLMの処理自体は、画像とかリンクをMarkdown用に変換すること(だと思う。そういう意図のプロンプトは書いたけど、ぶっちゃけちゃんと見てない。でも動…

Clean Architectureを物語で例えたらわかりやすくなった! 〜魔法のパン屋からひも解くClean Architectureの世界〜

はじめに システム開発の本や記事でよく目にする「Clean Architecture」。 でも、最初に図を見たとき、「円がいっぱい重なってるけど、結局どういうこと?」と思った方も多いのではないでしょうか。 私もそのひとりでした。 専門用語の説明を読んでも、なん…

Next.js 小規模アプリのためのシンプルなアーキテクチャ考えてみた

はじめに 小規模なNext.jsアプリを、学習コストを抑えつつ責務を明確にする方針で設計。最初はfsdで大体大丈夫ではと考えたが、学習コストが大きいため断念。 最終的には画面とビジネスロジックを、client = Bulletproof React と server = Clean Architectu…

Cloudflare D1メモ:local と remote の違いにハマった話

最近 Cloudflare D1 を触ってて、「あれ?データが反映されない?」みたいなことが起きた。 調べてみたら、wrangler 経由で D1 にアクセスするときに “local” と “remote” という概念があることを知った。 最初は「どうせ全部 Cloudflare 上(= remote)につ…

Reactコンポーネントファイルの命名規則について・決定版

TL;DR Reactのコンポーネントファイル(.tsx)の命名は 使っているUIライブラリに合わせるのが最適解。 - shadcn/ui → kebab-case - Material UI → UpperCamelCase ルールを増やすより、ライブラリに揃える方がチーム開発ではシンプルで楽。 命名規則の考え…

AIプログラミングの実装力の方程式 ~人間よ、成長せよ~

Claude Code等のAIエージェントを使い倒して思った個人的ポエムです AIプログラミングの実装力の方程式 AIプログラミングの実装力は、次の掛け算で決まる。 実装力 = LLMエージェントのパワー × 開発環境パワー × 人間のプログラミングスキル 一見シンプルだ…

AIによる技術記事生成用メモ

TL;DR AI に技術記事を書かせるときは、 「情報をブログ記事の自分用のメモ形式としてまとめて」 とプロンプトに入れると、シンプルで余計な文章が減って使いやすい。 おすすめプロンプト 情報をブログ記事の自分用のメモ形式としてまとめて なぜこれが良い…

LinuxやMacでWindowsのZipファイルを解凍する

概要 unarを使うといい。 unar は The Unarchiver のコマンドライン版で、ZIP や RAR など様々なアーカイブ形式に対応した解凍ツール。文字コード判別が優れており、Linux や Mac で日本語ファイル名が文字化けしがちな Windows 由来の ZIP を扱う際に便利。…

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

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

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 っても…