境界づけられたコンテキストを跨いで共通化するな
@okunokentaro: 何度も言いたいことだけどTypeScriptを採用することでServerとClientのコードが共通化できるってのはほんと幻想で、共通化は実はあんますべきではなくて、言語採用のメリットはせいぜい「スキルが同じでいい」ってくらいです。 @okunokentaro: ClientとServerは本質的に別物なので、本質的に異なる2つの概念を同じコードで表そうとしていることが間違いなんですよ。異なる2概念が相互に依存しあっているものこそ「モデル」として定義すべきで、それはTypeScriptだからコードを共有できるという話題とは異なるのです。 @okunokentaro: 共通化すべきなのはコードではなくバリデーション要件(何文字以下であるべき、必須項目であるべき)くらいです。本当に共通化を検討すべきなのはJSON Schemaだ! @naoya_ito: 両方 TypeScript のプロジェクトやってるけど、両方で同じような実装出てきたら実装共通化するどころか設計が間違ってることを疑っている 共通化したの 24時間表記の日付ライブラリぐらいですね
@naoya_ito: 「設計が間違えている」というよりも、「モデリングを間違えている」という感じですかね @k1_c_: サーバーサイドTypeScriptで書け派閥に属してるけど、モチベーションは認知負荷軽減とコンウェイ則的分断効果の抑止だにゃ チームメンバー5人以下とかでフロントエンドバックエンド分離してるチームとかみると、生産性だいじょぶそ?って心配になるから
@irof: こないだも現場でしたなぁ。10年以上螺旋や振り子してる話なんだけど「終わった話」ではなく何度でも話し続けないといけないと思ってる。「将来できるといいね、この辺は解決したね、でも今もこの課題解決されてないね」って。で課題が解決されたら喜んで共通化しましょ。まだ道半ばよ。 @stin_factory: フロント側だけでも「ちょっと似てる」程度で共通化されて内部で分岐まみれになってるのをよく見るので、サーバー側も入ったら @voluntas: これは希望なんですが、クライアントもサーバーも別の言語でやって、あれ、ここだけは同じ実装がいいなというのは Rust などで実装し、 Wasm 化して、それぞれの言語で WasmRuntime から呼び出すというのがいつか来ると信じています。