Vue vs React vs Angular vs Svelte Part.11 (452レス)
Vue vs React vs Angular vs Svelte Part.11 http://mevius.5ch.net/test/read.cgi/tech/1660969032/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
311: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 01:47:21.26 ID:xSeXse3x0 極論ではなく以下の構成が最適なのはいうまでもない DBマイグレーションツール + データベース接続を抽象化するアダプターモジュール + SQLクエリービルダー これこそがモダンなインターフェースなのである http://mevius.5ch.net/test/read.cgi/tech/1660969032/311
318: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 13:04:00.66 ID:xSeXse3x0 >>313 SQL理解できないのにORM使おうというのがそもそも間違いだからな チューニングとか別の人がやるのか?って話 ふざけんなと あと生成したSQLが本当に求めているものなのかのチェックも必要 SQL生成ごっこがしたいなら好きにしたらいいが >>315 それと最近はデータ分析用にかなり複雑なSQLを投げることが増えた 別途バッチにすることも多いがどうしてもリアルタイムで実行しなきゃならんこともあったりして これが厄介なんよね 彼らの実行するクエリはもう型とかぐちゃぐちゃ http://mevius.5ch.net/test/read.cgi/tech/1660969032/318
320: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 13:16:26.30 ID:xSeXse3x0 >>314 サーバーサイドが型合わせ不毛だよねと実質捨てた部分を今どのように再開発するのか楽しみではある 「先」に進めてくれるのだろうか ちなみに改めてORMを調べてみたがやはり状況は大して変わっていない模様 SQLクエリービルダーは大抵の言語でかなり進化しているが型のマッピングは程々にするという妥協案 Haskellが1番面白かった 以下のようにモナディックで型安全なSQLが書ける ここまでやれるやらありか?とは思ったが select $ from $ \person -> do where_ (person ^. PersonAge >. val 30) return person http://mevius.5ch.net/test/read.cgi/tech/1660969032/320
322: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 16:25:50.06 ID:xSeXse3x0 ちなみにJavaやC#のORMで出た型付けの結論は 「オブジェクトのプロパティと実行するSQLの型を手動でマッピングする」です マッピングは動的に変えられるので汎用性がある テーブルの型とプログラミング言語の型を直接マッピングしないというのがミソ http://mevius.5ch.net/test/read.cgi/tech/1660969032/322
323: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 16:38:12.07 ID:xSeXse3x0 簡単に言うと実行するSQLごとに型付けをする感じ これだと同じテーブルで型が変わる場合などでも対応できる PrismaのTypedSQLもこれに近いものなのではないの? Java界の奴らが10年以上かけてたどり着いた結論だから多分こうなると思うよ http://mevius.5ch.net/test/read.cgi/tech/1660969032/323
326: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 17:47:58.09 ID:xSeXse3x0 >>324 違う 単にSQL生成を目的とするだけのモジュール railsにおけるArelとか 以下のように複雑なSQLも構築可能 Task.where( Arel::Nodes::NamedFunction.new( 'TO_CHAR', [ Task.arel_table[:created_at], Arel::Nodes.build_quoted('YYYY') ] ).eq('2023') ) # => SELECT "tasks".* FROM "tasks" WHERE TO_CHAR("tasks"."created_at", 'YYYY') = '2023' 大抵の言語やフレームワークに似たようなモジュールが存在してそれを使ってSQLを作るというのがここ数年の流れ もちろんN+1問題を容易に作ってしまうので結局実行時にどのようなSQLが生成されるか?は見なくてはならない http://mevius.5ch.net/test/read.cgi/tech/1660969032/326
334: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 18:43:50.27 ID:xSeXse3x0 今回の調査で色々と調べたけど javaのJOOQってORMやべーな とんでないぞこのライブラリ 以下のように型がコロコロ変わる場合でもちゃんと書ける Fieldクラスを抽象化することで静的な型チェックが可能になっている この発想はなかった DSLContext create = DSL.using(configuration); Field<String> caseField = DSL.case_() .when(field("age", Integer.class).gt(18), "adult") .when(field("age", Integer.class).lt(18), "minor") .otherwise("unknown"); create.select(caseField).from("users").fetch(); http://mevius.5ch.net/test/read.cgi/tech/1660969032/334
335: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 18:45:39.57 ID:xSeXse3x0 caseってデータ分析ではめちゃくちゃ使うのだけど これがこんな感じで書ける 素晴らしい http://mevius.5ch.net/test/read.cgi/tech/1660969032/335
336: デフォルトの名無しさん (ワッチョイ 63f0-bFHd) [sage] 2024/09/29(日) 18:47:22.71 ID:xSeXse3x0 >>331 昔は社内にオラクルデータベースの番人みたいなおじさんがいたなあ http://mevius.5ch.net/test/read.cgi/tech/1660969032/336
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.026s