- 1 名前:デフォルトの名無しさん [2021/12/30(木) 22:57:02.78 ID:XEA11GKy.net]
- www.typescriptlang.org/
JavaScript that scales. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source. part1 https://peace.5ch.net/test/read.cgi/tech/1349187527/ part2 https://mevius.5ch.net/test/read.cgi/tech/1430386649/ part3 https://mevius.5ch.net/test/read.cgi/tech/1524746903/
- 22 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 18:34:09.22 ID:Fo3XpFx5.net]
- >>21
> イミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い 不正なイミュータブルオブジェクトの問題ってなに? イミュータブルオブジェクトがイミュータブルオブジェクトにどうやって影響を与えるのさ。 > 特定の型に対する演算がプログラムのあちこちに分散してしまい凝集度が下がって大混乱 疎結合になってむしろ良いことでは? TSにおいて凝集度はクラスで担保すべきでは無いでしょ。
- 23 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 18:49:51.15 ID:K22p1cEy.net]
- >>22
不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い その連鎖はいずれIO境界まで辿り着きユーザーに間違ったAPIレスポンスを返したりデータベースに間違ったデータを格納したりする 関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる? もちろん途中でバリデーションをかけて落とすことはできるだろうがそれではバリデーションが増えすぎて手に負えなくなる なのでそもそも間違ったオブジェクトを作れないようにしよう 作れないものを関数に渡すことはできないので安心だ そういう考え方ね 下だけどそれを疎結合とは言わない 否定したい思いが先走って無茶苦茶言ってない?
- 24 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 19:01:45.12 ID:Fo3XpFx5.net]
- >>23
> 不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い 繰り返しになるけど、イミュータブルオブジェクトはイミュータブルオブジェクトに影響与えないよ? > 関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる? 間違ったオブジェクト渡らないよ? なんの為の型だと思ってるの? structとか使わないの? データの入り口(IO等)で型バリデーションすればあとは型が化けたりしないよ。
- 25 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 19:06:18.29 ID:AuLf6V7C.net]
- >>21
> Jsonを必要としているのは主にIOを司る層であってそれはドメイン層ではない > 異なる層が負うべき責務を別の層が引き受けるのはクリーンな設計とは言えないよね > なのでドメイン層のクラスがJson Serializableである必要はない 横だがこれは完全に間違ってるだろ。 シリアライズするのは確かにI/O側だが、他言語も含めて今現在は クラス側にserialize手段を用意するのが主流だ。TS知らんがJSと同じならtoJSON()。 だからドメイン側でシリアライズする可能性のあるクラスの全てにtoJSONを用意しておくのが正しい解だという事に今はなっている。 I/O側にやらせていたのは昔の設計だ。ただそれの何が悪かったのかは俺は知らない。 (実行効率だけは無茶苦茶良かったから、クラスを導入して非効率になっただけなのかもしれんが)
- 26 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 19:18:05.78 ID:7lkHt7VO.net]
- >>24
つーか「影響を与える」と私が一言でも書いたかな? 君のレスでは影響を与えるって言葉を変化させるという意味で使ってるように読める だが私はイミュータブルオブジェクトを元にイミュータブルオブジェクトを「生成する」としか書いてない modifyとcreateはプログラミングにおいて全く異なる概念なので明確に区別することをおすすめする PODなら間違ったデータを簡単に渡せる IO境界だけでバリデーションすればいいという考え方は人間を信用しすぎている 人間は間違えるという前提を忘れてはいけないよ 百点満点のコードを確実に書けると確信できるようなちっぽけなシステムではそれでなんとかなるかもしれないけどね
- 27 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 19:28:15.98 ID:Fo3XpFx5.net]
- >>26
イミュータブルがイミュータブルなままなら問題ないって話しかしてないよ? > 人間は間違える そのためのTypeScriptのstructだよ?
- 28 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 19:34:50.15 ID:7lkHt7VO.net]
- >>25
今はなっている?ないないなってない 適当なことを言わんでくれ JSONやXMLやバイトストリームやフォームデータのような外界の都合を吸収してシステムが扱いやすい形式に変換する(あるいはその逆の流れ)はドメイン層の仕事じゃない それは外界とやり取りをするための専門の層の仕事だ
- 29 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 19:39:52.33 ID:7lkHt7VO.net]
- >>27
structだけじゃ人間は間違えるし問題あるって話をしてる structではデータ型が合ってるところまでしか保証できない インスタンスが抱えてるデータが満たすべき条件を満たしていることを保証できるか?そこがポイント それを保証するにはstructでは不十分で完全コンストラクタを実装したクラスが不可欠
- 30 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 20:00:52.90 ID:Fo3XpFx5.net]
- >>29
だからデータの入り口で型バリデーションするんだよ。 君は前スレの最後で暴れてた型バリデーションできない人だったか。話が通じないわけだ。
- 31 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 20:04:35.10 ID:+4OSlPdc.net]
- >>30
だからそれじゃバリデーション箇所が多すぎて手が回らんっての 話がループしてるよ
- 32 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 20:06:04.45 ID:Fo3XpFx5.net]
- >>31
だからIOとかfetchみたいなデータの入り口だけなんだよ?
- 33 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 20:12:58.65 ID:W5e759ag.net]
- >>32
またループしてる そこだけバリデーションしても人間のミスはカバーしきれない 規模の小さなシステムならなんとかなるかもしれないが大きなシステムでは絶対無理 これ以上は無限ループして時間の無駄っぽいね
- 34 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 20:14:05.76 ID:Fo3XpFx5.net]
- >>33
そうだね。止めてもいいよ。
- 35 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 20:51:55.71 ID:AuLf6V7C.net]
- >>28
toJSONを呼ぶのはI/O層の仕事で、 toJSONを定義するのはドメイン層の仕事だよ。 つか、そうじゃないと無理なんだよ。 JSONでは対応出来ない型があるから、何が入っているか分からない状態ではシリアライズは出来ない。 逆に言えば何でもシリアライズ出来れば全部I/O側に任せる事は出来るのだが、 現時点で現実的にこれはバイトストリームしかないから、バイナリデータでメモリダンプ形式で良ければ出来るけど、 これはJSONともXMLとも言わないし、実際これをやってるシステムは今は無いでしょ。
- 36 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 21:05:05.78 ID:Y8lZmwFL.net]
- >>35
ん?別の人か? ドメイン側が提供するのは属性の読み取りアクセスと同等の引数を受け取る完全コンストラクタオーバーロードだけ 読み取った属性を外界が要求する形式に整形、シリアライズする(あるいはその逆)のはIO層の仕事 どの外界とどんな形式でやり取りするのか? ドメイン層はそんなことは知らないし知ってはいけない だから外界に依存しない純粋な読み取り属性とコンストラクタでIO層と連携する IO層はそのデータをどうすべきか全て知っている
- 37 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 21:14:45.88 ID:AuLf6V7C.net]
- >>36
まあそれでも出来るけど、それが面倒で二度手間で意味無いからみんなPODを使ってるんだと思うぞ。 FizzBuzzEnterpriseEditionとか、君は本気でやりそうだね。 https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
- 38 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 21:24:14.91 ID:Fo3XpFx5.net]
- >>37
なんだこれww
- 39 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 21:25:43.66 ID:7lkHt7VO.net]
- >>37
君も話がループしてるね 面倒だからPODで済ませるで通じるちっぽけな規模ならそれでいいんだよ私は一貫してそこは否定してないでしょ? それなりに規模が大きくなった時の話をしてんの FizzBuzzをエンタープライズの手法で作るのが馬鹿馬鹿しいのと同じように エンタープライズのシステムをFizzBuzzを書くようなノリで作るのも馬鹿馬鹿しいってこと
- 40 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 21:33:21.13 ID:7lkHt7VO.net]
- >>35
ちなみにバイナリでシリアライズするのはprotocol buffersとか普通にあるよ で、どんな形式で通信すんの?JSON?バイナリ?XML?CSV? そんなのはドメイン側は知りたくない絶対に知りたくない ドメイン側がシリアライズの責務を負ってしまったらじゃあ通信の形式が増えるたびにドメイン側を拡張するのか? そんなのドメイン側の本質とは全く関係ない通信様式の問題なのに?
- 41 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 22:02:56.26 ID:AuLf6V7C.net]
- >>40
JavaScriptといえばJSON以外無い。 そしてXMLもDOMParserでどうにでもなる。 通信形式をドメイン側と分離するべきなのは「あらゆる形式に対応する」大前提でだ。 今時JSONかXMLしかないし、実際これで事足りるからみんなこれを使ってる。 密結合が駄目なのは「変更される可能性がある箇所」であって、何でもかんでも分離すればいいというものではない。 疎結合にすれば結局間接参照を中に挟むから、実行効率もコード効率も落ちるだけ。 Protocol Buffers見てみたが、ぶっちゃけこれ誰も使ってないだろ。 JSに対応してない時点で今現在のコンピューティングとかけ離れている。 現在もJSONで揺るぎないし、今後もJSONがさらに蔓延る雰囲気だ。 なら、ドメイン側がJSON形式に依存しても全く問題ないんだよ。 そこを無理矢理分離して、分離する意味の無いところも含めてあらゆる分離を行ってるのがFizzBuzzEnterpriseEdition。 君が言ってるのはこれ。 勿論、JSONが廃れればドメイン側のコードを書き換える必要が発生するけど、これは多分あり得ない未来なんだよ。 それでもこれに備えたければ備えるのも自由だけど.。 尚一応言っておくがJSONはJavaScriptObjectNotationの略で、つまりJSネイティブ形式だ。 だからPython等の他言語がJSON依存を避けるのならまだ分かるが、TS/JSで避ける意味はない。 君は完全にFizzBuzzEnterpriseEditionのノリでプログラミングをしてる。
- 42 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 22:16:09.49 ID:jR6D7dXS.net]
- PODがダメなら普通にclassを使えばいいじゃない
その class に完全コントスクラタと toJSON を実装すればいい つか贅沢言いすぎや TSほどJSON API と神話性高く、堅く書けて、ほどよく柔軟な言語ないで ワイはバックエンドをGoで書かされているが、言語機能の貧弱さに発狂しそうや 爆速でコンパイルできても爆裂バグだらけじゃ話にならん
- 43 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 22:20:03.49 ID:jR6D7dXS.net]
- >>37
ヤバスギでしょ
- 44 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 22:29:45.95 ID:7lkHt7VO.net]
- あらゆる形式に対応するためじゃない責務を明確に分けるため
仮に変更される可能性がなければ1つの関数でシステムを組むのか?そうはならんやろ 変更される予定がなくても責務は分けて作るんだよお仕事ではね ProtobufはgRPC バイナリで有名なのだと他にもMessage Packとか こっちはゲームとかfluentdで有名 君はFizzBuzzのノリでエンタープライズ開発しそうだね
- 45 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 22:30:03.08 ID:Uni4uKu0.net]
- そのDDDの文脈でTSだとバリデーションが必要で
GoやC#だとバリデーションが必要ないケースってどんな場合のこと?
- 46 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 22:33:52.37 ID:jR6D7dXS.net]
- >>45
Goは完全コンストラクタを実装できない、誰でもインタスンス作り放題ヤリ放題だからバリデーションなんかいらんのや! バリデーションなんて軟弱フニャチンオカマ野郎がへっぴり腰を振ってるようなもんだ! ファッキューLGBT!
- 47 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 22:50:56.58 ID:7lkHt7VO.net]
- >>42
TypeScriptでもそうすれば良いじゃんってのはその通り 別にTypeScriptがclass使えないとかそういうことを問題視してるわけじゃぜんぜんないんだ ここで最初に戻ってよくレスを読んでみて 私が提起した問題点はこれね 「PODの濫用が標準的なコーディングスタイルとして受け入れられてる」 この問題に関しては言語自体の話題じゃないんだよ ようするに今日やったような問答をTypeScript人材を雇うと毎回全員にやらなきゃならない可能性が高いってこと これじゃ申し訳ないけど仕事にならないよ なので鯖サイドではTypeScriptは残念だけど人集めの段階でNGってことになるわけ 規模でかくなるのわかってるんだから最初から鯖サイドではちゃんとレイヤ分けましょうねクラス使いましょうねSOLIDなコード書きましょうねでスッと話が通じる人が多い言語で計画立てたいわけさ そうなると古臭いけどJavaなど無難な選択肢しかないんだよな…
- 48 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 22:57:06.33 ID:AuLf6V7C.net]
- >>44
まあ君とは平行線のようだね。 > 仮に変更される可能性がなければ1つの関数でシステムを組むのか? 組むぞ。俺は変更される可能性がない所に依存するのは全く問題ないと見てる。 そして基本的に実行効率重視だから、無駄な事はしない。 君はドメインが「1年が365日である事を知っている必要はない」として、365すらもリテラルでは書かないのだろう。 そして人類が火星に到達した時、君のコードは無修正で動くが、俺のコードは役に立たない。 でも俺は、「一方ロシアは鉛筆を使った」は大切にすべきだと思ってるから、 365はリテラルで書いてしまって、火星に到達してから書き直す事を選択する。 俺はJSONが廃れる未来なんてないと思ってるから、コードがJSON形式に依存するのも何ら問題を感じないし、 今のJSのアーキテクチャ、つまりtoJSONを整備しろ、で全く問題ないと思ってる。 これは確かに分離出来てないアーキテクチャだけど、する意味もないと思うよ。 むしろ他言語でもJSON使えないのはポンコツ扱いだろ今は。 > gRPC > Message Pack > fluentd JSONがあまり効率のいい形式ではないのは事実で、これに対する策のようだね。 ただ、俺ならI/O層でJSON形式から変換させる。 つまりドメイン層はtoJSONを定義して、それでおしまい。それ以上の形式が欲しければI/O層で変換だ。 君のアプローチより現実的だと思うけど。
- 49 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 23:02:11.49 ID:AuLf6V7C.net]
- >>47
そりゃお前のノリでやってくれる奴はお前の畑の奴だよ。 それがJavaならそうすればいいだけ。 ただ、PODが駄目だってのはただの先入観で、 実際それでやってる奴が多くて、それでも世界が回ってるのなら、お前が勘違いしてるだけだよ。
- 50 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 23:08:32.84 ID:7lkHt7VO.net]
- >>48
うん TypeScripterとは分かり合えない人が多いだろうなとは思ってたけど君とは特に分かり合えないと思う 関数1つでシステム書く人を理解するのは私には不可能だ 365をリテラルで書かないのはDDDとかそれ以前の問題だと思うよ 君の書いたコードって四年に一回ぐらいバグ出してない?大丈夫? 処理効率が大事な部分でわざわざJSONを経由して効率落とすの? ライブラリ開発者が必死になって直列化コストを削減してくれたのを嘲笑うかのような所業 やっぱり理解できないや
- 51 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 23:09:14.59 ID:7lkHt7VO.net]
- >>49
それで回る規模の世界はそりゃ回るだろうね これも何度も言ってるよね
- 52 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 23:34:35.72 ID:EROXxvgE.net]
- なら、その規模を確認してからでよかったんじゃね?
- 53 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 23:46:30.23 ID:AuLf6V7C.net]
- >>50
いずれにしてもJava出身でJava流の開発をしたいのならJavaを使うべきだよ。 シェアもJSよりはあるし、実際何とかなるだろう。 https://w3techs.com/technologies/details/pl-java > 処理効率が大事な部分でわざわざJSONを経由して効率落とすの? 開発効率を優先するって事だよ。多分Web系の連中はこっちを選択する。 (俺はWeb系ではないが) なおJSONも効率が悪いのは無駄にダブルクオーテーションが多いくらいだから、この方式でもさほど効率は落ちないよ。 >>51 規模に対してのアプローチが根本的に違うんだよ。 Java:どんなに大規模になってもメンテ出来るようなコードを目指す。コードはひたすらメンテ。 Web系:そもそも大規模にならないように、ひたすらマイクロサービスを目指す。コードは書き捨て。 Java流のまどろっこしいコードだとサクッと変更出来ないからこうなってるのだと思うよ。 実際、Web系だとサーバー側全コードを書き直しました、とか割と聞くでしょ。Javaではあり得ないし。 だから、Web系言語で、そんなに大規模になるという事自体が間違ったアプローチなんだよ。 そういう風に言語が出来てない。toJSONという点からも分かるだろ。 俺もこのアプローチの違いに気づいた時はちょっと驚いたけど、間違いでもないよ。 これを認められないのなら、君はJavaでやるべきだよ。 あと、依存に関する考え方も違う。 Web系で危険な依存は、死んでしまう言語/フレームワーク/ライブラリに依存する事で、 具体的にはAltJSのほぼ全部(CoffeeScript等)、Vue/React以外のフレームワーク全部とかだよ。 仮にprotocol buffersを使うとして、頓死した場合、I/O部分は書き直さないといけない。 それはドメイン側のコードをいじるのと同じ手間だと思うけど。 だったら、分離した意味って無いよね。 まあいずれにしても、君はJavaを選択すべきだと思うけど。
- 54 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 03:29:33.54 ID:yhez4jOW.net]
- あと、パフォーマンスレンジの選択も間違ってる。
スクリプト言語は、チャッチャと書いてチャッチャと動かす為の言語であって、 ゴリゴリ一生懸命コードを書いて、パフォーマンスやメンテナンス性を得るための言語ではない。 つまり、今回で言うと、 TS/JSはJSONで全く問題無い場合に使う言語であって、 JSONではパフォーマンスに問題があると分かっているのなら、GoかRustを使うべき。 勿論Javaでもいいが、RustならJavaより速い。 だからこそ逆に、手抜きして何が悪い!ってことになる。 要求仕様が「オブジェクトを復旧できること」なら、 一番簡単なのはJSONで、これを使う人が多いのは当然だ。 一々自前でコードを書きたくなければPODになる。これがいいかどうかはさておき。 (ただまあ俺も、Web系の連中はJavaのstaticおじさんを馬鹿にする割には 書いてるコードがstaticおじさんと同じなのはどうなのよ、とは思ったが) ちなみに主張されてるようなケースでJavaならイテレータでも渡してI/O側でシリアライズするのか? 単純なイテレータだと階層があったら厳しいから、階層も跨いでいけるイテレータを渡す事になりそうだが、 それでもデータの中身が何か知ってないとシリアライズは厳しくて、 現実的に完全に分離するのは無理だと思うが。 なおメンテナンス性についてはTS/JSは以外に高い。 こういう構造にしたい、というのはあっけないほど簡単に記述出来るから、分離だけは簡単だ。 (ただ、その分離の意味があるのか?が俺には疑問なのだが)
- 55 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 03:30:51.04 ID:yhez4jOW.net]
- それから、規模については他の人も指摘してるけど、一体何万行のTSを書く気だ?
やれば分かるが、鯖なんて結局DBから読んで加工して吐くだけだから、 APIだけ(HTML生成無し)なら3,000行も書けばいっぱしのサービスは出来てしまう。 あっけないほど簡単にね。スクリプト言語だから記述レベルが元々高いってのもあるけど。 (HTML部分はどこまで凝るかだけど、コード自体は独立してるから分量が多くなっても何ら問題ないはず) Javaから見ればWeb系は多分1/10位で開発してる。 Redditで6人(言語不明)、diggも6人(Go)、discordが35人(Rust)とかだったと思ったよ。 そもそもそんな「大規模開発」になってない。 この辺を知って、俺は「あれ?これはJavaのアプローチの方が間違ってたんじゃね?」と思いだしたんだよ。 OOP:どんなに大規模なコードでも取り扱ってみせる! スクリプト言語:そもそも複雑にならない範囲に留めろ Javaから見ればWeb系は馬鹿ばっかなのも事実だろうけど、JavaはJavaで馬鹿な事をやってる。 だから特等席を与えられていたのにJSに駆逐された。(クライアントサイドでは) それって鉛筆でよくね?ってのを考えた方がいいと思うぜ。
- 56 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 06:51:13.72 ID:b69Z+ASC.net]
- TSの知識が無くTSの開発者文化に馴染めず、理解してない言葉を並べ、決して間違いを認めず、自分のやり方に固執し、目の前にある概念を理解しようともしない。
う〜んこのおっさん。
- 57 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 10:07:24.70 ID:WuDoUI67.net]
- >>55
ううむ…せめてレス読んで理解した上で応答してほしいんだが… 小さなシステムでやり方にこだわる必要はないってのは深夜3時までかけて書いた情熱的な作文でいちいち主張しなくても私も最初から認めてることでしょ? 昨日議論したのはそういう手法が通じない規模のシステムの話ね(何度もそう書いてるはずだが) 大きいシステムではうまくいかないよという話をしてるのに その応答が小さなシステムならうまくいくから問題ないでは話が噛み合うわけがないよね
- 58 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 11:40:42.69 ID:RorkGoUL.net]
- いやでもわかるわ
json serializable / deserializable で、かつ this 参照可能な method 生えてれば、カプセル化というかコードの凝縮度上げられるのになとは思う まぁそういう toJSON, fromJSON を実装すれば的な話ではあるが type Human に getFullName 実装したい時に POD だと getFullName(h: Human) みたいになって getFullName(h) じゃなく h.getFullName() みたいにしたかったのに みたいな
- 59 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 11:50:23.99 ID:UTO8dkwM.net]
- 凝集度をclassで確保する必要は無いんやで。
書き方についてもパイプライン演算子がstage2入ったしね
- 60 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 11:58:19.03 ID:UTO8dkwM.net]
- Rustのstructとimplみたく、型とそれに付随する関数を収めたモジュールを作るんや。
- 61 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 12:40:58.10 ID:yhez4jOW.net]
- >>57
だから何万行書くつもりなんだ?って聞いてるんだよ。 Webの場合は3層なりに強制的に分割されるし、状態管理はDBに丸投げ、View/UIはHTML/CSS/JSに丸投げなので、 鯖でやる事なんて大して無いんだよ。 セキュリティガバガバでよく、(=社内向けシステムに表示するだけとか) ORMまでセットアップされてれば、 fizzbuzzの次には掲示板でも作ってみようか、となるくらい単純に出来てる。 だからこそPHPみたいな糞言語が未だに主流なわけでさ。 あれほどの糞言語でも何とかなる程度に収まってんだよ。 ここら辺はやれば分かるんだが、君はやってもないのにJava的な開発を想定しているからおかしな事になってる。 だから1/10想定で、と言ってるわけでさ。
- 62 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 12:41:25.24 ID:yhez4jOW.net]
- > 大きいシステムではうまくいかないよという話をしてるのに
これが間違ってる。大きいシステムが存在しない世界なんだよ。 なぜなら、大きくなった部分は切り出され、まだ切り出されてない残り部分しか書かない方式だから。 ユーザーデータの管理が面倒です→DBとして切り出して丸投げ HTML生成が面倒です→フレームワークに丸投げ DBを触るのが面倒です→クエリビルダにしますか?ORMにしますか? セッション管理も面倒です→ではこれもフレームワークで だからフレームワークは基本的に小粒だし、場合によってはいきなり頓死する。 でもフレームワークまみれで良ければいくらでも手抜き出来る世界だし、それで良しとされてる。 そしてWeb系プログラマは基本的に技術的には非力で、これは「スクリプタをプログラマと呼ぶな」とか言われてたりするが、 だからこそ逆に、自分より上の連中が作ったフレームワークに乗っかる事に抵抗がない。 Javaの連中や、最近の初心者は、手段が目的化してしまってる。 疎結合にする事、綺麗なコードを書く事が目的になってしまってる。それは本来は手段だ。 本来の目的は、「仕様を満たすコードを最速で得る事」だよ。 その際にコードの複雑化が障害になるので疎結合や綺麗なコードが必要になるわけだが、 逆に、ひたすら切り出して絶対に複雑化させない、というアプローチをWeb系は採ってる。 OOPだと大体1,000-3,000行で各モジュールは出来、この単位で切り出して行ってるはずだが、 Web系だと本当に数行で書けるような事すら切り出してたりするし、ここまでやれば大規模化や複雑化は絶対にしない。 逆に依存性は問題になってくるから、みんな動向には敏感だろ。 どっちが良いというものでもないけど、俺はこのWeb系のやり方もありだと思うよ。 すくなくともWeb系の常識からすると、みずほ銀行のポンコツシステムとかあり得ない。 最終的には口座への入出金だけガッツリ管理出来ればいいだけなのに、何でそんなに落ちるんだよ?でしかない。 Javaの流儀でサーバー側を作るのも技術的には可能だけど、それが主流でないって事は、 Javaエンジニアなんて腐るほどいるのだし、「やらなかった」のではなく「上手く行かなかった」と考えた方が妥当だと思うけど。 それでもやるのはどうぞご自由にだが。
- 63 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 12:44:13.86 ID:NQzt3ZES.net]
- >>60
それが完璧にできればいいんだが、それだと大きなシステムでは統制が行き届かず、処理が分散し凝集度が下がる、というのは過去の実績から明らかなんだよね そのスタイルでやろうとすると人間がミスをしない、という前提が必要になるんだけど、現実的にそれは難しい なので大きい案件では「間違えるためには手間がかかる状態」を作り出して人間のミスを抑止するわけ クラスなら処理の置き場所がはっきりしてるだけでなく、他の場所に書こうとすると別のクラスが必要になるので間違いに気付き易くなる なので自然と処理が然るべきクラスに集まって、凝集度が高まるって話 何度も何度も言ってるけど 管理コストのスケーリングを考えなくていい、個人や小さなチームで作れる範囲なら、PODと関数でいいんじゃないかな? その程度ならプログラマが注意深く作業すれば、ミスなく作れるからね 雑談として脱線するけど、ただデータを流すだけ的な小さいサービスは今後はノーコードが主流になると思う 鯖サイドTSのメインターゲットがそういうスモールサービスだとしたら、将来はもしかしたらノーコードとのシェア争いになるのかもね
- 64 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 12:57:08.26 ID:UTO8dkwM.net]
- >>63
モジュール関数がそうなる状況ではclassもそうなるよ?
- 65 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 12:59:32.42 ID:yhez4jOW.net]
- >>58
> getFullName(h) じゃなく > h.getFullName() みたいにしたかったのに > みたいな それはC#で言う拡張メソッドだね。staticメソッドをインスタンスメソッドとして『記述出来る』 Goは逆にメソッドをstaticとして呼べたはずだけど。 この辺は『どう書きたいか』であり、文法の問題であって、(本来は)コード構造の問題ではない。 C#はこの辺の文法とコード構造を分離した。 つまり、メソッドとして書きたいからクラスにします、ではなく、 メソッドとして書きたければメソッドとして書ける文法(拡張メソッド)を用意した。 まあ実際はただのパッチだけどね。何故かは知らんが.NETは無駄にstaticメソッドが多くてウザイのは事実だから。 (ただ今見てみるとC#のはPODでは駄目っぽいが) Rubyはこの辺、プリミティブなしで全部オブジェクトだから、数字にもメソッドを生やせるし、出来る素地はある。 (やってないと思うけど) だからJSでやるならボックス化+拡張メソッドで、ということになる。 再度言うがこの辺は文法の話(に出来る話)であって、(本来は)コード構造の話ではないよ。
- 66 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:01:33.92 ID:NQzt3ZES.net]
- >>61
業務システムは何万行の単位じゃ足りない そこから1桁2桁は増える 君が幸運にも高々数千行の平和なシステムとしか縁がない環境にいるのはよくわかったよ でも世の中のシステムはそんな恵まれたももばかりじゃないんだ 企業の業務がどれだけ複雑で巨大なのか想像してみたことある? 適当にそれなりの規模の企業をピックアップしてどんな仕事してるか想像して見て? データベースやIOや画面とか全部取っ払ってドメインロジックだけでいいよ それを君は3000行ぽっちで実装できるのかい? もしできるというなら今すぐにそのシステムを売り込みに行った方がいい あっという間に大金持ちだ
- 67 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:05:14.01 ID:RorkGoUL.net]
- >>59
パイプ何年かかっとんねん パイプ待ってる内にシステムサ終ですわ object の後のドットで補完できると絶頂射精できるんや パイプなんてどうやっても補完できないし無理無理かたつむり
- 68 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:13:31.34 ID:wsXwvKB4.net]
- >>64
頻度の話ね
- 69 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:18:28.93 ID:UTO8dkwM.net]
- >>67
そういう事なら仕方ないなw 可変長パイプ関数TSで作るのは確かに辛いけど、とりあえずこんなんで良くね? https://stackoverflow.com/questions/65154695/typescript-types-for-a-pipe-function
- 70 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:29:41.52 ID:yhez4jOW.net]
- >>66
> 業務システムは何万行の単位じゃ足りない それは仕様を絞り込めてない糞だからだよ。 既に言ったとおり、銀行のシステムなんて最終的には「口座への入出金管理」でしかないだろ。 だったらそれをまず作って、これが3,000行。 そしてそれが株からなら、株を管理する鯖を立てて、これも3,000行。 オンラインバンキングが欲しければ、これもUI専用鯖を立てて3,000行。とやっていくのがマイクロサービス流。 モノリシックには作らないから、でかくなりようがない。 この辺は発想の違いで、以下が分かりやすいが、 https://note.com/tsuchie88/n/ncae14ac6466b SMBCがマイクロサービス的で、君が見てる世界は三菱UFJのモノリシック型だね。 どっちが良いとかいう単純な話でもないのだけど。 まあいずれにしてもやりたいようにやればいいとは思うよ。 俺はそれは「誰も思いつかなかった」のではなく、「既に失敗してるから今は誰もやってない」だけだと思うけど。 文化の形成過程って、これだと思うし。 文化を否定する前に、まず何故そんな文化になってるのかを考えるべきだよ。 それは何だかんだで現時点での最適化がかかった状態ではあるのだから。 >>63 フレームワークをこねくり回すだけで出来るものはノーコードが主流になるとは思う。 ただしそれでWeb系言語が廃れる事はない。フレームワークになってない部分は自前で書くしかないので。 なお主にマイクロサービスを目指しているのはGoだね。みんなRustに行っちゃった感はあるけど。 TSは…JSだと型が無くて糞だと思ってる連中が使ってるはずだけど、何指向かは知らん。 (というか俺はTS使ってないし)
- 71 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:33:18.79 ID:Afq51Jp9.net]
- 業務システムにオープン系入ってきてもう何十年よ
プロジェクト規模ならわかるがシステム規模で何十万行とか ミドルウェアも活用できてない失敗プロジェクト DSLで品質も保ててスッキリ記述できる部分も汎用言語で書いてそう
- 72 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:36:19.77 ID:Ipfs3xdV.net]
- >>70
ははは ならその素晴らしい数千行の銀行システムを売り込んできたら?
- 73 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:40:37.88 ID:UTO8dkwM.net]
- 途中までの思想はわかるけど、数千行銀行はちょっと無理だと思うよ……
- 74 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:46:02.77 ID:UTO8dkwM.net]
- とはいえ分割単位次第か
- 75 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 13:58:43.68 ID:yhez4jOW.net]
- >>72
今は俺はJavaを殺すのはWeb系だと思ってるよ。 何処かが「もうこれWeb系でよくね?」として試しにやってみて成功したら、一気に流れると思う。 開発/運用コストが1/10〜1/100だろうから、 金銭面しか評価出来ない文系馬鹿が仕切ってる日本の銀行とかは一気に導入だよ。 マジな話、みずほ銀行が作り直すのならマイクロサービスでやれば面白いとは思ってる。 まあ現実的には病院や自治体から導入で、銀行は最後尾だろうけどね。 >>73 それは発想の方向の違い。 単発サービスで3,000行程度に留まるところまでサービスを分割する。 できるできないではなく、3,000行程度になるまでひたすら分割するだけ。 実際、DBに対して単に読み書きするだけなら、200行程度で書けるでしょ。 だから最悪、1,000行程度までのマイクロサービスに分割しろ、と言われても普通に出来てしまうんだよ。
- 76 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:09:33.83 ID:UTO8dkwM.net]
- >>75
そういう意味なら納得です
- 77 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:10:07.39 ID:4z8oj16v.net]
- 素晴らしい!
ひとりの天才の出現によって金融系システム従事者が超難度システムのメンテから解放されるんだね 私はもしかすると時代の転換点を最も近いところから目撃してしまったのかもしれない
- 78 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:19:47.08 ID:RorkGoUL.net]
- >>69
lodash compose かな まぁあれはあれで前立腺イキな気持ちよさはある
- 79 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:20:45.58 ID:RorkGoUL.net]
- >>77
みずほ社員20万人「タスケテ・・・タスケテ・・・」
- 80 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:27:40.67 ID:mmIvHtEJ.net]
- ちゅーかなんでみんながみんなクソデカカチカチシステム作る前提なわけ?
適材適所って言葉を知らんのか
- 81 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:43:03.87 ID:UTO8dkwM.net]
- >>78
lodash有りならlodash/fpにそのままズバリpipeもあるし、部分適用もお手の物やん
- 82 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:51:15.15 ID:RorkGoUL.net]
- >>80
だって小さいシステムなら誰でも作れるじゃん それこそPHPやPerlでも構わな・・・くはない死にたくなるけど、まぁやってやれんことはない っぱエンジニアは20万人月回してこそ1人前でしょ
- 83 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 14:55:26.17 ID:R1s+yfGI.net]
- それにしてもマイクロサービス万能論者って久々に見た気がするわ
サービスを分割すればするほどサービス間の連動の管理が難しくなってそれはそれでうまくいかないぞ というんでモジュラーモノリスだとか色々回帰論が出てきて今となっては「やっぱり銀の弾丸はなかったね」が常識で通じる時代になったと思ったんだが… 仮に30万行のシステムがあったとしてそれを3000行に分割したら単純計算で100個に分割できるわけだ 100種類のサービスを間違いなく連動させるのがどれだけ大変なことなのか ちょっと甘く見過ぎてる感じがするね?
- 84 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 15:01:35.38 ID:dHoIQX/o.net]
- >>61
>Webの場合は3層なりに強制的に分割されるし、状態管理はDBに丸投げ、View/UIはHTML/CSS/JSに丸投げなので、 >鯖でやる事なんて大して無いんだよ。 どんだけ無知なんだよww 流石にこのレベルで偉そうに語られると相手するのが恥ずかしくなる
- 85 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 15:02:48.84 ID:HmGAn9CY.net]
- >>82
TS開発者全てを20万人月扱うスーパーマンにするなw
- 86 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 15:13:48.61 ID:27SiZacg.net]
- >>75
相手がボロ出すまで同じ事繰り返すだけの自演おじさんなんて相手しなくて良いよ。おじさんの話の内容見てても読解力もTS理解度も足りてないんだし
- 87 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 15:26:53.69 ID:S/gDVAW3.net]
- DDD的な話はわりとまともなこと言ってるけど
コード例を出さないからTS固有の問題なのか使い方や作り方の問題なのか判別つかないね
- 88 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 15:33:02.79 ID:S/gDVAW3.net]
- 銀行みたいに堅牢性や永続性が最重要のシステムをTSで作るわけないけど
変化に対する柔軟性に重きを置くシステムならサーバー側でもTSは有力な選択肢だと思う UnionやIntersectionのおかげでFunctionalなDDDがやりやすいってのが一番の理由 JavaみたいにOOPベースのDDDやるならTSを選ぶメリット感じない
- 89 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 16:02:48.76 ID:UTO8dkwM.net]
- >>87
それだよねぇ。長い文章書くわりに具体的な内容無いもの
- 90 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 16:15:52.59 ID:yhez4jOW.net]
- >>83
> 30万行のシステム これがそもそも間違いなんだよ。 銀行なんて最終的には通帳に記入する内容、つまりは「日時と金額と取引相手」だけ管理出来てればいいんだぞ。 最初から綺麗に作れば、何をどうやっても30万行なんてならんよ。 無駄に膨らんでる理由は、過去のコードを除去出来ない点にある。 だけどそれは新規に書く部分には関係ない。 だから現実的には携帯みたいに2G->3G->4G->5Gと徐々に載せ替え、過去の口座も徐々に新鯖に載せ替えて、 古いコードは丸ごと捨てていけば良かっただけの話。 「メンテする」というのがかなり難しいから、「新規に書いて古いのは捨てる」の発想。 実際Web系はこれに近いでしょ。 実は本来はOOPもこれ(モジュール単位で入れ替えてアップグレードしていく)だったのだが、 何故かひたすらメンテする思想になってしまってるが。 一応言っておくが俺が言ってる行数は、71の言ってる「システム規模」、つまり自前で書くコード規模な。 3rdパーティのライブラリやフレームワーク等、他人が書いてて既に動くことが確定しているコードは含まない。 まあこれを誤解しているレスは今のところ無いと見ているが。
- 91 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 16:16:36.07 ID:yhez4jOW.net]
- あと俺は別にマイクロサービスが良いと思っているわけではない。
俺が言ってるのは、(という程は言ってないが) 「コードを書いて捨てる前提なら、メンテナンス性も可読性も必要ない」って事だ。 ここが逆転の発想なんだよ。 元々これらが必要だったのは、 初心者あるあるの「半年前に自分が書いたコードが読めない」「規模が大きすぎてコードを追えない」を回避するためだ。 後者については大体10,000行程度が限界だと昔から言われてるから、単純には、 ・半年で開発を終了出来ない規模以上の開発は、可読性が高いコードでないと無理。 ・10,000行を越える規模の開発は、一人では無理。よって他人にも読めるコードを書け。 ・作り直すにしてもどうせ同じようなコードを書く事になるから、メンテした方が生産性が高い。 というわけでこれが大正義とされていたわけだが、実際は、 ・そもそも可読性の高さなんて初心者には分からない。 ・メンテ性を上げるために間接参照挟みまくってるコードは、余計に分かりにくくなる。 ・Web系はそもそもそんなに大規模にならない。(DBとJSに切り出した時点でほぼスカスカ) ・Web系は仕様自体がガンガン追加されるので、古いコードをありがたがってメンテする意味がない。 (新しい仕様を使った機能は新しく書くしかない) なので、「依存しない」ではなく「依存先を適切に選んで単純なコードを書き、ハズレだったら捨てる」と割り切ってるのがWeb系。 具体的にはJSONもそうだろ。toJSONはJSON形式に依存する大前提で、JSON形式が捨てられれば立ちゆかなくなるコードだ。 しかし、JSONが使える限りは至極単純なコード、JSON.stringifyとJSON.parseで終われる。 そこを完全コンストラクタを呼び出すコードを全クラス分I/O層に置け、というのは、理屈は分かるが、無駄手間でしかない。 それがJavaにおいては正義だ、というのもまた事実なのだろうけど。 でも実際それがJava界隈の糞な所でもあるよね。 関数ポインタが使えないという言語の問題を継承をこねくり回したデザインパターンで誤魔化して糞コードにしてて、 しかもそれを自覚出来てないところとかもね。
- 92 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 16:17:21.79 ID:yhez4jOW.net]
- だから他人から言われた大正義を信じるのではなくて、それは何の為なのか、
どこまで依存していいのか、何に依存してはいけないのか、 コードはどの程度メンテする予定で、可読性はどれくらい必要なのか、 ちゃんと自分で考えて丁度良い点を目指さないと駄目なんだよ。 Javaにおいては20年後に他人がコードを読む前提だから、間違ってもこんな事は言われないはずだけど、 Web系においては、20年後も動いているコードなんて存在しない前提でも全く問題ないんだよ。 だからJavaの常識はJavaの世界向けにチューニング済みであって、それをWeb系に持ち込んでも失敗するだけだよ。 まあそれでもやるのは自由だけど。
- 93 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 17:00:21.50 ID:RorkGoUL.net]
- > 最初から綺麗に作れば、何をどうやっても30万行なんてならんよ。
ガラパゴス日本村のおらが法のスパゲッティをシステム化するんだからしゃーない 30万のif文がおんどれらを襲う この国の映し鏡である金融システムをリファクタするには、まず老い腐った政治家どもを晒し首にして もう一度トキョを焼け野原にするところからやり直さなきゃいけないんだよ
- 94 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 17:13:31.69 ID:UTO8dkwM.net]
- >>93
おまいさん以前Linux板あたりに居なかったか?
- 95 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 18:19:58.29 ID:RorkGoUL.net]
- >>94
いたよ。あそこは楽しかったね。
- 96 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 18:34:04.56 ID:UTO8dkwM.net]
- >>95
だな。相変わらずで何よりだ
- 97 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 21:20:10.49 ID:yhez4jOW.net]
- >>58
そういえば > fromJSON ではなくて、reviver関数な。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse > getFullName(h) じゃなく > h.getFullName() みたいにしたかったのに > みたいな あと、出来る/出来ないで言えば、これは出来るよ。勿論禁じ手だが Object.prototype.getFullName = function(){return this.firstName+this.familyName;}; var h = {firstName:'Java', familyName:'Script'}; h.getFullName(); // "JavaScript" とか。問題は、JSはこれを行うように設計されてるのに、事実上使えない点で、 プロトタイプ拡張がもうちょっとローカルに出来る仕組みが導入されたら言語としては面白くなるとは思うよ。 (俺は知らないけど、)prototype.js時代は楽しかっただろうとも想像出来る。 それぞれのclassをちゃんと整備する方が正道ではあるのだけどね。
- 98 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 21:40:15.30 ID:yhez4jOW.net]
- 一応訂正。enumerableとwritable消しときます。
Object.defineProperty(Object.prototype,'getFullName',{value:function(){return this.firstName+this.familyName;}, configurable:true});
- 99 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 21:51:28.00 ID:RorkGoUL.net]
- >>97
へー、reviver初めて知ったわ、サンガツ いやープロトタイプ汚染なんて30年ぶりに思い出したよ Goのレシーバをsyntax砂糖で自動でmethod生えるような文法の方がいいと思う
- 100 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 02:42:31.37 ID:DdhkyzyV.net]
- https://twitter.com/uhyo_/status/1499759388462297096
uhyo_の上から目線が年々悪化している 発表でも口調からそれが感じられる 相手を思いやらずくさすハラスメント人間がTwitterのTSコミュニティ作ってるのは最早害悪では 会社のSlackでこんなのやられたら何人か辞めるでしょw (deleted an unsolicited ad)
- 101 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 07:10:18.34 ID:HDnhD39u.net]
- 直接本人に言えよ
- 102 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 08:26:19.33 ID:rV2+S9i4.net]
- 売られたケンカは買ってこそ江戸っ子よ
- 103 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 10:57:55.53 ID:XO0AXwV8.net]
- >>100
ぼくがきにいらないからあいてをつぶす ゆとりだね Webなんだから普通に競争すればいいだけ お前がもっと良いコミュニティを立ち上げれば人が離れて過疎って殺せる それが出来ないのなら「ぼくのさいこうのこみゅにてぃ」を勘違いしてるお前らゴミゆとりの問題
- 104 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 11:00:21.82 ID:HDnhD39u.net]
- 喧嘩売ってるだけのやつは粛々とNG
- 105 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 13:37:44.83 ID:IUYGleof.net]
- >>100
相手にしなけりゃいいじゃん よく知らない人だけどツイート見れば自己満論破厨なのは明らか この手の人にまともな議論は通用しないからね
- 106 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 03:59:56.58 ID:/IifMZTR.net]
- >>103
そんなこわいせかいはやだッピ
- 107 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 07:16:43.23 ID:pk8t6Esu.net]
- >>106
56してしまえば笑顔になれるよ
- 108 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 10:45:25.91 ID:oGjlcJ2o.net]
- >>106
> 相手を思いやらずくさすハラスメント人間がTwitterのTSコミュニティ作ってるのは最早害悪では つまり、「相手を思いやって腐す事のない優しい人がTwitterのコミュニティを作るべき!!!」と思ってて、 それが大正義なんだろ。やってみればいい。 でもそれではWeb上のコミュニティは成り立たない。 その程度も分からない馬鹿が、しかも全く関係ないここにその話を持ち込む事も馬鹿げてる。 だからお前も死ね、でしかない。 ただいずれにしても、ゆとりはベースの価値観が違うから、非ゆとりが立ち上げたコミュニティで安寧を得る事はないよ。 だからゆとり向けコミュニティはゆとりで立ち上げないと無理だ。 Qiitaとか素晴らしく上手く立ち上がってる所だと思うけど、5chとは根本的に違うし相容れないでしょ。 好きなところを使えばいいが、「今ある場所を俺好みに変えよう」というのは傲慢だし原住民を馬鹿にしてる。 それすら理解出来ないからこんな無関係なところで悪態つくわけでさ。 まあでも元気があるならまずは自分で立ち上げてみるべきだよ。 それで客を奪えるのならそれが正義だし、優勝劣敗でよりよい方向に発展するのが正しい姿で、 Webはこれが割と厳密に守られてる構造だから、この点は素晴らしい。 だから文句があるのならまずはやってみる事だ。 そしてまずは、「そうなってる理由がある」事を理解すべきだ。
- 109 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 10:52:15.05 ID:xougf8Rz.net]
- じいじ、ゆとり教育はとっくの昔に終わったんやで
- 110 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 10:56:05.27 ID:nmpRTGjT.net]
- なにこの気持ち悪いやつ
- 111 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 10:58:33.29 ID:pk8t6Esu.net]
- コードは短く読みやすく書きましょうって教わらなかったん?
- 112 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 11:03:19.14 ID:oGjlcJ2o.net]
- >>109
いや5chの雰囲気が変わりつつあるのはゆとりが流入してきてるからだろ(勿論数年前からだが) 中高生で5ch見てるようなら本気でヤバイから止めた方がいい 大学生でもまだ止めておいた方がいい 社会人で、ある程度社会についても知り、デタラメな陰謀論とかも自分の頭で判断つくようになってから、ならありで、 実際これが大半だから、現時点での新規流入組はほぼ全員ゆとりだと思うが。
- 113 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 11:23:08.54 ID:oGjlcJ2o.net]
- >>111
ちなみにお前らはそう習ったのか?それはどこで?
- 114 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 11:28:44.61 ID:xougf8Rz.net]
- ゆとり以前ってどんだけ前やねん
- 115 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 11:53:24.67 ID:pk8t6Esu.net]
- じぃじ・・・
- 116 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 12:05:40.95 ID:oGjlcJ2o.net]
- >>114
俺の感覚では2013、つまり9年前だ。 そしてここ数年が5ch上のゆとり人口密度が最大で、その後脱ゆとり世代の流入が始まる。 だから現時点で(ゆとり的価値観では)ここが快適だと思えないのなら、そりゃそもそも無理なんだよ。 そして俺らにとってはお前らの存在自体が不快だって事だよ。 嫌いな場所にわざわざ来て悪態つくとかどうかしてる。 ただ、そうなってしまう理由も俺には分かるんだけどね。 ゆとりは「優しい」事が第一だから、相手の意見を否定する事は「害悪」で、まともな議論場なんて整備出来ない。 だからQiitaは(あれはあれでいいとは思うが、)「否定を全否定」してる構造になってるだろ。 あれがゆとり的価値観の世界で、twitterはそうじゃないから、そりゃ無理だよ、って話だよ。
- 117 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 12:10:29.85 ID:/i+Wlcs9.net]
- 気に入らないなら新しいの作れって考え方
ウェブ系だと普通なのか?それってDIYっぽくない? それに利用者からしたらぽんぽん新しいもの出されてトレンドが変わるのは迷惑でしかない 今あるものをより良くしていこうという考え方の方がいいと思うな
- 118 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 12:27:11.95 ID:xougf8Rz.net]
- >>116
感覚だけでレッテル貼るんだ……
- 119 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 13:42:08.14 ID:oGjlcJ2o.net]
- >>117
> ウェブ系だと普通なのか? Web系ではなく資本主義/自由主義経済において普通。会社だって気に入らなければいくらでも起業しろ、でしょ。 Web系においてはこれが割と厳密に守られてて、Webサイトは自由に作れるし、起業する奴も多い。 (Webサイトも広告貼るならただの集客業《=ITチンドン屋》でしかない) > 今あるものをより良くしていこうという考え方の方がいいと思うな 基本的にはこれは社会主義の思想。国で素晴らしい物を一つ作れば十分、という事だから。 ただしこれは現実的に出来ない。だから資本主義が社会主義を圧倒してる。 理由は簡単で、 ・「素晴らしい」の定義が人によって全く異なる --- (A) ・そもそも何が「素晴らしい」のか、まだそれを見てない状態で想像出来る奴はほぼ居ない --- (B) だからめいめいが「オレオレさいきょうの○○」を作りまくる資本主義の方が、社会主義より『結果的に』繁栄する。 ただしその時点で国としてのインフラ(教育/交通/電力等)が全く整って無い場合、 インフラの整備はほぼ全員の国民にとって「素晴らしい」事は明白なので、トップも実際にそれをやる。 だから社会主義/共産主義/独裁主義の方が国としてのスタードダッシュは速いし、歴史的にもそう。 ところがインフラを整えた位のところで、次に何をすべきかが分からなくなって失速する。 だから国としては独裁→自由主義にうまく衣替えするのが一番効率がいいのだが、 独裁してインフラ整備した連中はその時点で『大成功』してるつもりだから、その権力を絶対に離さない。 (実際はその独裁者の才覚によるものではなく、誰がやってもその状況なら大成功するわけだが)
- 120 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 13:42:30.55 ID:oGjlcJ2o.net]
- で、Web上のコミュニティについては、
・ゆとりは基本的に許容範囲が無茶苦茶狭い。ちょっとでも不満があったらそれは駄目だと見なす ので、上記(A)に引っかかって、結果的にコミュニティを上手く成立させられてない。(と見える) (B)については確率の問題であり、ゆとりも母数は相当数居るのだから、問題ないはず。 現状、Webインフラは既に整備済みだから、「オレオレさいきょうの○○」を作る方が効率がいい。 仮に国有5ch、国有Twitterとして、それぞれ「この方針で行く」なんてやっても社会主義同様停滞するだけ。 そもそも何かしらの場があって、そこに居ついている人にとっては、そこが十分に「素晴らしい」場所なんだよ。 それを「俺がそう思うから」で変更するのは、元々居た人にとっては「素晴らしい」点が失われる事にもなりかねない。 これを防ぐために、並立させた状態で好きな方を選べ、がforkで、基本的にGitHub等もこの方針でしょ。 馬鹿ゆとりにも分かるように言えば、 ・ゆとりにとっての快適は、上の世代にとっては不快 だから結果的にそれなりに住分けてる。この事実をちゃんと考えろ、という事。 いずれにしてもtwitter上のコミュニティなんて、勝手に宣言してるだけだし、 気に入らなければ自分で作って競争すればいいだけだろ。 ただ、>>100程度の馬鹿ではこれは出来ないと思うけど、という話。 >>118 100は典型的ゆとり価値観だぞ。 ここは匿名なのだから、自分が何者かは自分の書き込みで示さなければならない。 ゆとりらしい書き込みをしたからゆとり呼ばわりしてるだけ。 これが悪いとは俺は1mmも思わない。 (そうされたくなければそういう書き込みをしなければいいだけ)
- 121 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 15:28:00.88 ID:pk8t6Esu.net]
- >>120
お前ここ初めてか?力抜けよ。
- 122 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 15:42:42.98 ID:oGjlcJ2o.net]
- >>107
>>121 ゆとりを56してしまえば笑顔になれるよ
|

|