petitviolet_blog

@petitviolet blog

2025年度振り返り

恒例のやつ

petitviolet.hatenablog.com

毎度のことながら1年ぶりのポスト。

仕事

すっかりおなじみとなった、自社サービスであるポチコと受託開発の2本立て。

受託開発は主に夏〜秋くらいまでの仕事でした。 去年の記事で書いてた

受託開発については、2024年の10月頃から新しい案件の開発がスタートしており、プロトタイプ的な実装だったり多少の空白期間もあるもののすでに半年ほど開発していることになる。

これの開発が順調に進行して納品したという形。

それ以外はだいたいポチコの開発。 機能追加やバグfixのリリースがたくさん。

$ gh release list --limit 500 --json tagName,publishedAt \
%   --jq '[.[] | select(.publishedAt >= "2025-04-01")] | length'
115

人数・期間の割には、なかなかのペースで開発してたんじゃないですかね。
そしてここ数カ月は非常に大きい機能をコツコツ開発しているので、近々ビッグバンリリースが予定されています(ぎり来年度になりそう)。

技術的なこと

受託案件については昨年度の記事で書いた通り

受託案件については導入の機会を窺っていたRemixを採用し、Remix + Park-UI + Prismaという構成になった。

開発途中でRemix V2がReact Router v7と合流してしまっていて、ドキュメント見る限りでは移行しても問題なさそうだったけど、スケジュールの兼ね合いでそのままRemix V2になってしまっているのが心残り。
雰囲気の違うRemix V3も控えているのでキャッチアップは続けておきたいところ。

ほかだとStripeでの3DS実装、pg_bigm使った全文検索、リッチエディタのTiptap、testcontainers使ったテストとか辺りがトピック的には面白かった。

既存事業のポチコについては、何かと古いままになっていたものを新しくしたのがちょこちょこ。tRPCやZod v4いれたり、LPをAstroを使って静的ビルドできるようにしたりしてた。
進行中のデカい機能ではFirestoreではなく様々な事情からPostgreSQLを使うようにして併存させることにしたので、将来的にはPostgreSQLに一本化したいところ。
Firestore辛いのでもう―――。 とはいえ移行はめちゃくちゃ大変なのでどうしたもんかという悩み。

そういえば今年度は100% TypeScriptしか書いてないかもしれない(terraformとかは除く)。 新しいプログラミング言語を学習する意欲が全く湧かないの、良いのか悪いのかわからない。
なんか特殊な要件でもなければTSでいいじゃんという気持ちに落ち着いている。

それはそうとこの一年間は自分にとってまさにAI元年といったところで、CursorやらClaude CodeとかのAI使うことが格段に増えた。
今のところは新規でまるっとお願いして開発してもらうみたいなボリュームでは使っていないが、今後はそうなっていくんだろうな〜という感覚。
個人的にはあんまり興味ないフロントエンドのスタイルとかデザイン実装を委託できるパートナーみたいな捉え方をしている。

プライベート

特に進学とかそういうイベントがあった年でもないので大きな変化はないかな〜。
去年は荒ぶっていた体調も落ち着いて特に大事ない感じ。

ここしばらく頑張ってたのはナイトレインですね、カンストするまでやりました。

カンストしたときのやつ

後はSwitch2を手に入れたのでしばらくはマリカーとかマリオパーティを家族で楽しくやってたけど、つい先日からはぽこあポケモンに家族ではまってずーっとやってる。

2024年度振り返り

恒例のやつ

petitviolet.hatenablog.com

またしても1年ぶりのポストとなった。

仕事

昨年度から引き続き、自社サービスであるポチコと受託開発の2本立て。

ポチコについては、かねてより実装を進めていたMessaging API連携やLIFF版のリリースが2024年の4月頃。
そして管理画面のデザインリニューアルをリリースしたのが2024年の7月頃。
他にも質問フォーム機能やメール通知とかCSVダウンロードとか、予約サービスとして機能的に大きなアップデートが出来た一年間だったと思う。

受託開発については、2024年の10月頃から新しい案件の開発がスタートしており、プロトタイプ的な実装だったり多少の空白期間もあるもののすでに半年ほど開発していることになる。
まだ開発は始まっていないものの大型案件の機運もあり、まだまだ暇にはならなさそうでありがたい限り。

技術的なこと

ポチコについて、画面のリデザインによって長らくお世話になっていたReact Adminを引っ剥がすことに成功した。 ちょっとずつカスタマイズしたい要件が増えてきてReact Adminの中で独自のページを作るというなんとも虚しい実装を続けていた時期もあったが、色々と無理が出てきたのでまるごとリプレイスした。 Next.jsやRemixといったフレームワークは何も使わず、react-router + Tanstack Query + Chakra-UI(V2)を使った手作り感満載のコードとなった。

note.com

