TypeScript part4 (376レス)
TypeScript part4 http://mevius.5ch.net/test/read.cgi/tech/1640872622/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [] 2021/12/30(木) 22:57:02.78 ID:XEA11GKy 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/ http://mevius.5ch.net/test/read.cgi/tech/1640872622/1
2: デフォルトの名無しさん [sage] 2021/12/30(木) 23:05:57.59 ID:18t9WvJQ 乙 http://mevius.5ch.net/test/read.cgi/tech/1640872622/2
3: デフォルトの名無しさん [sage] 2021/12/31(金) 00:30:19.49 ID:/NplslaL >>1 乙 http://mevius.5ch.net/test/read.cgi/tech/1640872622/3
4: デフォルトの名無しさん [sage] 2021/12/31(金) 10:54:08.06 ID:jCXckXJt 4.6でmjs対応は入るのかな? http://mevius.5ch.net/test/read.cgi/tech/1640872622/4
5: デフォルトの名無しさん [sage] 2022/01/16(日) 23:06:00.91 ID: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) => {} ); http://mevius.5ch.net/test/read.cgi/tech/1640872622/5
6: デフォルトの名無しさん [sage] 2022/02/01(火) 21:25:57.79 ID:RQFIXaIQ typescript作ったやつ何考えてんだ? tsconfigにpath alias書いた babel.configにも書かないと動きません webpack.condigにも書かないと動きません jest.configにも書かないとテストできません あのさぁ俺はビルドツール職人になりたいわけでも設定ファイル書きたいわけでもないんだよ どうにかしてくれよほんとこのクソッタレエコシステム http://mevius.5ch.net/test/read.cgi/tech/1640872622/6
7: デフォルトの名無しさん [sage] 2022/02/01(火) 23:58:06.60 ID:0JyqEM+P typescriptはただのtype check toolです babelはただのjavascript convert toolです webpackはただのjavascript concat toolです jestはただのtesting toolです 全部違うのです 吽孤javascriptを何とかマシにしたい4銃士を連れてきたよみたいなノリだからしゃーない http://mevius.5ch.net/test/read.cgi/tech/1640872622/7
8: デフォルトの名無しさん [sage] 2022/02/06(日) 13:50:02.45 ID:26fWvErU TS童貞案件がようやっと終わった。辛かった。もうやりたくない。有給とります。 @感想 ・reactの時だけ使えばおk! ・鯖では使うな!どうなっても知らんぞ! ・熟練の設定ファイル職人を必ず1人雇え!絶対にだ! http://mevius.5ch.net/test/read.cgi/tech/1640872622/8
9: デフォルトの名無しさん [sage] 2022/02/06(日) 14:01:40.08 ID:23zQCz2C LAMPとか言ってPHPやPerlでバックエンド作ってた狂気の時代よりは遙かにいいと思うけどなぁ http://mevius.5ch.net/test/read.cgi/tech/1640872622/9
10: デフォルトの名無しさん [sage] 2022/02/06(日) 14:21:47.42 ID:Fo3XpFx5 型バリデーションできない人には(TypeScriptは)難しい http://mevius.5ch.net/test/read.cgi/tech/1640872622/10
11: デフォルトの名無しさん [sage] 2022/02/06(日) 14:32:39.20 ID:grglIiaK 鯖サイドは外界とのIOが多いから型バリデーションが増えすぎるのが課題かな あとはPODの濫用が標準的なコーディングスタイルとして受け入れられてる点が問題だと感じた これじゃ型があってても不変条件を満たしているかまではわからん http://mevius.5ch.net/test/read.cgi/tech/1640872622/11
12: デフォルトの名無しさん [sage] 2022/02/06(日) 14:39:40.47 ID:Fo3XpFx5 いやPODで問題ないでしょReadonlyなりas const付ければいいじゃん http://mevius.5ch.net/test/read.cgi/tech/1640872622/12
13: デフォルトの名無しさん [sage] 2022/02/06(日) 14:43:17.15 ID:23zQCz2C PODってなんぞ? Plain Object Darkness? http://mevius.5ch.net/test/read.cgi/tech/1640872622/13
14: デフォルトの名無しさん [sage] 2022/02/06(日) 15:05:31.38 ID:Fo3XpFx5 型の話だしググった感じPlain Old Data型の事だと思って回答した。 プリミティブ及びプリミティブで構成されたオブジェクトからなるコンストラクタを持たないオブジェクト。ざっくり構造体みたいなオブジェクトって意味かなと。C++用語のようだ http://mevius.5ch.net/test/read.cgi/tech/1640872622/14
15: デフォルトの名無しさん [sage] 2022/02/06(日) 15:19:09.13 ID:23zQCz2C つまりPlatina Opal Diamond・・・ってコト!? http://mevius.5ch.net/test/read.cgi/tech/1640872622/15
16: デフォルトの名無しさん [sage] 2022/02/06(日) 15:33:19.89 ID:grglIiaK >>12 そも辺りはスケールによる ドメインが薄いならそれでなんとかなるかもしれない 実際の業務システムはどうしてもドメインが大きくなるからちゃんとクラス化しよう >>13 Plain Old Data プリミティブとPODの属性だけを持っている単純な型のこと 正確にはPODと呼ぶにはC言語とのデータ互換性が要る しかしこの文脈では緩いニュアンスで伝わると考えてPODと書いた http://mevius.5ch.net/test/read.cgi/tech/1640872622/16
17: デフォルトの名無しさん [sage] 2022/02/06(日) 15:46:19.86 ID:Fo3XpFx5 >>16 『ドメインが薄い』とか何用語だ。ググっても出てこないような独自なのじゃなくて、もうちょい一般的な用語使って? 色々組み合わせるにしてもTS単独で大きなものを組むにしても入り口から出口までimmutableならそれで問題ないと思うんだけど。 デザインパターンにこだわり過ぎてない? http://mevius.5ch.net/test/read.cgi/tech/1640872622/17
18: デフォルトの名無しさん [sage] 2022/02/06(日) 16:28:56.52 ID:d9+JDYY/ 頭悪いんだよ 融通のきかない頭でっかち http://mevius.5ch.net/test/read.cgi/tech/1640872622/18
19: デフォルトの名無しさん [sage] 2022/02/06(日) 16:57:31.55 ID:23zQCz2C immutable な POD で FP すれば GOOD じゃん class は not json serializable ビコーズチョベリバ http://mevius.5ch.net/test/read.cgi/tech/1640872622/19
20: デフォルトの名無しさん [sage] 2022/02/06(日) 17:24:04.04 ID:Fo3XpFx5 無茶苦茶言ってるかと思ったらちゃんとした内容で草w http://mevius.5ch.net/test/read.cgi/tech/1640872622/20
21: デフォルトの名無しさん [sage] 2022/02/06(日) 17:45:58.69 ID:cUJBT0A1 >>17 すまん DDDのドメイン層を連想してくれると思って言った イミュータブルだから大丈夫ってのは規模の小さなシステムでならたしかに間違いではない ただ規模が大きくなるにつれてそれでは難しくなるのもまた事実 というのもイミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い なのでプログラムにバグが紛れ込みやすくなってしまう それと特定の型に対する演算がプログラムのあちこちに分散してしまい凝集度が下がって大混乱というのが典型的な末路だね >>18 Jsonを必要としているのは主にIOを司る層であってそれはドメイン層ではない 異なる層が負うべき責務を別の層が引き受けるのはクリーンな設計とは言えないよね なのでドメイン層のクラスがJson Serializableである必要はない というかドメイン層のクラスに直接Deserializeするのは危険なので大規模案件ではむしろ禁止した方がいい それは完全コンストラクタを経由せずにオブジェクトをインスタンス化するということであり 不正なオブジェクトを生成してしまう可能性をプログラムに埋め込むということに他ならない http://mevius.5ch.net/test/read.cgi/tech/1640872622/21
22: デフォルトの名無しさん [sage] 2022/02/06(日) 18:34:09.22 ID:Fo3XpFx5 >>21 > イミュータブルなPODだと不正なイミュータブルオブジェクトの生成を抑止する方法が残念ながら無い 不正なイミュータブルオブジェクトの問題ってなに? イミュータブルオブジェクトがイミュータブルオブジェクトにどうやって影響を与えるのさ。 > 特定の型に対する演算がプログラムのあちこちに分散してしまい凝集度が下がって大混乱 疎結合になってむしろ良いことでは? TSにおいて凝集度はクラスで担保すべきでは無いでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1640872622/22
23: デフォルトの名無しさん [sage] 2022/02/06(日) 18:49:51.15 ID:K22p1cEy >>22 不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い その連鎖はいずれIO境界まで辿り着きユーザーに間違ったAPIレスポンスを返したりデータベースに間違ったデータを格納したりする 関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる? もちろん途中でバリデーションをかけて落とすことはできるだろうがそれではバリデーションが増えすぎて手に負えなくなる なのでそもそも間違ったオブジェクトを作れないようにしよう 作れないものを関数に渡すことはできないので安心だ そういう考え方ね 下だけどそれを疎結合とは言わない 否定したい思いが先走って無茶苦茶言ってない? http://mevius.5ch.net/test/read.cgi/tech/1640872622/23
24: デフォルトの名無しさん [sage] 2022/02/06(日) 19:01:45.12 ID:Fo3XpFx5 >>23 > 不正なイミュータブルオブジェクトを元に生成した別のイミュータブルオブジェクトもまた不正なイミュータブルオブジェクトになる可能性が高い 繰り返しになるけど、イミュータブルオブジェクトはイミュータブルオブジェクトに影響与えないよ? > 関数の入り口に間違ったオブジェクトを渡したら関数の戻り値もまた間違ったオブジェクトになることは理解できる? 間違ったオブジェクト渡らないよ? なんの為の型だと思ってるの? structとか使わないの? データの入り口(IO等)で型バリデーションすればあとは型が化けたりしないよ。 http://mevius.5ch.net/test/read.cgi/tech/1640872622/24
25: デフォルトの名無しさん [sage] 2022/02/06(日) 19:06:18.29 ID:AuLf6V7C >>21 > Jsonを必要としているのは主にIOを司る層であってそれはドメイン層ではない > 異なる層が負うべき責務を別の層が引き受けるのはクリーンな設計とは言えないよね > なのでドメイン層のクラスがJson Serializableである必要はない 横だがこれは完全に間違ってるだろ。 シリアライズするのは確かにI/O側だが、他言語も含めて今現在は クラス側にserialize手段を用意するのが主流だ。TS知らんがJSと同じならtoJSON()。 だからドメイン側でシリアライズする可能性のあるクラスの全てにtoJSONを用意しておくのが正しい解だという事に今はなっている。 I/O側にやらせていたのは昔の設計だ。ただそれの何が悪かったのかは俺は知らない。 (実行効率だけは無茶苦茶良かったから、クラスを導入して非効率になっただけなのかもしれんが) http://mevius.5ch.net/test/read.cgi/tech/1640872622/25
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 351 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.006s