http://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/
探検
TypeScript part4
1デフォルトの名無しさん
2021/12/30(木) 22:57:02.78ID:XEA11GKy2021/12/30(木) 23:05:57.59ID:18t9WvJQ
乙
2021/12/31(金) 00:30:19.49ID:/NplslaL
>>1
乙
乙
2021/12/31(金) 10:54:08.06ID:jCXckXJt
4.6でmjs対応は入るのかな?
2022/01/16(日) 23:06:00.91ID:CViIeqBQ
Unionを受け取る関数の返り値の型を引数の型によって変えたいときってどう書けばいいの?
type F<T> = (() => void) | ((x: T) => void);
const wrap = <T>(f: F<T>) => ??? ;
const a: () => void = wrap( () => {} );
const b: (x: string) => void = wrap( (x: string) => {} );
type F<T> = (() => void) | ((x: T) => void);
const wrap = <T>(f: F<T>) => ??? ;
const a: () => void = wrap( () => {} );
const b: (x: string) => void = wrap( (x: string) => {} );
2022/02/01(火) 21:25:57.79ID:RQFIXaIQ
typescript作ったやつ何考えてんだ?
tsconfigにpath alias書いた
babel.configにも書かないと動きません
webpack.condigにも書かないと動きません
jest.configにも書かないとテストできません
あのさぁ俺はビルドツール職人になりたいわけでも設定ファイル書きたいわけでもないんだよ
どうにかしてくれよほんとこのクソッタレエコシステム
tsconfigにpath alias書いた
babel.configにも書かないと動きません
webpack.condigにも書かないと動きません
jest.configにも書かないとテストできません
あのさぁ俺はビルドツール職人になりたいわけでも設定ファイル書きたいわけでもないんだよ
どうにかしてくれよほんとこのクソッタレエコシステム
2022/02/01(火) 23:58:06.60ID:0JyqEM+P
typescriptはただのtype check toolです
babelはただのjavascript convert toolです
webpackはただのjavascript concat toolです
jestはただのtesting toolです
全部違うのです
吽孤javascriptを何とかマシにしたい4銃士を連れてきたよみたいなノリだからしゃーない
babelはただのjavascript convert toolです
webpackはただのjavascript concat toolです
jestはただのtesting toolです
全部違うのです
吽孤javascriptを何とかマシにしたい4銃士を連れてきたよみたいなノリだからしゃーない
2022/02/06(日) 13:50:02.45ID:26fWvErU
TS童貞案件がようやっと終わった。辛かった。もうやりたくない。有給とります。
@感想
・reactの時だけ使えばおk!
・鯖では使うな!どうなっても知らんぞ!
・熟練の設定ファイル職人を必ず1人雇え!絶対にだ!
@感想
・reactの時だけ使えばおk!
・鯖では使うな!どうなっても知らんぞ!
・熟練の設定ファイル職人を必ず1人雇え!絶対にだ!
2022/02/06(日) 14:01:40.08ID:23zQCz2C
LAMPとか言ってPHPやPerlでバックエンド作ってた狂気の時代よりは遙かにいいと思うけどなぁ
2022/02/06(日) 14:21:47.42ID:Fo3XpFx5
型バリデーションできない人には(TypeScriptは)難しい
2022/02/06(日) 14:32:39.20ID:grglIiaK
鯖サイドは外界とのIOが多いから型バリデーションが増えすぎるのが課題かな
あとはPODの濫用が標準的なコーディングスタイルとして受け入れられてる点が問題だと感じた
これじゃ型があってても不変条件を満たしているかまではわからん
あとはPODの濫用が標準的なコーディングスタイルとして受け入れられてる点が問題だと感じた
これじゃ型があってても不変条件を満たしているかまではわからん
2022/02/06(日) 14:39:40.47ID:Fo3XpFx5
いやPODで問題ないでしょReadonlyなりas const付ければいいじゃん
2022/02/06(日) 14:43:17.15ID:23zQCz2C
PODってなんぞ?
Plain Object Darkness?
Plain Object Darkness?
2022/02/06(日) 15:05:31.38ID:Fo3XpFx5
型の話だしググった感じPlain Old Data型の事だと思って回答した。
プリミティブ及びプリミティブで構成されたオブジェクトからなるコンストラクタを持たないオブジェクト。ざっくり構造体みたいなオブジェクトって意味かなと。C++用語のようだ
プリミティブ及びプリミティブで構成されたオブジェクトからなるコンストラクタを持たないオブジェクト。ざっくり構造体みたいなオブジェクトって意味かなと。C++用語のようだ
2022/02/06(日) 15:19:09.13ID:23zQCz2C
つまりPlatina Opal Diamond・・・ってコト!?
2022/02/06(日) 15:33:19.89ID:grglIiaK
2022/02/06(日) 15:46:19.86ID:Fo3XpFx5
>>16
『ドメインが薄い』とか何用語だ。ググっても出てこないような独自なのじゃなくて、もうちょい一般的な用語使って?
色々組み合わせるにしてもTS単独で大きなものを組むにしても入り口から出口までimmutableならそれで問題ないと思うんだけど。
デザインパターンにこだわり過ぎてない?
『ドメインが薄い』とか何用語だ。ググっても出てこないような独自なのじゃなくて、もうちょい一般的な用語使って?
色々組み合わせるにしてもTS単独で大きなものを組むにしても入り口から出口までimmutableならそれで問題ないと思うんだけど。
デザインパターンにこだわり過ぎてない?
2022/02/06(日) 16:28:56.52ID:d9+JDYY/
頭悪いんだよ
融通のきかない頭でっかち
融通のきかない頭でっかち
2022/02/06(日) 16:57:31.55ID:23zQCz2C
immutable な POD で FP すれば GOOD じゃん
class は not json serializable ビコーズチョベリバ
class は not json serializable ビコーズチョベリバ
2022/02/06(日) 17:24:04.04ID:Fo3XpFx5
無茶苦茶言ってるかと思ったらちゃんとした内容で草w
2022/02/06(日) 17:45:58.69ID:cUJBT0A1
>>17
すまん
DDDのドメイン層を連想してくれると思って言った
イミュータブルだから大丈夫ってのは規模の小さなシステムでならたしかに間違いではない
ただ規模が大きくなるにつれてそれでは難しくなるのもまた事実
というのもイミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い
なのでプログラムにバグが紛れ込みやすくなってしまう
それと特定の型に対する演算がプログラムのあちこちに分散してしまい凝集度が下がって大混乱というのが典型的な末路だね
>>18
Jsonを必要としているのは主にIOを司る層であってそれはドメイン層ではない
異なる層が負うべき責務を別の層が引き受けるのはクリーンな設計とは言えないよね
なのでドメイン層のクラスがJson Serializableである必要はない
というかドメイン層のクラスに直接Deserializeするのは危険なので大規模案件ではむしろ禁止した方がいい
それは完全コンストラクタを経由せずにオブジェクトをインスタンス化するということであり
不正なオブジェクトを生成してしまう可能性をプログラムに埋め込むということに他ならない
すまん
DDDのドメイン層を連想してくれると思って言った
イミュータブルだから大丈夫ってのは規模の小さなシステムでならたしかに間違いではない
ただ規模が大きくなるにつれてそれでは難しくなるのもまた事実
というのもイミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い
なのでプログラムにバグが紛れ込みやすくなってしまう
それと特定の型に対する演算がプログラムのあちこちに分散してしまい凝集度が下がって大混乱というのが典型的な末路だね
>>18
Jsonを必要としているのは主にIOを司る層であってそれはドメイン層ではない
異なる層が負うべき責務を別の層が引き受けるのはクリーンな設計とは言えないよね
なのでドメイン層のクラスがJson Serializableである必要はない
というかドメイン層のクラスに直接Deserializeするのは危険なので大規模案件ではむしろ禁止した方がいい
それは完全コンストラクタを経由せずにオブジェクトをインスタンス化するということであり
不正なオブジェクトを生成してしまう可能性をプログラムに埋め込むということに他ならない
2022/02/06(日) 18:34:09.22ID:Fo3XpFx5
>>21
> イミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い
不正なイミュータブルオブジェクトの問題ってなに?
イミュータブルオブジェクトがイミュータブルオブジェクトにどうやって影響を与えるのさ。
> 特定の型に対する演算がプログラムのあちこちに分散してしまい凝集度が下がって大混乱
疎結合になってむしろ良いことでは?
TSにおいて凝集度はクラスで担保すべきでは無いでしょ。
> イミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い
不正なイミュータブルオブジェクトの問題ってなに?
イミュータブルオブジェクトがイミュータブルオブジェクトにどうやって影響を与えるのさ。
> 特定の型に対する演算がプログラムのあちこちに分散してしまい凝集度が下がって大混乱
疎結合になってむしろ良いことでは?
TSにおいて凝集度はクラスで担保すべきでは無いでしょ。
2022/02/06(日) 18:49:51.15ID:K22p1cEy
>>22
不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い
その連鎖はいずれIO境界まで辿り着きユーザーに間違ったAPIレスポンスを返したりデータベースに間違ったデータを格納したりする
関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる?
もちろん途中でバリデーションをかけて落とすことはできるだろうがそれではバリデーションが増えすぎて手に負えなくなる
なのでそもそも間違ったオブジェクトを作れないようにしよう
作れないものを関数に渡すことはできないので安心だ
そういう考え方ね
下だけどそれを疎結合とは言わない
否定したい思いが先走って無茶苦茶言ってない?
不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い
その連鎖はいずれIO境界まで辿り着きユーザーに間違ったAPIレスポンスを返したりデータベースに間違ったデータを格納したりする
関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる?
もちろん途中でバリデーションをかけて落とすことはできるだろうがそれではバリデーションが増えすぎて手に負えなくなる
なのでそもそも間違ったオブジェクトを作れないようにしよう
作れないものを関数に渡すことはできないので安心だ
そういう考え方ね
下だけどそれを疎結合とは言わない
否定したい思いが先走って無茶苦茶言ってない?
2022/02/06(日) 19:01:45.12ID:Fo3XpFx5
>>23
> 不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い
繰り返しになるけど、イミュータブルオブジェクトはイミュータブルオブジェクトに影響与えないよ?
> 関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる?
間違ったオブジェクト渡らないよ? なんの為の型だと思ってるの? structとか使わないの?
データの入り口(IO等)で型バリデーションすればあとは型が化けたりしないよ。
> 不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い
繰り返しになるけど、イミュータブルオブジェクトはイミュータブルオブジェクトに影響与えないよ?
> 関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる?
間違ったオブジェクト渡らないよ? なんの為の型だと思ってるの? structとか使わないの?
データの入り口(IO等)で型バリデーションすればあとは型が化けたりしないよ。
2022/02/06(日) 19:06:18.29ID:AuLf6V7C
>>21
> Jsonを必要としているのは主にIOを司る層であってそれはドメイン層ではない
> 異なる層が負うべき責務を別の層が引き受けるのはクリーンな設計とは言えないよね
> なのでドメイン層のクラスがJson Serializableである必要はない
横だがこれは完全に間違ってるだろ。
シリアライズするのは確かにI/O側だが、他言語も含めて今現在は
クラス側にserialize手段を用意するのが主流だ。TS知らんがJSと同じならtoJSON()。
だからドメイン側でシリアライズする可能性のあるクラスの全てにtoJSONを用意しておくのが正しい解だという事に今はなっている。
I/O側にやらせていたのは昔の設計だ。ただそれの何が悪かったのかは俺は知らない。
(実行効率だけは無茶苦茶良かったから、クラスを導入して非効率になっただけなのかもしれんが)
> Jsonを必要としているのは主にIOを司る層であってそれはドメイン層ではない
> 異なる層が負うべき責務を別の層が引き受けるのはクリーンな設計とは言えないよね
> なのでドメイン層のクラスがJson Serializableである必要はない
横だがこれは完全に間違ってるだろ。
シリアライズするのは確かにI/O側だが、他言語も含めて今現在は
クラス側にserialize手段を用意するのが主流だ。TS知らんがJSと同じならtoJSON()。
だからドメイン側でシリアライズする可能性のあるクラスの全てにtoJSONを用意しておくのが正しい解だという事に今はなっている。
I/O側にやらせていたのは昔の設計だ。ただそれの何が悪かったのかは俺は知らない。
(実行効率だけは無茶苦茶良かったから、クラスを導入して非効率になっただけなのかもしれんが)
2022/02/06(日) 19:18:05.78ID:7lkHt7VO
>>24
つーか「影響を与える」と私が一言でも書いたかな?
君のレスでは影響を与えるって言葉を変化させるという意味で使ってるように読める
だが私はイミュータブルオブジェクトを元にイミュータブルオブジェクトを「生成する」としか書いてない
modifyとcreateはプログラミングにおいて全く異なる概念なので明確に区別することをおすすめする
PODなら間違ったデータを簡単に渡せる
IO境界だけでバリデーションすればいいという考え方は人間を信用しすぎている
人間は間違えるという前提を忘れてはいけないよ
百点満点のコードを確実に書けると確信できるようなちっぽけなシステムではそれでなんとかなるかもしれないけどね
つーか「影響を与える」と私が一言でも書いたかな?
君のレスでは影響を与えるって言葉を変化させるという意味で使ってるように読める
だが私はイミュータブルオブジェクトを元にイミュータブルオブジェクトを「生成する」としか書いてない
modifyとcreateはプログラミングにおいて全く異なる概念なので明確に区別することをおすすめする
PODなら間違ったデータを簡単に渡せる
IO境界だけでバリデーションすればいいという考え方は人間を信用しすぎている
人間は間違えるという前提を忘れてはいけないよ
百点満点のコードを確実に書けると確信できるようなちっぽけなシステムではそれでなんとかなるかもしれないけどね
2022/02/06(日) 19:28:15.98ID:Fo3XpFx5
2022/02/06(日) 19:34:50.15ID:7lkHt7VO
>>25
今はなっている?ないないなってない
適当なことを言わんでくれ
JSONやXMLやバイトストリームやフォームデータのような外界の都合を吸収してシステムが扱いやすい形式に変換する(あるいはその逆の流れ)はドメイン層の仕事じゃない
それは外界とやり取りをするための専門の層の仕事だ
今はなっている?ないないなってない
適当なことを言わんでくれ
JSONやXMLやバイトストリームやフォームデータのような外界の都合を吸収してシステムが扱いやすい形式に変換する(あるいはその逆の流れ)はドメイン層の仕事じゃない
それは外界とやり取りをするための専門の層の仕事だ
2022/02/06(日) 19:39:52.33ID:7lkHt7VO
>>27
structだけじゃ人間は間違えるし問題あるって話をしてる
structではデータ型が合ってるところまでしか保証できない
インスタンスが抱えてるデータが満たすべき条件を満たしていることを保証できるか?そこがポイント
それを保証するにはstructでは不十分で完全コンストラクタを実装したクラスが不可欠
structだけじゃ人間は間違えるし問題あるって話をしてる
structではデータ型が合ってるところまでしか保証できない
インスタンスが抱えてるデータが満たすべき条件を満たしていることを保証できるか?そこがポイント
それを保証するにはstructでは不十分で完全コンストラクタを実装したクラスが不可欠
2022/02/06(日) 20:00:52.90ID:Fo3XpFx5
2022/02/06(日) 20:04:35.10ID:+4OSlPdc
2022/02/06(日) 20:06:04.45ID:Fo3XpFx5
>>31
だからIOとかfetchみたいなデータの入り口だけなんだよ?
だからIOとかfetchみたいなデータの入り口だけなんだよ?
2022/02/06(日) 20:12:58.65ID:W5e759ag
>>32
またループしてる
そこだけバリデーションしても人間のミスはカバーしきれない
規模の小さなシステムならなんとかなるかもしれないが大きなシステムでは絶対無理
これ以上は無限ループして時間の無駄っぽいね
またループしてる
そこだけバリデーションしても人間のミスはカバーしきれない
規模の小さなシステムならなんとかなるかもしれないが大きなシステムでは絶対無理
これ以上は無限ループして時間の無駄っぽいね
2022/02/06(日) 20:14:05.76ID:Fo3XpFx5
>>33
そうだね。止めてもいいよ。
そうだね。止めてもいいよ。
2022/02/06(日) 20:51:55.71ID:AuLf6V7C
>>28
toJSONを呼ぶのはI/O層の仕事で、
toJSONを定義するのはドメイン層の仕事だよ。
つか、そうじゃないと無理なんだよ。
JSONでは対応出来ない型があるから、何が入っているか分からない状態ではシリアライズは出来ない。
逆に言えば何でもシリアライズ出来れば全部I/O側に任せる事は出来るのだが、
現時点で現実的にこれはバイトストリームしかないから、バイナリデータでメモリダンプ形式で良ければ出来るけど、
これはJSONともXMLとも言わないし、実際これをやってるシステムは今は無いでしょ。
toJSONを呼ぶのはI/O層の仕事で、
toJSONを定義するのはドメイン層の仕事だよ。
つか、そうじゃないと無理なんだよ。
JSONでは対応出来ない型があるから、何が入っているか分からない状態ではシリアライズは出来ない。
逆に言えば何でもシリアライズ出来れば全部I/O側に任せる事は出来るのだが、
現時点で現実的にこれはバイトストリームしかないから、バイナリデータでメモリダンプ形式で良ければ出来るけど、
これはJSONともXMLとも言わないし、実際これをやってるシステムは今は無いでしょ。
2022/02/06(日) 21:05:05.78ID:Y8lZmwFL
>>35
ん?別の人か?
ドメイン側が提供するのは属性の読み取りアクセスと同等の引数を受け取る完全コンストラクタオーバーロードだけ
読み取った属性を外界が要求する形式に整形、シリアライズする(あるいはその逆)のはIO層の仕事
どの外界とどんな形式でやり取りするのか?
ドメイン層はそんなことは知らないし知ってはいけない
だから外界に依存しない純粋な読み取り属性とコンストラクタでIO層と連携する
IO層はそのデータをどうすべきか全て知っている
ん?別の人か?
ドメイン側が提供するのは属性の読み取りアクセスと同等の引数を受け取る完全コンストラクタオーバーロードだけ
読み取った属性を外界が要求する形式に整形、シリアライズする(あるいはその逆)のはIO層の仕事
どの外界とどんな形式でやり取りするのか?
ドメイン層はそんなことは知らないし知ってはいけない
だから外界に依存しない純粋な読み取り属性とコンストラクタでIO層と連携する
IO層はそのデータをどうすべきか全て知っている
2022/02/06(日) 21:14:45.88ID:AuLf6V7C
>>36
まあそれでも出来るけど、それが面倒で二度手間で意味無いからみんなPODを使ってるんだと思うぞ。
FizzBuzzEnterpriseEditionとか、君は本気でやりそうだね。
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
まあそれでも出来るけど、それが面倒で二度手間で意味無いからみんなPODを使ってるんだと思うぞ。
FizzBuzzEnterpriseEditionとか、君は本気でやりそうだね。
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
2022/02/06(日) 21:24:14.91ID:Fo3XpFx5
>>37
なんだこれww
なんだこれww
2022/02/06(日) 21:25:43.66ID:7lkHt7VO
>>37
君も話がループしてるね
面倒だからPODで済ませるで通じるちっぽけな規模ならそれでいいんだよ私は一貫してそこは否定してないでしょ?
それなりに規模が大きくなった時の話をしてんの
FizzBuzzをエンタープライズの手法で作るのが馬鹿馬鹿しいのと同じように
エンタープライズのシステムをFizzBuzzを書くようなノリで作るのも馬鹿馬鹿しいってこと
君も話がループしてるね
面倒だからPODで済ませるで通じるちっぽけな規模ならそれでいいんだよ私は一貫してそこは否定してないでしょ?
それなりに規模が大きくなった時の話をしてんの
FizzBuzzをエンタープライズの手法で作るのが馬鹿馬鹿しいのと同じように
エンタープライズのシステムをFizzBuzzを書くようなノリで作るのも馬鹿馬鹿しいってこと
2022/02/06(日) 21:33:21.13ID:7lkHt7VO
>>35
ちなみにバイナリでシリアライズするのはprotocol buffersとか普通にあるよ
で、どんな形式で通信すんの?JSON?バイナリ?XML?CSV?
そんなのはドメイン側は知りたくない絶対に知りたくない
ドメイン側がシリアライズの責務を負ってしまったらじゃあ通信の形式が増えるたびにドメイン側を拡張するのか?
そんなのドメイン側の本質とは全く関係ない通信様式の問題なのに?
ちなみにバイナリでシリアライズするのはprotocol buffersとか普通にあるよ
で、どんな形式で通信すんの?JSON?バイナリ?XML?CSV?
そんなのはドメイン側は知りたくない絶対に知りたくない
ドメイン側がシリアライズの責務を負ってしまったらじゃあ通信の形式が増えるたびにドメイン側を拡張するのか?
そんなのドメイン側の本質とは全く関係ない通信様式の問題なのに?
2022/02/06(日) 22:02:56.26ID:AuLf6V7C
>>40
JavaScriptといえばJSON以外無い。
そしてXMLもDOMParserでどうにでもなる。
通信形式をドメイン側と分離するべきなのは「あらゆる形式に対応する」大前提でだ。
今時JSONかXMLしかないし、実際これで事足りるからみんなこれを使ってる。
密結合が駄目なのは「変更される可能性がある箇所」であって、何でもかんでも分離すればいいというものではない。
疎結合にすれば結局間接参照を中に挟むから、実行効率もコード効率も落ちるだけ。
Protocol Buffers見てみたが、ぶっちゃけこれ誰も使ってないだろ。
JSに対応してない時点で今現在のコンピューティングとかけ離れている。
現在もJSONで揺るぎないし、今後もJSONがさらに蔓延る雰囲気だ。
なら、ドメイン側がJSON形式に依存しても全く問題ないんだよ。
そこを無理矢理分離して、分離する意味の無いところも含めてあらゆる分離を行ってるのがFizzBuzzEnterpriseEdition。
君が言ってるのはこれ。
勿論、JSONが廃れればドメイン側のコードを書き換える必要が発生するけど、これは多分あり得ない未来なんだよ。
それでもこれに備えたければ備えるのも自由だけど.。
尚一応言っておくがJSONはJavaScriptObjectNotationの略で、つまりJSネイティブ形式だ。
だからPython等の他言語がJSON依存を避けるのならまだ分かるが、TS/JSで避ける意味はない。
君は完全にFizzBuzzEnterpriseEditionのノリでプログラミングをしてる。
JavaScriptといえばJSON以外無い。
そしてXMLもDOMParserでどうにでもなる。
通信形式をドメイン側と分離するべきなのは「あらゆる形式に対応する」大前提でだ。
今時JSONかXMLしかないし、実際これで事足りるからみんなこれを使ってる。
密結合が駄目なのは「変更される可能性がある箇所」であって、何でもかんでも分離すればいいというものではない。
疎結合にすれば結局間接参照を中に挟むから、実行効率もコード効率も落ちるだけ。
Protocol Buffers見てみたが、ぶっちゃけこれ誰も使ってないだろ。
JSに対応してない時点で今現在のコンピューティングとかけ離れている。
現在もJSONで揺るぎないし、今後もJSONがさらに蔓延る雰囲気だ。
なら、ドメイン側がJSON形式に依存しても全く問題ないんだよ。
そこを無理矢理分離して、分離する意味の無いところも含めてあらゆる分離を行ってるのがFizzBuzzEnterpriseEdition。
君が言ってるのはこれ。
勿論、JSONが廃れればドメイン側のコードを書き換える必要が発生するけど、これは多分あり得ない未来なんだよ。
それでもこれに備えたければ備えるのも自由だけど.。
尚一応言っておくがJSONはJavaScriptObjectNotationの略で、つまりJSネイティブ形式だ。
だからPython等の他言語がJSON依存を避けるのならまだ分かるが、TS/JSで避ける意味はない。
君は完全にFizzBuzzEnterpriseEditionのノリでプログラミングをしてる。
2022/02/06(日) 22:16:09.49ID:jR6D7dXS
PODがダメなら普通にclassを使えばいいじゃない
その class に完全コントスクラタと toJSON を実装すればいい
つか贅沢言いすぎや
TSほどJSON API と神話性高く、堅く書けて、ほどよく柔軟な言語ないで
ワイはバックエンドをGoで書かされているが、言語機能の貧弱さに発狂しそうや
爆速でコンパイルできても爆裂バグだらけじゃ話にならん
その class に完全コントスクラタと toJSON を実装すればいい
つか贅沢言いすぎや
TSほどJSON API と神話性高く、堅く書けて、ほどよく柔軟な言語ないで
ワイはバックエンドをGoで書かされているが、言語機能の貧弱さに発狂しそうや
爆速でコンパイルできても爆裂バグだらけじゃ話にならん
2022/02/06(日) 22:20:03.49ID:jR6D7dXS
>>37
ヤバスギでしょ
ヤバスギでしょ
2022/02/06(日) 22:29:45.95ID:7lkHt7VO
あらゆる形式に対応するためじゃない責務を明確に分けるため
仮に変更される可能性がなければ1つの関数でシステムを組むのか?そうはならんやろ
変更される予定がなくても責務は分けて作るんだよお仕事ではね
ProtobufはgRPC
バイナリで有名なのだと他にもMessage Packとか
こっちはゲームとかfluentdで有名
君はFizzBuzzのノリでエンタープライズ開発しそうだね
仮に変更される可能性がなければ1つの関数でシステムを組むのか?そうはならんやろ
変更される予定がなくても責務は分けて作るんだよお仕事ではね
ProtobufはgRPC
バイナリで有名なのだと他にもMessage Packとか
こっちはゲームとかfluentdで有名
君はFizzBuzzのノリでエンタープライズ開発しそうだね
2022/02/06(日) 22:30:03.08ID:Uni4uKu0
そのDDDの文脈でTSだとバリデーションが必要で
GoやC#だとバリデーションが必要ないケースってどんな場合のこと?
GoやC#だとバリデーションが必要ないケースってどんな場合のこと?
2022/02/06(日) 22:33:52.37ID:jR6D7dXS
>>45
Goは完全コンストラクタを実装できない、誰でもインタスンス作り放題ヤリ放題だからバリデーションなんかいらんのや!
バリデーションなんて軟弱フニャチンオカマ野郎がへっぴり腰を振ってるようなもんだ!
ファッキューLGBT!
Goは完全コンストラクタを実装できない、誰でもインタスンス作り放題ヤリ放題だからバリデーションなんかいらんのや!
バリデーションなんて軟弱フニャチンオカマ野郎がへっぴり腰を振ってるようなもんだ!
ファッキューLGBT!
2022/02/06(日) 22:50:56.58ID:7lkHt7VO
>>42
TypeScriptでもそうすれば良いじゃんってのはその通り
別にTypeScriptがclass使えないとかそういうことを問題視してるわけじゃぜんぜんないんだ
ここで最初に戻ってよくレスを読んでみて
私が提起した問題点はこれね
「PODの濫用が標準的なコーディングスタイルとして受け入れられてる」
この問題に関しては言語自体の話題じゃないんだよ
ようするに今日やったような問答をTypeScript人材を雇うと毎回全員にやらなきゃならない可能性が高いってこと
これじゃ申し訳ないけど仕事にならないよ
なので鯖サイドではTypeScriptは残念だけど人集めの段階でNGってことになるわけ
規模でかくなるのわかってるんだから最初から鯖サイドではちゃんとレイヤ分けましょうねクラス使いましょうねSOLIDなコード書きましょうねでスッと話が通じる人が多い言語で計画立てたいわけさ
そうなると古臭いけどJavaなど無難な選択肢しかないんだよな…
TypeScriptでもそうすれば良いじゃんってのはその通り
別にTypeScriptがclass使えないとかそういうことを問題視してるわけじゃぜんぜんないんだ
ここで最初に戻ってよくレスを読んでみて
私が提起した問題点はこれね
「PODの濫用が標準的なコーディングスタイルとして受け入れられてる」
この問題に関しては言語自体の話題じゃないんだよ
ようするに今日やったような問答をTypeScript人材を雇うと毎回全員にやらなきゃならない可能性が高いってこと
これじゃ申し訳ないけど仕事にならないよ
なので鯖サイドではTypeScriptは残念だけど人集めの段階でNGってことになるわけ
規模でかくなるのわかってるんだから最初から鯖サイドではちゃんとレイヤ分けましょうねクラス使いましょうねSOLIDなコード書きましょうねでスッと話が通じる人が多い言語で計画立てたいわけさ
そうなると古臭いけどJavaなど無難な選択肢しかないんだよな…
2022/02/06(日) 22:57:06.33ID:AuLf6V7C
>>44
まあ君とは平行線のようだね。
> 仮に変更される可能性がなければ1つの関数でシステムを組むのか?
組むぞ。俺は変更される可能性がない所に依存するのは全く問題ないと見てる。
そして基本的に実行効率重視だから、無駄な事はしない。
君はドメインが「1年が365日である事を知っている必要はない」として、365すらもリテラルでは書かないのだろう。
そして人類が火星に到達した時、君のコードは無修正で動くが、俺のコードは役に立たない。
でも俺は、「一方ロシアは鉛筆を使った」は大切にすべきだと思ってるから、
365はリテラルで書いてしまって、火星に到達してから書き直す事を選択する。
俺はJSONが廃れる未来なんてないと思ってるから、コードがJSON形式に依存するのも何ら問題を感じないし、
今のJSのアーキテクチャ、つまりtoJSONを整備しろ、で全く問題ないと思ってる。
これは確かに分離出来てないアーキテクチャだけど、する意味もないと思うよ。
むしろ他言語でもJSON使えないのはポンコツ扱いだろ今は。
> gRPC
> Message Pack
> fluentd
JSONがあまり効率のいい形式ではないのは事実で、これに対する策のようだね。
ただ、俺ならI/O層でJSON形式から変換させる。
つまりドメイン層はtoJSONを定義して、それでおしまい。それ以上の形式が欲しければI/O層で変換だ。
君のアプローチより現実的だと思うけど。
まあ君とは平行線のようだね。
> 仮に変更される可能性がなければ1つの関数でシステムを組むのか?
組むぞ。俺は変更される可能性がない所に依存するのは全く問題ないと見てる。
そして基本的に実行効率重視だから、無駄な事はしない。
君はドメインが「1年が365日である事を知っている必要はない」として、365すらもリテラルでは書かないのだろう。
そして人類が火星に到達した時、君のコードは無修正で動くが、俺のコードは役に立たない。
でも俺は、「一方ロシアは鉛筆を使った」は大切にすべきだと思ってるから、
365はリテラルで書いてしまって、火星に到達してから書き直す事を選択する。
俺はJSONが廃れる未来なんてないと思ってるから、コードがJSON形式に依存するのも何ら問題を感じないし、
今のJSのアーキテクチャ、つまりtoJSONを整備しろ、で全く問題ないと思ってる。
これは確かに分離出来てないアーキテクチャだけど、する意味もないと思うよ。
むしろ他言語でもJSON使えないのはポンコツ扱いだろ今は。
> gRPC
> Message Pack
> fluentd
JSONがあまり効率のいい形式ではないのは事実で、これに対する策のようだね。
ただ、俺ならI/O層でJSON形式から変換させる。
つまりドメイン層はtoJSONを定義して、それでおしまい。それ以上の形式が欲しければI/O層で変換だ。
君のアプローチより現実的だと思うけど。
2022/02/06(日) 23:02:11.49ID:AuLf6V7C
>>47
そりゃお前のノリでやってくれる奴はお前の畑の奴だよ。
それがJavaならそうすればいいだけ。
ただ、PODが駄目だってのはただの先入観で、
実際それでやってる奴が多くて、それでも世界が回ってるのなら、お前が勘違いしてるだけだよ。
そりゃお前のノリでやってくれる奴はお前の畑の奴だよ。
それがJavaならそうすればいいだけ。
ただ、PODが駄目だってのはただの先入観で、
実際それでやってる奴が多くて、それでも世界が回ってるのなら、お前が勘違いしてるだけだよ。
2022/02/06(日) 23:08:32.84ID:7lkHt7VO
>>48
うん
TypeScripterとは分かり合えない人が多いだろうなとは思ってたけど君とは特に分かり合えないと思う
関数1つでシステム書く人を理解するのは私には不可能だ
365をリテラルで書かないのはDDDとかそれ以前の問題だと思うよ
君の書いたコードって四年に一回ぐらいバグ出してない?大丈夫?
処理効率が大事な部分でわざわざJSONを経由して効率落とすの?
ライブラリ開発者が必死になって直列化コストを削減してくれたのを嘲笑うかのような所業
やっぱり理解できないや
うん
TypeScripterとは分かり合えない人が多いだろうなとは思ってたけど君とは特に分かり合えないと思う
関数1つでシステム書く人を理解するのは私には不可能だ
365をリテラルで書かないのはDDDとかそれ以前の問題だと思うよ
君の書いたコードって四年に一回ぐらいバグ出してない?大丈夫?
処理効率が大事な部分でわざわざJSONを経由して効率落とすの?
ライブラリ開発者が必死になって直列化コストを削減してくれたのを嘲笑うかのような所業
やっぱり理解できないや
2022/02/06(日) 23:09:14.59ID:7lkHt7VO
2022/02/06(日) 23:34:35.72ID:EROXxvgE
なら、その規模を確認してからでよかったんじゃね?
2022/02/06(日) 23:46:30.23ID:AuLf6V7C
>>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を選択すべきだと思うけど。
いずれにしても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を選択すべきだと思うけど。
2022/02/07(月) 03:29:33.54ID:yhez4jOW
あと、パフォーマンスレンジの選択も間違ってる。
スクリプト言語は、チャッチャと書いてチャッチャと動かす為の言語であって、
ゴリゴリ一生懸命コードを書いて、パフォーマンスやメンテナンス性を得るための言語ではない。
つまり、今回で言うと、
TS/JSはJSONで全く問題無い場合に使う言語であって、
JSONではパフォーマンスに問題があると分かっているのなら、GoかRustを使うべき。
勿論Javaでもいいが、RustならJavaより速い。
だからこそ逆に、手抜きして何が悪い!ってことになる。
要求仕様が「オブジェクトを復旧できること」なら、
一番簡単なのはJSONで、これを使う人が多いのは当然だ。
一々自前でコードを書きたくなければPODになる。これがいいかどうかはさておき。
(ただまあ俺も、Web系の連中はJavaのstaticおじさんを馬鹿にする割には
書いてるコードがstaticおじさんと同じなのはどうなのよ、とは思ったが)
ちなみに主張されてるようなケースでJavaならイテレータでも渡してI/O側でシリアライズするのか?
単純なイテレータだと階層があったら厳しいから、階層も跨いでいけるイテレータを渡す事になりそうだが、
それでもデータの中身が何か知ってないとシリアライズは厳しくて、
現実的に完全に分離するのは無理だと思うが。
なおメンテナンス性についてはTS/JSは以外に高い。
こういう構造にしたい、というのはあっけないほど簡単に記述出来るから、分離だけは簡単だ。
(ただ、その分離の意味があるのか?が俺には疑問なのだが)
スクリプト言語は、チャッチャと書いてチャッチャと動かす為の言語であって、
ゴリゴリ一生懸命コードを書いて、パフォーマンスやメンテナンス性を得るための言語ではない。
つまり、今回で言うと、
TS/JSはJSONで全く問題無い場合に使う言語であって、
JSONではパフォーマンスに問題があると分かっているのなら、GoかRustを使うべき。
勿論Javaでもいいが、RustならJavaより速い。
だからこそ逆に、手抜きして何が悪い!ってことになる。
要求仕様が「オブジェクトを復旧できること」なら、
一番簡単なのはJSONで、これを使う人が多いのは当然だ。
一々自前でコードを書きたくなければPODになる。これがいいかどうかはさておき。
(ただまあ俺も、Web系の連中はJavaのstaticおじさんを馬鹿にする割には
書いてるコードがstaticおじさんと同じなのはどうなのよ、とは思ったが)
ちなみに主張されてるようなケースでJavaならイテレータでも渡してI/O側でシリアライズするのか?
単純なイテレータだと階層があったら厳しいから、階層も跨いでいけるイテレータを渡す事になりそうだが、
それでもデータの中身が何か知ってないとシリアライズは厳しくて、
現実的に完全に分離するのは無理だと思うが。
なおメンテナンス性についてはTS/JSは以外に高い。
こういう構造にしたい、というのはあっけないほど簡単に記述出来るから、分離だけは簡単だ。
(ただ、その分離の意味があるのか?が俺には疑問なのだが)
2022/02/07(月) 03:30:51.04ID:yhez4jOW
それから、規模については他の人も指摘してるけど、一体何万行の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に駆逐された。(クライアントサイドでは)
それって鉛筆でよくね?ってのを考えた方がいいと思うぜ。
やれば分かるが、鯖なんて結局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に駆逐された。(クライアントサイドでは)
それって鉛筆でよくね?ってのを考えた方がいいと思うぜ。
2022/02/07(月) 06:51:13.72ID:b69Z+ASC
TSの知識が無くTSの開発者文化に馴染めず、理解してない言葉を並べ、決して間違いを認めず、自分のやり方に固執し、目の前にある概念を理解しようともしない。
う〜んこのおっさん。
う〜んこのおっさん。
2022/02/07(月) 10:07:24.70ID:WuDoUI67
>>55
ううむ…せめてレス読んで理解した上で応答してほしいんだが…
小さなシステムでやり方にこだわる必要はないってのは深夜3時までかけて書いた情熱的な作文でいちいち主張しなくても私も最初から認めてることでしょ?
昨日議論したのはそういう手法が通じない規模のシステムの話ね(何度もそう書いてるはずだが)
大きいシステムではうまくいかないよという話をしてるのに
その応答が小さなシステムならうまくいくから問題ないでは話が噛み合うわけがないよね
ううむ…せめてレス読んで理解した上で応答してほしいんだが…
小さなシステムでやり方にこだわる必要はないってのは深夜3時までかけて書いた情熱的な作文でいちいち主張しなくても私も最初から認めてることでしょ?
昨日議論したのはそういう手法が通じない規模のシステムの話ね(何度もそう書いてるはずだが)
大きいシステムではうまくいかないよという話をしてるのに
その応答が小さなシステムならうまくいくから問題ないでは話が噛み合うわけがないよね
2022/02/07(月) 11:40:42.69ID:RorkGoUL
いやでもわかるわ
json serializable / deserializable で、かつ this 参照可能な method 生えてれば、カプセル化というかコードの凝縮度上げられるのになとは思う
まぁそういう toJSON, fromJSON を実装すれば的な話ではあるが
type Human に getFullName 実装したい時に
POD だと getFullName(h: Human) みたいになって
getFullName(h) じゃなく
h.getFullName() みたいにしたかったのに
みたいな
json serializable / deserializable で、かつ this 参照可能な method 生えてれば、カプセル化というかコードの凝縮度上げられるのになとは思う
まぁそういう toJSON, fromJSON を実装すれば的な話ではあるが
type Human に getFullName 実装したい時に
POD だと getFullName(h: Human) みたいになって
getFullName(h) じゃなく
h.getFullName() みたいにしたかったのに
みたいな
2022/02/07(月) 11:50:23.99ID:UTO8dkwM
凝集度をclassで確保する必要は無いんやで。
書き方についてもパイプライン演算子がstage2入ったしね
書き方についてもパイプライン演算子がstage2入ったしね
2022/02/07(月) 11:58:19.03ID:UTO8dkwM
Rustのstructとimplみたく、型とそれに付随する関数を収めたモジュールを作るんや。
2022/02/07(月) 12:40:58.10ID:yhez4jOW
>>57
だから何万行書くつもりなんだ?って聞いてるんだよ。
Webの場合は3層なりに強制的に分割されるし、状態管理はDBに丸投げ、View/UIはHTML/CSS/JSに丸投げなので、
鯖でやる事なんて大して無いんだよ。
セキュリティガバガバでよく、(=社内向けシステムに表示するだけとか)
ORMまでセットアップされてれば、
fizzbuzzの次には掲示板でも作ってみようか、となるくらい単純に出来てる。
だからこそPHPみたいな糞言語が未だに主流なわけでさ。
あれほどの糞言語でも何とかなる程度に収まってんだよ。
ここら辺はやれば分かるんだが、君はやってもないのにJava的な開発を想定しているからおかしな事になってる。
だから1/10想定で、と言ってるわけでさ。
だから何万行書くつもりなんだ?って聞いてるんだよ。
Webの場合は3層なりに強制的に分割されるし、状態管理はDBに丸投げ、View/UIはHTML/CSS/JSに丸投げなので、
鯖でやる事なんて大して無いんだよ。
セキュリティガバガバでよく、(=社内向けシステムに表示するだけとか)
ORMまでセットアップされてれば、
fizzbuzzの次には掲示板でも作ってみようか、となるくらい単純に出来てる。
だからこそPHPみたいな糞言語が未だに主流なわけでさ。
あれほどの糞言語でも何とかなる程度に収まってんだよ。
ここら辺はやれば分かるんだが、君はやってもないのにJava的な開発を想定しているからおかしな事になってる。
だから1/10想定で、と言ってるわけでさ。
2022/02/07(月) 12:41:25.24ID:yhez4jOW
> 大きいシステムではうまくいかないよという話をしてるのに
これが間違ってる。大きいシステムが存在しない世界なんだよ。
なぜなら、大きくなった部分は切り出され、まだ切り出されてない残り部分しか書かない方式だから。
ユーザーデータの管理が面倒です→DBとして切り出して丸投げ
HTML生成が面倒です→フレームワークに丸投げ
DBを触るのが面倒です→クエリビルダにしますか?ORMにしますか?
セッション管理も面倒です→ではこれもフレームワークで
だからフレームワークは基本的に小粒だし、場合によってはいきなり頓死する。
でもフレームワークまみれで良ければいくらでも手抜き出来る世界だし、それで良しとされてる。
そしてWeb系プログラマは基本的に技術的には非力で、これは「スクリプタをプログラマと呼ぶな」とか言われてたりするが、
だからこそ逆に、自分より上の連中が作ったフレームワークに乗っかる事に抵抗がない。
Javaの連中や、最近の初心者は、手段が目的化してしまってる。
疎結合にする事、綺麗なコードを書く事が目的になってしまってる。それは本来は手段だ。
本来の目的は、「仕様を満たすコードを最速で得る事」だよ。
その際にコードの複雑化が障害になるので疎結合や綺麗なコードが必要になるわけだが、
逆に、ひたすら切り出して絶対に複雑化させない、というアプローチをWeb系は採ってる。
OOPだと大体1,000-3,000行で各モジュールは出来、この単位で切り出して行ってるはずだが、
Web系だと本当に数行で書けるような事すら切り出してたりするし、ここまでやれば大規模化や複雑化は絶対にしない。
逆に依存性は問題になってくるから、みんな動向には敏感だろ。
どっちが良いというものでもないけど、俺はこのWeb系のやり方もありだと思うよ。
すくなくともWeb系の常識からすると、みずほ銀行のポンコツシステムとかあり得ない。
最終的には口座への入出金だけガッツリ管理出来ればいいだけなのに、何でそんなに落ちるんだよ?でしかない。
Javaの流儀でサーバー側を作るのも技術的には可能だけど、それが主流でないって事は、
Javaエンジニアなんて腐るほどいるのだし、「やらなかった」のではなく「上手く行かなかった」と考えた方が妥当だと思うけど。
それでもやるのはどうぞご自由にだが。
これが間違ってる。大きいシステムが存在しない世界なんだよ。
なぜなら、大きくなった部分は切り出され、まだ切り出されてない残り部分しか書かない方式だから。
ユーザーデータの管理が面倒です→DBとして切り出して丸投げ
HTML生成が面倒です→フレームワークに丸投げ
DBを触るのが面倒です→クエリビルダにしますか?ORMにしますか?
セッション管理も面倒です→ではこれもフレームワークで
だからフレームワークは基本的に小粒だし、場合によってはいきなり頓死する。
でもフレームワークまみれで良ければいくらでも手抜き出来る世界だし、それで良しとされてる。
そしてWeb系プログラマは基本的に技術的には非力で、これは「スクリプタをプログラマと呼ぶな」とか言われてたりするが、
だからこそ逆に、自分より上の連中が作ったフレームワークに乗っかる事に抵抗がない。
Javaの連中や、最近の初心者は、手段が目的化してしまってる。
疎結合にする事、綺麗なコードを書く事が目的になってしまってる。それは本来は手段だ。
本来の目的は、「仕様を満たすコードを最速で得る事」だよ。
その際にコードの複雑化が障害になるので疎結合や綺麗なコードが必要になるわけだが、
逆に、ひたすら切り出して絶対に複雑化させない、というアプローチをWeb系は採ってる。
OOPだと大体1,000-3,000行で各モジュールは出来、この単位で切り出して行ってるはずだが、
Web系だと本当に数行で書けるような事すら切り出してたりするし、ここまでやれば大規模化や複雑化は絶対にしない。
逆に依存性は問題になってくるから、みんな動向には敏感だろ。
どっちが良いというものでもないけど、俺はこのWeb系のやり方もありだと思うよ。
すくなくともWeb系の常識からすると、みずほ銀行のポンコツシステムとかあり得ない。
最終的には口座への入出金だけガッツリ管理出来ればいいだけなのに、何でそんなに落ちるんだよ?でしかない。
Javaの流儀でサーバー側を作るのも技術的には可能だけど、それが主流でないって事は、
Javaエンジニアなんて腐るほどいるのだし、「やらなかった」のではなく「上手く行かなかった」と考えた方が妥当だと思うけど。
それでもやるのはどうぞご自由にだが。
2022/02/07(月) 12:44:13.86ID:NQzt3ZES
>>60
それが完璧にできればいいんだが、それだと大きなシステムでは統制が行き届かず、処理が分散し凝集度が下がる、というのは過去の実績から明らかなんだよね
そのスタイルでやろうとすると人間がミスをしない、という前提が必要になるんだけど、現実的にそれは難しい
なので大きい案件では「間違えるためには手間がかかる状態」を作り出して人間のミスを抑止するわけ
クラスなら処理の置き場所がはっきりしてるだけでなく、他の場所に書こうとすると別のクラスが必要になるので間違いに気付き易くなる
なので自然と処理が然るべきクラスに集まって、凝集度が高まるって話
何度も何度も言ってるけど
管理コストのスケーリングを考えなくていい、個人や小さなチームで作れる範囲なら、PODと関数でいいんじゃないかな?
その程度ならプログラマが注意深く作業すれば、ミスなく作れるからね
雑談として脱線するけど、ただデータを流すだけ的な小さいサービスは今後はノーコードが主流になると思う
鯖サイドTSのメインターゲットがそういうスモールサービスだとしたら、将来はもしかしたらノーコードとのシェア争いになるのかもね
それが完璧にできればいいんだが、それだと大きなシステムでは統制が行き届かず、処理が分散し凝集度が下がる、というのは過去の実績から明らかなんだよね
そのスタイルでやろうとすると人間がミスをしない、という前提が必要になるんだけど、現実的にそれは難しい
なので大きい案件では「間違えるためには手間がかかる状態」を作り出して人間のミスを抑止するわけ
クラスなら処理の置き場所がはっきりしてるだけでなく、他の場所に書こうとすると別のクラスが必要になるので間違いに気付き易くなる
なので自然と処理が然るべきクラスに集まって、凝集度が高まるって話
何度も何度も言ってるけど
管理コストのスケーリングを考えなくていい、個人や小さなチームで作れる範囲なら、PODと関数でいいんじゃないかな?
その程度ならプログラマが注意深く作業すれば、ミスなく作れるからね
雑談として脱線するけど、ただデータを流すだけ的な小さいサービスは今後はノーコードが主流になると思う
鯖サイドTSのメインターゲットがそういうスモールサービスだとしたら、将来はもしかしたらノーコードとのシェア争いになるのかもね
2022/02/07(月) 12:57:08.26ID:UTO8dkwM
>>63
モジュール関数がそうなる状況ではclassもそうなるよ?
モジュール関数がそうなる状況ではclassもそうなるよ?
2022/02/07(月) 12:59:32.42ID:yhez4jOW
>>58
> getFullName(h) じゃなく
> h.getFullName() みたいにしたかったのに
> みたいな
それはC#で言う拡張メソッドだね。staticメソッドをインスタンスメソッドとして『記述出来る』
Goは逆にメソッドをstaticとして呼べたはずだけど。
この辺は『どう書きたいか』であり、文法の問題であって、(本来は)コード構造の問題ではない。
C#はこの辺の文法とコード構造を分離した。
つまり、メソッドとして書きたいからクラスにします、ではなく、
メソッドとして書きたければメソッドとして書ける文法(拡張メソッド)を用意した。
まあ実際はただのパッチだけどね。何故かは知らんが.NETは無駄にstaticメソッドが多くてウザイのは事実だから。
(ただ今見てみるとC#のはPODでは駄目っぽいが)
Rubyはこの辺、プリミティブなしで全部オブジェクトだから、数字にもメソッドを生やせるし、出来る素地はある。
(やってないと思うけど)
だからJSでやるならボックス化+拡張メソッドで、ということになる。
再度言うがこの辺は文法の話(に出来る話)であって、(本来は)コード構造の話ではないよ。
> getFullName(h) じゃなく
> h.getFullName() みたいにしたかったのに
> みたいな
それはC#で言う拡張メソッドだね。staticメソッドをインスタンスメソッドとして『記述出来る』
Goは逆にメソッドをstaticとして呼べたはずだけど。
この辺は『どう書きたいか』であり、文法の問題であって、(本来は)コード構造の問題ではない。
C#はこの辺の文法とコード構造を分離した。
つまり、メソッドとして書きたいからクラスにします、ではなく、
メソッドとして書きたければメソッドとして書ける文法(拡張メソッド)を用意した。
まあ実際はただのパッチだけどね。何故かは知らんが.NETは無駄にstaticメソッドが多くてウザイのは事実だから。
(ただ今見てみるとC#のはPODでは駄目っぽいが)
Rubyはこの辺、プリミティブなしで全部オブジェクトだから、数字にもメソッドを生やせるし、出来る素地はある。
(やってないと思うけど)
だからJSでやるならボックス化+拡張メソッドで、ということになる。
再度言うがこの辺は文法の話(に出来る話)であって、(本来は)コード構造の話ではないよ。
2022/02/07(月) 13:01:33.92ID:NQzt3ZES
>>61
業務システムは何万行の単位じゃ足りない
そこから1桁2桁は増える
君が幸運にも高々数千行の平和なシステムとしか縁がない環境にいるのはよくわかったよ
でも世の中のシステムはそんな恵まれたももばかりじゃないんだ
企業の業務がどれだけ複雑で巨大なのか想像してみたことある?
適当にそれなりの規模の企業をピックアップしてどんな仕事してるか想像して見て?
データベースやIOや画面とか全部取っ払ってドメインロジックだけでいいよ
それを君は3000行ぽっちで実装できるのかい?
もしできるというなら今すぐにそのシステムを売り込みに行った方がいい
あっという間に大金持ちだ
業務システムは何万行の単位じゃ足りない
そこから1桁2桁は増える
君が幸運にも高々数千行の平和なシステムとしか縁がない環境にいるのはよくわかったよ
でも世の中のシステムはそんな恵まれたももばかりじゃないんだ
企業の業務がどれだけ複雑で巨大なのか想像してみたことある?
適当にそれなりの規模の企業をピックアップしてどんな仕事してるか想像して見て?
データベースやIOや画面とか全部取っ払ってドメインロジックだけでいいよ
それを君は3000行ぽっちで実装できるのかい?
もしできるというなら今すぐにそのシステムを売り込みに行った方がいい
あっという間に大金持ちだ
2022/02/07(月) 13:05:14.01ID:RorkGoUL
2022/02/07(月) 13:13:31.34ID:wsXwvKB4
>>64
頻度の話ね
頻度の話ね
2022/02/07(月) 13:18:28.93ID:UTO8dkwM
>>67
そういう事なら仕方ないなw
可変長パイプ関数TSで作るのは確かに辛いけど、とりあえずこんなんで良くね?
https://stackoverflow.com/questions/65154695/typescript-types-for-a-pipe-function
そういう事なら仕方ないなw
可変長パイプ関数TSで作るのは確かに辛いけど、とりあえずこんなんで良くね?
https://stackoverflow.com/questions/65154695/typescript-types-for-a-pipe-function
2022/02/07(月) 13:29:41.52ID:yhez4jOW
>>66
> 業務システムは何万行の単位じゃ足りない
それは仕様を絞り込めてない糞だからだよ。
既に言ったとおり、銀行のシステムなんて最終的には「口座への入出金管理」でしかないだろ。
だったらそれをまず作って、これが3,000行。
そしてそれが株からなら、株を管理する鯖を立てて、これも3,000行。
オンラインバンキングが欲しければ、これもUI専用鯖を立てて3,000行。とやっていくのがマイクロサービス流。
モノリシックには作らないから、でかくなりようがない。
この辺は発想の違いで、以下が分かりやすいが、
https://note.com/tsuchie88/n/ncae14ac6466b
SMBCがマイクロサービス的で、君が見てる世界は三菱UFJのモノリシック型だね。
どっちが良いとかいう単純な話でもないのだけど。
まあいずれにしてもやりたいようにやればいいとは思うよ。
俺はそれは「誰も思いつかなかった」のではなく、「既に失敗してるから今は誰もやってない」だけだと思うけど。
文化の形成過程って、これだと思うし。
文化を否定する前に、まず何故そんな文化になってるのかを考えるべきだよ。
それは何だかんだで現時点での最適化がかかった状態ではあるのだから。
>>63
フレームワークをこねくり回すだけで出来るものはノーコードが主流になるとは思う。
ただしそれでWeb系言語が廃れる事はない。フレームワークになってない部分は自前で書くしかないので。
なお主にマイクロサービスを目指しているのはGoだね。みんなRustに行っちゃった感はあるけど。
TSは…JSだと型が無くて糞だと思ってる連中が使ってるはずだけど、何指向かは知らん。
(というか俺はTS使ってないし)
> 業務システムは何万行の単位じゃ足りない
それは仕様を絞り込めてない糞だからだよ。
既に言ったとおり、銀行のシステムなんて最終的には「口座への入出金管理」でしかないだろ。
だったらそれをまず作って、これが3,000行。
そしてそれが株からなら、株を管理する鯖を立てて、これも3,000行。
オンラインバンキングが欲しければ、これもUI専用鯖を立てて3,000行。とやっていくのがマイクロサービス流。
モノリシックには作らないから、でかくなりようがない。
この辺は発想の違いで、以下が分かりやすいが、
https://note.com/tsuchie88/n/ncae14ac6466b
SMBCがマイクロサービス的で、君が見てる世界は三菱UFJのモノリシック型だね。
どっちが良いとかいう単純な話でもないのだけど。
まあいずれにしてもやりたいようにやればいいとは思うよ。
俺はそれは「誰も思いつかなかった」のではなく、「既に失敗してるから今は誰もやってない」だけだと思うけど。
文化の形成過程って、これだと思うし。
文化を否定する前に、まず何故そんな文化になってるのかを考えるべきだよ。
それは何だかんだで現時点での最適化がかかった状態ではあるのだから。
>>63
フレームワークをこねくり回すだけで出来るものはノーコードが主流になるとは思う。
ただしそれでWeb系言語が廃れる事はない。フレームワークになってない部分は自前で書くしかないので。
なお主にマイクロサービスを目指しているのはGoだね。みんなRustに行っちゃった感はあるけど。
TSは…JSだと型が無くて糞だと思ってる連中が使ってるはずだけど、何指向かは知らん。
(というか俺はTS使ってないし)
2022/02/07(月) 13:33:18.79ID:Afq51Jp9
業務システムにオープン系入ってきてもう何十年よ
プロジェクト規模ならわかるがシステム規模で何十万行とか
ミドルウェアも活用できてない失敗プロジェクト
DSLで品質も保ててスッキリ記述できる部分も汎用言語で書いてそう
プロジェクト規模ならわかるがシステム規模で何十万行とか
ミドルウェアも活用できてない失敗プロジェクト
DSLで品質も保ててスッキリ記述できる部分も汎用言語で書いてそう
2022/02/07(月) 13:36:19.77ID:Ipfs3xdV
2022/02/07(月) 13:40:37.88ID:UTO8dkwM
途中までの思想はわかるけど、数千行銀行はちょっと無理だと思うよ……
2022/02/07(月) 13:46:02.77ID:UTO8dkwM
とはいえ分割単位次第か
2022/02/07(月) 13:58:43.68ID:yhez4jOW
>>72
今は俺はJavaを殺すのはWeb系だと思ってるよ。
何処かが「もうこれWeb系でよくね?」として試しにやってみて成功したら、一気に流れると思う。
開発/運用コストが1/10〜1/100だろうから、
金銭面しか評価出来ない文系馬鹿が仕切ってる日本の銀行とかは一気に導入だよ。
マジな話、みずほ銀行が作り直すのならマイクロサービスでやれば面白いとは思ってる。
まあ現実的には病院や自治体から導入で、銀行は最後尾だろうけどね。
>>73
それは発想の方向の違い。
単発サービスで3,000行程度に留まるところまでサービスを分割する。
できるできないではなく、3,000行程度になるまでひたすら分割するだけ。
実際、DBに対して単に読み書きするだけなら、200行程度で書けるでしょ。
だから最悪、1,000行程度までのマイクロサービスに分割しろ、と言われても普通に出来てしまうんだよ。
今は俺はJavaを殺すのはWeb系だと思ってるよ。
何処かが「もうこれWeb系でよくね?」として試しにやってみて成功したら、一気に流れると思う。
開発/運用コストが1/10〜1/100だろうから、
金銭面しか評価出来ない文系馬鹿が仕切ってる日本の銀行とかは一気に導入だよ。
マジな話、みずほ銀行が作り直すのならマイクロサービスでやれば面白いとは思ってる。
まあ現実的には病院や自治体から導入で、銀行は最後尾だろうけどね。
>>73
それは発想の方向の違い。
単発サービスで3,000行程度に留まるところまでサービスを分割する。
できるできないではなく、3,000行程度になるまでひたすら分割するだけ。
実際、DBに対して単に読み書きするだけなら、200行程度で書けるでしょ。
だから最悪、1,000行程度までのマイクロサービスに分割しろ、と言われても普通に出来てしまうんだよ。
2022/02/07(月) 14:09:33.83ID:UTO8dkwM
>>75
そういう意味なら納得です
そういう意味なら納得です
2022/02/07(月) 14:10:07.39ID:4z8oj16v
素晴らしい!
ひとりの天才の出現によって金融系システム従事者が超難度システムのメンテから解放されるんだね
私はもしかすると時代の転換点を最も近いところから目撃してしまったのかもしれない
ひとりの天才の出現によって金融系システム従事者が超難度システムのメンテから解放されるんだね
私はもしかすると時代の転換点を最も近いところから目撃してしまったのかもしれない
2022/02/07(月) 14:19:47.08ID:RorkGoUL
2022/02/07(月) 14:20:45.58ID:RorkGoUL
>>77
みずほ社員20万人「タスケテ・・・タスケテ・・・」
みずほ社員20万人「タスケテ・・・タスケテ・・・」
2022/02/07(月) 14:27:40.67ID:mmIvHtEJ
ちゅーかなんでみんながみんなクソデカカチカチシステム作る前提なわけ?
適材適所って言葉を知らんのか
適材適所って言葉を知らんのか
2022/02/07(月) 14:43:03.87ID:UTO8dkwM
>>78
lodash有りならlodash/fpにそのままズバリpipeもあるし、部分適用もお手の物やん
lodash有りならlodash/fpにそのままズバリpipeもあるし、部分適用もお手の物やん
2022/02/07(月) 14:51:15.15ID:RorkGoUL
2022/02/07(月) 14:55:26.17ID:R1s+yfGI
それにしてもマイクロサービス万能論者って久々に見た気がするわ
サービスを分割すればするほどサービス間の連動の管理が難しくなってそれはそれでうまくいかないぞ
というんでモジュラーモノリスだとか色々回帰論が出てきて今となっては「やっぱり銀の弾丸はなかったね」が常識で通じる時代になったと思ったんだが…
仮に30万行のシステムがあったとしてそれを3000行に分割したら単純計算で100個に分割できるわけだ
100種類のサービスを間違いなく連動させるのがどれだけ大変なことなのか
ちょっと甘く見過ぎてる感じがするね?
サービスを分割すればするほどサービス間の連動の管理が難しくなってそれはそれでうまくいかないぞ
というんでモジュラーモノリスだとか色々回帰論が出てきて今となっては「やっぱり銀の弾丸はなかったね」が常識で通じる時代になったと思ったんだが…
仮に30万行のシステムがあったとしてそれを3000行に分割したら単純計算で100個に分割できるわけだ
100種類のサービスを間違いなく連動させるのがどれだけ大変なことなのか
ちょっと甘く見過ぎてる感じがするね?
2022/02/07(月) 15:01:35.38ID:dHoIQX/o
>>61
>Webの場合は3層なりに強制的に分割されるし、状態管理はDBに丸投げ、View/UIはHTML/CSS/JSに丸投げなので、
>鯖でやる事なんて大して無いんだよ。
どんだけ無知なんだよww
流石にこのレベルで偉そうに語られると相手するのが恥ずかしくなる
>Webの場合は3層なりに強制的に分割されるし、状態管理はDBに丸投げ、View/UIはHTML/CSS/JSに丸投げなので、
>鯖でやる事なんて大して無いんだよ。
どんだけ無知なんだよww
流石にこのレベルで偉そうに語られると相手するのが恥ずかしくなる
2022/02/07(月) 15:02:48.84ID:HmGAn9CY
>>82
TS開発者全てを20万人月扱うスーパーマンにするなw
TS開発者全てを20万人月扱うスーパーマンにするなw
2022/02/07(月) 15:13:48.61ID:27SiZacg
>>75
相手がボロ出すまで同じ事繰り返すだけの自演おじさんなんて相手しなくて良いよ。おじさんの話の内容見てても読解力もTS理解度も足りてないんだし
相手がボロ出すまで同じ事繰り返すだけの自演おじさんなんて相手しなくて良いよ。おじさんの話の内容見てても読解力もTS理解度も足りてないんだし
2022/02/07(月) 15:26:53.69ID:S/gDVAW3
DDD的な話はわりとまともなこと言ってるけど
コード例を出さないからTS固有の問題なのか使い方や作り方の問題なのか判別つかないね
コード例を出さないからTS固有の問題なのか使い方や作り方の問題なのか判別つかないね
2022/02/07(月) 15:33:02.79ID:S/gDVAW3
銀行みたいに堅牢性や永続性が最重要のシステムをTSで作るわけないけど
変化に対する柔軟性に重きを置くシステムならサーバー側でもTSは有力な選択肢だと思う
UnionやIntersectionのおかげでFunctionalなDDDがやりやすいってのが一番の理由
JavaみたいにOOPベースのDDDやるならTSを選ぶメリット感じない
変化に対する柔軟性に重きを置くシステムならサーバー側でもTSは有力な選択肢だと思う
UnionやIntersectionのおかげでFunctionalなDDDがやりやすいってのが一番の理由
JavaみたいにOOPベースのDDDやるならTSを選ぶメリット感じない
2022/02/07(月) 16:02:48.76ID:UTO8dkwM
>>87
それだよねぇ。長い文章書くわりに具体的な内容無いもの
それだよねぇ。長い文章書くわりに具体的な内容無いもの
2022/02/07(月) 16:15:52.59ID:yhez4jOW
>>83
> 30万行のシステム
これがそもそも間違いなんだよ。
銀行なんて最終的には通帳に記入する内容、つまりは「日時と金額と取引相手」だけ管理出来てればいいんだぞ。
最初から綺麗に作れば、何をどうやっても30万行なんてならんよ。
無駄に膨らんでる理由は、過去のコードを除去出来ない点にある。
だけどそれは新規に書く部分には関係ない。
だから現実的には携帯みたいに2G->3G->4G->5Gと徐々に載せ替え、過去の口座も徐々に新鯖に載せ替えて、
古いコードは丸ごと捨てていけば良かっただけの話。
「メンテする」というのがかなり難しいから、「新規に書いて古いのは捨てる」の発想。
実際Web系はこれに近いでしょ。
実は本来はOOPもこれ(モジュール単位で入れ替えてアップグレードしていく)だったのだが、
何故かひたすらメンテする思想になってしまってるが。
一応言っておくが俺が言ってる行数は、71の言ってる「システム規模」、つまり自前で書くコード規模な。
3rdパーティのライブラリやフレームワーク等、他人が書いてて既に動くことが確定しているコードは含まない。
まあこれを誤解しているレスは今のところ無いと見ているが。
> 30万行のシステム
これがそもそも間違いなんだよ。
銀行なんて最終的には通帳に記入する内容、つまりは「日時と金額と取引相手」だけ管理出来てればいいんだぞ。
最初から綺麗に作れば、何をどうやっても30万行なんてならんよ。
無駄に膨らんでる理由は、過去のコードを除去出来ない点にある。
だけどそれは新規に書く部分には関係ない。
だから現実的には携帯みたいに2G->3G->4G->5Gと徐々に載せ替え、過去の口座も徐々に新鯖に載せ替えて、
古いコードは丸ごと捨てていけば良かっただけの話。
「メンテする」というのがかなり難しいから、「新規に書いて古いのは捨てる」の発想。
実際Web系はこれに近いでしょ。
実は本来はOOPもこれ(モジュール単位で入れ替えてアップグレードしていく)だったのだが、
何故かひたすらメンテする思想になってしまってるが。
一応言っておくが俺が言ってる行数は、71の言ってる「システム規模」、つまり自前で書くコード規模な。
3rdパーティのライブラリやフレームワーク等、他人が書いてて既に動くことが確定しているコードは含まない。
まあこれを誤解しているレスは今のところ無いと見ているが。
2022/02/07(月) 16:16:36.07ID:yhez4jOW
あと俺は別にマイクロサービスが良いと思っているわけではない。
俺が言ってるのは、(という程は言ってないが)
「コードを書いて捨てる前提なら、メンテナンス性も可読性も必要ない」って事だ。
ここが逆転の発想なんだよ。
元々これらが必要だったのは、
初心者あるあるの「半年前に自分が書いたコードが読めない」「規模が大きすぎてコードを追えない」を回避するためだ。
後者については大体10,000行程度が限界だと昔から言われてるから、単純には、
・半年で開発を終了出来ない規模以上の開発は、可読性が高いコードでないと無理。
・10,000行を越える規模の開発は、一人では無理。よって他人にも読めるコードを書け。
・作り直すにしてもどうせ同じようなコードを書く事になるから、メンテした方が生産性が高い。
というわけでこれが大正義とされていたわけだが、実際は、
・そもそも可読性の高さなんて初心者には分からない。
・メンテ性を上げるために間接参照挟みまくってるコードは、余計に分かりにくくなる。
・Web系はそもそもそんなに大規模にならない。(DBとJSに切り出した時点でほぼスカスカ)
・Web系は仕様自体がガンガン追加されるので、古いコードをありがたがってメンテする意味がない。
(新しい仕様を使った機能は新しく書くしかない)
なので、「依存しない」ではなく「依存先を適切に選んで単純なコードを書き、ハズレだったら捨てる」と割り切ってるのがWeb系。
具体的にはJSONもそうだろ。toJSONはJSON形式に依存する大前提で、JSON形式が捨てられれば立ちゆかなくなるコードだ。
しかし、JSONが使える限りは至極単純なコード、JSON.stringifyとJSON.parseで終われる。
そこを完全コンストラクタを呼び出すコードを全クラス分I/O層に置け、というのは、理屈は分かるが、無駄手間でしかない。
それがJavaにおいては正義だ、というのもまた事実なのだろうけど。
でも実際それがJava界隈の糞な所でもあるよね。
関数ポインタが使えないという言語の問題を継承をこねくり回したデザインパターンで誤魔化して糞コードにしてて、
しかもそれを自覚出来てないところとかもね。
俺が言ってるのは、(という程は言ってないが)
「コードを書いて捨てる前提なら、メンテナンス性も可読性も必要ない」って事だ。
ここが逆転の発想なんだよ。
元々これらが必要だったのは、
初心者あるあるの「半年前に自分が書いたコードが読めない」「規模が大きすぎてコードを追えない」を回避するためだ。
後者については大体10,000行程度が限界だと昔から言われてるから、単純には、
・半年で開発を終了出来ない規模以上の開発は、可読性が高いコードでないと無理。
・10,000行を越える規模の開発は、一人では無理。よって他人にも読めるコードを書け。
・作り直すにしてもどうせ同じようなコードを書く事になるから、メンテした方が生産性が高い。
というわけでこれが大正義とされていたわけだが、実際は、
・そもそも可読性の高さなんて初心者には分からない。
・メンテ性を上げるために間接参照挟みまくってるコードは、余計に分かりにくくなる。
・Web系はそもそもそんなに大規模にならない。(DBとJSに切り出した時点でほぼスカスカ)
・Web系は仕様自体がガンガン追加されるので、古いコードをありがたがってメンテする意味がない。
(新しい仕様を使った機能は新しく書くしかない)
なので、「依存しない」ではなく「依存先を適切に選んで単純なコードを書き、ハズレだったら捨てる」と割り切ってるのがWeb系。
具体的にはJSONもそうだろ。toJSONはJSON形式に依存する大前提で、JSON形式が捨てられれば立ちゆかなくなるコードだ。
しかし、JSONが使える限りは至極単純なコード、JSON.stringifyとJSON.parseで終われる。
そこを完全コンストラクタを呼び出すコードを全クラス分I/O層に置け、というのは、理屈は分かるが、無駄手間でしかない。
それがJavaにおいては正義だ、というのもまた事実なのだろうけど。
でも実際それがJava界隈の糞な所でもあるよね。
関数ポインタが使えないという言語の問題を継承をこねくり回したデザインパターンで誤魔化して糞コードにしてて、
しかもそれを自覚出来てないところとかもね。
2022/02/07(月) 16:17:21.79ID:yhez4jOW
だから他人から言われた大正義を信じるのではなくて、それは何の為なのか、
どこまで依存していいのか、何に依存してはいけないのか、
コードはどの程度メンテする予定で、可読性はどれくらい必要なのか、
ちゃんと自分で考えて丁度良い点を目指さないと駄目なんだよ。
Javaにおいては20年後に他人がコードを読む前提だから、間違ってもこんな事は言われないはずだけど、
Web系においては、20年後も動いているコードなんて存在しない前提でも全く問題ないんだよ。
だからJavaの常識はJavaの世界向けにチューニング済みであって、それをWeb系に持ち込んでも失敗するだけだよ。
まあそれでもやるのは自由だけど。
どこまで依存していいのか、何に依存してはいけないのか、
コードはどの程度メンテする予定で、可読性はどれくらい必要なのか、
ちゃんと自分で考えて丁度良い点を目指さないと駄目なんだよ。
Javaにおいては20年後に他人がコードを読む前提だから、間違ってもこんな事は言われないはずだけど、
Web系においては、20年後も動いているコードなんて存在しない前提でも全く問題ないんだよ。
だからJavaの常識はJavaの世界向けにチューニング済みであって、それをWeb系に持ち込んでも失敗するだけだよ。
まあそれでもやるのは自由だけど。
2022/02/07(月) 17:00:21.50ID:RorkGoUL
> 最初から綺麗に作れば、何をどうやっても30万行なんてならんよ。
ガラパゴス日本村のおらが法のスパゲッティをシステム化するんだからしゃーない
30万のif文がおんどれらを襲う
この国の映し鏡である金融システムをリファクタするには、まず老い腐った政治家どもを晒し首にして
もう一度トキョを焼け野原にするところからやり直さなきゃいけないんだよ
ガラパゴス日本村のおらが法のスパゲッティをシステム化するんだからしゃーない
30万のif文がおんどれらを襲う
この国の映し鏡である金融システムをリファクタするには、まず老い腐った政治家どもを晒し首にして
もう一度トキョを焼け野原にするところからやり直さなきゃいけないんだよ
2022/02/07(月) 17:13:31.69ID:UTO8dkwM
>>93
おまいさん以前Linux板あたりに居なかったか?
おまいさん以前Linux板あたりに居なかったか?
2022/02/07(月) 18:19:58.29ID:RorkGoUL
>>94
いたよ。あそこは楽しかったね。
いたよ。あそこは楽しかったね。
2022/02/07(月) 18:34:04.56ID:UTO8dkwM
>>95
だな。相変わらずで何よりだ
だな。相変わらずで何よりだ
2022/02/07(月) 21:20:10.49ID:yhez4jOW
>>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をちゃんと整備する方が正道ではあるのだけどね。
そういえば
> 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をちゃんと整備する方が正道ではあるのだけどね。
2022/02/07(月) 21:40:15.30ID:yhez4jOW
一応訂正。enumerableとwritable消しときます。
Object.defineProperty(Object.prototype,'getFullName',{value:function(){return this.firstName+this.familyName;}, configurable:true});
Object.defineProperty(Object.prototype,'getFullName',{value:function(){return this.firstName+this.familyName;}, configurable:true});
2022/02/07(月) 21:51:28.00ID:RorkGoUL
100デフォルトの名無しさん
2022/03/05(土) 02:42:31.37ID:DdhkyzyV https://twitter.com/uhyo_/status/1499759388462297096
uhyo_の上から目線が年々悪化している
発表でも口調からそれが感じられる
相手を思いやらずくさすハラスメント人間がTwitterのTSコミュニティ作ってるのは最早害悪では
会社のSlackでこんなのやられたら何人か辞めるでしょw
https://twitter.com/5chan_nel (5ch newer account)
uhyo_の上から目線が年々悪化している
発表でも口調からそれが感じられる
相手を思いやらずくさすハラスメント人間がTwitterのTSコミュニティ作ってるのは最早害悪では
会社のSlackでこんなのやられたら何人か辞めるでしょw
https://twitter.com/5chan_nel (5ch newer account)
101デフォルトの名無しさん
2022/03/05(土) 07:10:18.34ID:HDnhD39u 直接本人に言えよ
102デフォルトの名無しさん
2022/03/05(土) 08:26:19.33ID:rV2+S9i4 売られたケンカは買ってこそ江戸っ子よ
103デフォルトの名無しさん
2022/03/05(土) 10:57:55.53ID:XO0AXwV8 >>100
ぼくがきにいらないからあいてをつぶす
ゆとりだね
Webなんだから普通に競争すればいいだけ
お前がもっと良いコミュニティを立ち上げれば人が離れて過疎って殺せる
それが出来ないのなら「ぼくのさいこうのこみゅにてぃ」を勘違いしてるお前らゴミゆとりの問題
ぼくがきにいらないからあいてをつぶす
ゆとりだね
Webなんだから普通に競争すればいいだけ
お前がもっと良いコミュニティを立ち上げれば人が離れて過疎って殺せる
それが出来ないのなら「ぼくのさいこうのこみゅにてぃ」を勘違いしてるお前らゴミゆとりの問題
104デフォルトの名無しさん
2022/03/05(土) 11:00:21.82ID:HDnhD39u 喧嘩売ってるだけのやつは粛々とNG
105デフォルトの名無しさん
2022/03/05(土) 13:37:44.83ID:IUYGleof106デフォルトの名無しさん
2022/03/06(日) 03:59:56.58ID:/IifMZTR >>103
そんなこわいせかいはやだッピ
そんなこわいせかいはやだッピ
107デフォルトの名無しさん
2022/03/06(日) 07:16:43.23ID:pk8t6Esu >>106
56してしまえば笑顔になれるよ
56してしまえば笑顔になれるよ
108デフォルトの名無しさん
2022/03/06(日) 10:45:25.91ID:oGjlcJ2o >>106
> 相手を思いやらずくさすハラスメント人間がTwitterのTSコミュニティ作ってるのは最早害悪では
つまり、「相手を思いやって腐す事のない優しい人がTwitterのコミュニティを作るべき!!!」と思ってて、
それが大正義なんだろ。やってみればいい。
でもそれではWeb上のコミュニティは成り立たない。
その程度も分からない馬鹿が、しかも全く関係ないここにその話を持ち込む事も馬鹿げてる。
だからお前も死ね、でしかない。
ただいずれにしても、ゆとりはベースの価値観が違うから、非ゆとりが立ち上げたコミュニティで安寧を得る事はないよ。
だからゆとり向けコミュニティはゆとりで立ち上げないと無理だ。
Qiitaとか素晴らしく上手く立ち上がってる所だと思うけど、5chとは根本的に違うし相容れないでしょ。
好きなところを使えばいいが、「今ある場所を俺好みに変えよう」というのは傲慢だし原住民を馬鹿にしてる。
それすら理解出来ないからこんな無関係なところで悪態つくわけでさ。
まあでも元気があるならまずは自分で立ち上げてみるべきだよ。
それで客を奪えるのならそれが正義だし、優勝劣敗でよりよい方向に発展するのが正しい姿で、
Webはこれが割と厳密に守られてる構造だから、この点は素晴らしい。
だから文句があるのならまずはやってみる事だ。
そしてまずは、「そうなってる理由がある」事を理解すべきだ。
> 相手を思いやらずくさすハラスメント人間がTwitterのTSコミュニティ作ってるのは最早害悪では
つまり、「相手を思いやって腐す事のない優しい人がTwitterのコミュニティを作るべき!!!」と思ってて、
それが大正義なんだろ。やってみればいい。
でもそれではWeb上のコミュニティは成り立たない。
その程度も分からない馬鹿が、しかも全く関係ないここにその話を持ち込む事も馬鹿げてる。
だからお前も死ね、でしかない。
ただいずれにしても、ゆとりはベースの価値観が違うから、非ゆとりが立ち上げたコミュニティで安寧を得る事はないよ。
だからゆとり向けコミュニティはゆとりで立ち上げないと無理だ。
Qiitaとか素晴らしく上手く立ち上がってる所だと思うけど、5chとは根本的に違うし相容れないでしょ。
好きなところを使えばいいが、「今ある場所を俺好みに変えよう」というのは傲慢だし原住民を馬鹿にしてる。
それすら理解出来ないからこんな無関係なところで悪態つくわけでさ。
まあでも元気があるならまずは自分で立ち上げてみるべきだよ。
それで客を奪えるのならそれが正義だし、優勝劣敗でよりよい方向に発展するのが正しい姿で、
Webはこれが割と厳密に守られてる構造だから、この点は素晴らしい。
だから文句があるのならまずはやってみる事だ。
そしてまずは、「そうなってる理由がある」事を理解すべきだ。
109デフォルトの名無しさん
2022/03/06(日) 10:52:15.05ID:xougf8Rz じいじ、ゆとり教育はとっくの昔に終わったんやで
110デフォルトの名無しさん
2022/03/06(日) 10:56:05.27ID:nmpRTGjT なにこの気持ち悪いやつ
111デフォルトの名無しさん
2022/03/06(日) 10:58:33.29ID:pk8t6Esu コードは短く読みやすく書きましょうって教わらなかったん?
112デフォルトの名無しさん
2022/03/06(日) 11:03:19.14ID:oGjlcJ2o >>109
いや5chの雰囲気が変わりつつあるのはゆとりが流入してきてるからだろ(勿論数年前からだが)
中高生で5ch見てるようなら本気でヤバイから止めた方がいい
大学生でもまだ止めておいた方がいい
社会人で、ある程度社会についても知り、デタラメな陰謀論とかも自分の頭で判断つくようになってから、ならありで、
実際これが大半だから、現時点での新規流入組はほぼ全員ゆとりだと思うが。
いや5chの雰囲気が変わりつつあるのはゆとりが流入してきてるからだろ(勿論数年前からだが)
中高生で5ch見てるようなら本気でヤバイから止めた方がいい
大学生でもまだ止めておいた方がいい
社会人で、ある程度社会についても知り、デタラメな陰謀論とかも自分の頭で判断つくようになってから、ならありで、
実際これが大半だから、現時点での新規流入組はほぼ全員ゆとりだと思うが。
113デフォルトの名無しさん
2022/03/06(日) 11:23:08.54ID:oGjlcJ2o >>111
ちなみにお前らはそう習ったのか?それはどこで?
ちなみにお前らはそう習ったのか?それはどこで?
114デフォルトの名無しさん
2022/03/06(日) 11:28:44.61ID:xougf8Rz ゆとり以前ってどんだけ前やねん
115デフォルトの名無しさん
2022/03/06(日) 11:53:24.67ID:pk8t6Esu じぃじ・・・
116デフォルトの名無しさん
2022/03/06(日) 12:05:40.95ID:oGjlcJ2o >>114
俺の感覚では2013、つまり9年前だ。
そしてここ数年が5ch上のゆとり人口密度が最大で、その後脱ゆとり世代の流入が始まる。
だから現時点で(ゆとり的価値観では)ここが快適だと思えないのなら、そりゃそもそも無理なんだよ。
そして俺らにとってはお前らの存在自体が不快だって事だよ。
嫌いな場所にわざわざ来て悪態つくとかどうかしてる。
ただ、そうなってしまう理由も俺には分かるんだけどね。
ゆとりは「優しい」事が第一だから、相手の意見を否定する事は「害悪」で、まともな議論場なんて整備出来ない。
だからQiitaは(あれはあれでいいとは思うが、)「否定を全否定」してる構造になってるだろ。
あれがゆとり的価値観の世界で、twitterはそうじゃないから、そりゃ無理だよ、って話だよ。
俺の感覚では2013、つまり9年前だ。
そしてここ数年が5ch上のゆとり人口密度が最大で、その後脱ゆとり世代の流入が始まる。
だから現時点で(ゆとり的価値観では)ここが快適だと思えないのなら、そりゃそもそも無理なんだよ。
そして俺らにとってはお前らの存在自体が不快だって事だよ。
嫌いな場所にわざわざ来て悪態つくとかどうかしてる。
ただ、そうなってしまう理由も俺には分かるんだけどね。
ゆとりは「優しい」事が第一だから、相手の意見を否定する事は「害悪」で、まともな議論場なんて整備出来ない。
だからQiitaは(あれはあれでいいとは思うが、)「否定を全否定」してる構造になってるだろ。
あれがゆとり的価値観の世界で、twitterはそうじゃないから、そりゃ無理だよ、って話だよ。
117デフォルトの名無しさん
2022/03/06(日) 12:10:29.85ID:/i+Wlcs9 気に入らないなら新しいの作れって考え方
ウェブ系だと普通なのか?それってDIYっぽくない?
それに利用者からしたらぽんぽん新しいもの出されてトレンドが変わるのは迷惑でしかない
今あるものをより良くしていこうという考え方の方がいいと思うな
ウェブ系だと普通なのか?それってDIYっぽくない?
それに利用者からしたらぽんぽん新しいもの出されてトレンドが変わるのは迷惑でしかない
今あるものをより良くしていこうという考え方の方がいいと思うな
118デフォルトの名無しさん
2022/03/06(日) 12:27:11.95ID:xougf8Rz >>116
感覚だけでレッテル貼るんだ……
感覚だけでレッテル貼るんだ……
119デフォルトの名無しさん
2022/03/06(日) 13:42:08.14ID:oGjlcJ2o >>117
> ウェブ系だと普通なのか?
Web系ではなく資本主義/自由主義経済において普通。会社だって気に入らなければいくらでも起業しろ、でしょ。
Web系においてはこれが割と厳密に守られてて、Webサイトは自由に作れるし、起業する奴も多い。
(Webサイトも広告貼るならただの集客業《=ITチンドン屋》でしかない)
> 今あるものをより良くしていこうという考え方の方がいいと思うな
基本的にはこれは社会主義の思想。国で素晴らしい物を一つ作れば十分、という事だから。
ただしこれは現実的に出来ない。だから資本主義が社会主義を圧倒してる。
理由は簡単で、
・「素晴らしい」の定義が人によって全く異なる --- (A)
・そもそも何が「素晴らしい」のか、まだそれを見てない状態で想像出来る奴はほぼ居ない --- (B)
だからめいめいが「オレオレさいきょうの○○」を作りまくる資本主義の方が、社会主義より『結果的に』繁栄する。
ただしその時点で国としてのインフラ(教育/交通/電力等)が全く整って無い場合、
インフラの整備はほぼ全員の国民にとって「素晴らしい」事は明白なので、トップも実際にそれをやる。
だから社会主義/共産主義/独裁主義の方が国としてのスタードダッシュは速いし、歴史的にもそう。
ところがインフラを整えた位のところで、次に何をすべきかが分からなくなって失速する。
だから国としては独裁→自由主義にうまく衣替えするのが一番効率がいいのだが、
独裁してインフラ整備した連中はその時点で『大成功』してるつもりだから、その権力を絶対に離さない。
(実際はその独裁者の才覚によるものではなく、誰がやってもその状況なら大成功するわけだが)
> ウェブ系だと普通なのか?
Web系ではなく資本主義/自由主義経済において普通。会社だって気に入らなければいくらでも起業しろ、でしょ。
Web系においてはこれが割と厳密に守られてて、Webサイトは自由に作れるし、起業する奴も多い。
(Webサイトも広告貼るならただの集客業《=ITチンドン屋》でしかない)
> 今あるものをより良くしていこうという考え方の方がいいと思うな
基本的にはこれは社会主義の思想。国で素晴らしい物を一つ作れば十分、という事だから。
ただしこれは現実的に出来ない。だから資本主義が社会主義を圧倒してる。
理由は簡単で、
・「素晴らしい」の定義が人によって全く異なる --- (A)
・そもそも何が「素晴らしい」のか、まだそれを見てない状態で想像出来る奴はほぼ居ない --- (B)
だからめいめいが「オレオレさいきょうの○○」を作りまくる資本主義の方が、社会主義より『結果的に』繁栄する。
ただしその時点で国としてのインフラ(教育/交通/電力等)が全く整って無い場合、
インフラの整備はほぼ全員の国民にとって「素晴らしい」事は明白なので、トップも実際にそれをやる。
だから社会主義/共産主義/独裁主義の方が国としてのスタードダッシュは速いし、歴史的にもそう。
ところがインフラを整えた位のところで、次に何をすべきかが分からなくなって失速する。
だから国としては独裁→自由主義にうまく衣替えするのが一番効率がいいのだが、
独裁してインフラ整備した連中はその時点で『大成功』してるつもりだから、その権力を絶対に離さない。
(実際はその独裁者の才覚によるものではなく、誰がやってもその状況なら大成功するわけだが)
120デフォルトの名無しさん
2022/03/06(日) 13:42:30.55ID:oGjlcJ2o で、Web上のコミュニティについては、
・ゆとりは基本的に許容範囲が無茶苦茶狭い。ちょっとでも不満があったらそれは駄目だと見なす
ので、上記(A)に引っかかって、結果的にコミュニティを上手く成立させられてない。(と見える)
(B)については確率の問題であり、ゆとりも母数は相当数居るのだから、問題ないはず。
現状、Webインフラは既に整備済みだから、「オレオレさいきょうの○○」を作る方が効率がいい。
仮に国有5ch、国有Twitterとして、それぞれ「この方針で行く」なんてやっても社会主義同様停滞するだけ。
そもそも何かしらの場があって、そこに居ついている人にとっては、そこが十分に「素晴らしい」場所なんだよ。
それを「俺がそう思うから」で変更するのは、元々居た人にとっては「素晴らしい」点が失われる事にもなりかねない。
これを防ぐために、並立させた状態で好きな方を選べ、がforkで、基本的にGitHub等もこの方針でしょ。
馬鹿ゆとりにも分かるように言えば、
・ゆとりにとっての快適は、上の世代にとっては不快
だから結果的にそれなりに住分けてる。この事実をちゃんと考えろ、という事。
いずれにしてもtwitter上のコミュニティなんて、勝手に宣言してるだけだし、
気に入らなければ自分で作って競争すればいいだけだろ。
ただ、>>100程度の馬鹿ではこれは出来ないと思うけど、という話。
>>118
100は典型的ゆとり価値観だぞ。
ここは匿名なのだから、自分が何者かは自分の書き込みで示さなければならない。
ゆとりらしい書き込みをしたからゆとり呼ばわりしてるだけ。
これが悪いとは俺は1mmも思わない。
(そうされたくなければそういう書き込みをしなければいいだけ)
・ゆとりは基本的に許容範囲が無茶苦茶狭い。ちょっとでも不満があったらそれは駄目だと見なす
ので、上記(A)に引っかかって、結果的にコミュニティを上手く成立させられてない。(と見える)
(B)については確率の問題であり、ゆとりも母数は相当数居るのだから、問題ないはず。
現状、Webインフラは既に整備済みだから、「オレオレさいきょうの○○」を作る方が効率がいい。
仮に国有5ch、国有Twitterとして、それぞれ「この方針で行く」なんてやっても社会主義同様停滞するだけ。
そもそも何かしらの場があって、そこに居ついている人にとっては、そこが十分に「素晴らしい」場所なんだよ。
それを「俺がそう思うから」で変更するのは、元々居た人にとっては「素晴らしい」点が失われる事にもなりかねない。
これを防ぐために、並立させた状態で好きな方を選べ、がforkで、基本的にGitHub等もこの方針でしょ。
馬鹿ゆとりにも分かるように言えば、
・ゆとりにとっての快適は、上の世代にとっては不快
だから結果的にそれなりに住分けてる。この事実をちゃんと考えろ、という事。
いずれにしてもtwitter上のコミュニティなんて、勝手に宣言してるだけだし、
気に入らなければ自分で作って競争すればいいだけだろ。
ただ、>>100程度の馬鹿ではこれは出来ないと思うけど、という話。
>>118
100は典型的ゆとり価値観だぞ。
ここは匿名なのだから、自分が何者かは自分の書き込みで示さなければならない。
ゆとりらしい書き込みをしたからゆとり呼ばわりしてるだけ。
これが悪いとは俺は1mmも思わない。
(そうされたくなければそういう書き込みをしなければいいだけ)
121デフォルトの名無しさん
2022/03/06(日) 15:28:00.88ID:pk8t6Esu >>120
お前ここ初めてか?力抜けよ。
お前ここ初めてか?力抜けよ。
122デフォルトの名無しさん
2022/03/06(日) 15:42:42.98ID:oGjlcJ2o123デフォルトの名無しさん
2022/03/07(月) 07:16:36.13ID:QGQBtQzw こんなやつが暴れてる5chではコミュニティが育つわけもないよなぁ
124デフォルトの名無しさん
2022/03/07(月) 07:34:46.32ID:SPifR21t ぼくのかんがえたさいきょうのこみにゅてぃ以外みとめません!
125デフォルトの名無しさん
2022/03/07(月) 13:09:46.84ID:89t8mali >>123
なら出ていけばいいだけだね。それでこちらも助かる。
俺はゆとりが全員死ぬのを望んでいる。
というかね、ゆとりは相変わらず『俺様が絶対正義』だと思っているようだが、
そもそも「価値観の違いによるストレス」は相互であり、相手も(符号が違うだけで)全く同じストレスを受けてる。
自分達が一方的に被害者だってことにはならない。お互いに被害者であり加害者だ。
(つかなんでお前らが被害者ポジションマウントを気取るのかさっぱり分からないが、
ネット見過ぎてゴミクズ韓国人がデタラメ言ってるのを真に受けて戦法を学んだつもりなのか?
まあひろゆきが議論上手に見えるようだから実際その程度の頭なのかもしれんが)
なら出ていけばいいだけだね。それでこちらも助かる。
俺はゆとりが全員死ぬのを望んでいる。
というかね、ゆとりは相変わらず『俺様が絶対正義』だと思っているようだが、
そもそも「価値観の違いによるストレス」は相互であり、相手も(符号が違うだけで)全く同じストレスを受けてる。
自分達が一方的に被害者だってことにはならない。お互いに被害者であり加害者だ。
(つかなんでお前らが被害者ポジションマウントを気取るのかさっぱり分からないが、
ネット見過ぎてゴミクズ韓国人がデタラメ言ってるのを真に受けて戦法を学んだつもりなのか?
まあひろゆきが議論上手に見えるようだから実際その程度の頭なのかもしれんが)
126デフォルトの名無しさん
2022/03/07(月) 13:10:25.20ID:89t8mali この辺、ちょっと考えればすぐ分かるはずなのに、ゆとりは全く考えようともしないから気づけない。
馬鹿ゆとりにも分かるようにくどいが言い直すと、
ゆとりが「上から目線ガー」と感じてるのなら、
ゆとり以前の世代は「なんで下の者にこんな言われようされないといけないんだ?」と思ってる。
上司は友達でも同僚でもない。
勘違いしている奴も中にはいるが、大半は職責を正しく全うしてる。
そこで「もっとフレンドリーにやった方がいい」というのなら「提案」になるが、
当たり前だが「上司と部下」で既に上手く回ってる組織でそれをやっても嫌われる。無茶言うなでしかないからだ。
だから「フレンドリーな会社を作って、そっちの方が上手く回る(=利益が出る)ことを示し、
優勝劣敗の原理により『上司と部下』の会社を廃業に追い込む」というのが正しい自由主義経済での解決法だ。
くどいが、元々成立していた会社を「ぼくのさいきょうのかいしゃ」に変更する事ではないんだよ。
なんでこんな事になってるかというと、そもそも「ぼくのさいきょうのかいしゃ」は実際ただの勘違いが多く、
大半の場合はろくでもない結果にしかならないからだ。
ただ、中には上手く行く事もあるし、そういうのはえてして当初は「無茶だ」としか思えないから、
そういう成長の芽を潰さないために「ぼくのさいきょうの○○」を作る自由は保障されてる。
これが自由主義経済。
ゆとりは昔から「同僚や先輩にお願いするべき事項を、上司に振る?!?!」と言われているが、ここは相変わらずだろ。
ゆとりの「上から目線ガー」はゆとり以前の「何故俺がこんな…」の裏返しでしかない。
お前らがストレスを感じるのであれば、お前らも十分ストレスの原因になってる。
だから棲み分けが妥当なんだよ。
馬鹿ゆとりにも分かるようにくどいが言い直すと、
ゆとりが「上から目線ガー」と感じてるのなら、
ゆとり以前の世代は「なんで下の者にこんな言われようされないといけないんだ?」と思ってる。
上司は友達でも同僚でもない。
勘違いしている奴も中にはいるが、大半は職責を正しく全うしてる。
そこで「もっとフレンドリーにやった方がいい」というのなら「提案」になるが、
当たり前だが「上司と部下」で既に上手く回ってる組織でそれをやっても嫌われる。無茶言うなでしかないからだ。
だから「フレンドリーな会社を作って、そっちの方が上手く回る(=利益が出る)ことを示し、
優勝劣敗の原理により『上司と部下』の会社を廃業に追い込む」というのが正しい自由主義経済での解決法だ。
くどいが、元々成立していた会社を「ぼくのさいきょうのかいしゃ」に変更する事ではないんだよ。
なんでこんな事になってるかというと、そもそも「ぼくのさいきょうのかいしゃ」は実際ただの勘違いが多く、
大半の場合はろくでもない結果にしかならないからだ。
ただ、中には上手く行く事もあるし、そういうのはえてして当初は「無茶だ」としか思えないから、
そういう成長の芽を潰さないために「ぼくのさいきょうの○○」を作る自由は保障されてる。
これが自由主義経済。
ゆとりは昔から「同僚や先輩にお願いするべき事項を、上司に振る?!?!」と言われているが、ここは相変わらずだろ。
ゆとりの「上から目線ガー」はゆとり以前の「何故俺がこんな…」の裏返しでしかない。
お前らがストレスを感じるのであれば、お前らも十分ストレスの原因になってる。
だから棲み分けが妥当なんだよ。
127デフォルトの名無しさん
2022/03/07(月) 13:11:19.93ID:89t8mali さて本題100、実際そいつがどれ程かは知らんが、俺から見れば普通なんだろうなとは思う。
でもそれが平均的ゆとりにとって看過出来ないストレスで無理なら、
同様に無理だと思ってるゆとりも大勢居るはずだから、そいつらと共にもっと「優しいコミュニティ」を立ち上げればいいだけ。
そしてそれで上手く行けば、他コミュニティも学んで優しくなるところも出てくる。これが自由主義経済。
こうなればゆとり価値観の勝ちでいい。
ただまあ、一般的にWebコミュニティは優しいだけでは上手く回らない。
塩対応には必ず理由があって、お前らは「人格ガー」って事にしたいのだろうけど、大半はそうではない。
まあその辺はやれば分かるし、やらないと分からないので、やってみればいい。
それで上手く行けばよりよい物を得られ、全体に利益がある。駄目でも損失はない。これがforkの良いところだ。
(forkの場合はそのままの現行と一部改造した新規の構成のため、失敗しても現行は無傷で、プラス方向にしか進化しない。
現行を直接変更する「改善」だと、「改悪」される事もあり、マイナス方向に進む場合もある。
つまり、自由主義経済は進化の方向がデタラメで速度も遅いが、プラス方向にしか進化しないため、長期的にはなんだかんだで成長する。
対して社会主義だとスタートダッシュは速いが、「改善」の難易度も段々高くなるため、
ある程度以降は改善改悪を繰り返し、長期的には停滞してしまう。
これが社会主義が資本主義に負けた根本的な理由。
だから俺達はやっぱり自由主義的にforkで行くしかないんだよ。
『自分が大正義だ』と思ってる限りforkなんて効率が悪すぎると思えるだろうが、それは傲慢でしかない。
正しかったかどうかは結果《=多数の支持》で判断されるべきであって、お前の思想に合致してるかどうかではないから。
《というかパヨクが根本的にずれてるのはここで、『俺様が絶対正義』だと自信持ちすぎてるからあんなことになる。
そしてゆとりにもこの傾向はあるよ。これは自覚した方がいい》)
でもそれが平均的ゆとりにとって看過出来ないストレスで無理なら、
同様に無理だと思ってるゆとりも大勢居るはずだから、そいつらと共にもっと「優しいコミュニティ」を立ち上げればいいだけ。
そしてそれで上手く行けば、他コミュニティも学んで優しくなるところも出てくる。これが自由主義経済。
こうなればゆとり価値観の勝ちでいい。
ただまあ、一般的にWebコミュニティは優しいだけでは上手く回らない。
塩対応には必ず理由があって、お前らは「人格ガー」って事にしたいのだろうけど、大半はそうではない。
まあその辺はやれば分かるし、やらないと分からないので、やってみればいい。
それで上手く行けばよりよい物を得られ、全体に利益がある。駄目でも損失はない。これがforkの良いところだ。
(forkの場合はそのままの現行と一部改造した新規の構成のため、失敗しても現行は無傷で、プラス方向にしか進化しない。
現行を直接変更する「改善」だと、「改悪」される事もあり、マイナス方向に進む場合もある。
つまり、自由主義経済は進化の方向がデタラメで速度も遅いが、プラス方向にしか進化しないため、長期的にはなんだかんだで成長する。
対して社会主義だとスタートダッシュは速いが、「改善」の難易度も段々高くなるため、
ある程度以降は改善改悪を繰り返し、長期的には停滞してしまう。
これが社会主義が資本主義に負けた根本的な理由。
だから俺達はやっぱり自由主義的にforkで行くしかないんだよ。
『自分が大正義だ』と思ってる限りforkなんて効率が悪すぎると思えるだろうが、それは傲慢でしかない。
正しかったかどうかは結果《=多数の支持》で判断されるべきであって、お前の思想に合致してるかどうかではないから。
《というかパヨクが根本的にずれてるのはここで、『俺様が絶対正義』だと自信持ちすぎてるからあんなことになる。
そしてゆとりにもこの傾向はあるよ。これは自覚した方がいい》)
128デフォルトの名無しさん
2022/03/07(月) 13:12:24.61ID:89t8mali 5chでtwitterの悪口を言っても何ら生産性がない。
文句があるのならまずはやってみる事だ。お前もコミュニティ立ち上げ宣言してみればいい。
それで上手く行けばよし、駄目なら駄目で、何故塩対応してたのかが分かるだろうさ。
だからいずれにしても君には利益があると思うけど。
あとついでに聞きたいんだが、なぜゆとりは5chに拘るのだ?
5chなんてゆとり以前の世代「ゆとりにはついていけねえ…」の巣窟だ。
ゆとり以前からあるんだから当然だが。
いずれにしても、ゆとりにとって快適な場所にはならないよ。
(5chの連中を見下したり馬鹿にしたりするのも自由だけど、それを5chに来て言うのは頭がいかれてる。
まあそれ以前に、twitterの悪口を5chで言うのも頭がいかれてるが)
既に言ったがQiitaがゆとり価値観の場所で、
「Qiitaに掲示板機能付けてくれ」が「5chを使う」よりお前ら的には正しい解のはずだ。
もちろんQiitaはそれが出来ないと分かってるからやってないのだが、
それでも「ゆとり価値観の掲示板」を何処かに作らない事には、お前らの安寧の地はないと思うけど。
文句があるのならまずはやってみる事だ。お前もコミュニティ立ち上げ宣言してみればいい。
それで上手く行けばよし、駄目なら駄目で、何故塩対応してたのかが分かるだろうさ。
だからいずれにしても君には利益があると思うけど。
あとついでに聞きたいんだが、なぜゆとりは5chに拘るのだ?
5chなんてゆとり以前の世代「ゆとりにはついていけねえ…」の巣窟だ。
ゆとり以前からあるんだから当然だが。
いずれにしても、ゆとりにとって快適な場所にはならないよ。
(5chの連中を見下したり馬鹿にしたりするのも自由だけど、それを5chに来て言うのは頭がいかれてる。
まあそれ以前に、twitterの悪口を5chで言うのも頭がいかれてるが)
既に言ったがQiitaがゆとり価値観の場所で、
「Qiitaに掲示板機能付けてくれ」が「5chを使う」よりお前ら的には正しい解のはずだ。
もちろんQiitaはそれが出来ないと分かってるからやってないのだが、
それでも「ゆとり価値観の掲示板」を何処かに作らない事には、お前らの安寧の地はないと思うけど。
129デフォルトの名無しさん
2022/03/07(月) 22:53:54.14ID:SPifR21t TypeScriptもついに4.6か
翻ってウチのNuxtプロジェクトときたら未だに4.2にロックイン
Nuxt 3になれば何とかなると待って信者が祈りを捧げて早幾年
未だβのまま
そもそもbreaking changeに耐えられる品質でもない
この型無し糞ゴミ採用した奴●してやりてえわ
そもそもVueコミッター全員●したい
早く潰れろ
翻ってウチのNuxtプロジェクトときたら未だに4.2にロックイン
Nuxt 3になれば何とかなると待って信者が祈りを捧げて早幾年
未だβのまま
そもそもbreaking changeに耐えられる品質でもない
この型無し糞ゴミ採用した奴●してやりてえわ
そもそもVueコミッター全員●したい
早く潰れろ
130デフォルトの名無しさん
2022/03/07(月) 23:53:20.52ID:ZqaLalev .NETやってるけど快適
131デフォルトの名無しさん
2022/03/08(火) 05:55:37.35ID:p1ggB6/9 つまり言語作者が同じTSも快適って事か
132デフォルトの名無しさん
2022/03/08(火) 08:51:42.58ID:W/y0kE8O jsファミリーに期待するな
133デフォルトの名無しさん
2022/03/08(火) 12:40:02.06ID:o9qP1ELk やはりRustのみが縁なき衆生をお救いくださるのである(過激派
134デフォルトの名無しさん
2022/03/18(金) 11:45:07.12ID:hnZ3lDzs node_modulesの下のコードが静的エラー出して鬱陶しいです
typescriptの開発者って静的エラー消さずにパッケージ出荷しちゃうんですか?
typescriptの開発者って静的エラー消さずにパッケージ出荷しちゃうんですか?
135デフォルトの名無しさん
2022/03/18(金) 11:57:30.55ID:0waQ0EIw excludeしろ
136デフォルトの名無しさん
2022/03/27(日) 17:58:36.93ID:LHErTm2E TSはもしかして例外あんまり使わないんですか?
137デフォルトの名無しさん
2022/03/30(水) 14:38:24.60ID:rdfA8RBv みなさんどういう単位でファイル分割されてますか?
1ファイル1クラスのphpと違って自由だから逆に迷ってしまいます
ベストプラクティスないかググっても見つからず…
1ファイル1クラスのphpと違って自由だから逆に迷ってしまいます
ベストプラクティスないかググっても見つからず…
138デフォルトの名無しさん
2022/03/30(水) 14:47:13.20ID:/h0/v+Yd どうでもいいので好きにすればいい
そもそもスクリプト言語ではそんなガチガチにこだわらないほうがいい
スクリプトは雑で汚くてもいいから小さいシステムをサクッと作るための道具だから
そもそもスクリプト言語ではそんなガチガチにこだわらないほうがいい
スクリプトは雑で汚くてもいいから小さいシステムをサクッと作るための道具だから
139デフォルトの名無しさん
2022/03/30(水) 15:27:58.67ID:w/wOADHo >>137
教科書的な正解が欲しいならGitHubでTypeScriptコンパイラかVSCodeのソースを見ればいい
機械的な基準ではなく、意味のある単位で適当に分けていることがわかる
身も蓋もないことを言えば、十分に頭の良い人間の裁量でケースバイケースで判断するのがベストだ
教科書的な正解が欲しいならGitHubでTypeScriptコンパイラかVSCodeのソースを見ればいい
機械的な基準ではなく、意味のある単位で適当に分けていることがわかる
身も蓋もないことを言えば、十分に頭の良い人間の裁量でケースバイケースで判断するのがベストだ
140デフォルトの名無しさん
2022/03/30(水) 15:33:36.80ID:iu76Nwkv >>137
普通にクラス単位で分けるし、型(関心事)とその周辺関数郡で分割するかな。あとは1ファイルをなるべく小さく保つ。改修で膨らむ可能性があるから。
個人的には1ファイル250行超えたら危機感持つ。
普通にクラス単位で分けるし、型(関心事)とその周辺関数郡で分割するかな。あとは1ファイルをなるべく小さく保つ。改修で膨らむ可能性があるから。
個人的には1ファイル250行超えたら危機感持つ。
141デフォルトの名無しさん
2022/04/18(月) 21:22:21.94ID:rznbXz+G >>137
なるべくファイル数は少なく保つ
微塵切りの千切りファイルで見通しを悪くしてはいけない
classは使わない
十分に小さく参照等価なfunctionを組み合わせる
どうせ改修で膨らむほど使われないから。
個人的には1ファイル250行未満なら危機感持つ。
なるべくファイル数は少なく保つ
微塵切りの千切りファイルで見通しを悪くしてはいけない
classは使わない
十分に小さく参照等価なfunctionを組み合わせる
どうせ改修で膨らむほど使われないから。
個人的には1ファイル250行未満なら危機感持つ。
142デフォルトの名無しさん
2022/04/22(金) 12:41:47.72ID:egxvakGA 初心者です
serverlessってフレームワークを使ってるんだけど、規模小さいコードなのにビルド始めるとesbuildが16Gメモリ使って完了までくっそ時間かかる
業務用のソースだから晒せないんだけど、一般論的に言ってこの最適化オプションはハマりやすいので注意、みたいなのってあります?
serverlessってフレームワークを使ってるんだけど、規模小さいコードなのにビルド始めるとesbuildが16Gメモリ使って完了までくっそ時間かかる
業務用のソースだから晒せないんだけど、一般論的に言ってこの最適化オプションはハマりやすいので注意、みたいなのってあります?
143デフォルトの名無しさん
2022/04/22(金) 15:45:27.64ID:rFOQ0LJz ここよりフロントエンドのフレームワークのスレで聞いたほうが良いと思うな
144デフォルトの名無しさん
2022/04/26(火) 21:25:48.15ID:1qeD7Yad JSファミリーの仕様のごちゃごちゃ加減が酷い
なんでこれが流行ったんだ
なんでこれが流行ったんだ
145デフォルトの名無しさん
2022/04/26(火) 21:27:37.78ID:1qeD7Yad 他の言語が取って変わろうとするたびに、
javascript側の仕様更新による延命がうまくいったせいで、
ごちゃごちゃな歴史を引きずったまま、いまでもゾンビのように君臨してるパターンか
フロントのフレームワーク、JS一択なのが酷い
javascript側の仕様更新による延命がうまくいったせいで、
ごちゃごちゃな歴史を引きずったまま、いまでもゾンビのように君臨してるパターンか
フロントのフレームワーク、JS一択なのが酷い
146デフォルトの名無しさん
2022/04/26(火) 21:37:42.76ID:QNVEk81Z ブラウザがまともにサポートしてるのがそれだけだったから仕方がない
もし最初に軌道に乗ったブラウザスクリプトがVBだったら今頃VBが流行ってたよ
もし最初に軌道に乗ったブラウザスクリプトがVBだったら今頃VBが流行ってたよ
147デフォルトの名無しさん
2022/04/26(火) 22:16:40.32ID:/B/eiBVl ありえんわ
勘違いもはなばなしい
なんだかんだ(古い文法を除けば)JS/TSの文法はプログラミング正統派として読みやすい
だから未だに使われ続けている
勘違いもはなばなしい
なんだかんだ(古い文法を除けば)JS/TSの文法はプログラミング正統派として読みやすい
だから未だに使われ続けている
148デフォルトの名無しさん
2022/04/26(火) 22:16:58.75ID:QNVEk81Z と思いたいんだね
149デフォルトの名無しさん
2022/04/26(火) 22:23:32.66ID:DyWQhYeY 実に華々しい勘違いですね
150デフォルトの名無しさん
2022/04/27(水) 09:19:38.83ID:+qhhkVcT いや、鼻々しい勘違いでいた
151デフォルトの名無しさん
2022/04/27(水) 09:21:46.08ID:+qhhkVcT でも、TS様のおかげでJSの酷さがかなり軽減されていると思る
勿論、TSスレだから媚びを売ってるだけだ
勿論、TSスレだから媚びを売ってるだけだ
152デフォルトの名無しさん
2022/04/27(水) 20:19:12.60ID:WzmT7FsB interfaceのほうがコードきれいになるな
typeは便利だが良くない発明だ
typeは便利だが良くない発明だ
153デフォルトの名無しさん
2022/04/28(木) 21:43:14.60ID:oBwwA7sc interfaceできれいになるような糞コード書いてるのが問題なのでわ?
154デフォルトの名無しさん
2022/04/28(木) 21:53:14.86ID:kbziWRDf クソコードって|とか&使ってる馬鹿なコード
unionって今どきC言語かよ
unionって今どきC言語かよ
155デフォルトの名無しさん
2022/04/29(金) 05:07:46.33ID:9Pfdk6R3 まあC++使えない奴は、大抵何させてもたいしたこと無いけどなw
156デフォルトの名無しさん
2022/04/29(金) 05:15:00.80ID:bza0ag8S う、うん…(´・ω・`)
157デフォルトの名無しさん
2022/04/29(金) 05:37:28.64ID:a7FB1YkL ヨシ!
158デフォルトの名無しさん
2022/04/29(金) 05:57:49.75ID:fa9VGnxG このスレやべーやつ住んでるな。ワッチョイつけなかったからこんなもんか
159デフォルトの名無しさん
2022/04/29(金) 08:07:44.25ID:nnpkzAOE 次世代言語スレから何か流れてきてるだろ
160デフォルトの名無しさん
2022/04/30(土) 02:13:26.17ID:u1byxZ8b C++を使うにはCの知識も当然必要だがな
161デフォルトの名無しさん
2022/04/30(土) 11:22:16.98ID:Jfyr/cmt オーバーロードがもうちょいマシだったらなと思う
162デフォルトの名無しさん
2022/05/10(火) 11:41:45.53ID:fIyMb/gO ,―彡 ⌒ ミ―、
〈 〈| ´ん` |〉 〉
\ ヽ _ / /
/ /みんなで
/ /ホモセックス
〈 〈| ´ん` |〉 〉
\ ヽ _ / /
/ /みんなで
/ /ホモセックス
163デフォルトの名無しさん
2022/05/30(月) 21:44:48.53ID:URC3D+jY バカが書いたTypeScriptってマジで糞だな
って思ったけどJavaScriptだったらもっと糞になってたんだよなって思って心の平静保ってる
って思ったけどJavaScriptだったらもっと糞になってたんだよなって思って心の平静保ってる
164デフォルトの名無しさん
2022/05/30(月) 21:47:51.98ID:arvcbcVn それ言ったら賢い奴が書いたらCでも何も問題ないんだが
言語が縛ってるのは所詮馬鹿対策でしかない
言語が縛ってるのは所詮馬鹿対策でしかない
165デフォルトの名無しさん
2022/06/29(水) 20:00:27.28ID:NKfPTkof 質問です。
type t = (a: string) => string;
const f: t = (a) => false;
console.log(f('x'));
で false のところで、
Type 'boolean' is not assignable to type 'string'.ts(2322)
になりますが、
・type t = ... を書き換えてはいけない
・const f の実装を
const f: t = (a) => <string><unknown>false;
のように書き換えてはいけない
・// @ts-ignore
を使ってはいけない。
という縛りで、例えばですが、
type t = (a: string) => string;
overwrite type t = (a: string) => string | boolean;
const f: t = (a) => false;
console.log(f('x'));
のように同名の型のまま戻り値の定義を書き換えるということはできるのでしょうか?
(overwrite type...は、そんな文法は無く、仮想の方法です。)
また、型定義と型指定部分だけ書き換え不可としたら、普通は、
<string><unknown>false;
// @ts-ignore
どちらで乗り切るのでしょうか?
type t = (a: string) => string;
const f: t = (a) => false;
console.log(f('x'));
で false のところで、
Type 'boolean' is not assignable to type 'string'.ts(2322)
になりますが、
・type t = ... を書き換えてはいけない
・const f の実装を
const f: t = (a) => <string><unknown>false;
のように書き換えてはいけない
・// @ts-ignore
を使ってはいけない。
という縛りで、例えばですが、
type t = (a: string) => string;
overwrite type t = (a: string) => string | boolean;
const f: t = (a) => false;
console.log(f('x'));
のように同名の型のまま戻り値の定義を書き換えるということはできるのでしょうか?
(overwrite type...は、そんな文法は無く、仮想の方法です。)
また、型定義と型指定部分だけ書き換え不可としたら、普通は、
<string><unknown>false;
// @ts-ignore
どちらで乗り切るのでしょうか?
166デフォルトの名無しさん
2022/06/30(木) 01:29:29.02ID:9mtgPMTA >>165
普通はfの型をtにしないと思うのだが、どういう意図があるの?
普通はfの型をtにしないと思うのだが、どういう意図があるの?
167デフォルトの名無しさん
2022/06/30(木) 07:51:24.33ID:dQhuKSOV >>165
>のように同名の型のまま戻り値の定義を書き換えるということはできるのでしょうか?
型定義を後付けで変更できたらいろんな前提がひっくり返る気が
そんなことが必要な状況が想像できないけどコードの臭いがプンプンする
>のように同名の型のまま戻り値の定義を書き換えるということはできるのでしょうか?
型定義を後付けで変更できたらいろんな前提がひっくり返る気が
そんなことが必要な状況が想像できないけどコードの臭いがプンプンする
168デフォルトの名無しさん
2022/06/30(木) 09:29:37.43ID:Rcw/gVlt ライブラリの型が間違ってるとか?
質問あるあるだが、抽象化も大事だが、具体的な状況も書き添えると回答してもらいやすくなると思うよ
そもそもの質問がずれてるとかもあるからね
質問あるあるだが、抽象化も大事だが、具体的な状況も書き添えると回答してもらいやすくなると思うよ
そもそもの質問がずれてるとかもあるからね
169デフォルトの名無しさん
2022/06/30(木) 11:29:36.59ID:Argu0lpR >>165
です。ありがとうございます。
実際のケースでお話しします。
・ライブラリの型を利用している。
・ライブラリの実装をそのまま真似ている。(実装は変えられる。)
・anyは使わない方針。
の状況です。
【型定義(サードパーティ)】
declare const visit: { <V extends Node>(tree: Node,test: Test<V> | Array<Test<any>>,visitor: visit.Visitor<V>,reverse?: boolean): void }
export = visit
declare namespace unistUtilIs {
type TestFunction<T extends Node> = (node: unknown,index?: number,parent?: Parent) => node is T
type Test<T extends Node> = TestFunction<T> | null | undefined }
【実装(大部分省略)】
import visit from 'unist-util-visit';
import { Node, Data } from 'unist';
function visitX(node: any): void {
if (!node.type) return;
}
return function transformer(tree): void {
visit(tree, (node: Node<Data>) => node.type === 'xxx', visitX);
};
ここで、function visitX(node: any) の Unexpected any. を消すのに難儀しています。
function visitX(node: Node<Data>): void {
にすると、
visit( の部分で
No overload matches this call.
Overload 1 of 2, '(tree: Node<Data>, test: any[] | Test<Node<Data>>, visitor: Visitor<Node<Data>>, reverse?: boolean | undefined): void', gave the following error.
...
と怒られます。極端な話、サードパーティの定義の方をいじらないと解決しないかもと思った次第です。
です。ありがとうございます。
実際のケースでお話しします。
・ライブラリの型を利用している。
・ライブラリの実装をそのまま真似ている。(実装は変えられる。)
・anyは使わない方針。
の状況です。
【型定義(サードパーティ)】
declare const visit: { <V extends Node>(tree: Node,test: Test<V> | Array<Test<any>>,visitor: visit.Visitor<V>,reverse?: boolean): void }
export = visit
declare namespace unistUtilIs {
type TestFunction<T extends Node> = (node: unknown,index?: number,parent?: Parent) => node is T
type Test<T extends Node> = TestFunction<T> | null | undefined }
【実装(大部分省略)】
import visit from 'unist-util-visit';
import { Node, Data } from 'unist';
function visitX(node: any): void {
if (!node.type) return;
}
return function transformer(tree): void {
visit(tree, (node: Node<Data>) => node.type === 'xxx', visitX);
};
ここで、function visitX(node: any) の Unexpected any. を消すのに難儀しています。
function visitX(node: Node<Data>): void {
にすると、
visit( の部分で
No overload matches this call.
Overload 1 of 2, '(tree: Node<Data>, test: any[] | Test<Node<Data>>, visitor: Visitor<Node<Data>>, reverse?: boolean | undefined): void', gave the following error.
...
と怒られます。極端な話、サードパーティの定義の方をいじらないと解決しないかもと思った次第です。
170デフォルトの名無しさん
2022/06/30(木) 12:31:53.04ID:Rcw/gVlt 5chだと読みづらいからts playgroundなりcode sandboxなりに書いて欲しい
171デフォルトの名無しさん
2022/06/30(木) 12:53:38.41ID:Argu0lpR172デフォルトの名無しさん
2022/08/26(金) 00:55:54.58ID:z3bi9+6P Recordとmapped typesの使い分け方が分かりません
Record<Key, Value>と{ [key: Key]: Value }ってinterchangeableな気がするんですが、
どっちかにしかできないことがあったりするんですか?
Record<Key, Value>と{ [key: Key]: Value }ってinterchangeableな気がするんですが、
どっちかにしかできないことがあったりするんですか?
173デフォルトの名無しさん
2022/08/26(金) 08:07:49.83ID:cPJ/q77Z mapped の方が柔軟
type X = { age: number, name: string }
これは Record では定義できないだろう
type X = { age: number, name: string }
これは Record では定義できないだろう
174デフォルトの名無しさん
2022/08/26(金) 08:46:09.94ID:yW+yR6PJ Recordはキーがいくつかの既知の値のみに限られる場合に使う
{ [key: Key]: Value }だとキーが何でも入っちゃうでしょ
{ [key: Key]: Value }だとキーが何でも入っちゃうでしょ
175174
2022/08/26(金) 10:07:43.28ID:yW+yR6PJ 限られるというより、必ず既知のキーを持っていることが保証されるというべきか
record.knownKey のような既知のキーによるアクセスがタイプセーフになり、コード補完も効く
record.knownKey のような既知のキーによるアクセスがタイプセーフになり、コード補完も効く
176デフォルトの名無しさん
2022/08/26(金) 10:18:44.77ID:XmC41P2C 微妙にインデックス型とmapped typeがごっちゃになってて話をややこしくしてる気がする
177デフォルトの名無しさん
2022/08/26(金) 22:54:52.76ID:wGXHgoK/ >>173
それはただのオブジェクト型だと思うが
それはただのオブジェクト型だと思うが
178.NET MAUI HighScool
2022/11/03(木) 11:06:25.02ID:P57hKE9o もしかしてTypeScriptってC#で良いのでは?
静的型付け言語だしオブジェクト指向だし作った人も一緒
静的型付け言語だしオブジェクト指向だし作った人も一緒
179デフォルトの名無しさん
2022/11/03(木) 11:18:14.22ID:/OhXuECX C#でいいならわざわざ同じ人が新言語作らないだろ
ヘルスバーグはMS内では神みたいな扱いらしいから、自分で意味ないと思ってる仕事なんかやらないよ
ヘルスバーグはMS内では神みたいな扱いらしいから、自分で意味ないと思ってる仕事なんかやらないよ
180デフォルトの名無しさん
2022/11/03(木) 11:27:45.04ID:BN1z7WMM TypeScriptが解決してる問題をC#が全て解決出来るか考えてみれば?
181.NET MAUI HighScool
2022/11/03(木) 11:38:56.77ID:P57hKE9o >>180
できてるじゃん
できてるじゃん
182デフォルトの名無しさん
2022/11/03(木) 12:08:35.27ID:S9tMl46F or型というのかunion型というのか忘れたけど、C#にはなくない?
type a = b | c
(C#にもこの機能欲しい)
type a = b | c
(C#にもこの機能欲しい)
183デフォルトの名無しさん
2022/11/03(木) 12:23:54.28ID:d31vVPfb JavaScriptに静的型付けの恩恵を与えるために作られたのがTypeScript
C#でそれは出来ないでしょ
C#でそれは出来ないでしょ
184.NET MAUI HighScool
2022/11/03(木) 12:26:39.11ID:Kj7ywx2W >>183
C#が静的型付けじゃん
C#が静的型付けじゃん
185デフォルトの名無しさん
2022/11/03(木) 12:29:42.91ID:d31vVPfb C#ではJavaScriptに静的型付けの恩恵を与えられないでしょ
186.NET MAUI HighScool
2022/11/03(木) 12:39:42.87ID:Kj7ywx2W >>185
なんで?
なんで?
187デフォルトの名無しさん
2022/11/03(木) 12:47:16.05ID:d31vVPfb >>186
君はC#がJavaScriptに静的型付けの恩恵を与えられると思ってるの?
君はC#がJavaScriptに静的型付けの恩恵を与えられると思ってるの?
188デフォルトの名無しさん
2022/11/03(木) 12:57:24.44ID:t+iDkaHi >>182
これについてはTypeScriptが便利というよりは、JSのやり方に合わせるために必要となっているものだと思う
C#では型が条件によってコロコロ変わるような設計は普通しないから、nullabilityさえ指定できれば多くの場合十分
これについてはTypeScriptが便利というよりは、JSのやり方に合わせるために必要となっているものだと思う
C#では型が条件によってコロコロ変わるような設計は普通しないから、nullabilityさえ指定できれば多くの場合十分
189.NET MAUI HighScool
2022/11/03(木) 13:04:33.62ID:fiCeisHS >>187
いや別にJavaScript使う必要なくね?
いや別にJavaScript使う必要なくね?
190デフォルトの名無しさん
2022/11/03(木) 13:12:15.66ID:d31vVPfb >>189
それは論点のすり替えでしょ
それは論点のすり替えでしょ
191デフォルトの名無しさん
2022/11/03(木) 14:21:47.63ID:M3w0A0V3 代数的データ型は静的型付け言語にもあるよ。
最近のC#でも出来るけど記述量が多い。F#なら比較的楽に書けるけど。
最近のC#でも出来るけど記述量が多い。F#なら比較的楽に書けるけど。
192デフォルトの名無しさん
2022/11/03(木) 15:50:32.38ID:BAhN8xRm typescriptが実行時型安全まで保証してくれたらもう他の言語いらんのよな
REST APIというかJSONとの相性もマックスバリューだし
世にはびこっている型なし糞言語を全て地獄に葬り去ってほしい
REST APIというかJSONとの相性もマックスバリューだし
世にはびこっている型なし糞言語を全て地獄に葬り去ってほしい
193デフォルトの名無しさん
2022/11/03(木) 16:11:11.85ID:cSIPlVD9194デフォルトの名無しさん
2022/11/03(木) 16:27:43.63ID:M3w0A0V3195デフォルトの名無しさん
2022/11/03(木) 18:23:11.89ID:zVDUtzQU >>192
型をバリデーションライブラリから生成すると捗るよ
型をバリデーションライブラリから生成すると捗るよ
196デフォルトの名無しさん
2022/11/03(木) 20:49:50.25ID:BAhN8xRm >>195
おっ zodmanか?
おっ zodmanか?
197デフォルトの名無しさん
2022/11/03(木) 20:56:17.04ID:tn2ZhR3p interface/classからjsonschemaを生成して、それを型ガード関数で使うってのが鉄板。
198デフォルトの名無しさん
2022/11/03(木) 21:05:34.21ID:zVDUtzQU199デフォルトの名無しさん
2022/11/03(木) 21:36:19.22ID:tn2ZhR3p コードサイズは気にしたことがないがスキーマ手書きは面倒臭いからやだなあ。
200デフォルトの名無しさん
2022/11/03(木) 22:05:24.52ID:S9tMl46F RestAPIの型チェックはio-tsっていうライブラリつかってバリデーションしてるな。
実行時コストがあるけど、自分は業務アプリがメインなんで変な結果で次に進まない方が大事。
実行時コストがあるけど、自分は業務アプリがメインなんで変な結果で次に進まない方が大事。
201デフォルトの名無しさん
2022/11/03(木) 22:38:04.12ID:zVDUtzQU >>199
ZodとかSuperstructとかはtypeで型書くのとほぼ同じくらいの手間でバリデーションと型が生成されるからすげー楽だよ。
ZodとかSuperstructとかはtypeで型書くのとほぼ同じくらいの手間でバリデーションと型が生成されるからすげー楽だよ。
202デフォルトの名無しさん
2022/11/03(木) 22:52:51.54ID:tn2ZhR3p うーん、俺はやっぱりTypescriptで書いた型そのまま使える方が楽だわ。
203デフォルトの名無しさん
2022/11/04(金) 15:37:16.21ID:NHN4pq/h HighScool君は納得して帰ったのか
204デフォルトの名無しさん
2022/11/04(金) 23:24:08.39ID:/YFZG+0u superstruct と zod ならどっちがええのんか?
205.NET MAUI HighSchool
2022/12/16(金) 16:55:41.78ID:3qj0lL1U C#だとvar型でも何ら問題無いと思われてるのにTypeScriptのanyはなんでTwitterでネタにされるんでしょうか?
私もあまりvar型使いませんが公式とかvar型使いまくってるしTypeScriptでany使っても何ら問題なさそうなのですが…
私もあまりvar型使いませんが公式とかvar型使いまくってるしTypeScriptでany使っても何ら問題なさそうなのですが…
206デフォルトの名無しさん
2022/12/16(金) 17:30:57.27ID:p0Ky0qXF コーディング時にvarは右辺で型が決まるけどanyは決まらないからかな
207.NET MAUI HighSchool
2022/12/16(金) 18:26:46.45ID:3qj0lL1U208デフォルトの名無しさん
2022/12/16(金) 21:33:55.14ID:AqSpfMIV そもそもvarは正確には型じゃないだろ
209デフォルトの名無しさん
2022/12/16(金) 21:58:06.83ID:V2l7/OO4 var型はないな
型の堅牢性などを享受するためにTypeScriptを使用しているはずなのに、anyを持ち出せばそれが途端に失われるから絶対に使わない方がいい
そして確かにanyはdynamicに近いものと考えて良い
型の堅牢性などを享受するためにTypeScriptを使用しているはずなのに、anyを持ち出せばそれが途端に失われるから絶対に使わない方がいい
そして確かにanyはdynamicに近いものと考えて良い
210デフォルトの名無しさん
2022/12/16(金) 22:10:24.90ID:Hm0gKYO4 TypeScriptに対する理解が浅いのはともかくC#の理解もそんな程度だったのかこのコテ
212.NET MAUI HighSchool
2022/12/17(土) 00:22:25.11ID:WFRGIGZB dynamic型は次の値を入れたらその型に変わる
例えば
dynamic x="おはよう"
dynamic x=123
でも大丈夫なわけ
anyは型の再代入ができないって見たけど?これdynamic型なの?
例えば
dynamic x="おはよう"
dynamic x=123
でも大丈夫なわけ
anyは型の再代入ができないって見たけど?これdynamic型なの?
213デフォルトの名無しさん
2022/12/17(土) 00:38:58.67ID:1fKT+2Wj >>178程度の理解のヤツに何を説明しても無駄よ
214デフォルトの名無しさん
2022/12/17(土) 00:50:14.95ID:/cYfBcZ5 >>212
流石にこれは触っちゃいけないレベル
流石にこれは触っちゃいけないレベル
215デフォルトの名無しさん
2022/12/17(土) 00:55:05.65ID:Q7rx/k0e anyはまさにJavaScriptの元々の変数の扱い様そのもの。
216.NET MAUI HighSchool
2022/12/17(土) 01:46:39.51ID:WFRGIGZB217デフォルトの名無しさん
2022/12/17(土) 01:54:57.82ID:Q7rx/k0e 目的が違うんだよ。C#ではTypeScriptのようなことは出来ない。
良い意味でも悪い意味でもJavaScriptのスーパーセットかつトランスパイラである必要があるんだから。
ただTypeScriptが将来C#でやってることを概ね肩代わりすることは可能だったりはするんだけどね.netライブラリをそのまま動かすように改変していくことも障害は少ない。
良い意味でも悪い意味でもJavaScriptのスーパーセットかつトランスパイラである必要があるんだから。
ただTypeScriptが将来C#でやってることを概ね肩代わりすることは可能だったりはするんだけどね.netライブラリをそのまま動かすように改変していくことも障害は少ない。
218デフォルトの名無しさん
2022/12/17(土) 02:13:01.40ID:dtBkzR03 そいつにかまうなよ
あちこちの言語やフレームワークスレに乗り込んでは意味不明な喧嘩売って
C#マンセーMAUIマンセーしてるだけの荒らし
あちこちの言語やフレームワークスレに乗り込んでは意味不明な喧嘩売って
C#マンセーMAUIマンセーしてるだけの荒らし
219デフォルトの名無しさん
2022/12/17(土) 03:00:17.54ID:7f5jCiop 再代入と型は関係ないだろ
見た感じC#も満足に使えてないじゃん
見た感じC#も満足に使えてないじゃん
220.NET MAUI HighSchool
2022/12/17(土) 04:20:14.04ID:WFRGIGZB221デフォルトの名無しさん
2022/12/17(土) 08:49:17.76ID:J7I3yK2m222.NET MAUI HighSchool
2022/12/17(土) 11:38:05.95ID:WFRGIGZB223デフォルトの名無しさん
2022/12/17(土) 12:01:06.61ID:d07Wp+U/224.NET MAUI HighSchool
2022/12/17(土) 12:25:09.54ID:EKmrQGNL >>223
そういう決まった名前無いけどdynamic型は型を変えれるからそう言ってる
そういう決まった名前無いけどdynamic型は型を変えれるからそう言ってる
225.NET MAUI HighSchool
2022/12/17(土) 12:25:55.57ID:EKmrQGNL つまりletがvarでanyがdynamicってことか
226デフォルトの名無しさん
2022/12/17(土) 12:32:09.45ID:AZCBrKeq ここでもバカ晒してるのかよw
227.NET MAUI HighSchool
2022/12/17(土) 12:38:11.73ID:WFRGIGZB >>226
何いってんだこいつ?
何いってんだこいつ?
228デフォルトの名無しさん
2022/12/17(土) 12:56:35.19ID:d07Wp+U/ >>225
説明の仕方が悪かったか
C#の
dynamic x = "abc";
x = 123; //OK
に相当するのは
let x:any = "abc";
x = 123; //OK
var y = "abc";
y = "def"; //OK
y = 123; //NG
に相当するのは
let y = "abc"
y = "def"; //OK
y = 123; //NG
変数の型を推論に任せるときは型指定を省略する
説明の仕方が悪かったか
C#の
dynamic x = "abc";
x = 123; //OK
に相当するのは
let x:any = "abc";
x = 123; //OK
var y = "abc";
y = "def"; //OK
y = 123; //NG
に相当するのは
let y = "abc"
y = "def"; //OK
y = 123; //NG
変数の型を推論に任せるときは型指定を省略する
229.NET MAUI HighSchool
2022/12/17(土) 14:07:48.19ID:WFRGIGZB >>228
なるほど理解したサンクス
なるほど理解したサンクス
230デフォルトの名無しさん
2022/12/17(土) 18:19:24.77ID:EAGB3+7T なんでぽまいらはC#の話をしているんだ?
231.NET MAUI HighSchool
2022/12/17(土) 18:58:14.82ID:WFRGIGZB anyはネタにされるけどvarはネタにされないなと思ってさ
まぁ勘違いだったんだけどね
まぁ勘違いだったんだけどね
232デフォルトの名無しさん
2022/12/17(土) 19:14:45.81ID:ETb1szGB なぜanyがネタにされたり忌み嫌われたりするのかはその機能だけ見ても分からんだろうね
言語特有の背景を理解してこそ
https://qiita.com/uhyo/items/aae57ba0734e36ee846a
言語特有の背景を理解してこそ
https://qiita.com/uhyo/items/aae57ba0734e36ee846a
233デフォルトの名無しさん
2022/12/17(土) 20:38:09.95ID:/cYfBcZ5 any無しはJSONの扱いが面倒臭過ぎるんだよなあ
必要に応じて型のランタイムチェックを入れてキャストできる機能さえあれば格段に便利になるんだが
必要に応じて型のランタイムチェックを入れてキャストできる機能さえあれば格段に便利になるんだが
234デフォルトの名無しさん
2022/12/17(土) 20:55:50.21ID:AZCBrKeq ユーザー定義型ガードで足りると思うが
235デフォルトの名無しさん
2022/12/21(水) 14:23:05.41ID:FWjNfdlT JSONだろうがanyを許すな。Zodとか使うのだ
236デフォルトの名無しさん
2023/01/03(火) 23:03:14.80ID:6VbKu+1R pythonを書いていると型縛りが馬鹿らしくなる
237デフォルトの名無しさん
2023/01/03(火) 23:51:28.97ID:FIKRmyvH JavaScriptを書いていると型縛りが馬鹿らしくなる
みんながそう思ってたらTypeScriptは生まれてこなかっただろうね
みんながそう思ってたらTypeScriptは生まれてこなかっただろうね
238デフォルトの名無しさん
2023/01/04(水) 00:03:33.25ID:eKtKRLft 型なんて要らねーとか言ってるのは、ほぼ1人でコーディングしてる奴
まぁ、実際1人でなら要らないかも知れない
これが複数人でコーディングする事になると、他人が実装した関数にどんなデータを渡していいか全然分からない
その為にTypeScriptがある
まぁ、実際1人でなら要らないかも知れない
これが複数人でコーディングする事になると、他人が実装した関数にどんなデータを渡していいか全然分からない
その為にTypeScriptがある
239デフォルトの名無しさん
2023/01/04(水) 00:08:02.09ID:PCFpglko 型がない方が縛りプレイだろ
240デフォルトの名無しさん
2023/01/04(水) 00:44:19.33ID:B1scSs4x JavaScriptは引数の数すらチェックされない上に暗黙の変換にundefined/null/NaNと昔はブロックスコープもなくてバグの温床てんこ盛りだったからやろ
intとかStringとかのベーシックな型を書きまくつてるコードを見ると欠陥言語だなと思う
intとかStringとかのベーシックな型を書きまくつてるコードを見ると欠陥言語だなと思う
241デフォルトの名無しさん
2023/01/04(水) 09:28:28.37ID:77WW46pZ >>239
縛り方を間違うと死ぬからな
縛り方を間違うと死ぬからな
242デフォルトの名無しさん
2023/01/04(水) 10:15:30.84ID:y9fxcgcU Flow「…」
243デフォルトの名無しさん
2023/01/04(水) 11:23:06.77ID:PU4coe7B パラメタ名・変数名で型がわかるようにしとけば大概は済む
引数の個数をテキトウに呼ぶ奴がいたら、それはそんな作り方する方がおかしい
引数の個数をテキトウに呼ぶ奴がいたら、それはそんな作り方する方がおかしい
244デフォルトの名無しさん
2023/01/04(水) 11:53:32.34ID:+W5BVHVt そういう開発者にのしかかる煩わしさを軽減するのが型の役目だろうに
245デフォルトの名無しさん
2023/01/04(水) 16:13:02.47ID:s5vEki4C コーディングルールの運用で型限定するのも
コンパイラにまかせて型限定するのも
少なくとも js に限って言えば前者の方が手間は少ない
コンパイラにまかせて型限定するのも
少なくとも js に限って言えば前者の方が手間は少ない
246デフォルトの名無しさん
2023/01/04(水) 16:35:42.97ID:WgdCy7ph 本気で言ってるのか・・・?
247デフォルトの名無しさん
2023/01/04(水) 16:38:46.50ID:oLi3mo91 >パラメタ名・変数名で型がわかるようにしとけば大概は済む
よく事故るのは受け渡すオブジェクトのメンバーの有無だったりするけどそれには無力だな。
よく事故るのは受け渡すオブジェクトのメンバーの有無だったりするけどそれには無力だな。
248デフォルトの名無しさん
2023/01/04(水) 16:48:19.89ID:PU4coe7B 大概、おおむねって話よ
よほど便利だろうから、こういう言語が生れたのだろうし全否定するわけではない
あと、処理系が変数の型を把握できても、しかるべき名前でないと、開発者に分かりにくい場合がある
自作でもこれなんだっけ?紛らわしいなって、結局名前弄ったり、名前って大事
よほど便利だろうから、こういう言語が生れたのだろうし全否定するわけではない
あと、処理系が変数の型を把握できても、しかるべき名前でないと、開発者に分かりにくい場合がある
自作でもこれなんだっけ?紛らわしいなって、結局名前弄ったり、名前って大事
249デフォルトの名無しさん
2023/01/04(水) 16:56:26.80ID:+smwzq4n 型付けはあった方が良いけど、肝心の成果物がしょーもないことは多々あるな
最近まで参画していたアプリはすげー健康なブスだった
最近まで参画していたアプリはすげー健康なブスだった
250デフォルトの名無しさん
2023/01/04(水) 17:01:25.31ID:WgdCy7ph 開発途中で型の変更が必要になったとき安全に漏れなく修正できるメリットとかは無視できないんだけど
今までそういう経験がなかったんだろうか
今までそういう経験がなかったんだろうか
251デフォルトの名無しさん
2023/01/04(水) 17:46:37.74ID:JvBm8lal そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
それよりも代入により生じる依存関係を静的に追跡可能であることが重要で、その点では型があることで飛躍的に静的解析の精度が上がる
ただ、そのためには静的解析しやすい作りになっていることが大前提だ
動的型畑の人って概してオブジェクトと連想配列の区別が曖昧で、静的型に馴染んだ人からすると信じられないような型安全もクソもないコード書くからな
それを根本的に改めないなら型なんて大して役に立たん
それよりも代入により生じる依存関係を静的に追跡可能であることが重要で、その点では型があることで飛躍的に静的解析の精度が上がる
ただ、そのためには静的解析しやすい作りになっていることが大前提だ
動的型畑の人って概してオブジェクトと連想配列の区別が曖昧で、静的型に馴染んだ人からすると信じられないような型安全もクソもないコード書くからな
それを根本的に改めないなら型なんて大して役に立たん
252デフォルトの名無しさん
2023/01/04(水) 18:22:26.69ID:thANRos2 >そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
その影響しそうな箇所の把握に型があるのとないのでは大きく正確性や効率に差が出てくるでしょって話
その影響しそうな箇所の把握に型があるのとないのでは大きく正確性や効率に差が出てくるでしょって話
253デフォルトの名無しさん
2023/01/04(水) 22:43:59.04ID:PCFpglko まぁRubyやPHP出身の低能にそもそも型書かせるのが難しいという意見には同意
根本的に教養・学が足りないから、どうしようもない
もはや言語仕様で救えないレベルの話である
根本的に教養・学が足りないから、どうしようもない
もはや言語仕様で救えないレベルの話である
254デフォルトの名無しさん
2023/01/04(水) 22:52:50.06ID:492NQUrQ 動的型畑の奴が一概にバカとは思わないが、オブジェクトの全プロパティ舐めて値を書き換えたりするコードが突如出現したりして面食らう
根本的に思考回路が我々とは違うのだなと感じる
根本的に思考回路が我々とは違うのだなと感じる
255デフォルトの名無しさん
2023/01/04(水) 23:21:22.18ID:+smwzq4n クスクス
256デフォルトの名無しさん
2023/01/05(木) 10:41:34.55ID:Cbg+aaE9 >240
>暗黙の変換
これが諸悪の根源
>暗黙の変換
これが諸悪の根源
257デフォルトの名無しさん
2023/01/05(木) 21:34:07.80ID:OE/QT1xu JavaScriptは信用できない、JavaScriptは危険。
だからJavaScriptを撲滅しようとした時代があったんだよな。
JavaScriptそのものは書くものではなくて、使うものに変化した。
だからJavaScriptを撲滅しようとした時代があったんだよな。
JavaScriptそのものは書くものではなくて、使うものに変化した。
258デフォルトの名無しさん
2023/01/05(木) 22:57:13.13ID:ySLiYJwl JSを半端に知ってるやつこそそう言うけど、地雷がたくさん埋まってる以外は悪い言語じゃない。TypeScriptも今となっては薄いラッパーに過ぎないし
259デフォルトの名無しさん
2023/01/05(木) 23:01:32.86ID:+/A/RNe/ 何作るかによるな
んで、Typescriptでしょーもないもの作ってる奴はかなり多い
んで、Typescriptでしょーもないもの作ってる奴はかなり多い
260デフォルトの名無しさん
2023/01/06(金) 00:04:22.96ID:B+7qMiMZ 動的型付けでしょーもないもの作ってる奴の方が圧倒的に多い事実
261デフォルトの名無しさん
2023/01/06(金) 16:55:41.96ID:YIB2cDqh jsもperlも卒業しろよ
262デフォルトの名無しさん
2023/01/07(土) 02:08:56.86ID:cY6/G25e TSも卒業してrust書け
263デフォルトの名無しさん
2023/01/07(土) 14:15:02.15ID:8dRqY2Xm ビルドが遅いからヤダ
264デフォルトの名無しさん
2023/02/02(木) 13:12:52.48ID:JJCniKqD ( )y-~~ ( >)y-~~( >-)y-~~( >-< )y-~~ ウマスギル・・
265デフォルトの名無しさん
2023/02/27(月) 18:54:27.47ID:oOpYqea1 男卒業してTSしろ
266デフォルトの名無しさん
2023/03/12(日) 13:16:33.47ID:s6IZ9iua return this.#instance!;
https://github.com/denoland/showcase_chat/blob/970c56fbb229f00805c0f3b0adde6f4232446a3e/helpers/loader.ts#L36
! って何なんや?
https://github.com/denoland/showcase_chat/blob/970c56fbb229f00805c0f3b0adde6f4232446a3e/helpers/loader.ts#L36
! って何なんや?
267デフォルトの名無しさん
2023/03/12(日) 13:55:58.57ID:BMIpSqUT nullとかundefinedじゃねーよって意味
268デフォルトの名無しさん
2023/03/12(日) 21:52:14.15ID:mg++gyQG undefinedっていらなくない?
全部nullと同等にしてほしいわ
全部nullと同等にしてほしいわ
269デフォルトの名無しさん
2023/03/12(日) 23:18:21.71ID:s6IZ9iua270デフォルトの名無しさん
2023/03/12(日) 23:38:13.62ID:MrtVVZC+271デフォルトの名無しさん
2023/07/30(日) 19:53:15.24ID:dgsp3YJD しーん
272デフォルトの名無しさん
2023/09/26(火) 00:05:26.71ID:AayxzQ1y しーん2
273デフォルトの名無しさん
2023/10/08(日) 11:41:26.71ID:apfSCKMz しーん3
274デフォルトの名無しさん
2023/11/11(土) 14:20:03.22ID:Sje4N6L2 TypeScript が作られた由来に関連しての事ですが
JavaScript と CSSは
直感的ではなく地雷陥穽満載の言語だと思い
苦痛を感じているのですが
Web開発が根本的にもっと簡単に楽になる事は
近い将来ありえますでしょうか。
ブラウザ自体とDOM操作が
JavaScriptでしか実行できない事は
永遠に続くのでしょうか。
JavaScript と CSSは
直感的ではなく地雷陥穽満載の言語だと思い
苦痛を感じているのですが
Web開発が根本的にもっと簡単に楽になる事は
近い将来ありえますでしょうか。
ブラウザ自体とDOM操作が
JavaScriptでしか実行できない事は
永遠に続くのでしょうか。
275デフォルトの名無しさん
2023/11/11(土) 15:40:50.74ID:GVZLIDCW あなたの信仰しだいです。
276デフォルトの名無しさん
2023/11/18(土) 08:35:06.80ID:CqCGVMdq >>274
WebAssembly
WebAssembly
277デフォルトの名無しさん
2023/11/18(土) 23:58:12.41ID:4VZDo/pg strictNullChecksを有効にするとこのコードがエラーになる
const foo: { bar: string } | null = { bar: 'bar' };
if (false) if (foo !== null) console.log(foo.bar); // error TS18047: 'foo' is possibly 'null'.
falseを!trueに変えるとエラーにならない
if (!true) if (foo !== null) console.log(foo.bar);
どういうこっちゃ
const foo: { bar: string } | null = { bar: 'bar' };
if (false) if (foo !== null) console.log(foo.bar); // error TS18047: 'foo' is possibly 'null'.
falseを!trueに変えるとエラーにならない
if (!true) if (foo !== null) console.log(foo.bar);
どういうこっちゃ
278デフォルトの名無しさん
2023/11/19(日) 01:01:24.80ID:6eSmn67d >>0277 以前から未解決の課題です
ttps://github.com/microsoft/TypeScript/issues/26914
ttps://github.com/microsoft/TypeScript/issues/26914
279デフォルトの名無しさん
2023/11/19(日) 01:58:05.77ID:b+haLRoI >>278
ほんとだ・・・到達できないコードでは文脈を無視してタイプチェックするのか・・・
const foo: string | null = 'foo';
// return;
// throw new Error();
console.log(foo.charAt(0)); // error TS18047: 'foo' is possibly 'null'.
returnかthrowのコメントを外すとエラーになる
if (foo !== null)を追加してもエラーは回避できない
ほんとだ・・・到達できないコードでは文脈を無視してタイプチェックするのか・・・
const foo: string | null = 'foo';
// return;
// throw new Error();
console.log(foo.charAt(0)); // error TS18047: 'foo' is possibly 'null'.
returnかthrowのコメントを外すとエラーになる
if (foo !== null)を追加してもエラーは回避できない
280デフォルトの名無しさん
2023/11/19(日) 11:55:13.54ID:dTiD0l2A 興味深い挙動だね
https://i.imgur.com/ZxUFyxD.png
そもそも到達不能コードがあること自体が問題なわけでこれがエラーになっても実害はないだろうけど
returnやthrowを仮置きしたいときにエラーを出したくないなら
if (!!true) return;
if (!!true) throw new Error();
とかするのがいいのかねぇ
https://i.imgur.com/ZxUFyxD.png
そもそも到達不能コードがあること自体が問題なわけでこれがエラーになっても実害はないだろうけど
returnやthrowを仮置きしたいときにエラーを出したくないなら
if (!!true) return;
if (!!true) throw new Error();
とかするのがいいのかねぇ
281デフォルトの名無しさん
2023/12/25(月) 19:47:27.10ID:/uFZ/UI7 最近はフレームワークが全部準備してくれるから書き心地の良さだけを享受できてたけど
久々に自分でゼロから環境作ろうとすると設定の混沌っぷりに絶望するな
たぶんハローワールドするまでの作業が一番苦しいのはTypeScriptだと思う
久々に自分でゼロから環境作ろうとすると設定の混沌っぷりに絶望するな
たぶんハローワールドするまでの作業が一番苦しいのはTypeScriptだと思う
282デフォルトの名無しさん
2023/12/26(火) 14:57:07.76ID:RK9O+rKP javascript に変換してくれる
javascript をベースとしない言語を作ってくれればいいのに
何で Typescript はjavascript のだめな部分を採用するかなあ
javascript をベースとしない言語を作ってくれればいいのに
何で Typescript はjavascript のだめな部分を採用するかなあ
283デフォルトの名無しさん
2023/12/26(火) 16:19:36.04ID:mqBTqnav Dart「」
284デフォルトの名無しさん
2023/12/26(火) 17:24:43.39ID:iPMho+OF285デフォルトの名無しさん
2023/12/27(水) 16:09:42.74ID:tr4LC1TL VSCode, node.js, webpack, babel で、TypeScript も出来る
Ruby on Rails 7 から、CDN から直接インポートするように変わった。
脱webpack/node.js で、esbuild へ変わった
Ruby on Rails 7 から、CDN から直接インポートするように変わった。
脱webpack/node.js で、esbuild へ変わった
286デフォルトの名無しさん
2023/12/29(金) 20:15:59.53ID:zmYXdzDO Nodeのサポート3年って期間自体は普通なんだが、JSのまま使うことって無くなってるから実質TS関連が安定するまでは捨て期間なんだよな
安定版で作り始めてリリースする頃にはもう期限切れ間近ってことが多くて体感のサポート期間がめっちゃ短く感じる
安定版で作り始めてリリースする頃にはもう期限切れ間近ってことが多くて体感のサポート期間がめっちゃ短く感じる
287デフォルトの名無しさん
2023/12/29(金) 20:35:12.47ID:ZQd4jDMZ TS関連が安定するまでってなんのこと?
288デフォルトの名無しさん
2024/01/03(水) 11:12:40.45ID:ePkoaEgV289デフォルトの名無しさん
2024/03/17(日) 02:05:57.85ID:SEDAzzjE TSがネイティブで動くブラウザを
MSは試験的に開発提供したら良いと思う。
TS-Edgeとかの名前で。
CDNから<script src="hoge.ts">を
読み込むだけで動く仕様。
MSは試験的に開発提供したら良いと思う。
TS-Edgeとかの名前で。
CDNから<script src="hoge.ts">を
読み込むだけで動く仕様。
290デフォルトの名無しさん
2024/03/17(日) 10:14:57.42ID:M30p/Xa2 あんまり意味ない気がするな。
開発時のTAT改善なら今プロポーザル出してるType Annoatationsでも十分だろうし。
開発時のTAT改善なら今プロポーザル出してるType Annoatationsでも十分だろうし。
291デフォルトの名無しさん
2024/03/27(水) 17:56:25.12ID:KuRRRRWB 型引数Tがnullを取るかどうかを判定する関数
function isNullable<T>(): boolean
みたいなのを作ろうとあれこれ調べてたけど
よく考えたら実行時に型情報持たないから無理な話よね
別のアプローチを考えねば
function isNullable<T>(): boolean
みたいなのを作ろうとあれこれ調べてたけど
よく考えたら実行時に型情報持たないから無理な話よね
別のアプローチを考えねば
292デフォルトの名無しさん
2024/06/21(金) 21:41:16.33ID:jcLAnU46 >>252
イマイチピンとこない、参考までに教えてほしい
イマイチピンとこない、参考までに教えてほしい
293デフォルトの名無しさん
2024/06/27(木) 12:10:53.54ID:5uVBistr >>292
ある式の型を変更したときの要修正箇所を洗い出す方法は、一般には
1. 代入によって生じる依存関係のツリーを作る
2. ツリーの中で修正の必要な箇所を特定する
となるだろう
で1については251の言ってるように静的型であれば最適解析によって高い精度で比較的容易に作成可能だ。
2は静的型なら型の不整合によるエラーは検出できるから、完全ではないにしろ作業は多少楽にはなるだろうな。
ある式の型を変更したときの要修正箇所を洗い出す方法は、一般には
1. 代入によって生じる依存関係のツリーを作る
2. ツリーの中で修正の必要な箇所を特定する
となるだろう
で1については251の言ってるように静的型であれば最適解析によって高い精度で比較的容易に作成可能だ。
2は静的型なら型の不整合によるエラーは検出できるから、完全ではないにしろ作業は多少楽にはなるだろうな。
294デフォルトの名無しさん
2025/03/12(水) 23:21:23.37ID:lbLxbJz3 マイクロソフト、プログラミング言語「TypeScript」の処理を10倍高速にすることに成功 [478973293]
https://hayabusa9.5ch.net/test/read.cgi/news/1741787027/
https://hayabusa9.5ch.net/test/read.cgi/news/1741787027/
295デフォルトの名無しさん
2025/03/12(水) 23:29:30.94ID:N9vVltw1296デフォルトの名無しさん
2025/03/13(木) 00:40:12.20ID:LjFU/87D Bun使おう
使ってる?みんな
使ってる?みんな
297デフォルトの名無しさん
2025/03/13(木) 00:59:18.10ID:CUgSs/sX なに?bunて
298デフォルトの名無しさん
2025/03/13(木) 01:38:08.11ID:xe4EtGLf goはwasm化したときに遅いらしいから不安
早くなる余地はあるのかな
↓は簡単なコードをブラウザで解析した例らしい
https://x.com/sanxiaozhizi/status/1899628334516175236
早くなる余地はあるのかな
↓は簡単なコードをブラウザで解析した例らしい
https://x.com/sanxiaozhizi/status/1899628334516175236
299デフォルトの名無しさん
2025/03/13(木) 08:34:30.29ID:2MhJpLS0 >>297
node.jsの代わりになるようなやつ
TypeScriptをJavaScriptに変換せずそのまま実行できる
あとnpm, jest, webpackなんかと同じ機能もBunに統合されてるので、Bunだけ入れればjestとかのほかのパッケージをインストールしなくてよい
高速性がウリ(Node.jsの何倍も速い)、らしい
難点としては2022年に生まれたばかりだからまだ安定性とか将来性が不安
リファレンスがまだまだ少ない
サードパーティパッケージは基本npmと同じものをインストールできるが動かないものもある、
などなど
気になってはいるけど業務で使うのはまだちょっと怖い
node.jsの代わりになるようなやつ
TypeScriptをJavaScriptに変換せずそのまま実行できる
あとnpm, jest, webpackなんかと同じ機能もBunに統合されてるので、Bunだけ入れればjestとかのほかのパッケージをインストールしなくてよい
高速性がウリ(Node.jsの何倍も速い)、らしい
難点としては2022年に生まれたばかりだからまだ安定性とか将来性が不安
リファレンスがまだまだ少ない
サードパーティパッケージは基本npmと同じものをインストールできるが動かないものもある、
などなど
気になってはいるけど業務で使うのはまだちょっと怖い
300デフォルトの名無しさん
2025/03/13(木) 09:04:37.99ID:Enlq0ene なるほど、ありがとう
JavaScriptに変換しなくて良いのは動作が速そうだな
JavaScriptに変換しなくて良いのは動作が速そうだな
301デフォルトの名無しさん
2025/03/13(木) 09:12:41.76ID:2MhJpLS0 >>300
そもそもトランスパイルが不要なことに加えて、低レベル言語で開発してるから動作そのものも速いらしい
そもそもトランスパイルが不要なことに加えて、低レベル言語で開発してるから動作そのものも速いらしい
302デフォルトの名無しさん
2025/03/13(木) 09:28:47.05ID:Bo1xz4jl 1.0になってからはbun使ってるな
303デフォルトの名無しさん
2025/03/13(木) 15:54:43.29ID:0keTTKkD ブン? バン?
304デフォルトの名無しさん
2025/03/13(木) 17:48:17.33ID:019dloE9 公式の動画でバンって言ってる
305デフォルトの名無しさん
2025/03/16(日) 11:33:35.29ID:zbV3pmg2 TypeScriptの動的バリデーション何使ってる?
ずっとzod使ってたけどTypiaとかArkTypeとか良さそうなのがたくさんあることに気づいた
とにかくどれもzodよりずっと速そう
ただしネット上に情報が少ない
ずっとzod使ってたけどTypiaとかArkTypeとか良さそうなのがたくさんあることに気づいた
とにかくどれもzodよりずっと速そう
ただしネット上に情報が少ない
306デフォルトの名無しさん
2025/03/16(日) 20:28:49.17ID:zbV3pmg2 というわけでArkTypeを使ってみた
いいやんこれ
俺zodよりこっちがいい
いいやんこれ
俺zodよりこっちがいい
307デフォルトの名無しさん
2025/03/17(月) 10:22:00.72ID:metFAlC+ >>303
プリンバンバンボン
プリンバンバンボン
308デフォルトの名無しさん
2025/03/27(木) 07:47:43.49ID:VnpFG1+5 なぜ世界中でトップクラスに使われているTypeScriptのスレがこんなに過疎なのか?
309デフォルトの名無しさん
2025/03/27(木) 07:54:51.37ID:wMNBaOOX わからん
小ネタとか知りたいけど
小ネタとか知りたいけど
310デフォルトの名無しさん
2025/03/27(木) 12:48:15.21ID:Wq6Gp3QQ >>308
おっさんはTypeScriptを使っていないということだよ
おっさんはTypeScriptを使っていないということだよ
311デフォルトの名無しさん
2025/03/27(木) 13:51:00.07ID:OnnNAMTi TypeScriptをつかって若さを取り戻そう
312デフォルトの名無しさん
2025/03/28(金) 10:36:36.14ID:QC30vvne おっさんはJavaとかCOBOLとかCばっかりだからな
TypeScriptとかGoとかRustとか使っただけで、おっさんからアレコレ言われるだろ?
最近Linux Kernel Mailing Listでも、某ドライバでRustを使っただけで、main streamを汚すなとか、言われて拒否されとったやんw
TypeScriptとかGoとかRustとか使っただけで、おっさんからアレコレ言われるだろ?
最近Linux Kernel Mailing Listでも、某ドライバでRustを使っただけで、main streamを汚すなとか、言われて拒否されとったやんw
313デフォルトの名無しさん
2025/03/28(金) 10:39:51.79ID:ROpuYVHs TypeScriptをGoやRustと同列に語るなよw
あれだけは無いわ
あれだけは無いわ
314デフォルトの名無しさん
2025/03/28(金) 14:31:04.68ID:vLxVDob4 ドライバでRustを使う事が何故問題か理解出来ないZが使う言語がTypeScript
315デフォルトの名無しさん
2025/03/28(金) 14:57:23.31ID:W4IssX7d Nvidia Driver Written in Rust Could Arrive With Linux Kernel 6.15
https://news.itsfoss.com/nova-gpu-driver-linux/
https://news.itsfoss.com/nova-gpu-driver-linux/
316デフォルトの名無しさん
2025/03/28(金) 21:53:46.54ID:e6/uDocq TypeScript使ってるけどJavaScriptにトランスパイルするのがめんどくさすぎる
tsconfigのわけわからんこと
tsconfigのわけわからんこと
317デフォルトの名無しさん
2025/03/29(土) 17:35:18.54ID:+k4uOHnG たしかにtsconfigだけで連載記事が成立しそう
318デフォルトの名無しさん
2025/03/29(土) 17:40:47.83ID:nYAgMeja いさぎよく中間コードを吐き出せよ
なに中途半端にJavaスクリプトコード出してんだよw
なに中途半端にJavaスクリプトコード出してんだよw
319デフォルトの名無しさん
2025/03/29(土) 17:57:42.05ID:HoTjqjFP tsconfigみたいな設定はaiにまかせてるな
320デフォルトの名無しさん
2025/03/30(日) 10:03:12.64ID:AAHTAcw+ >>315
知らんが、ググッた感じではこれだろ
https://zenn.dev/aliomer/articles/da8f2f082516aa
ちな、nouveauなんてゴミ使ってるのは一部の狂信者だけで、普通の人は普通にプロプライエタリ使うでしょ
知らんが、ググッた感じではこれだろ
https://zenn.dev/aliomer/articles/da8f2f082516aa
ちな、nouveauなんてゴミ使ってるのは一部の狂信者だけで、普通の人は普通にプロプライエタリ使うでしょ
321デフォルトの名無しさん
2025/03/30(日) 10:50:20.73ID:o7oc034V Linuxの親分がついに公式介入してRust化が前進することになったのか
>>320
>Linusはさらに、HellwigおよびRustに敵意を持つ他の古参メンテナーに明確な選択肢を示しました。
>この発言は近年のRustとLinuxの衝突に決着をつけました。
>C言語を守る保守派とRustを推進する革新派の間には数多くの対立が存在してきましたが、
>LinusがRust for Linuxプロジェクトを直接支持するために初めて公式に介入した重要な転換点でもありました。
>>320
>Linusはさらに、HellwigおよびRustに敵意を持つ他の古参メンテナーに明確な選択肢を示しました。
>この発言は近年のRustとLinuxの衝突に決着をつけました。
>C言語を守る保守派とRustを推進する革新派の間には数多くの対立が存在してきましたが、
>LinusがRust for Linuxプロジェクトを直接支持するために初めて公式に介入した重要な転換点でもありました。
322デフォルトの名無しさん
2025/03/30(日) 11:54:04.05ID:AAHTAcw+ >>321
そう思えるのはお前も信者だからだろ
結局のところRust信者はポリコレ過ぎる
これも「政治的に」Linusにチクって解決しようとしたところ、ブチ切れられただけ
記事の話が全部本当だとして総合的に推定すると、
Rustから叩く為のラッパ的な物を用意しようとしたところ政治闘争となり、両者辞任の痛み分け、
カーネル自体のコードには今後ともRustは無し、という所ではないかと
これは「支持」ではなく「容認」だろうよ
ただまあ、何でそんな物が『カーネル側に』必要なのか技術的に疑問ではあるがな
RustからCのAPIを叩けないなんて事はあり得ないだろうし、仮にそうだとしても、API変換をRust側でやればよかっただけの話
俺はHellwigの方が正しいと思う。まあLinus案も落とし所としてはありなだろうけど
(というかLinusはこの辺が断然上手い)
Rust信者は、技術的理由ではなく、非Rust話者を排除する為にRustを使う
TypeScriptにも似たような奴はいると思うけど
そう思えるのはお前も信者だからだろ
結局のところRust信者はポリコレ過ぎる
これも「政治的に」Linusにチクって解決しようとしたところ、ブチ切れられただけ
記事の話が全部本当だとして総合的に推定すると、
Rustから叩く為のラッパ的な物を用意しようとしたところ政治闘争となり、両者辞任の痛み分け、
カーネル自体のコードには今後ともRustは無し、という所ではないかと
これは「支持」ではなく「容認」だろうよ
ただまあ、何でそんな物が『カーネル側に』必要なのか技術的に疑問ではあるがな
RustからCのAPIを叩けないなんて事はあり得ないだろうし、仮にそうだとしても、API変換をRust側でやればよかっただけの話
俺はHellwigの方が正しいと思う。まあLinus案も落とし所としてはありなだろうけど
(というかLinusはこの辺が断然上手い)
Rust信者は、技術的理由ではなく、非Rust話者を排除する為にRustを使う
TypeScriptにも似たような奴はいると思うけど
323デフォルトの名無しさん
2025/03/30(日) 12:02:36.30ID:o7oc034V >>322
その記事にも書かれてるように、
LinusがRustを支持したため、
Rust反対派のHellwigが敗北して担当を降りて、
Rust APIがLinuxに採り入れたみたいよ
まるでJavaScriptにおいてTypeScript反対派が敗北して、
次々とTypeScriptが採り入れられいってメインストリームとなった状況を彷彿とさせますね
その記事にも書かれてるように、
LinusがRustを支持したため、
Rust反対派のHellwigが敗北して担当を降りて、
Rust APIがLinuxに採り入れたみたいよ
まるでJavaScriptにおいてTypeScript反対派が敗北して、
次々とTypeScriptが採り入れられいってメインストリームとなった状況を彷彿とさせますね
324デフォルトの名無しさん
2025/03/30(日) 12:36:22.04ID:6QsLEZYT 話題をギリギリTypeScriptに絡めてて草
325デフォルトの名無しさん
2025/03/30(日) 13:12:43.62ID:YPXHQVpO TypeScriptには信頼性をアピールすることでPHPとRubyという2大動的型糞を抹殺しJSファミリーをフルスタックWeb開発言語の頂点にまで押し上げた、
更にはVSCodeで実績を示しクロスプラットフォームデスクトップアプリ分野でも覇権を取ったという実績があるから非難のしようがない
全方位の既存勢力にマウントし散らかしてるRustさんと一緒にしてはいけない
更にはVSCodeで実績を示しクロスプラットフォームデスクトップアプリ分野でも覇権を取ったという実績があるから非難のしようがない
全方位の既存勢力にマウントし散らかしてるRustさんと一緒にしてはいけない
326デフォルトの名無しさん
2025/03/30(日) 13:56:11.13ID:ojeUSEcc 中身なんかどうでもいいから手早くアプリ出来上がってくれってな勢力が大多数なんだよなぁ
327デフォルトの名無しさん
2025/03/30(日) 14:30:47.12ID:qEaF/m8D サーバーサイドはJavaScriptやPythonのライブラリをC/C++でなく楽なRustで書くケースが増えてるね
フロントエンドもWebAssemblyをRustで書くのが主流になった
フロントエンドもWebAssemblyをRustで書くのが主流になった
328デフォルトの名無しさん
2025/03/30(日) 15:23:36.04ID:6QsLEZYT ウェブアセンブリ勉強したい
329デフォルトの名無しさん
2025/03/30(日) 17:19:46.06ID:rZjaYrSr Rustはバックエンドでも一番速いからTypeScriptとRustの二つを覚えればWeb関連は最強
330デフォルトの名無しさん
2025/03/30(日) 22:51:31.77ID:9PyrXN+K331デフォルトの名無しさん
2025/04/02(水) 00:12:34.04ID:HkPN/s9G ほえー…もうフロントはwasmが主流になってたのか…
332デフォルトの名無しさん
2025/04/11(金) 18:51:02.99ID:l2FGlZWH tsconfigのmoduleとmoduleResolution、いつか綺麗になることはあるのか?
ていうかもう全部ESMでよくないか?
ていうかもう全部ESMでよくないか?
333デフォルトの名無しさん
2025/04/12(土) 14:51:21.70ID:n5PHQIzU よくない。
まだ "bundler" は必要。
まだ "bundler" は必要。
334デフォルトの名無しさん
2025/04/12(土) 16:59:28.80ID:g4WgMVTt335デフォルトの名無しさん
2025/04/12(土) 20:23:17.33ID:Mda8ZghK >>334
UIはTypeScript、複雑なロジックだけRustやね
UIはTypeScript、複雑なロジックだけRustやね
336デフォルトの名無しさん
2025/04/12(土) 20:50:15.66ID:g4WgMVTt337デフォルトの名無しさん
2025/04/12(土) 21:16:27.29ID:jUACPL71 サイズがデカくなるScalaを使うメリットが全くわからない
Wasm by Rustはメリットがはっきりしているけど
Wasm by Rustはメリットがはっきりしているけど
338デフォルトの名無しさん
2025/04/12(土) 21:30:23.80ID:Mda8ZghK >>336
はいおっしゃるとおりです
はいおっしゃるとおりです
339デフォルトの名無しさん
2025/04/12(土) 22:35:51.54ID:g4WgMVTt >>337
すまんサーバーサイドの話
Scalaも最近はそんな人気はないし微妙ではあるけど
Rustはパフォーマンスが必要な分野ならとても有力な選択肢だけど、そういう要求が無いのであれば素直にGCのある言語を使った方が無難だろうというのが自分の意見
Rustの関数型っぽい部分 (型による表現力の高さ) は強みではあるけど、あくまで副次的なもので、それ目的にRustを採用すると書き辛さの方が目立つと思う
今どきだとメモリ管理が必要な言語を経験してない開発者もそれなりにいるし、所有権やライフタイムまわりで苦戦すると思う
すまんサーバーサイドの話
Scalaも最近はそんな人気はないし微妙ではあるけど
Rustはパフォーマンスが必要な分野ならとても有力な選択肢だけど、そういう要求が無いのであれば素直にGCのある言語を使った方が無難だろうというのが自分の意見
Rustの関数型っぽい部分 (型による表現力の高さ) は強みではあるけど、あくまで副次的なもので、それ目的にRustを採用すると書き辛さの方が目立つと思う
今どきだとメモリ管理が必要な言語を経験してない開発者もそれなりにいるし、所有権やライフタイムまわりで苦戦すると思う
340デフォルトの名無しさん
2025/04/12(土) 23:27:20.11ID:bJFScwv+341デフォルトの名無しさん
2025/04/13(日) 07:29:44.21ID:LPI6BP0W342デフォルトの名無しさん
2025/04/13(日) 07:36:00.46ID:syTgtXXB >>341
C/C++は未だに問題出まくってセキュリティ脆弱性にも繋がっている
そのため様々なものが次々とRust化へ進んでいる
ここ5chが使っているCDN CloudflareもRust製へと置き換わった
C/C++は未だに問題出まくってセキュリティ脆弱性にも繋がっている
そのため様々なものが次々とRust化へ進んでいる
ここ5chが使っているCDN CloudflareもRust製へと置き換わった
343デフォルトの名無しさん
2025/04/13(日) 07:46:48.45ID:0DTk848I344デフォルトの名無しさん
2025/04/13(日) 08:05:12.79ID:LPI6BP0W345デフォルトの名無しさん
2025/04/13(日) 08:21:04.68ID:LPI6BP0W というかね、Rust信者は一神教であり、
Rust=全知全能の神であり、それ以外の神の存在を『一切認めない』、なんだな
だから多神教な俺からしたら馬鹿げてて、どうやっても平行線だし、時間の無駄でしかない
なんでRust信者がそうなるのかはよく分からんが
Rust=全知全能の神であり、それ以外の神の存在を『一切認めない』、なんだな
だから多神教な俺からしたら馬鹿げてて、どうやっても平行線だし、時間の無駄でしかない
なんでRust信者がそうなるのかはよく分からんが
346デフォルトの名無しさん
2025/04/13(日) 09:29:16.46ID:c6Sg9WHG ガイジが多すぎる
347デフォルトの名無しさん
2025/04/13(日) 10:09:09.85ID:9+E6vnhP 外字鹿以内
348デフォルトの名無しさん
2025/04/13(日) 10:19:03.37ID:9+E6vnhP349デフォルトの名無しさん
2025/04/13(日) 10:20:06.61ID:9+E6vnhP >>342
その割にfirefoxはいまだに糞のまま
その割にfirefoxはいまだに糞のまま
350デフォルトの名無しさん
2025/04/13(日) 12:19:34.58ID:WdQRlxpc なんか、とんでもなく盛り上がっていて、ワロタw
みんな、くすぶっているんやなー
個人的には、RustよりもPHPのほうがさっさと滅んでほしいわw
みんな、くすぶっているんやなー
個人的には、RustよりもPHPのほうがさっさと滅んでほしいわw
351デフォルトの名無しさん
2025/04/13(日) 15:23:04.70ID:LPI6BP0W PHPは滅ばないよ、だってあれ便利だし
ほぼ静的+一部動的なサイトを作るときに、PHP以上の物がない
ぶっちぎりの糞言語だったが、何だかんだで改善してきてるし
(というか、プログラミング言語として捉えるから不満なのであって、Apache上で動くDSLだと考えれば凄く納得出来るし素晴らしく有用)
そういえばJSも滅べ滅べと言われていたけど、言ってる奴等が滅んだな
TSもある意味AltJSで滅べ勢だったが、何となく背乗りしてる感がある
ほぼ静的+一部動的なサイトを作るときに、PHP以上の物がない
ぶっちぎりの糞言語だったが、何だかんだで改善してきてるし
(というか、プログラミング言語として捉えるから不満なのであって、Apache上で動くDSLだと考えれば凄く納得出来るし素晴らしく有用)
そういえばJSも滅べ滅べと言われていたけど、言ってる奴等が滅んだな
TSもある意味AltJSで滅べ勢だったが、何となく背乗りしてる感がある
352デフォルトの名無しさん
2025/04/13(日) 22:02:26.52ID:lSZBXHbs353デフォルトの名無しさん
2025/04/13(日) 22:05:07.20ID:yatJIxqY 盛り上がっていると思ったらTypeScriptの話題じゃなかった悲しみ
354デフォルトの名無しさん
2025/04/14(月) 18:14:36.17ID:A8vTDgQe355デフォルトの名無しさん
2025/04/14(月) 20:45:54.18ID:30cdfZPh >>354
PHPは非プログラマ、というかデザイナでも行ける簡単さだからな
そして広報が主な目的のサイト、つまりデザイナの方が主役な状況では最有力な選択肢になる
問題は動作速度と、ユーザー間が完全に分離してる事だが、(この為、例えばチャットサイトとかはPHPではかなり無理)
逆に言えばこれが問題にならない局面では今後とも使われ続けるだろうし、
そもそもPHPを殺しにかかってる言語がない
Rust信者の凶暴性は、世界を一時的にであれ統一したCを殺しにかかってる事にある
TypeScript等その他の言語は、そもそもCの領域を侵そうとしてないから、最初から最低限二人の神=C/C++と自言語は認めてる
ここら辺が根本的に違う
ただRustはプログラミング言語としては筋が悪い
ただしCでは往年の先輩層が厚すぎて絶対にイキれないので、
・とにかくイキりたい若年層
には刺さる
また、昨今のOSSで開発する際、伽藍とバザールの通り、どうしても「コミットを受け入れるかrejectするか?」という問題が回避出来ず、
従来型(伽藍的アプローチ)の場合は「内容を見て判断する」わけだが、これはどうしてもある程度主観的に見えてしまう
単純に言えば、rejectされたコミッタは絶対に納得しない
この点、Rustは少なくともメモリリークに関してはコンパイルが通ればわりと大丈夫らしいので、
・コミットは基本的に全部受け入れる(=コンパイルが通ればおk)
という基準で管理する作戦であれば、昨今のOSSの状況とは合致する
(Cでこれをやるとまともに動くかどうかすら怪しいが、Rustなら少なくともある程度は行ける)
だからこの作戦でイキりたい馬鹿共の承認欲求を糧にしてガンガン進行すれば現在の情勢には向いてる
ただ、Rustの連中がこれをやってるとは思えないし、
α世代にとっては、今Rustでイキり倒してる馬鹿共は邪魔なだけなので、多分また新しい言語が出てきてそいつらはそっちに飛びつく
だからあと10年で化けられなければRustはこのまま死ぬと思ってるし、俺はこれを望んでる
PHPは非プログラマ、というかデザイナでも行ける簡単さだからな
そして広報が主な目的のサイト、つまりデザイナの方が主役な状況では最有力な選択肢になる
問題は動作速度と、ユーザー間が完全に分離してる事だが、(この為、例えばチャットサイトとかはPHPではかなり無理)
逆に言えばこれが問題にならない局面では今後とも使われ続けるだろうし、
そもそもPHPを殺しにかかってる言語がない
Rust信者の凶暴性は、世界を一時的にであれ統一したCを殺しにかかってる事にある
TypeScript等その他の言語は、そもそもCの領域を侵そうとしてないから、最初から最低限二人の神=C/C++と自言語は認めてる
ここら辺が根本的に違う
ただRustはプログラミング言語としては筋が悪い
ただしCでは往年の先輩層が厚すぎて絶対にイキれないので、
・とにかくイキりたい若年層
には刺さる
また、昨今のOSSで開発する際、伽藍とバザールの通り、どうしても「コミットを受け入れるかrejectするか?」という問題が回避出来ず、
従来型(伽藍的アプローチ)の場合は「内容を見て判断する」わけだが、これはどうしてもある程度主観的に見えてしまう
単純に言えば、rejectされたコミッタは絶対に納得しない
この点、Rustは少なくともメモリリークに関してはコンパイルが通ればわりと大丈夫らしいので、
・コミットは基本的に全部受け入れる(=コンパイルが通ればおk)
という基準で管理する作戦であれば、昨今のOSSの状況とは合致する
(Cでこれをやるとまともに動くかどうかすら怪しいが、Rustなら少なくともある程度は行ける)
だからこの作戦でイキりたい馬鹿共の承認欲求を糧にしてガンガン進行すれば現在の情勢には向いてる
ただ、Rustの連中がこれをやってるとは思えないし、
α世代にとっては、今Rustでイキり倒してる馬鹿共は邪魔なだけなので、多分また新しい言語が出てきてそいつらはそっちに飛びつく
だからあと10年で化けられなければRustはこのまま死ぬと思ってるし、俺はこれを望んでる
356デフォルトの名無しさん
2025/04/14(月) 20:57:42.36ID:XXK1Cezl >>355
今月もWindowsからChromeに至るまで大量のセキュリティ脆弱性アナウンスが出た現実を見よう
C/C++は完全に詰んでる
もちろんWindowsもChromeも少しずつRustに置き換えていってる
コードが巨大だから置き換えに時間はかかるがこの流れが止まることはない
今月もWindowsからChromeに至るまで大量のセキュリティ脆弱性アナウンスが出た現実を見よう
C/C++は完全に詰んでる
もちろんWindowsもChromeも少しずつRustに置き換えていってる
コードが巨大だから置き換えに時間はかかるがこの流れが止まることはない
357デフォルトの名無しさん
2025/04/14(月) 20:59:14.42ID:T8syP9+g >>353
ほんまそれな
ほんまそれな
358デフォルトの名無しさん
2025/04/14(月) 21:01:37.23ID:T8syP9+g ちょっと話題振るけどフロントエンドのフレームワークといえば今はReact?
Vueはもう死に体?
Vueはもう死に体?
359デフォルトの名無しさん
2025/04/15(火) 00:19:13.44ID:ZxPidxgq 現状はReactが一番強い
Vueも死んではいないけど、他の選択肢 (SvelteとかSolidとか) も出てきてて埋もれがち
例えば今からフロントを学ぼうという人がどれか一つを最初に始めるなら、おそらくReactが選択肢としては一番良いと思う
Vueも死んではいないけど、他の選択肢 (SvelteとかSolidとか) も出てきてて埋もれがち
例えば今からフロントを学ぼうという人がどれか一つを最初に始めるなら、おそらくReactが選択肢としては一番良いと思う
360デフォルトの名無しさん
2025/04/15(火) 22:08:26.65ID:aWATTljU Effective TypeScript 第2版出たよ
買ったよ
買ったよ
361デフォルトの名無しさん
2025/04/16(水) 10:15:10.36ID:vgaVJXOy こんなスクリプト言語スクリプトなんか使える奴はあたまおかしいよな
362デフォルトの名無しさん
2025/04/17(木) 10:27:18.15ID:dDLPZMHA 褒められた?
363デフォルトの名無しさん
2025/04/17(木) 14:54:48.83ID:fw0OLUjq 蛇腹御用達言語
364デフォルトの名無しさん
2025/04/17(木) 16:00:08.01ID:szbpCwWd 【AI】OpenAIが「GPT 4.1」のAPIを公開、100万トークン対応と実用性能で飛躍的進化を遂げた次世代AIモデル [すらいむ★]
http://egg.5ch.net/test/read.cgi/scienceplus/1744724723/
上記のリンク先のコメントを読んでもまだ医者の威厳を保てるのか?
http://egg.5ch.net/test/read.cgi/scienceplus/1744724723/
上記のリンク先のコメントを読んでもまだ医者の威厳を保てるのか?
365デフォルトの名無しさん
2025/04/17(木) 19:42:09.87ID:p4ijuII3 エキスパートシステム取り入れて無い医者とかいまどきまだ居るの?
366デフォルトの名無しさん
2025/04/18(金) 12:33:39.43ID:LTc7knjt マルチンコにレスする香具師は荒らし
367デフォルトの名無しさん
2025/04/19(土) 04:04:51.48ID:FhCqpqMY 【2025年最新】自然な声の音声読み上げソフト5選!AI技術で ...
https://ondoku3.com/ja/post/natural-voice-software/
※無料で5000文字まで音声合成エンジンで読み上げ可能
※音声合成エンジンは人間の声のサンプルから声質が作成されている
「Grok」が過去の会話を覚え続けるようになった--ChatGPTに追従 オフにする方法は?
2025年04月18日 05時20
http://japan.cnet.com/article/35231959/
>>「ChatGPT」やGoogleの「Gemini」も同様の記憶機能を導入している。これらのサービスも、長期的な会話履歴を保持し、ユーザーに合わせた回答が可能となっている。
※GrokはChatGPTで規制されていることも返答するようになっている
統合失調症の幻聴で半分人間半分AIと申されていた
統合失調症の幻聴で宇宙人とも話されていたのでかなり昔からできていたと思われる
※対象者【統合失調症】の考えに対しては何を考えているかは対象者【統合失調症】に聞いてみないことには意味不明⒮
https://ondoku3.com/ja/post/natural-voice-software/
※無料で5000文字まで音声合成エンジンで読み上げ可能
※音声合成エンジンは人間の声のサンプルから声質が作成されている
「Grok」が過去の会話を覚え続けるようになった--ChatGPTに追従 オフにする方法は?
2025年04月18日 05時20
http://japan.cnet.com/article/35231959/
>>「ChatGPT」やGoogleの「Gemini」も同様の記憶機能を導入している。これらのサービスも、長期的な会話履歴を保持し、ユーザーに合わせた回答が可能となっている。
※GrokはChatGPTで規制されていることも返答するようになっている
統合失調症の幻聴で半分人間半分AIと申されていた
統合失調症の幻聴で宇宙人とも話されていたのでかなり昔からできていたと思われる
※対象者【統合失調症】の考えに対しては何を考えているかは対象者【統合失調症】に聞いてみないことには意味不明⒮
368デフォルトの名無しさん
2025/04/23(水) 22:58:30.47ID:yb1dQj0Y Bunの速度検証をネットで見て回ってるけどNodeと大差なさそう
それなら枯れたNode使い続けるわな
それなら枯れたNode使い続けるわな
369デフォルトの名無しさん
2025/05/12(月) 19:47:42.38ID:Gvci02ow 誰も書き込まない
どうやら誰もTypeScriptを使っていないようだ
どうやら誰もTypeScriptを使っていないようだ
370デフォルトの名無しさん
2025/05/13(火) 01:17:03.69ID:fD5tVniT タイポなかったら開発できねーよ
371デフォルトの名無しさん
2025/05/14(水) 20:25:52.45ID:u4PNt/Ez TypeScriptを(C++等のように機械語に)コンパイルする方法が知りたいです(´・ω・)
372デフォルトの名無しさん
2025/05/14(水) 22:26:28.07ID:pn5vXw+e AIに聞いたらDenoってのがあるらしいよ
373デフォルトの名無しさん
2025/05/14(水) 22:39:15.13ID:uDIzjmjF Porffor
374デフォルトの名無しさん
2025/05/14(水) 22:59:23.58ID:Gm7aNQBc Porfforおもしろそうやね
でもまだJavaScriptやTypeScriptの全機能・構文に対応してるわけではないみたいやね
あとDeno compileはdenoの実行ファイルとJavaScriptソースコードをバンドルして1つの実行ファイルにしてるだけでソースコードが機械語にコンパイルされてるわけではないね
でもまだJavaScriptやTypeScriptの全機能・構文に対応してるわけではないみたいやね
あとDeno compileはdenoの実行ファイルとJavaScriptソースコードをバンドルして1つの実行ファイルにしてるだけでソースコードが機械語にコンパイルされてるわけではないね
375デフォルトの名無しさん
2025/05/26(月) 16:13:10.61ID:beau+2C5 若者はTSKaigiに参加、おっさんは5chにこもる
376デフォルトの名無しさん
2025/06/14(土) 21:27:12.36ID:/OxuSDvW tscでは cyclic structure が多用されてるらしいが、
・どういう場所に
・どういう理由で
使われてるか知ってたら教えてくれ
(コード読めはそのとおりだが、知ってたらよろしく)
経緯は Goスレ、https://mevius.5ch.net/test/read.cgi/tech/1747750228/6-20
記事は
マイクロソフト、TypeScriptのコンパイラなどをGo言語に移植することで10倍の処理速度に
https://www.publickey1.jp/blog/25/typescriptgo10.html
・どういう場所に
・どういう理由で
使われてるか知ってたら教えてくれ
(コード読めはそのとおりだが、知ってたらよろしく)
経緯は Goスレ、https://mevius.5ch.net/test/read.cgi/tech/1747750228/6-20
記事は
マイクロソフト、TypeScriptのコンパイラなどをGo言語に移植することで10倍の処理速度に
https://www.publickey1.jp/blog/25/typescriptgo10.html
377デフォルトの名無しさん
2025/06/21(土) 02:31:30.37ID:fTkaAoMm プロジェクト参照をしてみたがさっぱりうまくいかん
npx tsc -b
したら依存関係を無視して滅茶苦茶にビルドが走ってエラーになる
なんだこれは
npx tsc -b
したら依存関係を無視して滅茶苦茶にビルドが走ってエラーになる
なんだこれは
378デフォルトの名無しさん
2025/07/01(火) 08:26:48.69ID:qkwLQxOG それこそがTSだ
379デフォルトの名無しさん
2025/09/22(月) 01:48:13.57ID:2a2LIDRR Typescript +vscはデバッグにおいて、期待出来そうでしょうか?
380デフォルトの名無しさん
2025/09/22(月) 16:33:36.16ID:2a2LIDRR 出来そうか?😡
381デフォルトの名無しさん
2025/09/22(月) 19:07:22.16ID:kN+uxAzn たしかみてみろ
382デフォルトの名無しさん
2025/09/23(火) 10:49:14.04ID:kfXXj8OR そもそもvscって何
vscodeのこと?
vscodeのこと?
383デフォルトの名無しさん
2025/09/28(日) 02:11:58.04ID:+SooQtHs はい。
384デフォルトの名無しさん
2025/09/28(日) 04:46:06.98ID:AV0gncax 超便利だぞ
むしろVSCode使わずにTypeScript開発してるん?
むしろVSCode使わずにTypeScript開発してるん?
385デフォルトの名無しさん
2025/09/28(日) 11:12:01.81ID:fGFZDJ+t メモ帳でもいける
386デフォルトの名無しさん
2025/09/28(日) 11:16:06.14ID:jGr3+ySP vscodeをvscって略してるのあまり見かけないだけじゃね
387デフォルトの名無しさん
2025/09/28(日) 11:35:05.22ID:YMoT1Rl7 VSCodeユーザーならcodeで通じるだろう
388デフォルトの名無しさん
2025/09/28(日) 13:39:41.16ID:TLoLZNcS そうやってコマンドラインから呼ぶのね
389デフォルトの名無しさん
2025/09/28(日) 14:11:01.86ID:mD0LYq/x code .は大事
390デフォルトの名無しさん
2025/09/28(日) 21:57:38.17ID:7anYuvvf vscと言ったらVirtual Sound Canvasだよな
391デフォルトの名無しさん
2025/09/29(月) 12:24:04.30ID:XYCNrbhw うちの界隈ではvscで通じる
392デフォルトの名無しさん
2025/10/04(土) 18:37:20.23ID:mAmMjy+k こんな難しい言語を使いこなせるなんて、みんなすごいですね。😗
393デフォルトの名無しさん
2025/10/04(土) 22:41:18.61ID:mAmMjy+k TypeScript Native Previews
↑
これが成功したらすごいですね。😙
↑
これが成功したらすごいですね。😙
394デフォルトの名無しさん
2025/10/08(水) 14:28:39.27ID:XrXXkqZa395デフォルトの名無しさん
2025/10/11(土) 09:36:55.84ID:iIkobeie biomeに移行したら?
396デフォルトの名無しさん
2025/10/12(日) 12:24:38.62ID:ixk9NMGG テストはvitest、リンターはbiome使ってるけどそれでも時間かかるよなー
レスを投稿する
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【社会】40代以上のおじさん・おばさんは叩いてオッケーという風潮はなぜ加速したのか [七波羅探題★]
- 日本の場合、いつも凶悪な行動に移すのは極左なんだよね。右翼はほとんどなにもしない [201193242]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