受託案件については導入の機会を窺っていたRemixを採用し、Remix + Park-UI + Prismaという構成になった。
今のところ、Remixには非常に満足している。
ただ、npm workspaceを使ったmonorepo構成でのビルド周り(特にprisma generateしたやつ)や起動用スクリプトあたりは経験値の少なさに起因する苦労が大いにあった。

もう少しスムーズに立ち上げられればよかったと思うし、それらの問題が完全に解決したかどうか不安というのが今の懸念材料といえそう。
フォーム周りはConform + zodで実装していて、バリデーション周りは確かにめちゃくちゃすっきり書けて体験がよい。

conform.guide

とはいえ動的なフォーム要素の実装はIntent Buttonを利用することを想定されているのだが、正直使いづらいみたいな感想もあるにはある。

何にせよ新規案件があるたびに技術を見直すチャンスがあるというのはとてもありがたい環境である。 ということでこの1年は完全にTypeScriptなプログラマーをやっていた。

プライベート

2024年頭からずっと不調だったのだが、最終的には咳喘息と診断されて大学病院に何度か通うはめになった。
なんだか医者にかかる回数の多い一年だったが、健康診断では問題0だったのでなんかよくわからん。健康ってなに ?

だいたい在宅勤務しているので家族との時間もふんだんに取れており、ありがたい限りである。

昨年度から引き続きR6Sを続けているが伸び悩んでいてつらい気持ちになっている。

2023年度振り返り

恒例のやつ

petitviolet.hatenablog.com

めっきり筆が遠のいてしまって一年ぶりになってしまっていた。

仕事

はりきってライブゲーム開発やっていたが、紆余曲折を経てサ終してしまった。
いろいろなことを経験できたプロジェクトだったのでわりと感慨深い。
前々職では新規事業開発、すなわち0からの開発というのは何度か経験があるものの、企画段階から携わって運用ならぬサービス運営もひっくるめて全部関わるというのは初めてだった。
技術的な観点での話は会社noteに残してあるのでもし興味があればそちらをどうぞ。

note.com

ゲーム開発が一段落してからは継続してポチコの開発はしつつも、大きめな受託開発案件が進行している。
機能的な開発はインフラから実装までほぼ全て1人で自由にやっているしスケジュールにも比較的余裕もある(今のところ)しでのびのびとやらせてもらっている。

受託開発という観点ではポエムも書いた。

note.com

技術的なこと

ゲーム開発についての技術は先述のnoteに書いた通り。
新規の案件についてはCloud Run, Firebase Hosting, PostgreSQL, Terraform, TypeScript, tRPC, Prisma, React, Vite, ChakraUIというあたりがキーワードになりそう。
Next.js/Remixも検討していたけど検討に検討を重ねた結果React + Viteという構成になり、react-router-domでルーティングを手作りしている。
スタイリングには当初ChakraUIの後継であるらしいPandaCSSArkUIというライブラリを使って実装していたが、まだ時期尚早という判断をしてChakraUIに切り戻したという経緯がある。
その他のトピックとしてはjotaiという状態管理ライブラリを導入しており、ReactのcontextやuseStateあたりと併用しつつも雑にコンポーネントまたいだ状態管理を行うなどとても便利に使えているので今後も利用していく所存。

既存事業のポチコについてはReact-Adminを捨ててフロントを書き直しており、こちらも同様にNext.js/RemixではなくReact + Vite + react-router-domという構成。

Next.jsやRemixの採用を見送った理由としては、要するに必要がなかった。もちろん学習コストも大きなポイントではある。 結局シンプルなSPAを作るのであればルーティングとデータフェッチ周りだけでよく、これらのフレームワークには要求以上の機能があり、想定されるpros/consを天秤にかけた結果いらないかな、という判断。
例えばSSRとかAppRouterとか魔改造fetchとか、Next.jsを使うために必要な知識量が多く規模感的にも関わる人数的にも、フレームワークで楽できることよりもそれにまつわる学習コストや調査コストの方が大きくなりそうだという点もある。
RemixについてはNext.jsよりは学習コストも低そうだし魔改造感も薄くてNested Routesが特に魅力的だったが、そこまで突き詰めてUXを改善したいというタイプのアプリケーションでもなかったため見送った。次のチャンスを伺っているが果たして...。

ということでここ半年くらいはTypeScript, Nodeを主戦場に現場のプログラマーをしている。このまま現役であり続けたい。

プライベート

2024年に入ってからインフルエンザA→気管支炎→気管支炎(2回目)→インフルエンザB→胃腸炎→風邪と半分くらい体調を崩していて本当にだめ。
これが30代半ばの老いということなのか...?

子どもは順調に成長してもう小学生とかいう段階まで来てしまった。時が経つのが早すぎる。

ところがそんな貴重な時間をここ半年くらいはレインボーシックスシージで溶かしている。FPSというジャンル自体ほぼやったことなかったけど、悪くない、悪くない...。これのせいで慢性的な睡眠不足になっていることが体調不良の原因なのかもしれん。