[過去ログ]
Microsoft ASP.NET Blazor #02 (608レス)
Microsoft ASP.NET Blazor #02 http://mevius.5ch.net/test/read.cgi/tech/1605990630/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
233: デフォルトの名無しさん [sage] 2020/12/23(水) 08:34:59.21 ID:L0gYl8Ji ついでに恥を偲んで聞くんだが、 よくWeb系の奴らが、型があるって素晴らしいですね♪的なことQiitaとかに書いてるけど 奴らが言う型って、もしかしてC#で言うところのクラスのこと? http://mevius.5ch.net/test/read.cgi/tech/1605990630/233
234: デフォルトの名無しさん [sage] 2020/12/23(水) 08:43:14.91 ID:iOQdV6uo TypeScriptのことだよ http://mevius.5ch.net/test/read.cgi/tech/1605990630/234
235: デフォルトの名無しさん [sage] 2020/12/23(水) 08:58:24.15 ID:L0gYl8Ji え、言語なのか… http://mevius.5ch.net/test/read.cgi/tech/1605990630/235
236: デフォルトの名無しさん [sage] 2020/12/23(水) 10:03:58.22 ID:h+qkHPqF >>234 ts推しのひとのlevelはこの程度だw >>235 言語のわけない。経験言語は? http://mevius.5ch.net/test/read.cgi/tech/1605990630/236
237: デフォルトの名無しさん [sage] 2020/12/23(水) 12:04:39.47 ID:L0gYl8Ji >>236 し、C#の経験がありますっ http://mevius.5ch.net/test/read.cgi/tech/1605990630/237
238: デフォルトの名無しさん [sage] 2020/12/23(水) 12:24:52.39 ID:qFmqxSAt C#やってて型が何かわからないってどゆこと? C#ではclass, struct, enum, interface, delegate, arrayが型 型があるって素晴らしいですね♪的なのは見たことないけど 動的言語でも型がない言語は実質ないから 静的型チェックっていいですねくらいの意味じゃないのかな http://mevius.5ch.net/test/read.cgi/tech/1605990630/238
239: デフォルトの名無しさん [] 2020/12/23(水) 12:28:36.82 ID:h+qkHPqF これはひどい >>236 で回答しちゃいそうになったが C#やってて型もわからないような人が>>231のように煽ってたわけだ。 型わからないのにC#使えるわけないんだがね これでまたはっきりしちゃったな 初心者がオンプレミスおにいさんのスキルに嫉妬して叩きまくってたということが http://mevius.5ch.net/test/read.cgi/tech/1605990630/239
240: デフォルトの名無しさん [sage] 2020/12/23(水) 12:33:43.74 ID:J8E3P1ZQ >>239 TypeScriptは言語ですよ? http://mevius.5ch.net/test/read.cgi/tech/1605990630/240
241: デフォルトの名無しさん [sage] 2020/12/23(水) 12:41:43.57 ID:h+qkHPqF >>240 そういう話じゃない >>234のレスがずれまくってるということ TSは型のある言語のひとつだが233返答として不適切ということ。 まあ質問者が煽ってたカスだったから答えはもう不要だけどね http://mevius.5ch.net/test/read.cgi/tech/1605990630/241
242: デフォルトの名無しさん [sage] 2020/12/23(水) 12:53:44.25 ID:L0gYl8Ji >>238 いや型が何かはわかってる js系やってる人達のいう型と同じなのかなという、煽りではなく素朴な疑問 ただjsだって文字型、数値型はあるだろうから複合型のこと言ってるのだろうか。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/242
243: デフォルトの名無しさん [] 2020/12/23(水) 13:26:24.61 ID:4FZ7yNJk 文脈的にTypeScriptでも合ってるような気がする。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/243
244: デフォルトの名無しさん [sage] 2020/12/23(水) 14:06:10.99 ID:Kc0L3Url 文脈的にはTypeScriptはすばらしいということだね http://mevius.5ch.net/test/read.cgi/tech/1605990630/244
245: デフォルトの名無しさん [sage] 2020/12/23(水) 14:12:41.92 ID:aoAgDZ6q >>242 変数が定義時に型を結び付けられていて、途中で別の型の値を代入すると コンパイル段階でエラーにしてくれることを 「型があるって素晴らしい」 と言っているのだろう。例えば、C++では int a = 5; とした場合、aに文字列や浮動小数点値やクラスオブジェクトは代入できない。 auto a = 5; としても、autoがintのように解釈されてaがint型の変数になるだけで aに文字列や浮動小数点値やクラスオブジェクトは代入できない。 ところが、JSだと、 let a = 5; とすると、aには文字列でも浮動小数点値でもオブジェクトでも何でも 代入できてしまう。 これがバグの原因になりやすいから。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/245
246: デフォルトの名無しさん [sage] 2020/12/23(水) 14:17:08.23 ID:O5AY10nM typescriptは厳密すぎるとは思うけどね もうちょっと緩くする的な議論もあると聞く http://mevius.5ch.net/test/read.cgi/tech/1605990630/246
247: デフォルトの名無しさん [] 2020/12/23(水) 14:45:16.52 ID:4FZ7yNJk ウェブ系で型があるって素晴らしいってことは、型が無い世界に居たって事で。 Javascriptつこてて、TypeScriptに出会った感が強い。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/247
248: デフォルトの名無しさん [sage] 2020/12/23(水) 15:20:49.21 ID:qFmqxSAt >>242 それはC#における型はわかってても 言語に依存しない型という概念を理解してないってことだったりしない? JS使ってる人たちが言う型とC#の型に違いがあるかというと違いはない 型の種類や適用されるルールに違いがあるだけで型という概念は同じ http://mevius.5ch.net/test/read.cgi/tech/1605990630/248
249: デフォルトの名無しさん [sage] 2020/12/23(水) 18:02:10.45 ID:L0gYl8Ji >>245 >>248 ありがとう jsにもプリミティブ型はあるけど、コンパイラによる型チェックがなかったってことかな。 逆に型チェックなしでよく頑張ってこれたな… 数値計算とかブラウザ上でやることがないから問題なかったのかな。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/249
250: デフォルトの名無しさん [sage] 2020/12/23(水) 18:45:31.75 ID:aoAgDZ6q >>249 [追加] JSの場合、オブジェクトは、 let a = { age : 12; }; として作製するが、ageを書き間違えて a.aga = 13; などとすると、何のエラーも出ず、aga という新しいプロパティーが 追加されてしまう。その結果、 a.age と a.aga の二つのメンバが出来、 a = { age : 12; aga : 13; } としたような状態になってしまう。 JSに限らず多くのスクリプト言語は同様の現象がおき、ミスに対する フェイルセイフが出来ておらず非常に危険なので、大規模開発に 向いていないと言われている。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/250
251: デフォルトの名無しさん [sage] 2020/12/23(水) 18:52:45.56 ID:qnDToIG0 それ型と直接関係なくね? 確かにtsだとそれを防ぐ型とか作れるけども… http://mevius.5ch.net/test/read.cgi/tech/1605990630/251
252: デフォルトの名無しさん [sage] 2020/12/23(水) 19:09:45.60 ID:aa3pY4zz なぜ型と関係ないと思うwww http://mevius.5ch.net/test/read.cgi/tech/1605990630/252
253: デフォルトの名無しさん [sage] 2020/12/23(水) 19:26:43.15 ID:L0gYl8Ji >>250 全部dynamic型!みたいな言語だな。 こんなの自分一人でもだめだわ。破綻するわ。 これの利点ってなんなんだろ… あとよくサーバーとフロントで型を共有できて嬉しいですよね♪みたいなこと書いてるブログもみるんだが それができてない場合ってこうなる? サーバー側:sexはなんか卑猥だからgenderにしたれ! フロント側:sexに何も挿入されない… http://mevius.5ch.net/test/read.cgi/tech/1605990630/253
254: デフォルトの名無しさん [sage] 2020/12/23(水) 21:34:43.30 ID:qFmqxSAt >>250 それはDictionaryに新しいkey/valueペアを追加してるのと同じだからね そういうのでバグ出しちゃうのは基本的にテスト書かない人 チーム開発で動的言語使ってまともなプログラムを作るためには 静的言語の場合よりも高い技術スキルとコミュニケーション能力が求められる なのでソフトウェアの規模というよりチームの規模が大きくなればなるほど不利 http://mevius.5ch.net/test/read.cgi/tech/1605990630/254
255: デフォルトの名無しさん [sage] 2020/12/23(水) 21:52:55.12 ID:O5AY10nM 無能爺が出しゃ張らないだけで、雑談スレでもここまで建設的なスレになるんだね http://mevius.5ch.net/test/read.cgi/tech/1605990630/255
256: デフォルトの名無しさん [sage] 2020/12/23(水) 21:53:23.50 ID:qFmqxSAt >>253 サーバーとクライアントで違う言語を使ってても swaggerとかでインターフェース定義してそれぞれコード生成すればいい C#でも同じだと思うんだけど? 逆に同じ言語を使ってるからといってやり取りするデータを定義した クラスライブラリを共有するのはアーキテクチャ的にはかなり微妙 特に外部に公開するようなサービスでは http://mevius.5ch.net/test/read.cgi/tech/1605990630/256
257: デフォルトの名無しさん [sage] 2020/12/23(水) 22:03:15.12 ID:92W7nQMG >>254 これだけのことにテスト書くの?テストまみれにならないか? そもそもコンパイラがチェックしてくれるようなこおを自力でテスト書くとか苦行すぎるだろ… それって高い技術力と言っていいのだろうか。 言語、フレームワークの選定を間違えているとおもう。 >>256 Blazorのプロジェクトつくるとそうなってるよね あれは規模が小さいシステムなら許容されるんだろうか。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/257
258: デフォルトの名無しさん [sage] 2020/12/23(水) 22:27:01.33 ID:92W7nQMG >>256 連投すまん そのswaggerはサーバー側の型に変更があったらクライアント側で気づくことができるんだろうか。 blazorのプロジェクトの構成ならコンパイラが教えてくれるよね。 外部に公開しないシステムで二回型定義するのは、ツールに頼ったとしてもめんどくさいとおもってしまうんですよ http://mevius.5ch.net/test/read.cgi/tech/1605990630/258
259: デフォルトの名無しさん [なかsage] 2020/12/24(木) 00:11:53.93 ID:61P3AxB9 >>258 swaggerの意味間違えてるよ。 それswaggerの役割じゃないから。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/259
260: デフォルトの名無しさん [sage] 2020/12/24(木) 00:38:15.61 ID:cDdTcWWQ Unityがなんで勝ったか、を考えれば答えは見えてるだろ http://mevius.5ch.net/test/read.cgi/tech/1605990630/260
261: デフォルトの名無しさん [sage] 2020/12/24(木) 00:59:13.90 ID:z4h3nURn >>257 >Blazorのプロジェクトつくるとそうなってるよね なるほど、前提として想定してるアーキテクチャが全然違ったのね >>256の話はBlazorのプロジェクトが別のバックエンドのAPIサーバーにアクセスする必要があるようなケースに APIサーバーがで定義された型をクラスライブラリとしてBlazorのプロジェクトと共有するかどうかみたいな話ね Blazorはモノリシックなアプリでいい場合は簡単に作れていいと思うよ 考え方的にはRailsとかと同じだけど裏のところが独自技術な分だけ優れてる 悪い点はロックインされるところ http://mevius.5ch.net/test/read.cgi/tech/1605990630/261
262: デフォルトの名無しさん [sage] 2020/12/24(木) 01:05:39.49 ID:cu9CRgEK 最近はミクロサービスもやっぱ駄目だったってんでモノリスに回帰してきてるらしいな http://mevius.5ch.net/test/read.cgi/tech/1605990630/262
263: デフォルトの名無しさん [sage] 2020/12/24(木) 06:31:15.50 ID:qBLsz+9E Docker は、1コンテナに、1アプリのマイクロサービス 今の基幹技術だろw 流行りまくっている http://mevius.5ch.net/test/read.cgi/tech/1605990630/263
264: デフォルトの名無しさん [] 2020/12/24(木) 08:12:52.16 ID:Lxgk3nTO >>263 またにわかのフロントエンドのバカか 流行っているかではなく優れているかで選ばなくてはいけない 大規模やってる大手企業、上級エンジニアはDockerを嫌う http://mevius.5ch.net/test/read.cgi/tech/1605990630/264
265: デフォルトの名無しさん [sage] 2020/12/24(木) 08:34:44.70 ID:tvAmDhsP >>261 すまん前提が書けてなかった。 うちは企業内アプリをメインに作ってて、他の外部apiには殆どアクセスしない。 バックもフロントも自チーム内で完結する。 横に座ってる奴がサーバー側の型を変更して急用ができて帰ったとする フロントやってるやつがそのことに気づかずにリリースしてしまうなんてことが起こるようなら本末転倒だなと。 それで原因はテストコードが足りないとか、コミュニケーションが足りないとかいうのもおかしいよねと考えている。 Blazorのプロジェクト構成ならビルド時に気づくよね。 swaggerを使うことで、フロント側がすぐに型変更を検知できるような仕組みがあるんならいいんだけど、気づかないよね?困るよね?現にお困りではないでしょうか? と聞きたかった。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/265
266: 263 [sage] 2020/12/24(木) 08:39:38.18 ID:qBLsz+9E AWS の構成図を見てみろ。 ほとんど、マイクロサービスだろ 何十もの、Lambda, SQS(Queue), SNS(通知)をつなげてるの、ばっかりだろ クラスメソッドの動画を見ろ 会社全体で、AWS の資格を800持っていて、 全12資格を持つ・ジェダイマスターが7人もいる! http://mevius.5ch.net/test/read.cgi/tech/1605990630/266
267: デフォルトの名無しさん [sage] 2020/12/24(木) 08:40:41.97 ID:BsodnxpD >>264 零細爺が見栄張って適当言っちゃあかんでしょ 社内でファイルサーバーでもたててSEごっこしてなさい http://mevius.5ch.net/test/read.cgi/tech/1605990630/267
268: デフォルトの名無しさん [sage] 2020/12/24(木) 08:53:01.08 ID:Lxgk3nTO >>266 そりゃアマゾンは大手のクラウド事業者だからあたりまえだろ 自社の提供するサービスをそのまま使ってるだけ サービスの広告にもなる 一般法人がそれを採用することが合理的かは別の話だ。 デメリットを理解せず、流行ってるからいいという アホな価値観だからそういう思考になる http://mevius.5ch.net/test/read.cgi/tech/1605990630/268
269: デフォルトの名無しさん [sage] 2020/12/24(木) 08:58:23.93 ID:nIBEXBhK こいつはホンマにいつも5chやっとるな http://mevius.5ch.net/test/read.cgi/tech/1605990630/269
270: デフォルトの名無しさん [] 2020/12/24(木) 09:04:12.11 ID:Lxgk3nTO >>266 おまえいつもKENTAの話ばっかりしてるやつだろw クラスメソッドw 俺は初心者向けスクールなんていかない。 会社全体の資格者数なんて何の意味もないし ベンダー資格なんてすぐに取れるんだよw スクールだから宣伝のために講師に取らせてることも理解できないって 頭悪すぎだぞ スクールの講師に優秀なエンジニアいないぞ 簡単にとれる資格でだまされてるやつw KENTAとかスクールとか情弱ビジネスに釣られすぎ http://mevius.5ch.net/test/read.cgi/tech/1605990630/270
271: 263 [sage] 2020/12/24(木) 09:33:54.56 ID:qBLsz+9E クラスメソッドは、AWS パートナー・オブ・ザ・イヤーとか取ってる、最上位の会社 米国年収で、 Ruby on Rails 1,300万円 Node.js 900万 VMware 1,400万 AWS Solution Architect 1,500万 もう、AWS資格が、Railsを超えてる! http://mevius.5ch.net/test/read.cgi/tech/1605990630/271
272: デフォルトの名無しさん [sage] 2020/12/24(木) 09:52:41.32 ID:tvAmDhsP ついでに聞いとこ。 クラスメソッドくんは普段なんのフレームワークで開発してるんだい? http://mevius.5ch.net/test/read.cgi/tech/1605990630/272
273: デフォルトの名無しさん [sage] 2020/12/24(木) 10:54:27.41 ID:cDdTcWWQ >>266 その構成が複雑化しすぎて多くの場合でデメリットがメリットを上回ってしまう よっぽど巨大で複雑なシステムでもない限りモノリスのほうがシンプルでイイネ っていうふうにトレンドが移り変わろうとしてるところ http://mevius.5ch.net/test/read.cgi/tech/1605990630/273
274: デフォルトの名無しさん [] 2020/12/24(木) 11:28:27.57 ID:TzdYJrci KENTAはコテ付けるべきでは? http://mevius.5ch.net/test/read.cgi/tech/1605990630/274
275: デフォルトの名無しさん [sage] 2020/12/24(木) 12:08:12.79 ID:tvAmDhsP >>273 これほんとにそうだと思う。 こういうのが必要なのって相当巨大なシステムだけなんじゃないのか トレンドだからとDockerだか、Kubernetesだかに手を出して 気づかず消耗してるんじゃないだろうか。 クリーンアーキテクチャについてもそうおもうし、 なんならrest apiもそうなんじゃないだろうかと疑っている。 rpcでよかったのにrestにしちゃったケースもあると思うんだよなあ http://mevius.5ch.net/test/read.cgi/tech/1605990630/275
276: デフォルトの名無しさん [なかsage] 2020/12/24(木) 12:24:48.60 ID:61P3AxB9 >>265 サーバー側の型が クライアント側に漏れでた時点で 設計がおかしい。 もしかして、 クラサバみたいな設計ですか? http://mevius.5ch.net/test/read.cgi/tech/1605990630/276
277: デフォルトの名無しさん [sage] 2020/12/24(木) 12:37:13.88 ID:tvAmDhsP >>276 漏れ出るって…? ASP.NET MVCは定義したモデルをビューで参照できるよね? これは漏れ出てる…? http://mevius.5ch.net/test/read.cgi/tech/1605990630/277
278: デフォルトの名無しさん [sage] 2020/12/24(木) 13:32:36.53 ID:FJvlKwaS >>275 Dockerは別にいいと思う あれはどんな依存関係でも簡単にパッケージできるのと環境を汚さないで済むという強力なメリットがある K8Sまで行くとやりすぎで本当にK8Sが必要なのか慎重に考えないといけない クリーンアーキテクチャは悪くない モノリスに回帰してきているとは言ってもコードを汚く書いていいわけじゃない あくまでも悪いのはミクロサービスであってアプリケーション内部をクリーンアーキテクチャで綺麗に構造化するのは依然として良いことだ RPCはそのとおり APIだけじゃぜんぜん駄目だったのでgRPCなどが普及し始めた DDDの文脈で綺麗にシステムを作ろうとするとAPIよりRPCが肝要となる http://mevius.5ch.net/test/read.cgi/tech/1605990630/278
279: デフォルトの名無しさん [なかsage] 2020/12/24(木) 13:35:03.72 ID:61P3AxB9 >>277 サービスレベルで設計してないって事ね。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/279
280: デフォルトの名無しさん [sage] 2020/12/24(木) 13:56:01.24 ID:RIrJysKy 単純なマスタメンテみたいなアプリでもなけりゃサーバーとクライアントで扱うモデルって一致しなくない? セキュリティとかプライバシーに関わるようなデータでも平気でネットワークに流しちゃう感じ? http://mevius.5ch.net/test/read.cgi/tech/1605990630/280
281: デフォルトの名無しさん [sage] 2020/12/24(木) 14:00:28.72 ID:VTM9inIm ドットネッターはコンテナに拒否反応示す人が多いよね .NET Coreでせっかくモダンなスタイルのデプロイが可能になったと思ったら、 井の中の蛙なユーザーに迎合してIIS統合とかFDD強化とか変なことに力入れてどんどん退行してるし http://mevius.5ch.net/test/read.cgi/tech/1605990630/281
282: デフォルトの名無しさん [sage] 2020/12/24(木) 15:31:58.25 ID:GGlRJfww Windowsコンテナが実用レベルになったら起こしてくれ http://mevius.5ch.net/test/read.cgi/tech/1605990630/282
283: デフォルトの名無しさん [sage] 2020/12/24(木) 17:59:56.32 ID:tvAmDhsP >>279 そこまでやる必要がないレベルといえばそう。 世にあるMVC系のWebフレームワークはなんか漏れ出してるということなんだろうか >>280 逆に単純なマスタは一致するんじゃないの そりゃおっしゃるようなシーンでは一致しないだろうけど どっちが多いかにもよるんだろうか。 サーバーと型が共有できるって利点だと思っていたけど 結構反対意見も多いな。 少なくともBlazorの雛形はそうなっているけど、これは小規模だから成り立っている? もっといろんな意見を聞きたい。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/283
284: デフォルトの名無しさん [なかsage] 2020/12/24(木) 18:17:21.72 ID:61P3AxB9 >>283 反対意見じゃなくてAPIの設計がちがう。 swaggerでopenAPIとして公開するレベルなら、 クライアントの種別、言語は問わない。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/284
285: デフォルトの名無しさん [sage] 2020/12/24(木) 18:32:45.65 ID:z4h3nURn >>265 それってコンパイルエラーになるような変更なら気がつくけど それ以外の変更なら不具合が起こってても気が付かないてことでしょ? 結局テスト書いてないだけじゃない? swaggerとかインターフェース定義ファイルからそれぞれのスタブを自動生成するようなやつは 定義が変わればそりゃ検知できるけど検知できて新しい定義に対応したところで その変更によって不具合が起こってないことはテストしないとわからないよね http://mevius.5ch.net/test/read.cgi/tech/1605990630/285
286: デフォルトの名無しさん [sage] 2020/12/24(木) 18:36:25.33 ID:cDdTcWWQ >>280 モデルにも色々ある ドメインモデルとかビューモデルは当然、共有しない APIやRPCのI/Oモデルは共有する Blazorはこれを追加作業なしで完全な形で型安全に共有できるから強い http://mevius.5ch.net/test/read.cgi/tech/1605990630/286
287: デフォルトの名無しさん [sage] 2020/12/24(木) 18:46:02.72 ID:PofLudrU さらにF#の型プロバイダをBlazorで利用すると、バックエンドが.NETでない場合でも、型安全なI/Oモデルを手に入れることができる インターフェース定義、コード生成要らないので、とても楽ちん http://mevius.5ch.net/test/read.cgi/tech/1605990630/287
288: デフォルトの名無しさん [sage] 2020/12/24(木) 18:53:41.80 ID:tvAmDhsP >>284 いろんなデバイスやシステムからアクセスするapiに関してはおっしゃる通りだと思うよ。 でもそんなの限られるんじゃないの?いや俺がそういうの作った事ないからそう思い込んでるだけかもしれないけど。 そうじゃないものまでapi化するのは意味なくて、型は共有した方が嬉しいですよね♪ってことだと解釈してます。 >>285 swaggerはリリース前に自動で変更検知して止めてくれるってこと? なら安心だな。 テストに関してはおっしゃる通り。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/288
289: デフォルトの名無しさん [sage] 2020/12/24(木) 19:15:50.43 ID:EoOpc5fU >>283 型共有は工数削減効果が非常に高いので積極的に利用して良いよ http://mevius.5ch.net/test/read.cgi/tech/1605990630/289
290: デフォルトの名無しさん [sage] 2020/12/24(木) 19:26:12.20 ID:yLXHVLdF swaggerがどうのこうの言ってる人はミスリードを狙ってそうな気配がする swaggerはメソッドを定義することはできないからblazorの型共有とはそもそもまったくの別物だよ http://mevius.5ch.net/test/read.cgi/tech/1605990630/290
291: デフォルトの名無しさん [sage] 2020/12/24(木) 19:34:01.95 ID:yLXHVLdF blazorの型共有は単にAPIのDTOを共有するといったつまらないユースケース留まらない(もちろんDTOとしても非常に便利ではあるが) 例えば単価、税率、個数から消費税込み価格を計算するメソッドがプレゼンテーション層とドメイン層の両方で必要になった場合 blazorならC#で1回だけメソッドを実装すればいい バックエンドとフロントが異なる言語だと同じ処理を異なる言語で2回実装しなければならない もちろん仕様変更が発生した場合には両方ともプログラムを修正、テストをしなければならない テスト定義もバックエンドの言語とフロントエンドの言語で2回書かなければならない 片方の仕様変更を忘れてもテストが更新されなければアラートは鳴らないので 慎重に2つの言語を調べ尽くして実装漏れがないかどうか確認しなければならない http://mevius.5ch.net/test/read.cgi/tech/1605990630/291
292: デフォルトの名無しさん [sage] 2020/12/24(木) 20:36:59.38 ID:NdJ7CDDg 画面の金額と実際の請求金額に差異が出たりしたら偉い人が顧客に土下座するレベルの重大事故だろ さすがにそこはサーバーサイドに投げるわ コード共有などという小手先レベルの共通化は少々バグっても笑って許される程度の機能のちょっとしたUX改善程度にとどめておくべきで、 重要なものはアーキテクチャ上差異が発生しないように作る http://mevius.5ch.net/test/read.cgi/tech/1605990630/292
293: デフォルトの名無しさん [sage] 2020/12/24(木) 20:48:02.28 ID:yJIcrLfM >>292 この例はあくまで一例 実際のシステムでは金額計算以外にも同じような状況は沢山ある それをいちいち全部バックエンドに問い合わせるのは実行効率も製造効率も悪い http://mevius.5ch.net/test/read.cgi/tech/1605990630/293
294: デフォルトの名無しさん [なかsage] 2020/12/24(木) 20:58:24.94 ID:KjzzoxRm >>291 コピペ? swaggerを使ってのopenAPIなら まずはその設計思想を勉強されてみてはどうでしょうか? googleのAPIとか参考になりますし、 無料で試せますよ。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/294
295: デフォルトの名無しさん [なかsage] 2020/12/24(木) 21:06:28.06 ID:cW3QBX++ >>292 自分の設計だとバリデーション含めて ロジックは全部(表示フォーマットも)サービス側ですね。 ローカルにあるロジックと応答速度で遜色ないですよ。 サービス側は全部単体テスト対象なんで 安心感もあります。 リリース後にバグ出すと、 なんで単体テストを通過したのか始末書もんです。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/295
296: デフォルトの名無しさん [sage] 2020/12/24(木) 21:23:01.51 ID:IhbSA9yU >>295 思想としては正しいと思う .NETな人って表面的なコードの共有は大好きなのにデプロイメントをDRYにするという意識が希薄な人が多くて、 ビジネスロジックのDLLをWebとバッチで安易に共通化したりしてデプロイをミスってトラブル起こすケースが多いんだよね http://mevius.5ch.net/test/read.cgi/tech/1605990630/296
297: デフォルトの名無しさん [なかsage] 2020/12/24(木) 21:32:29.46 ID:cW3QBX++ View側に業務ロジック混ざると、 コードが読めなくなること多いですからね。 いろんな人が出入りするし。 フロントなんて持って数年、 システムの統廃合やリプレース時にも楽ですよ。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/297
298: デフォルトの名無しさん [] 2020/12/24(木) 21:48:16.63 ID:BMlK5S4S Blazor Serverでファイルのアップロード処理をしたいのですが、 アップロード時に、ローカルにファイルが存在するかチェックするにはどうすればよいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1605990630/298
299: デフォルトの名無しさん [sage] 2020/12/24(木) 21:51:51.36 ID:zHK1POmy >>298 ローカル側の処理なんでJavaScript書かないと仕方ないんじゃないの http://mevius.5ch.net/test/read.cgi/tech/1605990630/299
300: デフォルトの名無しさん [sage] 2020/12/24(木) 21:59:31.17 ID:BMlK5S4S >>299 ありがとうございます。 該当部分はJavaScirptで作ります。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/300
301: デフォルトの名無しさん [sage] 2020/12/24(木) 22:00:26.68 ID:cDdTcWWQ >>294 swaggerはblazorの型共有とは違うベクトルの話だよ ここで話すべき内容ではない http://mevius.5ch.net/test/read.cgi/tech/1605990630/301
302: デフォルトの名無しさん [sage] 2020/12/24(木) 22:05:56.79 ID:cDdTcWWQ >>295 それはいままで簡単にフロントエンドとバックエンドでロジックを共有できなかったからそうするしかなかっただけ 型共有がなかったからコードを重複させるか些細なことでもバックエンドにリクエストを出すしかなかった どちらもやりたいことにたいして実装と実行のオーバーヘッドが大きい 型共有が可能なblazorでは無駄なエンドポイント実装、APIコール実装を削減することにより生産性の向上が期待できる また無駄なラウンドトリップを避けることによりより良いユーザー体験が期待できる http://mevius.5ch.net/test/read.cgi/tech/1605990630/302
303: デフォルトの名無しさん [sage] 2020/12/24(木) 22:08:01.69 ID:cDdTcWWQ >>296 昨今ではデプロイメントは自動化されるので間違えることはない http://mevius.5ch.net/test/read.cgi/tech/1605990630/303
304: デフォルトの名無しさん [sage] 2020/12/24(木) 22:09:26.12 ID:cDdTcWWQ >>297 Viewには業務ロジックは混ざらない Viewからは業務ロジックを呼び出すだけ 今まではAPIを通じてリモート呼び出ししていたがblazorではその必要なく呼び出せる http://mevius.5ch.net/test/read.cgi/tech/1605990630/304
305: デフォルトの名無しさん [sage] 2020/12/24(木) 22:25:28.29 ID:Lxgk3nTO >>304 >>302 「Blazorでは」と書くと正しく伝わらない。 Blazor ServerとBlazor WebAssemblyで全然違う 紛らわしい名前つけたMSが悪いんだが。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/305
306: デフォルトの名無しさん [] 2020/12/24(木) 22:50:48.81 ID:cFK/Qw2G 実際どちらのことを書いてるんだろう Serverかな しかしwasmとserverでほんと全然ものが違うよな。 共通点はフロントをc#でかけるってだけで。 MSの名前の付け方は本当に適当だと思う。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/306
307: デフォルトの名無しさん [sage] 2020/12/24(木) 22:59:35.56 ID:z4h3nURn 同一言語で作ってる同一プロジェクト内で型を参照することを ”型共有”って言うのは相当違和感あるね 誰が使い始めたのかしらないけど http://mevius.5ch.net/test/read.cgi/tech/1605990630/307
308: デフォルトの名無しさん [sage] 2020/12/24(木) 23:11:34.69 ID:F9/YVp9N では何と言うべきか? http://mevius.5ch.net/test/read.cgi/tech/1605990630/308
309: デフォルトの名無しさん [sage] 2020/12/24(木) 23:24:38.23 ID:cFK/Qw2G Qiita や個人のブログを貼るのはアレなので クラスメソッドの記事を… https://dev.classmethod.jp/articles/typescript-front-server/ interfaceを共有することで 型安全な開発ができます これのことかな。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/309
310: デフォルトの名無しさん [sage] 2020/12/24(木) 23:50:47.46 ID:cDdTcWWQ Blazorはinterfaceの共有もできるがそれだけに限らない interface、class、struct、、、何でも共有できる それらを総称するとなんと言うか?それは型だ だから型を共有していると言うより適切な表現はないのではないかな http://mevius.5ch.net/test/read.cgi/tech/1605990630/310
311: デフォルトの名無しさん [sage] 2020/12/25(金) 00:08:08.33 ID:vv0pxJyE >>309 このケースはリポジトリとして定義した型をサーバーとクライアントで共有してるというのは違和感ないな RESTのAPIで切り離されてるからかな (APIが返す型情報を元にしてないから微妙なところがあるけど) ASP.NET MVCで言えば同じビューモデルの定義を参照してるからって ビューとコントローラーで”型共有”してるとは普通言わないよね? http://mevius.5ch.net/test/read.cgi/tech/1605990630/311
312: デフォルトの名無しさん [sage] 2020/12/25(金) 00:14:35.63 ID:K5aqSQYy >>311 言い回しとして普及してるかどうかは知らんが型を共有してるのは正しい http://mevius.5ch.net/test/read.cgi/tech/1605990630/312
313: デフォルトの名無しさん [sage] 2020/12/25(金) 00:24:51.99 ID:Z26lwPgE >>311 Blazor wasmのプロジェクト構成では Shareプロジェクトにモデルを定義して ClientプロジェクトのRazorページでShareプロジェクトを参照している 同じくServerプロジェクトのコントローラーでもShareプロジェクトを参照している これはなんていうんだろう。 どちらにせよサーバーとクライアントで同じ型を使うという目的に対して手段が違うだけであって、別にまずくはないと思うんだけどどうだろう。 http://mevius.5ch.net/test/read.cgi/tech/1605990630/313
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 295 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s