ASP.NETのBlazorのスレッド part2です。
ASP.NET
https://dotnet.microsoft.com/apps/aspnet
ASP.NETは、クロスプラットフォーム対応、無料、オープンソースのフレームワーク
Free. Cross-platform. Open source.
A framework for building web apps and services with .NET and C#.
Introduction to ASP.NET Core Blazor
https://docs.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-5.0
【本命】Blazor スレ1【真打】
http://mevius.5ch.net/test/read.cgi/tech/1595255796/
Microsoft ASP.NET Blazor #02
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/11/22(日) 05:30:30.13ID:kDrPKY9d253デフォルトの名無しさん
2020/12/23(水) 19:26:43.15ID:L0gYl8Ji >>250
全部dynamic型!みたいな言語だな。
こんなの自分一人でもだめだわ。破綻するわ。
これの利点ってなんなんだろ…
あとよくサーバーとフロントで型を共有できて嬉しいですよね♪みたいなこと書いてるブログもみるんだが
それができてない場合ってこうなる?
サーバー側:sexはなんか卑猥だからgenderにしたれ!
フロント側:sexに何も挿入されない…
全部dynamic型!みたいな言語だな。
こんなの自分一人でもだめだわ。破綻するわ。
これの利点ってなんなんだろ…
あとよくサーバーとフロントで型を共有できて嬉しいですよね♪みたいなこと書いてるブログもみるんだが
それができてない場合ってこうなる?
サーバー側:sexはなんか卑猥だからgenderにしたれ!
フロント側:sexに何も挿入されない…
254デフォルトの名無しさん
2020/12/23(水) 21:34:43.30ID:qFmqxSAt >>250
それはDictionaryに新しいkey/valueペアを追加してるのと同じだからね
そういうのでバグ出しちゃうのは基本的にテスト書かない人
チーム開発で動的言語使ってまともなプログラムを作るためには
静的言語の場合よりも高い技術スキルとコミュニケーション能力が求められる
なのでソフトウェアの規模というよりチームの規模が大きくなればなるほど不利
それはDictionaryに新しいkey/valueペアを追加してるのと同じだからね
そういうのでバグ出しちゃうのは基本的にテスト書かない人
チーム開発で動的言語使ってまともなプログラムを作るためには
静的言語の場合よりも高い技術スキルとコミュニケーション能力が求められる
なのでソフトウェアの規模というよりチームの規模が大きくなればなるほど不利
255デフォルトの名無しさん
2020/12/23(水) 21:52:55.12ID:O5AY10nM 無能爺が出しゃ張らないだけで、雑談スレでもここまで建設的なスレになるんだね
256デフォルトの名無しさん
2020/12/23(水) 21:53:23.50ID:qFmqxSAt >>253
サーバーとクライアントで違う言語を使ってても
swaggerとかでインターフェース定義してそれぞれコード生成すればいい
C#でも同じだと思うんだけど?
逆に同じ言語を使ってるからといってやり取りするデータを定義した
クラスライブラリを共有するのはアーキテクチャ的にはかなり微妙
特に外部に公開するようなサービスでは
サーバーとクライアントで違う言語を使ってても
swaggerとかでインターフェース定義してそれぞれコード生成すればいい
C#でも同じだと思うんだけど?
逆に同じ言語を使ってるからといってやり取りするデータを定義した
クラスライブラリを共有するのはアーキテクチャ的にはかなり微妙
特に外部に公開するようなサービスでは
257デフォルトの名無しさん
2020/12/23(水) 22:03:15.12ID:92W7nQMG258デフォルトの名無しさん
2020/12/23(水) 22:27:01.33ID:92W7nQMG >>256
連投すまん
そのswaggerはサーバー側の型に変更があったらクライアント側で気づくことができるんだろうか。
blazorのプロジェクトの構成ならコンパイラが教えてくれるよね。
外部に公開しないシステムで二回型定義するのは、ツールに頼ったとしてもめんどくさいとおもってしまうんですよ
連投すまん
そのswaggerはサーバー側の型に変更があったらクライアント側で気づくことができるんだろうか。
blazorのプロジェクトの構成ならコンパイラが教えてくれるよね。
外部に公開しないシステムで二回型定義するのは、ツールに頼ったとしてもめんどくさいとおもってしまうんですよ
259デフォルトの名無しさん
2020/12/24(木) 00:11:53.93ID:61P3AxB9260デフォルトの名無しさん
2020/12/24(木) 00:38:15.61ID:cDdTcWWQ Unityがなんで勝ったか、を考えれば答えは見えてるだろ
261デフォルトの名無しさん
2020/12/24(木) 00:59:13.90ID:z4h3nURn262デフォルトの名無しさん
2020/12/24(木) 01:05:39.49ID:cu9CRgEK 最近はミクロサービスもやっぱ駄目だったってんでモノリスに回帰してきてるらしいな
263デフォルトの名無しさん
2020/12/24(木) 06:31:15.50ID:qBLsz+9E Docker は、1コンテナに、1アプリのマイクロサービス
今の基幹技術だろw
流行りまくっている
今の基幹技術だろw
流行りまくっている
264デフォルトの名無しさん
2020/12/24(木) 08:12:52.16ID:Lxgk3nTO265デフォルトの名無しさん
2020/12/24(木) 08:34:44.70ID:tvAmDhsP >>261
すまん前提が書けてなかった。
うちは企業内アプリをメインに作ってて、他の外部apiには殆どアクセスしない。
バックもフロントも自チーム内で完結する。
横に座ってる奴がサーバー側の型を変更して急用ができて帰ったとする
フロントやってるやつがそのことに気づかずにリリースしてしまうなんてことが起こるようなら本末転倒だなと。
それで原因はテストコードが足りないとか、コミュニケーションが足りないとかいうのもおかしいよねと考えている。
Blazorのプロジェクト構成ならビルド時に気づくよね。
swaggerを使うことで、フロント側がすぐに型変更を検知できるような仕組みがあるんならいいんだけど、気づかないよね?困るよね?現にお困りではないでしょうか?
と聞きたかった。
すまん前提が書けてなかった。
うちは企業内アプリをメインに作ってて、他の外部apiには殆どアクセスしない。
バックもフロントも自チーム内で完結する。
横に座ってる奴がサーバー側の型を変更して急用ができて帰ったとする
フロントやってるやつがそのことに気づかずにリリースしてしまうなんてことが起こるようなら本末転倒だなと。
それで原因はテストコードが足りないとか、コミュニケーションが足りないとかいうのもおかしいよねと考えている。
Blazorのプロジェクト構成ならビルド時に気づくよね。
swaggerを使うことで、フロント側がすぐに型変更を検知できるような仕組みがあるんならいいんだけど、気づかないよね?困るよね?現にお困りではないでしょうか?
と聞きたかった。
266263
2020/12/24(木) 08:39:38.18ID:qBLsz+9E AWS の構成図を見てみろ。
ほとんど、マイクロサービスだろ
何十もの、Lambda, SQS(Queue), SNS(通知)をつなげてるの、ばっかりだろ
クラスメソッドの動画を見ろ
会社全体で、AWS の資格を800持っていて、
全12資格を持つ・ジェダイマスターが7人もいる!
ほとんど、マイクロサービスだろ
何十もの、Lambda, SQS(Queue), SNS(通知)をつなげてるの、ばっかりだろ
クラスメソッドの動画を見ろ
会社全体で、AWS の資格を800持っていて、
全12資格を持つ・ジェダイマスターが7人もいる!
267デフォルトの名無しさん
2020/12/24(木) 08:40:41.97ID:BsodnxpD268デフォルトの名無しさん
2020/12/24(木) 08:53:01.08ID:Lxgk3nTO >>266
そりゃアマゾンは大手のクラウド事業者だからあたりまえだろ
自社の提供するサービスをそのまま使ってるだけ
サービスの広告にもなる
一般法人がそれを採用することが合理的かは別の話だ。
デメリットを理解せず、流行ってるからいいという
アホな価値観だからそういう思考になる
そりゃアマゾンは大手のクラウド事業者だからあたりまえだろ
自社の提供するサービスをそのまま使ってるだけ
サービスの広告にもなる
一般法人がそれを採用することが合理的かは別の話だ。
デメリットを理解せず、流行ってるからいいという
アホな価値観だからそういう思考になる
269デフォルトの名無しさん
2020/12/24(木) 08:58:23.93ID:nIBEXBhK こいつはホンマにいつも5chやっとるな
270デフォルトの名無しさん
2020/12/24(木) 09:04:12.11ID:Lxgk3nTO >>266
おまえいつもKENTAの話ばっかりしてるやつだろw
クラスメソッドw
俺は初心者向けスクールなんていかない。
会社全体の資格者数なんて何の意味もないし
ベンダー資格なんてすぐに取れるんだよw
スクールだから宣伝のために講師に取らせてることも理解できないって
頭悪すぎだぞ
スクールの講師に優秀なエンジニアいないぞ
簡単にとれる資格でだまされてるやつw
KENTAとかスクールとか情弱ビジネスに釣られすぎ
おまえいつもKENTAの話ばっかりしてるやつだろw
クラスメソッドw
俺は初心者向けスクールなんていかない。
会社全体の資格者数なんて何の意味もないし
ベンダー資格なんてすぐに取れるんだよw
スクールだから宣伝のために講師に取らせてることも理解できないって
頭悪すぎだぞ
スクールの講師に優秀なエンジニアいないぞ
簡単にとれる資格でだまされてるやつw
KENTAとかスクールとか情弱ビジネスに釣られすぎ
271263
2020/12/24(木) 09:33:54.56ID:qBLsz+9E クラスメソッドは、AWS パートナー・オブ・ザ・イヤーとか取ってる、最上位の会社
米国年収で、
Ruby on Rails 1,300万円
Node.js 900万
VMware 1,400万
AWS Solution Architect 1,500万
もう、AWS資格が、Railsを超えてる!
米国年収で、
Ruby on Rails 1,300万円
Node.js 900万
VMware 1,400万
AWS Solution Architect 1,500万
もう、AWS資格が、Railsを超えてる!
272デフォルトの名無しさん
2020/12/24(木) 09:52:41.32ID:tvAmDhsP ついでに聞いとこ。
クラスメソッドくんは普段なんのフレームワークで開発してるんだい?
クラスメソッドくんは普段なんのフレームワークで開発してるんだい?
273デフォルトの名無しさん
2020/12/24(木) 10:54:27.41ID:cDdTcWWQ >>266
その構成が複雑化しすぎて多くの場合でデメリットがメリットを上回ってしまう
よっぽど巨大で複雑なシステムでもない限りモノリスのほうがシンプルでイイネ
っていうふうにトレンドが移り変わろうとしてるところ
その構成が複雑化しすぎて多くの場合でデメリットがメリットを上回ってしまう
よっぽど巨大で複雑なシステムでもない限りモノリスのほうがシンプルでイイネ
っていうふうにトレンドが移り変わろうとしてるところ
274デフォルトの名無しさん
2020/12/24(木) 11:28:27.57ID:TzdYJrci KENTAはコテ付けるべきでは?
275デフォルトの名無しさん
2020/12/24(木) 12:08:12.79ID:tvAmDhsP >>273
これほんとにそうだと思う。
こういうのが必要なのって相当巨大なシステムだけなんじゃないのか
トレンドだからとDockerだか、Kubernetesだかに手を出して
気づかず消耗してるんじゃないだろうか。
クリーンアーキテクチャについてもそうおもうし、
なんならrest apiもそうなんじゃないだろうかと疑っている。
rpcでよかったのにrestにしちゃったケースもあると思うんだよなあ
これほんとにそうだと思う。
こういうのが必要なのって相当巨大なシステムだけなんじゃないのか
トレンドだからとDockerだか、Kubernetesだかに手を出して
気づかず消耗してるんじゃないだろうか。
クリーンアーキテクチャについてもそうおもうし、
なんならrest apiもそうなんじゃないだろうかと疑っている。
rpcでよかったのにrestにしちゃったケースもあると思うんだよなあ
276デフォルトの名無しさん
2020/12/24(木) 12:24:48.60ID:61P3AxB9277デフォルトの名無しさん
2020/12/24(木) 12:37:13.88ID:tvAmDhsP278デフォルトの名無しさん
2020/12/24(木) 13:32:36.53ID:FJvlKwaS >>275
Dockerは別にいいと思う
あれはどんな依存関係でも簡単にパッケージできるのと環境を汚さないで済むという強力なメリットがある
K8Sまで行くとやりすぎで本当にK8Sが必要なのか慎重に考えないといけない
クリーンアーキテクチャは悪くない
モノリスに回帰してきているとは言ってもコードを汚く書いていいわけじゃない
あくまでも悪いのはミクロサービスであってアプリケーション内部をクリーンアーキテクチャで綺麗に構造化するのは依然として良いことだ
RPCはそのとおり
APIだけじゃぜんぜん駄目だったのでgRPCなどが普及し始めた
DDDの文脈で綺麗にシステムを作ろうとするとAPIよりRPCが肝要となる
Dockerは別にいいと思う
あれはどんな依存関係でも簡単にパッケージできるのと環境を汚さないで済むという強力なメリットがある
K8Sまで行くとやりすぎで本当にK8Sが必要なのか慎重に考えないといけない
クリーンアーキテクチャは悪くない
モノリスに回帰してきているとは言ってもコードを汚く書いていいわけじゃない
あくまでも悪いのはミクロサービスであってアプリケーション内部をクリーンアーキテクチャで綺麗に構造化するのは依然として良いことだ
RPCはそのとおり
APIだけじゃぜんぜん駄目だったのでgRPCなどが普及し始めた
DDDの文脈で綺麗にシステムを作ろうとするとAPIよりRPCが肝要となる
279デフォルトの名無しさん
2020/12/24(木) 13:35:03.72ID:61P3AxB9 >>277
サービスレベルで設計してないって事ね。
サービスレベルで設計してないって事ね。
280デフォルトの名無しさん
2020/12/24(木) 13:56:01.24ID:RIrJysKy 単純なマスタメンテみたいなアプリでもなけりゃサーバーとクライアントで扱うモデルって一致しなくない?
セキュリティとかプライバシーに関わるようなデータでも平気でネットワークに流しちゃう感じ?
セキュリティとかプライバシーに関わるようなデータでも平気でネットワークに流しちゃう感じ?
281デフォルトの名無しさん
2020/12/24(木) 14:00:28.72ID:VTM9inIm ドットネッターはコンテナに拒否反応示す人が多いよね
.NET Coreでせっかくモダンなスタイルのデプロイが可能になったと思ったら、
井の中の蛙なユーザーに迎合してIIS統合とかFDD強化とか変なことに力入れてどんどん退行してるし
.NET Coreでせっかくモダンなスタイルのデプロイが可能になったと思ったら、
井の中の蛙なユーザーに迎合してIIS統合とかFDD強化とか変なことに力入れてどんどん退行してるし
282デフォルトの名無しさん
2020/12/24(木) 15:31:58.25ID:GGlRJfww Windowsコンテナが実用レベルになったら起こしてくれ
283デフォルトの名無しさん
2020/12/24(木) 17:59:56.32ID:tvAmDhsP284デフォルトの名無しさん
2020/12/24(木) 18:17:21.72ID:61P3AxB9285デフォルトの名無しさん
2020/12/24(木) 18:32:45.65ID:z4h3nURn >>265
それってコンパイルエラーになるような変更なら気がつくけど
それ以外の変更なら不具合が起こってても気が付かないてことでしょ?
結局テスト書いてないだけじゃない?
swaggerとかインターフェース定義ファイルからそれぞれのスタブを自動生成するようなやつは
定義が変わればそりゃ検知できるけど検知できて新しい定義に対応したところで
その変更によって不具合が起こってないことはテストしないとわからないよね
それってコンパイルエラーになるような変更なら気がつくけど
それ以外の変更なら不具合が起こってても気が付かないてことでしょ?
結局テスト書いてないだけじゃない?
swaggerとかインターフェース定義ファイルからそれぞれのスタブを自動生成するようなやつは
定義が変わればそりゃ検知できるけど検知できて新しい定義に対応したところで
その変更によって不具合が起こってないことはテストしないとわからないよね
286デフォルトの名無しさん
2020/12/24(木) 18:36:25.33ID:cDdTcWWQ287デフォルトの名無しさん
2020/12/24(木) 18:46:02.72ID:PofLudrU さらにF#の型プロバイダをBlazorで利用すると、バックエンドが.NETでない場合でも、型安全なI/Oモデルを手に入れることができる
インターフェース定義、コード生成要らないので、とても楽ちん
インターフェース定義、コード生成要らないので、とても楽ちん
288デフォルトの名無しさん
2020/12/24(木) 18:53:41.80ID:tvAmDhsP289デフォルトの名無しさん
2020/12/24(木) 19:15:50.43ID:EoOpc5fU >>283
型共有は工数削減効果が非常に高いので積極的に利用して良いよ
型共有は工数削減効果が非常に高いので積極的に利用して良いよ
290デフォルトの名無しさん
2020/12/24(木) 19:26:12.20ID:yLXHVLdF swaggerがどうのこうの言ってる人はミスリードを狙ってそうな気配がする
swaggerはメソッドを定義することはできないからblazorの型共有とはそもそもまったくの別物だよ
swaggerはメソッドを定義することはできないからblazorの型共有とはそもそもまったくの別物だよ
291デフォルトの名無しさん
2020/12/24(木) 19:34:01.95ID:yLXHVLdF blazorの型共有は単にAPIのDTOを共有するといったつまらないユースケース留まらない(もちろんDTOとしても非常に便利ではあるが)
例えば単価、税率、個数から消費税込み価格を計算するメソッドがプレゼンテーション層とドメイン層の両方で必要になった場合
blazorならC#で1回だけメソッドを実装すればいい
バックエンドとフロントが異なる言語だと同じ処理を異なる言語で2回実装しなければならない
もちろん仕様変更が発生した場合には両方ともプログラムを修正、テストをしなければならない
テスト定義もバックエンドの言語とフロントエンドの言語で2回書かなければならない
片方の仕様変更を忘れてもテストが更新されなければアラートは鳴らないので
慎重に2つの言語を調べ尽くして実装漏れがないかどうか確認しなければならない
例えば単価、税率、個数から消費税込み価格を計算するメソッドがプレゼンテーション層とドメイン層の両方で必要になった場合
blazorならC#で1回だけメソッドを実装すればいい
バックエンドとフロントが異なる言語だと同じ処理を異なる言語で2回実装しなければならない
もちろん仕様変更が発生した場合には両方ともプログラムを修正、テストをしなければならない
テスト定義もバックエンドの言語とフロントエンドの言語で2回書かなければならない
片方の仕様変更を忘れてもテストが更新されなければアラートは鳴らないので
慎重に2つの言語を調べ尽くして実装漏れがないかどうか確認しなければならない
292デフォルトの名無しさん
2020/12/24(木) 20:36:59.38ID:NdJ7CDDg 画面の金額と実際の請求金額に差異が出たりしたら偉い人が顧客に土下座するレベルの重大事故だろ
さすがにそこはサーバーサイドに投げるわ
コード共有などという小手先レベルの共通化は少々バグっても笑って許される程度の機能のちょっとしたUX改善程度にとどめておくべきで、
重要なものはアーキテクチャ上差異が発生しないように作る
さすがにそこはサーバーサイドに投げるわ
コード共有などという小手先レベルの共通化は少々バグっても笑って許される程度の機能のちょっとしたUX改善程度にとどめておくべきで、
重要なものはアーキテクチャ上差異が発生しないように作る
293デフォルトの名無しさん
2020/12/24(木) 20:48:02.28ID:yJIcrLfM294デフォルトの名無しさん
2020/12/24(木) 20:58:24.94ID:KjzzoxRm295デフォルトの名無しさん
2020/12/24(木) 21:06:28.06ID:cW3QBX++ >>292
自分の設計だとバリデーション含めて
ロジックは全部(表示フォーマットも)サービス側ですね。
ローカルにあるロジックと応答速度で遜色ないですよ。
サービス側は全部単体テスト対象なんで
安心感もあります。
リリース後にバグ出すと、
なんで単体テストを通過したのか始末書もんです。
自分の設計だとバリデーション含めて
ロジックは全部(表示フォーマットも)サービス側ですね。
ローカルにあるロジックと応答速度で遜色ないですよ。
サービス側は全部単体テスト対象なんで
安心感もあります。
リリース後にバグ出すと、
なんで単体テストを通過したのか始末書もんです。
296デフォルトの名無しさん
2020/12/24(木) 21:23:01.51ID:IhbSA9yU >>295
思想としては正しいと思う
.NETな人って表面的なコードの共有は大好きなのにデプロイメントをDRYにするという意識が希薄な人が多くて、
ビジネスロジックのDLLをWebとバッチで安易に共通化したりしてデプロイをミスってトラブル起こすケースが多いんだよね
思想としては正しいと思う
.NETな人って表面的なコードの共有は大好きなのにデプロイメントをDRYにするという意識が希薄な人が多くて、
ビジネスロジックのDLLをWebとバッチで安易に共通化したりしてデプロイをミスってトラブル起こすケースが多いんだよね
297デフォルトの名無しさん
2020/12/24(木) 21:32:29.46ID:cW3QBX++ View側に業務ロジック混ざると、
コードが読めなくなること多いですからね。
いろんな人が出入りするし。
フロントなんて持って数年、
システムの統廃合やリプレース時にも楽ですよ。
コードが読めなくなること多いですからね。
いろんな人が出入りするし。
フロントなんて持って数年、
システムの統廃合やリプレース時にも楽ですよ。
298デフォルトの名無しさん
2020/12/24(木) 21:48:16.63ID:BMlK5S4S Blazor Serverでファイルのアップロード処理をしたいのですが、
アップロード時に、ローカルにファイルが存在するかチェックするにはどうすればよいでしょうか?
アップロード時に、ローカルにファイルが存在するかチェックするにはどうすればよいでしょうか?
299デフォルトの名無しさん
2020/12/24(木) 21:51:51.36ID:zHK1POmy >>298
ローカル側の処理なんでJavaScript書かないと仕方ないんじゃないの
ローカル側の処理なんでJavaScript書かないと仕方ないんじゃないの
300デフォルトの名無しさん
2020/12/24(木) 21:59:31.17ID:BMlK5S4S301デフォルトの名無しさん
2020/12/24(木) 22:00:26.68ID:cDdTcWWQ302デフォルトの名無しさん
2020/12/24(木) 22:05:56.79ID:cDdTcWWQ >>295
それはいままで簡単にフロントエンドとバックエンドでロジックを共有できなかったからそうするしかなかっただけ
型共有がなかったからコードを重複させるか些細なことでもバックエンドにリクエストを出すしかなかった
どちらもやりたいことにたいして実装と実行のオーバーヘッドが大きい
型共有が可能なblazorでは無駄なエンドポイント実装、APIコール実装を削減することにより生産性の向上が期待できる
また無駄なラウンドトリップを避けることによりより良いユーザー体験が期待できる
それはいままで簡単にフロントエンドとバックエンドでロジックを共有できなかったからそうするしかなかっただけ
型共有がなかったからコードを重複させるか些細なことでもバックエンドにリクエストを出すしかなかった
どちらもやりたいことにたいして実装と実行のオーバーヘッドが大きい
型共有が可能なblazorでは無駄なエンドポイント実装、APIコール実装を削減することにより生産性の向上が期待できる
また無駄なラウンドトリップを避けることによりより良いユーザー体験が期待できる
303デフォルトの名無しさん
2020/12/24(木) 22:08:01.69ID:cDdTcWWQ >>296
昨今ではデプロイメントは自動化されるので間違えることはない
昨今ではデプロイメントは自動化されるので間違えることはない
304デフォルトの名無しさん
2020/12/24(木) 22:09:26.12ID:cDdTcWWQ305デフォルトの名無しさん
2020/12/24(木) 22:25:28.29ID:Lxgk3nTO306デフォルトの名無しさん
2020/12/24(木) 22:50:48.81ID:cFK/Qw2G 実際どちらのことを書いてるんだろう
Serverかな
しかしwasmとserverでほんと全然ものが違うよな。
共通点はフロントをc#でかけるってだけで。
MSの名前の付け方は本当に適当だと思う。
Serverかな
しかしwasmとserverでほんと全然ものが違うよな。
共通点はフロントをc#でかけるってだけで。
MSの名前の付け方は本当に適当だと思う。
307デフォルトの名無しさん
2020/12/24(木) 22:59:35.56ID:z4h3nURn 同一言語で作ってる同一プロジェクト内で型を参照することを
”型共有”って言うのは相当違和感あるね
誰が使い始めたのかしらないけど
”型共有”って言うのは相当違和感あるね
誰が使い始めたのかしらないけど
308デフォルトの名無しさん
2020/12/24(木) 23:11:34.69ID:F9/YVp9N では何と言うべきか?
309デフォルトの名無しさん
2020/12/24(木) 23:24:38.23ID:cFK/Qw2G Qiita や個人のブログを貼るのはアレなので
クラスメソッドの記事を…
https://dev.classmethod.jp/articles/typescript-front-server/
interfaceを共有することで 型安全な開発ができます
これのことかな。
クラスメソッドの記事を…
https://dev.classmethod.jp/articles/typescript-front-server/
interfaceを共有することで 型安全な開発ができます
これのことかな。
310デフォルトの名無しさん
2020/12/24(木) 23:50:47.46ID:cDdTcWWQ Blazorはinterfaceの共有もできるがそれだけに限らない
interface、class、struct、、、何でも共有できる
それらを総称するとなんと言うか?それは型だ
だから型を共有していると言うより適切な表現はないのではないかな
interface、class、struct、、、何でも共有できる
それらを総称するとなんと言うか?それは型だ
だから型を共有していると言うより適切な表現はないのではないかな
311デフォルトの名無しさん
2020/12/25(金) 00:08:08.33ID:vv0pxJyE >>309
このケースはリポジトリとして定義した型をサーバーとクライアントで共有してるというのは違和感ないな
RESTのAPIで切り離されてるからかな
(APIが返す型情報を元にしてないから微妙なところがあるけど)
ASP.NET MVCで言えば同じビューモデルの定義を参照してるからって
ビューとコントローラーで”型共有”してるとは普通言わないよね?
このケースはリポジトリとして定義した型をサーバーとクライアントで共有してるというのは違和感ないな
RESTのAPIで切り離されてるからかな
(APIが返す型情報を元にしてないから微妙なところがあるけど)
ASP.NET MVCで言えば同じビューモデルの定義を参照してるからって
ビューとコントローラーで”型共有”してるとは普通言わないよね?
312デフォルトの名無しさん
2020/12/25(金) 00:14:35.63ID:K5aqSQYy >>311
言い回しとして普及してるかどうかは知らんが型を共有してるのは正しい
言い回しとして普及してるかどうかは知らんが型を共有してるのは正しい
313デフォルトの名無しさん
2020/12/25(金) 00:24:51.99ID:Z26lwPgE >>311
Blazor wasmのプロジェクト構成では
Shareプロジェクトにモデルを定義して
ClientプロジェクトのRazorページでShareプロジェクトを参照している
同じくServerプロジェクトのコントローラーでもShareプロジェクトを参照している
これはなんていうんだろう。
どちらにせよサーバーとクライアントで同じ型を使うという目的に対して手段が違うだけであって、別にまずくはないと思うんだけどどうだろう。
Blazor wasmのプロジェクト構成では
Shareプロジェクトにモデルを定義して
ClientプロジェクトのRazorページでShareプロジェクトを参照している
同じくServerプロジェクトのコントローラーでもShareプロジェクトを参照している
これはなんていうんだろう。
どちらにせよサーバーとクライアントで同じ型を使うという目的に対して手段が違うだけであって、別にまずくはないと思うんだけどどうだろう。
314デフォルトの名無しさん
2020/12/25(金) 08:42:56.78ID:uurLZNKt サーバーとフロントで型を共有?できた方が大半はうれしい。
OpanAPIが必要なシステムではそこに固執しなくてもよいということで。
じゃあこの板でもたまにやたらと推してくる奴がいる言語、rubyやpythonって静的型付け言語じゃないよね。
てことは型の共有もくそもないと。
そういう言語で中規模以上のWebシステムを作ろうとするとやはり苦労する?
推してくるやつはその事実をわかっていない?
静的型付け言語しかしらない俺にとってはなんであんな推してくるのかとても気になる。
OpanAPIが必要なシステムではそこに固執しなくてもよいということで。
じゃあこの板でもたまにやたらと推してくる奴がいる言語、rubyやpythonって静的型付け言語じゃないよね。
てことは型の共有もくそもないと。
そういう言語で中規模以上のWebシステムを作ろうとするとやはり苦労する?
推してくるやつはその事実をわかっていない?
静的型付け言語しかしらない俺にとってはなんであんな推してくるのかとても気になる。
315デフォルトの名無しさん
2020/12/25(金) 09:13:17.07ID:JfQSa+1c >>314
OpenAPIじゃメソッド(処理)を共有できないよ
フロントエンドとバックエンドで言語を揃えることにより今まで複数言語で書くかリモート実行するしかなかった問題が解決した
OpenAPIは複数言語で書く手間を軽減できるがリモート実行するしかないという問題には未だに無力
OpenAPIじゃメソッド(処理)を共有できないよ
フロントエンドとバックエンドで言語を揃えることにより今まで複数言語で書くかリモート実行するしかなかった問題が解決した
OpenAPIは複数言語で書く手間を軽減できるがリモート実行するしかないという問題には未だに無力
316デフォルトの名無しさん
2020/12/25(金) 09:31:31.83ID:UA1/tVeu どんな言語であれフレームワークであれ
データ型は共有しないとクライアントが受け取ったデータを適切に処理できないでしょ
blazor は同じアセンブリを共有できる分開発は楽になるでしょ
クライアントに送るデータはクライアントに必要なデータしか普通は送らないし
サーバ側の型がクライアントに漏れるとか
入門書レベルの開発しかしたことないだろ
データ型は共有しないとクライアントが受け取ったデータを適切に処理できないでしょ
blazor は同じアセンブリを共有できる分開発は楽になるでしょ
クライアントに送るデータはクライアントに必要なデータしか普通は送らないし
サーバ側の型がクライアントに漏れるとか
入門書レベルの開発しかしたことないだろ
317デフォルトの名無しさん
2020/12/25(金) 09:44:37.32ID:uurLZNKt >>315
多種多様なシステムやデバイスが使うapiは仕方がないという認識
多種多様なシステムやデバイスが使うapiは仕方がないという認識
318デフォルトの名無しさん
2020/12/25(金) 10:04:08.77ID:JfQSa+1c >>317
その多種多様なデバイスの上で.NETが動くわけで
その多種多様なデバイスの上で.NETが動くわけで
319デフォルトの名無しさん
2020/12/25(金) 10:09:58.28ID:8j4BK9K7 ぜんぶ設計者次第だという認識
320デフォルトの名無しさん
2020/12/25(金) 10:16:11.17ID:81Ut/TdK >>314
WebなんてぶっちゃけDBと画面の間のマッピングを定義してるだけの話なので、
データモデルがRDBによって常に静的に型付けされているため動的型でも破綻しにくい
むしろ変にドメイン駆動とか意識高いのに毒されて画面から独立したモノリシックなビジネスロジック層みたいなのができちゃうと、動的型では確実に破綻する
WebなんてぶっちゃけDBと画面の間のマッピングを定義してるだけの話なので、
データモデルがRDBによって常に静的に型付けされているため動的型でも破綻しにくい
むしろ変にドメイン駆動とか意識高いのに毒されて画面から独立したモノリシックなビジネスロジック層みたいなのができちゃうと、動的型では確実に破綻する
321デフォルトの名無しさん
2020/12/25(金) 10:17:04.89ID:JfQSa+1c >>316
サーバー側の型がなにを指しているのかによるな
データアクセスレイヤのクラスがプレゼンテーションに漏れるのはBADだと思う
しかしドメインレイヤのクラスをプレゼンテーションから参照するのは問題ないと考えている
昨日も例を出したけど
入力として単価、消費税率、個数があってリアルタイムに税込み価格を表示する画面があったとする
この税込み価格の計算は明らかにドメインロジックだ
プレゼンテーションレイヤから直接ドメインレイヤを参照できればそれが最もシンプルでよろしい
もしそれができない場合、プレゼンテーションレイヤにも税込み価格計算ロジックを実装するかリモート呼び出しのためのエンドポイントを実装し、APIクライアントも実装するという重い作業を強いられる
もちろん、税込み価格計算はただの一例であり、実際にはより多くのニーズがある
プレゼンテーションレイヤからドメインレイヤの型を参照できると低コストでより高度な画面を作成することができる
サーバー側の型がなにを指しているのかによるな
データアクセスレイヤのクラスがプレゼンテーションに漏れるのはBADだと思う
しかしドメインレイヤのクラスをプレゼンテーションから参照するのは問題ないと考えている
昨日も例を出したけど
入力として単価、消費税率、個数があってリアルタイムに税込み価格を表示する画面があったとする
この税込み価格の計算は明らかにドメインロジックだ
プレゼンテーションレイヤから直接ドメインレイヤを参照できればそれが最もシンプルでよろしい
もしそれができない場合、プレゼンテーションレイヤにも税込み価格計算ロジックを実装するかリモート呼び出しのためのエンドポイントを実装し、APIクライアントも実装するという重い作業を強いられる
もちろん、税込み価格計算はただの一例であり、実際にはより多くのニーズがある
プレゼンテーションレイヤからドメインレイヤの型を参照できると低コストでより高度な画面を作成することができる
322デフォルトの名無しさん
2020/12/25(金) 10:22:24.07ID:JfQSa+1c >>320
それはどうかな?
意識の高いプログラマの代表格であるマーチンファウラー先生はrubyを称賛していたね
ドメインを実装するのに必ずしも静的でなければならなということはなさそうだ
重要なのはテストを書くことなのだろう
それはどうかな?
意識の高いプログラマの代表格であるマーチンファウラー先生はrubyを称賛していたね
ドメインを実装するのに必ずしも静的でなければならなということはなさそうだ
重要なのはテストを書くことなのだろう
323デフォルトの名無しさん
2020/12/25(金) 10:27:26.49ID:JfQSa+1c そもそもWEBをひとくくりに画面とDBのマッピングであると決めつけるのもいかがなものか
チュートリアルみたいな簡単な仕事ならそれでもいいのかもしれないが
現実のビジネスは小さな事業でもそんなに簡単にはいかない
チュートリアルみたいな簡単な仕事ならそれでもいいのかもしれないが
現実のビジネスは小さな事業でもそんなに簡単にはいかない
324デフォルトの名無しさん
2020/12/25(金) 10:32:50.39ID:vv0pxJyE325デフォルトの名無しさん
2020/12/25(金) 10:35:51.93ID:uurLZNKt >>322
C#であればコンパイラが型チェックしてくれるようなことすらも
Rubyは自力でテストを書かなければならない?
しんどくない?しんどくてもその分の見返りがRubyにはある?
いや数画面のスキャフォールドで作られたようなCRUDシステムなら好きな方選んだらいいと思うんだけど
中規模以上になってくるとどうなのかなと思って。
C#であればコンパイラが型チェックしてくれるようなことすらも
Rubyは自力でテストを書かなければならない?
しんどくない?しんどくてもその分の見返りがRubyにはある?
いや数画面のスキャフォールドで作られたようなCRUDシステムなら好きな方選んだらいいと思うんだけど
中規模以上になってくるとどうなのかなと思って。
326デフォルトの名無しさん
2020/12/25(金) 10:38:07.26ID:uurLZNKt327デフォルトの名無しさん
2020/12/25(金) 10:38:47.43ID:UA1/tVeu328デフォルトの名無しさん
2020/12/25(金) 11:01:46.48ID:bbGDaeBs 静的型チェックを重視するならC#よりF#使えばいいのに
329デフォルトの名無しさん
2020/12/25(金) 11:08:03.54ID:8j4BK9K7 訳わかんない理論がまかり通るスレ
330デフォルトの名無しさん
2020/12/25(金) 11:37:26.72ID:JfQSa+1c331デフォルトの名無しさん
2020/12/25(金) 11:45:17.08ID:JfQSa+1c >>325
動的言語はしんどいよ
自分個人としては動的言語には懐疑的
ただ高度なスキルを持った著名人が支持しているのでコード解析の弱体化のデメリット以上に何かしらメリットがあるのだろう
そしてそういった著名人は必ずテストも推奨している
テストを書かない場合は静的言語のほうが有利なのだろう
しかしテスト書けば動的言語の弱点が補われるのでメリットのウェイトが大きくなる
動的言語はしんどいよ
自分個人としては動的言語には懐疑的
ただ高度なスキルを持った著名人が支持しているのでコード解析の弱体化のデメリット以上に何かしらメリットがあるのだろう
そしてそういった著名人は必ずテストも推奨している
テストを書かない場合は静的言語のほうが有利なのだろう
しかしテスト書けば動的言語の弱点が補われるのでメリットのウェイトが大きくなる
332デフォルトの名無しさん
2020/12/25(金) 11:49:27.10ID:JfQSa+1c >>327
何もできないというのは間違い
しっかりしたシステムでは必ずクライアント側でもデータ検証を行っている
ただしそれはコード重複や無駄なリモート呼び出しの実装という負債を抱え込むデメリットと常にセット
フロントエンドとバックエンドで言語を揃えれば負債なしにフロントエンドでデータ検証を行うことができる
もちろんデータ検証以外の処理もおなじこと
何もできないというのは間違い
しっかりしたシステムでは必ずクライアント側でもデータ検証を行っている
ただしそれはコード重複や無駄なリモート呼び出しの実装という負債を抱え込むデメリットと常にセット
フロントエンドとバックエンドで言語を揃えれば負債なしにフロントエンドでデータ検証を行うことができる
もちろんデータ検証以外の処理もおなじこと
333デフォルトの名無しさん
2020/12/25(金) 12:16:12.84ID:uurLZNKt334デフォルトの名無しさん
2020/12/25(金) 12:24:33.08ID:cyV6b5qO それをここで聞いてもな…
親の仇の如く口汚く罵られるだけで、
メリットなんか提示されないと思うぞ
親の仇の如く口汚く罵られるだけで、
メリットなんか提示されないと思うぞ
335デフォルトの名無しさん
2020/12/25(金) 12:30:41.85ID:uurLZNKt だよね…
技術の優劣をつける意図はないんだが、
自分が作るシステムでは正しい技術を選択したいという想い
技術の優劣をつける意図はないんだが、
自分が作るシステムでは正しい技術を選択したいという想い
336デフォルトの名無しさん
2020/12/25(金) 12:31:52.62ID:fU2xV1RD >>321
明日もお願いします。
明日もお願いします。
337デフォルトの名無しさん
2020/12/25(金) 12:32:11.57ID:uurLZNKt Webフレームワーク比較検討スレみたいなのがほしい
js系の言語のスレはBlazorの話するとうざがられるし
js系の言語のスレはBlazorの話するとうざがられるし
338デフォルトの名無しさん
2020/12/25(金) 12:37:05.82ID:JfQSa+1c339デフォルトの名無しさん
2020/12/25(金) 13:33:23.39ID:pgbI6Wzr >>337
人気のweb frameworkのスレッドは個別にあるしそこでいい。
全部の言語まとめて扱うと荒れる。
JSやJavaのスレッドはある
Java Web Application Framework総合 ver2
http://mevius.5ch.net/test/read.cgi/tech/1374399677/
C#は乱立してないから素直にASP.NET使えばいい
5chみたいな狭い世界で比較検討せずに
素直に人気のあるやつをいくつか試して決めた方がいい。
人気のweb frameworkのスレッドは個別にあるしそこでいい。
全部の言語まとめて扱うと荒れる。
JSやJavaのスレッドはある
Java Web Application Framework総合 ver2
http://mevius.5ch.net/test/read.cgi/tech/1374399677/
C#は乱立してないから素直にASP.NET使えばいい
5chみたいな狭い世界で比較検討せずに
素直に人気のあるやつをいくつか試して決めた方がいい。
340デフォルトの名無しさん
2020/12/25(金) 13:37:24.42ID:pgbI6Wzr341デフォルトの名無しさん
2020/12/25(金) 13:55:33.58ID:8j4BK9K7 自演ぽいな
342デフォルトの名無しさん
2020/12/25(金) 14:03:41.81ID:l1B2LBGM そろそろ学習本が欲しいところ
アレ以外で
アレ以外で
343デフォルトの名無しさん
2020/12/25(金) 14:22:22.25ID:vv0pxJyE >>330
じゃ、Blazor Serverはリモート実行だから”メソッド共有”じゃないってことね
異なるプログラムで共通のライブラリを使うことを
”メソッド共有”って呼んでもなかなか通じないと思うよ
じゃ、Blazor Serverはリモート実行だから”メソッド共有”じゃないってことね
異なるプログラムで共通のライブラリを使うことを
”メソッド共有”って呼んでもなかなか通じないと思うよ
344デフォルトの名無しさん
2020/12/25(金) 14:24:09.99ID:JfQSa+1c >>343
ではなんと言ったらわかりやすい?
ではなんと言ったらわかりやすい?
345デフォルトの名無しさん
2020/12/25(金) 17:26:45.87ID:UA1/tVeu 共通するコードをライブラリ化して共有でいいんじゃないの
346デフォルトの名無しさん
2020/12/25(金) 17:48:04.91ID:tkA/KKSW バッと来て
グッと溜めて
ブワッ!
グッと溜めて
ブワッ!
347デフォルトの名無しさん
2020/12/25(金) 18:29:51.37ID:AIeBZh27 >>345
長いので1単語にまとめて
長いので1単語にまとめて
348デフォルトの名無しさん
2020/12/25(金) 19:21:45.07ID:uurLZNKt349デフォルトの名無しさん
2020/12/25(金) 19:30:34.79ID:UA1/tVeu 以前は asp.net は Windows Server でしか動かなかったからなぁ
今でこそようやく Linux でもまよもに動くようになって2年ぐらい?
twitter でも .net core で検索すると
一年前はほんと大して結果なかった気がするけど
最近は増えてきてるかな
まだまだこれからでしょ
今でこそようやく Linux でもまよもに動くようになって2年ぐらい?
twitter でも .net core で検索すると
一年前はほんと大して結果なかった気がするけど
最近は増えてきてるかな
まだまだこれからでしょ
350デフォルトの名無しさん
2020/12/25(金) 20:54:05.41ID:pgbI6Wzr >>348
あちらのほうってなんだよ
エンジニアならもっとはっきりかけよ
JSのbackendのweb frameworkか?
ろくなのないって俺が何度も書いてる。試す価値なし。
疑うなら自分で試してベンチマークとかとれよ
RailsもNode backendも遅くてゴミ
スクリプトは遅い。開発の生産性が低い
これは開発者の常識
高速なハードとソフトを合わせないとスケールするサイトにできない
あちらのほうってなんだよ
エンジニアならもっとはっきりかけよ
JSのbackendのweb frameworkか?
ろくなのないって俺が何度も書いてる。試す価値なし。
疑うなら自分で試してベンチマークとかとれよ
RailsもNode backendも遅くてゴミ
スクリプトは遅い。開発の生産性が低い
これは開発者の常識
高速なハードとソフトを合わせないとスケールするサイトにできない
351デフォルトの名無しさん
2020/12/25(金) 20:56:57.60ID:pgbI6Wzr >>349
昔はLinuxでというかライセンス無料で使えなかったのは大きいね。
JSやってるやつらはいまだにIIS, Windowsでしか動かないと思ってる。
あとclassic ASP時代のイメージのままの人も多い
昔はLinuxでというかライセンス無料で使えなかったのは大きいね。
JSやってるやつらはいまだにIIS, Windowsでしか動かないと思ってる。
あとclassic ASP時代のイメージのままの人も多い
352デフォルトの名無しさん
2020/12/25(金) 21:08:02.22ID:pgbI6Wzr 高速なコードで作りたかったらstaticに限る。
主要OSの主要な言語はstaticだ
Swift, Kotlin, Java
server-sideでKotlinもあり。
主要OSの主要な言語はstaticだ
Swift, Kotlin, Java
server-sideでKotlinもあり。
353デフォルトの名無しさん
2020/12/25(金) 23:41:23.33ID:Z26lwPgE サーバーとクライアントは同じ言語の方がいいんだろ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 拳銃24丁を中国から日本国内に輸入した疑い 中国人の46歳の男逮捕 1丁約3000円で販売 [七波羅探題★]
- サッカーW杯、日本代表戦は地上波で放送へ DAZNは全試合配信 [鉄チーズ烏★]
- 水深2mのホテルプールで大学生溺死、監視員なし 8千万円賠償命令 [蚤の市★]
- 【文春】AKB48『紅白歌合戦』出場へ! 前田敦子&大島優子が限定復活! 『ヘビロテ』など黄金期メドレー披露 神7の多くが出場 [冬月記者★]
- 有名な買い取り店にCD5000枚を持ち込んで売却した谷原章介、買い取り価格に後悔し30分後に戻るも…「ショックだった」 [muffin★]
- 渡邊渚『日本は男性の性欲に甘い国』「女性をどうやって騙して呼び出すか力説するおじさん」日本で多発する性的搾取について思うこと ★3 [Ailuropoda melanoleuca★]
- 【値上】首都高の料金、また値上げ!来年度にも一律10%ほど。他の高速道路も追随か [219241683]
- 【実況】博衣こよりのえちえちゆったり歌う枠🧪 ★2
- 👊👊👊👊🏡👊👊👊👊
- 【んな🏡】姫森ルーナ(・o・🍬)グラディウス配信中やぞ❗【ホロライブ▶】
- 【悲報】日本人、ガチでコメ離れしてしまいJAと農家さんが焦りまくるwww「お米券で高い米を買ってもらえるようにしてほしい」 [793117252]
- お前らの顔に体が牛のあれ
