TypeScript part4 (396レス)
1-

10: 2022/02/06(日)14:21 ID:Fo3XpFx5(1/12) AAS
型バリデーションできない人には(TypeScriptは)難しい
11: 2022/02/06(日)14:32 ID:grglIiaK(1/2) AAS
鯖サイドは外界とのIOが多いから型バリデーションが増えすぎるのが課題かな
あとはPODの濫用が標準的なコーディングスタイルとして受け入れられてる点が問題だと感じた
これじゃ型があってても不変条件を満たしているかまではわからん
12
(1): 2022/02/06(日)14:39 ID:Fo3XpFx5(2/12) AAS
いやPODで問題ないでしょReadonlyなりas const付ければいいじゃん
13
(1): 2022/02/06(日)14:43 ID:23zQCz2C(2/4) AAS
PODってなんぞ?
Plain Object Darkness?
14: 2022/02/06(日)15:05 ID:Fo3XpFx5(3/12) AAS
型の話だしググった感じPlain Old Data型の事だと思って回答した。
プリミティブ及びプリミティブで構成されたオブジェクトからなるコンストラクタを持たないオブジェクト。ざっくり構造体みたいなオブジェクトって意味かなと。C++用語のようだ
15: 2022/02/06(日)15:19 ID:23zQCz2C(3/4) AAS
つまりPlatina Opal Diamond・・・ってコト!?
16
(1): 2022/02/06(日)15:33 ID:grglIiaK(2/2) AAS
>>12
そも辺りはスケールによる
ドメインが薄いならそれでなんとかなるかもしれない
実際の業務システムはどうしてもドメインが大きくなるからちゃんとクラス化しよう

>>13
Plain Old Data
プリミティブとPODの属性だけを持っている単純な型のこと
省2
17
(1): 2022/02/06(日)15:46 ID:Fo3XpFx5(4/12) AAS
>>16
『ドメインが薄い』とか何用語だ。ググっても出てこないような独自なのじゃなくて、もうちょい一般的な用語使って?

色々組み合わせるにしてもTS単独で大きなものを組むにしても入り口から出口までimmutableならそれで問題ないと思うんだけど。
デザインパターンにこだわり過ぎてない?
18
(1): 2022/02/06(日)16:28 ID:d9+JDYY/(1) AAS
頭悪いんだよ
融通のきかない頭でっかち
19: 2022/02/06(日)16:57 ID:23zQCz2C(4/4) AAS
immutable な POD で FP すれば GOOD じゃん
class は not json serializable ビコーズチョベリバ
20: 2022/02/06(日)17:24 ID:Fo3XpFx5(5/12) AAS
無茶苦茶言ってるかと思ったらちゃんとした内容で草w
21
(2): 2022/02/06(日)17:45 ID:cUJBT0A1(1) AAS
>>17
すまん
DDDのドメイン層を連想してくれると思って言った

イミュータブルだから大丈夫ってのは規模の小さなシステムでならたしかに間違いではない
ただ規模が大きくなるにつれてそれでは難しくなるのもまた事実
というのもイミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い
なのでプログラムにバグが紛れ込みやすくなってしまう
省8
22
(1): 2022/02/06(日)18:34 ID:Fo3XpFx5(6/12) AAS
>>21
> イミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い
不正なイミュータブルオブジェクトの問題ってなに?
イミュータブルオブジェクトがイミュータブルオブジェクトにどうやって影響を与えるのさ。

> 特定の型に対する演算がプログラムのあちこちに分散してしまい凝集度が下がって大混乱
疎結合になってむしろ良いことでは?
TSにおいて凝集度はクラスで担保すべきでは無いでしょ。
23
(1): 2022/02/06(日)18:49 ID:K22p1cEy(1) AAS
>>22
不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い
その連鎖はいずれIO境界まで辿り着きユーザーに間違ったAPIレスポンスを返したりデータベースに間違ったデータを格納したりする

関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる?
もちろん途中でバリデーションをかけて落とすことはできるだろうがそれではバリデーションが増えすぎて手に負えなくなる
なのでそもそも間違ったオブジェクトを作れないようにしよう
作れないものを関数に渡すことはできないので安心だ
省3
24
(1): 2022/02/06(日)19:01 ID:Fo3XpFx5(7/12) AAS
>>23
> 不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い
繰り返しになるけど、イミュータブルオブジェクトはイミュータブルオブジェクトに影響与えないよ?

