「関心の分離」という言葉の違和感
関心(concern)は相対的なもの
もしも何か構成の変更をしたいときに、その理由として「関心の分離」という言葉しか出てこないなら、何かがおかしいと思う。
同時に扱いたいもの、扱うべきものを、バラバラにするのはおかしい
htmlとcssとjsを関心の分離とよく言われてたが、
コンポーネントで設計する現代においては、
そもそも1つのコンポーネントが
htmlの要素と
スタイリングのcssと
UIとしての挙動のjs
全部に関心があって、それをまとめて書いたり、設計したい
"コンポーネント"に関心がある
良かれと思って、構造、スタイル、挙動を別の関心事としてバラバラにしたけど、関心が変わったせいで崩れた
何に関心があるのか、について先に掲げるべきで、「関心の分離」という言葉が、理解の助けになることはない
https://gyazo.com/d52c3a8688d108796153e2b893065563
button, date picker ...とか、とにかくアプリケーションが用意したい「関心事」があり、
それは、クライアントで完結したり、サーバへの問い合わせが必要だったり、DBの準備が必要だったりする
とにかくそれらの実装が、ひとつのモジュールとしてまとまっている方が楽である
作るのも楽
メンテするのも楽
修正、維持管理するのも楽
モジュール間の境界には、注視する
開発者の注意力もそうだし、型であったり何かツールで支援すると一番良い
こういうことを考えると、クライアントコンポーネントにSQLを書くのは理にかなっている
code:ts
onClick{() => {
const result = sqlselect * from posts where ....
このボタンをクリックしたら、postsからデータを取ってきて表示する、というようなことをしたいときに、セマンティクスとしてこれは非常に妥当である
セキュリティとかそこらへんの話は当然意識はすべきだが、それはserver actionsでなくてもそうだし
我々はスクリプト言語をメモリリークをあまり気にせず使えてしまえるようなものと同等になるかもしれない
初心者が自分の足を撃ちやすくなる、という点は同意である