この記事の本質は「テーブルに状態を持たせるな」というよりメンタルモデルの話だと思っていて、退会などの時系列事実をイベントとして登録する際にトリガーで最新ステータスを更新し、業務処理はそのステータスを参照する方式でも全く問題ない様に思う。状態を持つこと自体は悪ではなく、大事なのは「過去の事実を失わない仕組み」にしておくことかと。
特に何度でも退会を許すようなシステムでは、過去の退会履歴という事実が別の要件に作用してしまう可能性もあり、僕はどちらかというと事実を APPEND ONLY で残し、状態は派生情報として管理する方が堅牢だと思う。
2015: "Learn jQuery"
2016: "jQuery is dead, learn Angular"
2017: "Angular is dead, learn React"
2018: "React is complex, learn Vue"
2019: "Vue is too simple, learn React again"
2020: "React is old, learn Svelte"
2021: "Svelte is niche, learn Next.js"
2022: "Next.js is bloated, learn Remix"
2023: "Remix is too new, learn Astro"
2024: "Astro is limited, learn Next.js again"
2025: "Next.js is complex, learn..."
STOP.
Just stop.
You don't have a framework problem.
You have a fundamentals problem.
Master:
- JavaScript (the language)
- HTTP (how browsers work)
- State management (data flow)
- Performance (why things are slow)
Then frameworks become tools, not religions.
I've shipped products in:
- React (2018)
- Vue (2020)
- Svelte (2022)
- Vanilla JS (2024)
You know what mattered?
Understanding the web platform.
Framework churn is a feature, not a bug.
It keeps you buying courses.
It keeps you feeling behind.
It keeps you dependent.
Learn the web.
Frameworks will make sense.
Skip the web?
You'll chase frameworks forever.
Kind of glad to have begun coding in the 90s.
Skipped Kubernetes.
Skipped graphql.
Skipped microservices.
Skipped react unless absolutely necessary.
Got mocked a bunch by “senior devs” who started coding in 2010. Didn’t care, preferred shipping value to customers rather than technical wankery that only bloated teams and slowed delivery.
Glad those senior devs have now earned their title and realizing it was dumb too.
You can’t replace actual experience.