> 関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる?
間違ったオブジェクト渡らないよ? なんの為の型だと思ってるの? structとか使わないの?
データの入り口(IO等)で型バリデーションすればあとは型が化けたりしないよ。
25
(1): 2022/02/06(日)19:06 ID:AuLf6V7C(1/7) AAS
>>21
> Jsonを必要としているのは主にIOを司る層であってそれはドメイン層ではない
> 異なる層が負うべき責務を別の層が引き受けるのはクリーンな設計とは言えないよね
> なのでドメイン層のクラスがJson Serializableである必要はない
横だがこれは完全に間違ってるだろ。

シリアライズするのは確かにI/O側だが、他言語も含めて今現在は
クラス側にserialize手段を用意するのが主流だ。TS知らんがJSと同じならtoJSON()。
省3
26
(1): 2022/02/06(日)19:18 ID:7lkHt7VO(1/9) AAS
>>24
つーか「影響を与える」と私が一言でも書いたかな?
君のレスでは影響を与えるって言葉を変化させるという意味で使ってるように読める
だが私はイミュータブルオブジェクトを元にイミュータブルオブジェクトを「生成する」としか書いてない
modifyとcreateはプログラミングにおいて全く異なる概念なので明確に区別することをおすすめする

PODなら間違ったデータを簡単に渡せる
IO境界だけでバリデーションすればいいという考え方は人間を信用しすぎている
省2
27
(1): 2022/02/06(日)19:28 ID:Fo3XpFx5(8/12) AAS
>>26
イミュータブルがイミュータブルなままなら問題ないって話しかしてないよ?

> 人間は間違える
そのためのTypeScriptのstructだよ?
28
(1): 2022/02/06(日)19:34 ID:7lkHt7VO(2/9) AAS
>>25
今はなっている?ないないなってない
適当なことを言わんでくれ

JSONやXMLやバイトストリームやフォームデータのような外界の都合を吸収してシステムが扱いやすい形式に変換する(あるいはその逆の流れ)はドメイン層の仕事じゃない
それは外界とやり取りをするための専門の層の仕事だ
29
(1): 2022/02/06(日)19:39 ID:7lkHt7VO(3/9) AAS
>>27
structだけじゃ人間は間違えるし問題あるって話をしてる
structではデータ型が合ってるところまでしか保証できない
インスタンスが抱えてるデータが満たすべき条件を満たしていることを保証できるか?そこがポイント
それを保証するにはstructでは不十分で完全コンストラクタを実装したクラスが不可欠
30
(1): 2022/02/06(日)20:00 ID:Fo3XpFx5(9/12) AAS
>>29
だからデータの入り口で型バリデーションするんだよ。
君は前スレの最後で暴れてた型バリデーションできない人だったか。話が通じないわけだ。
31
(1): 2022/02/06(日)20:04 ID:+4OSlPdc(1) AAS
>>30
だからそれじゃバリデーション箇所が多すぎて手が回らんっての
話がループしてるよ
32
(1): 2022/02/06(日)20:06 ID:Fo3XpFx5(10/12) AAS
>>31
だからIOとかfetchみたいなデータの入り口だけなんだよ?
33
(1): 2022/02/06(日)20:12 ID:W5e759ag(1) AAS
>>32
またループしてる
そこだけバリデーションしても人間のミスはカバーしきれない
規模の小さなシステムならなんとかなるかもしれないが大きなシステムでは絶対無理
これ以上は無限ループして時間の無駄っぽいね
34: 2022/02/06(日)20:14 ID:Fo3XpFx5(11/12) AAS
>>33
そうだね。止めてもいいよ。
35
(2): 2022/02/06(日)20:51 ID:AuLf6V7C(2/7) AAS
>>28
toJSONを呼ぶのはI/O層の仕事で、
toJSONを定義するのはドメイン層の仕事だよ。

