Rails系
Railsを業務でそれなりに読み書きし始めた年だった。まだまだひよっこですけれど。
Railsは暗黙的にメソッドを作ってくれるというケースが多いので、最初はgrepしても定義元が出てこない、ということにやや戸惑った。しかし慣れた。
Railsの情報も追っていると楽しい。直近だとこういうissueが立っていた。
ActiveRecordのテーブルにカーソル合わせると、カラム一覧とその形が見られる機能がデフォルトで生えるだって!?最高じゃん。
あと、「設定より規約を優先する」という思想も好き。これはチーム開発でも言えることだと思う。
微細な設定のチューニングについて長い時間議論するよりも、もうこれは決まりなので守ろう、もしよりよい方法があるならば、ルールをアップデートしていこう、のスタンスの方が好みだ。統一感がでるし、議論の数が良い意味で減る(まあ、そのルールを作成して運用するのがキツいのだけど、、、)
また、フロントSWRでRails APIをfetchしてたらこういう不具合にも出くわした。これはけっこう、おもしろかった。
Zennのスクラップに貼ったが読めてないRails記事もあるので、ぼちぼち読めたらいいなと思う。
フロント系
業務で、8ページ分の予約カートエリアを、リアーキテクチャした。
支払いページを新しくしたときは、zodとReact Hook Formを使って、それなりに複雑そうな支払い方法フォームを作った。
この記事で紹介したフォームは簡易化してあって、うちのサービスは、「支払い」という概念に関するビジネスロジックの枝葉がかなり乱立していたので、もうちょい複雑なやつだった。けど作ってよかった、できたときすごい達成感があった。
そして、このプロジェクトの基本方針として、状態管理, バリデーション, data fetchなど、フロントでやることのほぼ全てのロジックがreduxに集まっている状況を、それぞれより適切なライブラリに譲渡する、というのを設けていたので、それをもとに進めた。
具体的には、
APIキャッシュ: SWR
バリデーション: zod
フォームの状態管理: React Hook Form
ページ, エリアを跨いだ状態管理: Redux
その他軽微な状態管理: useState
的な構成に変えていった。
結果的に、責務分離的にも、やりたいことがよりシンプルに表現できるようになった、という意味合いでも、この方針でリアーキテクチャを進めていってよかったと思う。
あと、予約カートエリアの諸々のライブラリのバージョンがかなり最新から遅れていたり、そもそも使っているライブラリが既にdeprecatedだったりしたので、それも更新した。
これで、
Redux → Redux Toolkit
react-router-redux → react-router-dom
react-reduxのメジャーバージョンを2個あげる
がやれた。
リアーキテクチャはほんとに楽しかった。俺は、新しいものを新しい技術で作るのも好きだけど、社内で負債と呼ばれるものに自分なりにアプローチしたり、既存の仕組みを理解したり、bug fixしたり、そういう守りっぽいことの方が好きなのかもしれない、というのに少し気付けた期間だったと思う。
収穫が多かった。
OSS
Vike.jsにいくつかPRを出して、コントリビュートした。
そしたら、メンテナからコラボレーターになるかと声をかけられたので、なった。
でもそれっきり全然コントリビュートできてない。ちょっと私生活バタバタしてるので、余裕のある時にでいいな、となっている。
私生活
いろいろあったが、よく耐えた年だったと思う。
周りの人に支えられたし、周りの人を支えることのできた年だった。
より音楽を好きになった。音楽は本当に素晴らしい営みだと思う。いつかその領域にコントリビュートできることを若干夢見ている。
まとめ
今年も、周りの人に感謝をして、俺にやれることはやる、やれないことはやらない、で、過ごしていく。