つか、そうじゃないと無理なんだよ。
JSONでは対応出来ない型があるから、何が入っているか分からない状態ではシリアライズは出来ない。
逆に言えば何でもシリアライズ出来れば全部I/O側に任せる事は出来るのだが、
現時点で現実的にこれはバイトストリームしかないから、バイナリデータでメモリダンプ形式で良ければ出来るけど、
省1
36
(1): 2022/02/06(日)21:05 ID:Y8lZmwFL(1) AAS
>>35
ん?別の人か?

ドメイン側が提供するのは属性の読み取りアクセスと同等の引数を受け取る完全コンストラクタオーバーロードだけ
読み取った属性を外界が要求する形式に整形、シリアライズする(あるいはその逆)のはIO層の仕事

どの外界とどんな形式でやり取りするのか?
ドメイン層はそんなことは知らないし知ってはいけない
だから外界に依存しない純粋な読み取り属性とコンストラクタでIO層と連携する
省1
37
(3): 2022/02/06(日)21:14 ID:AuLf6V7C(3/7) AAS
>>36
まあそれでも出来るけど、それが面倒で二度手間で意味無いからみんなPODを使ってるんだと思うぞ。

FizzBuzzEnterpriseEditionとか、君は本気でやりそうだね。
外部リンク:github.com
38: 2022/02/06(日)21:24 ID:Fo3XpFx5(12/12) AAS
>>37
なんだこれww
39: 2022/02/06(日)21:25 ID:7lkHt7VO(4/9) AAS
>>37
君も話がループしてるね
面倒だからPODで済ませるで通じるちっぽけな規模ならそれでいいんだよ私は一貫してそこは否定してないでしょ?
それなりに規模が大きくなった時の話をしてんの

FizzBuzzをエンタープライズの手法で作るのが馬鹿馬鹿しいのと同じように
エンタープライズのシステムをFizzBuzzを書くようなノリで作るのも馬鹿馬鹿しいってこと
40
(1): 2022/02/06(日)21:33 ID:7lkHt7VO(5/9) AAS
>>35
ちなみにバイナリでシリアライズするのはprotocol buffersとか普通にあるよ

で、どんな形式で通信すんの?JSON?バイナリ?XML?CSV?
そんなのはドメイン側は知りたくない絶対に知りたくない
ドメイン側がシリアライズの責務を負ってしまったらじゃあ通信の形式が増えるたびにドメイン側を拡張するのか?
そんなのドメイン側の本質とは全く関係ない通信様式の問題なのに?
41: 2022/02/06(日)22:02 ID:AuLf6V7C(4/7) AAS
>>40
JavaScriptといえばJSON以外無い。
そしてXMLもDOMParserでどうにでもなる。

通信形式をドメイン側と分離するべきなのは「あらゆる形式に対応する」大前提でだ。
今時JSONかXMLしかないし、実際これで事足りるからみんなこれを使ってる。
密結合が駄目なのは「変更される可能性がある箇所」であって、何でもかんでも分離すればいいというものではない。
疎結合にすれば結局間接参照を中に挟むから、実行効率もコード効率も落ちるだけ。
省11
42
(1): 2022/02/06(日)22:16 ID:jR6D7dXS(1/3) AAS
PODがダメなら普通にclassを使えばいいじゃない
その class に完全コントスクラタと toJSON を実装すればいい

つか贅沢言いすぎや
TSほどJSON API と神話性高く、堅く書けて、ほどよく柔軟な言語ないで
ワイはバックエンドをGoで書かされているが、言語機能の貧弱さに発狂しそうや
爆速でコンパイルできても爆裂バグだらけじゃ話にならん
43: 2022/02/06(日)22:20 ID:jR6D7dXS(2/3) AAS
>>37
ヤバスギでしょ
44
(1): 2022/02/06(日)22:29 ID:7lkHt7VO(6/9) AAS
あらゆる形式に対応するためじゃない責務を明確に分けるため
仮に変更される可能性がなければ1つの関数でシステムを組むのか?そうはならんやろ
変更される予定がなくても責務は分けて作るんだよお仕事ではね

ProtobufはgRPC
バイナリで有名なのだと他にもMessage Packとか
こっちはゲームとかfluentdで有名

君はFizzBuzzのノリでエンタープライズ開発しそうだね
45
(1): 2022/02/06(日)22:30 ID:Uni4uKu0(1) AAS
そのDDDの文脈でTSだとバリデーションが必要で
GoやC#だとバリデーションが必要ないケースってどんな場合のこと?
46: 2022/02/06(日)22:33 ID:jR6D7dXS(3/3) AAS
>>45
Goは完全コンストラクタを実装できない、誰でもインタスンス作り放題ヤリ放題だからバリデーションなんかいらんのや!
バリデーションなんて軟弱フニャチンオカマ野郎がへっぴり腰を振ってるようなもんだ!
ファッキューLGBT!
47
(1): 2022/02/06(日)22:50 ID:7lkHt7VO(7/9) AAS
>>42
TypeScriptでもそうすれば良いじゃんってのはその通り
別にTypeScriptがclass使えないとかそういうことを問題視してるわけじゃぜんぜんないんだ

ここで最初に戻ってよくレスを読んでみて
私が提起した問題点はこれね
「PODの濫用が標準的なコーディングスタイルとして受け入れられてる」
この問題に関しては言語自体の話題じゃないんだよ
省5
48
(1): 2022/02/06(日)22:57 ID:AuLf6V7C(5/7) AAS
>>44
まあ君とは平行線のようだね。

> 仮に変更される可能性がなければ1つの関数でシステムを組むのか?
組むぞ。俺は変更される可能性がない所に依存するのは全く問題ないと見てる。
そして基本的に実行効率重視だから、無駄な事はしない。

君はドメインが「1年が365日である事を知っている必要はない」として、365すらもリテラルでは書かないのだろう。
そして人類が火星に到達した時、君のコードは無修正で動くが、俺のコードは役に立たない。
省13
49
(1): 2022/02/06(日)23:02 ID:AuLf6V7C(6/7) AAS
>>47
そりゃお前のノリでやってくれる奴はお前の畑の奴だよ。
それがJavaならそうすればいいだけ。

ただ、PODが駄目だってのはただの先入観で、
実際それでやってる奴が多くて、それでも世界が回ってるのなら、お前が勘違いしてるだけだよ。
50
(1): 2022/02/06(日)23:08 ID:7lkHt7VO(8/9) AAS
>>48
うん
TypeScripterとは分かり合えない人が多いだろうなとは思ってたけど君とは特に分かり合えないと思う
関数1つでシステム書く人を理解するのは私には不可能だ

365をリテラルで書かないのはDDDとかそれ以前の問題だと思うよ
君の書いたコードって四年に一回ぐらいバグ出してない?大丈夫?

処理効率が大事な部分でわざわざJSONを経由して効率落とすの?
省2
51
(1): 2022/02/06(日)23:09 ID:7lkHt7VO(9/9) AAS
>>49
それで回る規模の世界はそりゃ回るだろうね
これも何度も言ってるよね
52: 2022/02/06(日)23:34 ID:EROXxvgE(1) AAS
なら、その規模を確認してからでよかったんじゃね?
53: 2022/02/06(日)23:46 ID:AuLf6V7C(7/7) AAS
>>50
いずれにしてもJava出身でJava流の開発をしたいのならJavaを使うべきだよ。
シェアもJSよりはあるし、実際何とかなるだろう。
外部リンク:w3techs.com

> 処理効率が大事な部分でわざわざJSONを経由して効率落とすの?
開発効率を優先するって事だよ。多分Web系の連中はこっちを選択する。
(俺はWeb系ではないが)
省18
54: 2022/02/07(月)03:29 ID:yhez4jOW(1/12) AAS
あと、パフォーマンスレンジの選択も間違ってる。
スクリプト言語は、チャッチャと書いてチャッチャと動かす為の言語であって、
ゴリゴリ一生懸命コードを書いて、パフォーマンスやメンテナンス性を得るための言語ではない。

つまり、今回で言うと、
TS/JSはJSONで全く問題無い場合に使う言語であって、
JSONではパフォーマンスに問題があると分かっているのなら、GoかRustを使うべき。
勿論Javaでもいいが、RustならJavaより速い。
省13
55
(1): 2022/02/07(月)03:30 ID:yhez4jOW(2/12) AAS
それから、規模については他の人も指摘してるけど、一体何万行のTSを書く気だ?
やれば分かるが、鯖なんて結局DBから読んで加工して吐くだけだから、
APIだけ(HTML生成無し)なら3,000行も書けばいっぱしのサービスは出来てしまう。
あっけないほど簡単にね。スクリプト言語だから記述レベルが元々高いってのもあるけど。
(HTML部分はどこまで凝るかだけど、コード自体は独立してるから分量が多くなっても何ら問題ないはず)

Javaから見ればWeb系は多分1/10位で開発してる。
Redditで6人(言語不明)、diggも6人(Go)、discordが35人(Rust)とかだったと思ったよ。
省7
56: 2022/02/07(月)06:51 ID:b69Z+ASC(1) AAS
TSの知識が無くTSの開発者文化に馴染めず、理解してない言葉を並べ、決して間違いを認めず、自分のやり方に固執し、目の前にある概念を理解しようともしない。
う〜んこのおっさん。
57
(1): 2022/02/07(月)10:07 ID:WuDoUI67(1) AAS
>>55
ううむ…せめてレス読んで理解した上で応答してほしいんだが…

小さなシステムでやり方にこだわる必要はないってのは深夜3時までかけて書いた情熱的な作文でいちいち主張しなくても私も最初から認めてることでしょ?
昨日議論したのはそういう手法が通じない規模のシステムの話ね(何度もそう書いてるはずだが)
大きいシステムではうまくいかないよという話をしてるのに
その応答が小さなシステムならうまくいくから問題ないでは話が噛み合うわけがないよね
58
(2): 2022/02/07(月)11:40 ID:RorkGoUL(1/8) AAS
いやでもわかるわ
json serializable / deserializable で、かつ this 参照可能な method 生えてれば、カプセル化というかコードの凝縮度上げられるのになとは思う
まぁそういう toJSON, fromJSON を実装すれば的な話ではあるが

type Human に getFullName 実装したい時に
POD だと getFullName(h: Human) みたいになって

getFullName(h) じゃなく
h.getFullName() みたいにしたかったのに
省1
59
(1): 2022/02/07(月)11:50 ID:UTO8dkwM(1/11) AAS
凝集度をclassで確保する必要は無いんやで。
書き方についてもパイプライン演算子がstage2入ったしね
60
(1): 2022/02/07(月)11:58 ID:UTO8dkwM(2/11) AAS
Rustのstructとimplみたく、型とそれに付随する関数を収めたモジュールを作るんや。
61
(2): 2022/02/07(月)12:40 ID:yhez4jOW(3/12) AAS
>>57
だから何万行書くつもりなんだ?って聞いてるんだよ。

Webの場合は3層なりに強制的に分割されるし、状態管理はDBに丸投げ、View/UIはHTML/CSS/JSに丸投げなので、
鯖でやる事なんて大して無いんだよ。
セキュリティガバガバでよく、(=社内向けシステムに表示するだけとか)
ORMまでセットアップされてれば、
fizzbuzzの次には掲示板でも作ってみようか、となるくらい単純に出来てる。
省4
62: 2022/02/07(月)12:41 ID:yhez4jOW(4/12) AAS
> 大きいシステムではうまくいかないよという話をしてるのに
これが間違ってる。大きいシステムが存在しない世界なんだよ。
なぜなら、大きくなった部分は切り出され、まだ切り出されてない残り部分しか書かない方式だから。

ユーザーデータの管理が面倒です→DBとして切り出して丸投げ
HTML生成が面倒です→フレームワークに丸投げ
DBを触るのが面倒です→クエリビルダにしますか?ORMにしますか?
セッション管理も面倒です→ではこれもフレームワークで
省18
63
(2): 2022/02/07(月)12:44 ID:NQzt3ZES(1/2) AAS
>>60
それが完璧にできればいいんだが、それだと大きなシステムでは統制が行き届かず、処理が分散し凝集度が下がる、というのは過去の実績から明らかなんだよね
そのスタイルでやろうとすると人間がミスをしない、という前提が必要になるんだけど、現実的にそれは難しい
なので大きい案件では「間違えるためには手間がかかる状態」を作り出して人間のミスを抑止するわけ
クラスなら処理の置き場所がはっきりしてるだけでなく、他の場所に書こうとすると別のクラスが必要になるので間違いに気付き易くなる
なので自然と処理が然るべきクラスに集まって、凝集度が高まるって話

何度も何度も言ってるけど
省4
64
(1): 2022/02/07(月)12:57 ID:UTO8dkwM(3/11) AAS
>>63
モジュール関数がそうなる状況ではclassもそうなるよ?
65: 2022/02/07(月)12:59 ID:yhez4jOW(5/12) AAS
>>58
> getFullName(h) じゃなく
> h.getFullName() みたいにしたかったのに
> みたいな
それはC#で言う拡張メソッドだね。staticメソッドをインスタンスメソッドとして『記述出来る』
Goは逆にメソッドをstaticとして呼べたはずだけど。

この辺は『どう書きたいか』であり、文法の問題であって、(本来は)コード構造の問題ではない。
省9
66
(1): 2022/02/07(月)13:01 ID:NQzt3ZES(2/2) AAS
>>61
業務システムは何万行の単位じゃ足りない
そこから1桁2桁は増える

君が幸運にも高々数千行の平和なシステムとしか縁がない環境にいるのはよくわかったよ
でも世の中のシステムはそんな恵まれたももばかりじゃないんだ

企業の業務がどれだけ複雑で巨大なのか想像してみたことある?
適当にそれなりの規模の企業をピックアップしてどんな仕事してるか想像して見て?
省4
67
(1): 2022/02/07(月)13:05 ID:RorkGoUL(2/8) AAS
>>59
パイプ何年かかっとんねん
パイプ待ってる内にシステムサ終ですわ

object の後のドットで補完できると絶頂射精できるんや
パイプなんてどうやっても補完できないし無理無理かたつむり
68: 2022/02/07(月)13:13 ID:wsXwvKB4(1) AAS
>>64
頻度の話ね
69
(1): 2022/02/07(月)13:18 ID:UTO8dkwM(4/11) AAS
>>67
そういう事なら仕方ないなw
可変長パイプ関数TSで作るのは確かに辛いけど、とりあえずこんなんで良くね?
外部リンク:stackoverflow.com
70
(1): 2022/02/07(月)13:29 ID:yhez4jOW(6/12) AAS
>>66
> 業務システムは何万行の単位じゃ足りない
それは仕様を絞り込めてない糞だからだよ。

既に言ったとおり、銀行のシステムなんて最終的には「口座への入出金管理」でしかないだろ。
だったらそれをまず作って、これが3,000行。
そしてそれが株からなら、株を管理する鯖を立てて、これも3,000行。
オンラインバンキングが欲しければ、これもUI専用鯖を立てて3,000行。とやっていくのがマイクロサービス流。
省16
71: 2022/02/07(月)13:33 ID:Afq51Jp9(1) AAS
業務システムにオープン系入ってきてもう何十年よ
プロジェクト規模ならわかるがシステム規模で何十万行とか
ミドルウェアも活用できてない失敗プロジェクト
DSLで品質も保ててスッキリ記述できる部分も汎用言語で書いてそう
72
(1): 2022/02/07(月)13:36 ID:Ipfs3xdV(1) AAS
>>70
ははは
ならその素晴らしい数千行の銀行システムを売り込んできたら?
73
(1): 2022/02/07(月)13:40 ID:UTO8dkwM(5/11) AAS
途中までの思想はわかるけど、数千行銀行はちょっと無理だと思うよ……
74: 2022/02/07(月)13:46 ID:UTO8dkwM(6/11) AAS
とはいえ分割単位次第か
75
(2): 2022/02/07(月)13:58 ID:yhez4jOW(7/12) AAS
>>72
今は俺はJavaを殺すのはWeb系だと思ってるよ。
何処かが「もうこれWeb系でよくね?」として試しにやってみて成功したら、一気に流れると思う。
開発/運用コストが1/10〜1/100だろうから、
金銭面しか評価出来ない文系馬鹿が仕切ってる日本の銀行とかは一気に導入だよ。
マジな話、みずほ銀行が作り直すのならマイクロサービスでやれば面白いとは思ってる。
まあ現実的には病院や自治体から導入で、銀行は最後尾だろうけどね。
省6
76: 2022/02/07(月)14:09 ID:UTO8dkwM(7/11) AAS
>>75
そういう意味なら納得です
77
(1): 2022/02/07(月)14:10 ID:4z8oj16v(1) AAS
素晴らしい!
ひとりの天才の出現によって金融系システム従事者が超難度システムのメンテから解放されるんだね
私はもしかすると時代の転換点を最も近いところから目撃してしまったのかもしれない
78
(1): 2022/02/07(月)14:19 ID:RorkGoUL(3/8) AAS
>>69
lodash compose かな
まぁあれはあれで前立腺イキな気持ちよさはある
79: 2022/02/07(月)14:20 ID:RorkGoUL(4/8) AAS
>>77
みずほ社員20万人「タスケテ・・・タスケテ・・・」
80
(1): 2022/02/07(月)14:27 ID:mmIvHtEJ(1) AAS
ちゅーかなんでみんながみんなクソデカカチカチシステム作る前提なわけ?
適材適所って言葉を知らんのか
81: 2022/02/07(月)14:43 ID:UTO8dkwM(8/11) AAS
>>78
lodash有りならlodash/fpにそのままズバリpipeもあるし、部分適用もお手の物やん
82
(1): 2022/02/07(月)14:51 ID:RorkGoUL(5/8) AAS
>>80
だって小さいシステムなら誰でも作れるじゃん
それこそPHPやPerlでも構わな・・・くはない死にたくなるけど、まぁやってやれんことはない
っぱエンジニアは20万人月回してこそ1人前でしょ
83
(1): 2022/02/07(月)14:55 ID:R1s+yfGI(1) AAS
それにしてもマイクロサービス万能論者って久々に見た気がするわ
サービスを分割すればするほどサービス間の連動の管理が難しくなってそれはそれでうまくいかないぞ
というんでモジュラーモノリスだとか色々回帰論が出てきて今となっては「やっぱり銀の弾丸はなかったね」が常識で通じる時代になったと思ったんだが…

仮に30万行のシステムがあったとしてそれを3000行に分割したら単純計算で100個に分割できるわけだ
100種類のサービスを間違いなく連動させるのがどれだけ大変なことなのか
ちょっと甘く見過ぎてる感じがするね?
84: 2022/02/07(月)15:01 ID:dHoIQX/o(1) AAS
>>61
>Webの場合は3層なりに強制的に分割されるし、状態管理はDBに丸投げ、View/UIはHTML/CSS/JSに丸投げなので、
>鯖でやる事なんて大して無いんだよ。

どんだけ無知なんだよww
流石にこのレベルで偉そうに語られると相手するのが恥ずかしくなる
85: 2022/02/07(月)15:02 ID:HmGAn9CY(1) AAS
>>82
TS開発者全てを20万人月扱うスーパーマンにするなw
86: 2022/02/07(月)15:13 ID:27SiZacg(1) AAS
>>75
相手がボロ出すまで同じ事繰り返すだけの自演おじさんなんて相手しなくて良いよ。おじさんの話の内容見てても読解力もTS理解度も足りてないんだし
87
(1): 2022/02/07(月)15:26 ID:S/gDVAW3(1/2) AAS
DDD的な話はわりとまともなこと言ってるけど
コード例を出さないからTS固有の問題なのか使い方や作り方の問題なのか判別つかないね
88: 2022/02/07(月)15:33 ID:S/gDVAW3(2/2) AAS
銀行みたいに堅牢性や永続性が最重要のシステムをTSで作るわけないけど
変化に対する柔軟性に重きを置くシステムならサーバー側でもTSは有力な選択肢だと思う

UnionやIntersectionのおかげでFunctionalなDDDがやりやすいってのが一番の理由
JavaみたいにOOPベースのDDDやるならTSを選ぶメリット感じない
89: 2022/02/07(月)16:02 ID:UTO8dkwM(9/11) AAS
>>87
それだよねぇ。長い文章書くわりに具体的な内容無いもの
90: 2022/02/07(月)16:15 ID:yhez4jOW(8/12) AAS
>>83
> 30万行のシステム
これがそもそも間違いなんだよ。
銀行なんて最終的には通帳に記入する内容、つまりは「日時と金額と取引相手」だけ管理出来てればいいんだぞ。
最初から綺麗に作れば、何をどうやっても30万行なんてならんよ。

無駄に膨らんでる理由は、過去のコードを除去出来ない点にある。
だけどそれは新規に書く部分には関係ない。
省9
1-
あと 306 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s