【プログラミング部】欧米ではDDDが大流行。一方、日本ではMVVMどころか今なおMVCが全盛。なぜなのか?

このエントリーをはてなブックマークに追加
1番組の途中ですがアフィサイトへの転載は禁止です

ドメイン駆動設計(DDD)を実践する上で、C#のようなオブジェクト指向言語からF#のような関数型の言語へ移行すると、
振る舞いに着目できることとより宣言的なコードになることのふたつの利点がある、とLev Gorodinski氏は言う。
氏は最近のプレゼンでイベントソーシングとCommand-Query Responsibility Separation(CQRS)を例に挙げて説明した。

Lev氏は昨年、F#を使い込み、この8ヶ月はF#しか使っていない。氏のプセゼンではGreg Young氏のオリジナルの
CQRSのサンプルを使って、どのようにしてF#の実装がC#と違うのかを説明し、利点と難点を明らかにした。

典型的なオブジェクト指向言語でCQRSのサンプルを開発することで、Lev氏はいくつかの論点を見つけた。
例えば、冗長さやエンティティがイベントソースの実装に依存することだ。
F#の実装には利点がある、コードは少なくて済み、明確で、隠れた副作用なして関数が何をするのかはっきりわかる。

F#でDDDを実践するには利点がある。実装に必要なインフラではなく振る舞いに着目できる。つまり、CRUD的な
発想を捨てられるのだ。また、より宣言的なコードにできる。コードを書く代わりに宣言的な仕様をF#で実装できるのだ。
Lev氏が指摘するのは、このような利点はすべてDDDの利点であり、Eric Evans氏の本でもVaughn Vernon氏の本でも書かれている。

F#に移行したときの難点は新しいパラダイムだった、と氏は言う。始めたときはC#スタイルのコーディングをしてしまい、
これを克服して関数が他言語のプログラミングスタイルに移行するのには時間がかかった。関数型もオブジェクト指向も
サポートする言語なので、どちらで書けばいいのか判断が難しい場合もあった。
http://www.infoq.com/jp/news/2014/04/ddd-cqrs-fsharp
2番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 14:18:03.57 ID:xQLHfUCy0
3番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 14:18:33.13 ID:bI4yHmzP0
漢語で頼む
4番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 14:24:24.85 ID:mKkpq6Iz0
おまんこちんちん?
5番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 14:33:56.40 ID:e+LbLX4q0
新しい言語のコンパイラを作成するのに、他の言語を使わなくてはならない悲しさ・・・
6番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 14:35:01.77 ID:a2IFDuDn0
う〜ん、よくわかんないなぁ
誰かわかりやすく簡潔に説明してくれ
7番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 14:42:55.05 ID:Qga7Lt7V0
断言するが後10年はMVCが日本では大半を占める
8番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 14:52:25.50 ID:zrklU7bD0
DDDはServiceStackを使ってみるのが一番手っ取り早い。
文書で読んでもチンプンカンプンすぎる。
http://www.slideshare.net/wilfrem/service-stack
9番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 14:53:49.26 ID:2UunxXCF0
イベントドリブンとは違うの?
関数型はオブジェクト指向じゃないのか
11番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 15:13:19.52 ID:VNQBDZsq0
日本の開発者「甘いな。MVCが普及しているとでも思ったか?」
12番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 15:22:09.86 ID:wnjDEgV30
android上で使える言語ってpythonだけ?
13番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 15:32:45.44 ID:yVJZVPc60
Haskellってどうよ
14番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 15:36:50.18 ID:w7FTt/AA0
あー知ってる
中川翔子がCMしてるやつでしょ
Daredemo Daisuki na Doutei
これから10年はjavascriptでいいよ
17番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 15:45:53.99 ID:pbmhD2Do0
>>12
javaだろ
18番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 15:50:22.68 ID:kszyXP+H0
dddちゅうのは昔流行ったmapreduceみたいに、データをパイプラインに通して最終的な出力を得るのを中心に置く手法なのかな
その意味だと関数型プログラミングを持ち上げてるのも納得行く(不完全とはいえworkflowがあるcsをdisってるのはちょっと不適当な気もするけど)
なにDDDて
20番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 16:15:23.02 ID:zlsim1g20
奈須働け
三巻待ってる人間が一杯いるんだぞ
21番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 16:22:14.35 ID:ohl1Pe6N0
ようやくDDDかよw

プログラミング板で俺がその話題振ったのもう十年以上前だぞ。
ギヒョーのSD誌のMVC議論みたいのは
現場では20年近く前の初期のWeb版スイーツ実装の時からの話題で
情報システム板のフレームワークスレで扱ったネタだね。

おまいらの成長が遅過ぎて、おいら退屈だよ
MVVMとか.NETで10年前にやってたことを、今更AngularJSすごいとかなに言ってるんだって感じはする
しかも、本人、自分を最先端と思ってるし
23番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 16:59:01.97 ID:ohl1Pe6N0
元を正せばJavascriptを作ったネットスケープや、Java周辺で20年前からやってた話の延長線上。.NetはそれをMicrosoftが真似るために作ったインフラ
ドキドキダイナモ
25番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:04:33.86 ID:9yXHMD2Q0
WPFのUIデザインをもっと直感的にさせろ
あれだけ使いやすいFormアプリケーションのデザイナが有りながらどうしてWPFはあのザマなんだ
26番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:11:20.46 ID:Vk4JCdxQ0
DDDとオブジェクト指向は別だろ?
27番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:15:10.75 ID:E40ZO/Fwi
テスト駆動型とはなんだったのか
28番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:24:38.85 ID:MNPoJ7sJ0
オブジェクト指向最高!

でもこれオブジェクト指向にするの難しくないか?

強引にオブジェクト指向を適用したら歪な作りになった・・・

プログラムをガチガチのオブジェクト指向にするのは限界がある。

「ドメイン」というプログラムに依存しない上位概念を定義して、
そこさえキッチリ定義していたらオブジェクト指向から外れてもOKって事にするよ!
29番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:25:01.28 ID:RBh+TMii0
30番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:26:05.92 ID:RBh+TMii0
あー間違えた
data driven と勘違いしてた恥ずかしい
31番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:39:57.82 ID:ohl1Pe6N0
>>26
オブジェクト指向(OOA/OOD)のドメインオブジェクトやモデルと、RDBや業務アプリに代表されるデータ指向(DOA/DOD)の折り合いを付けた感じでしょ。

かつてWebやクラサバでは、三層アーキテクチャという過度に単純化されたソフトウェア構造がバズワードになっていたけど

現実の業務アプリ(ヤダヤダ)はそんな形じゃなくて下記のような多層の階層化アーキテクチャとして実現されている
・ユーザーインタフェース
・アプリケーション
・サービス層(サーバ)
・ドメイン層
・パーシステンス層(DB)
DODではドメイン層をビジネスロジックと解釈するみたいだけど
DDDではドメイン記述言語を使ってドメインの性質や振る舞いを正確に記述して
それをコアにソフトウエアを作る話じゃなかったっけ。
32番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:43:37.32 ID:ohl1Pe6N0
上記でアプリケーションは、アプリケーションサーバだったり、クラサバのFATアプリケーションだったり、Webブラウザや専用アプリとサーバにまたがるリッチインターネットアプリケーションだったり、いろいろ。
こいつら書くネタがなくて困ってるだけなんだろ
34番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:53:11.85 ID:ohl1Pe6N0
知らん。

かつてオブジェクト指向コンサル会社を立ち上げた人の所に、十年位前に話持ち込んでなんとかしようと思ったけど
先方は「もうオブジェクト指向だけじゃ喰えない、オブジェクト指向ビシネスオワター」状態で話が通じなかった。
歳はほんの少ししか離れていないのに、大きな世代間ギャップを感じた。

開発者主導のムーブメントが国内で盛り上がるちょっと前の荒涼とした時代
35番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 17:54:41.02 ID:Q+Et11/20
設計のなんとか手法ってオカルトっぽい感じがして、いまいち取り組む気がしない
36番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:00:16.03 ID:2VOKcCztO
実際の業務だと、こんな学術的要素よりも
いかに普及してるかが重要なんで結局CとかJAVaから置き換わらないよ
37番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:10:10.51 ID:JySim8ez0
なんか問題があって解決する手段として採用するならともかく
これが最新の流行りとか言って何かを使ったり逆に古い方法にしがみついたりするのはどうかと
38番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:13:02.42 ID:F3SMAMu/0
この手のにどっぷりはまれるのは実際には作らない人でしょ
そゆこと
40番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:36:23.32 ID:ohl1Pe6N0
>>38
業務アプリやサービス開発にドップリ浸かりながら理念を追求する超人も居れば、
コンサルとか研究所で斜め上から関わるひとも居るけど
ツールとか実装を示せないとお話にもならない世界だから、バリバリと設計やコーディングする手足を持ってるのが前提だね。

日本のメーカーのSEには勉強会と称して原書読みしたり最新流行追い掛けるだけの薄っぺらいバカが多いから、机上の空論だと思い込んじゃう人も居るんだろうけど。
充分な知性と経験があれば、必然性は判るだろう
41番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:37:31.01 ID:ohl1Pe6N0
>>36
学術じゃなくてエンジニアリングだよ。
42番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:41:07.23 ID:F3SMAMu/0
いつも思うけどスレ立てに使うIDと使い分けてるようにしか見えない
>>36
JAVaとかタイポしている時点であれだが、普通にギョームの話だ
44番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:43:45.66 ID:hdNLeKMP0
F#ってまだ息してたんだ
それが一番の驚き
45番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:47:06.96 ID:sC8qN3UE0
>>40
おう。コンサル会社に転職したはずなのにバリバリ毎日コード書いてるぜw

仕様や構造設計は東大卒のDr.の上司がやってる。俺は高卒w(とはいえOS屋)
46番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:50:55.16 ID:ohl1Pe6N0
>>42
言いがかりかよ。くだらない
47番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 18:56:16.95 ID:z66RZRKF0
どんだけだしwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
48番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:01:24.83 ID:CYjDtdnr0
なるほどなるほどー
俺はSEXだわー
49番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:05:49.05 ID:E40ZO/Fwi
アメリカってzend社みたいなのも日本でいう下請け土方仕事してるの?
50番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:07:43.28 ID:TLUKDe/l0
ただの洗練されたDI
51番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:09:45.78 ID:ohl1Pe6N0
>>50
(キリッ
52番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:12:06.66 ID:ohl1Pe6N0
ただの洗練されたドメイン分析主導のオブジェクト指向開発方法論だと思うわ。
>>52
   / :/  ...:/:′::/ :.:.:.....:./.:/:!:.:.:.i:..!:.:.....:{:.:.:.:.:.:ハ    /
.  /.〃/:...../:′'.::|:: i .::.:.:.:| :i:_{__|:.|:.:.:.i :|:.:.../  ̄`ヽ/      ふ
  '://:′::/斗:十 |::.::.::.:.:.:.: :}}ハ ::ハ:{:≧ト|:::/  な       な な  ぅ
 {//::{: /|i:八::{=从:{ i::::: :N孑弐{ミト∨:::|::′  る.     る .る (
.  i :从 ::::{イァ:う{ミト爪ト::::. ! ん):::::ハヽト、:{:|    ほ      ほ ほ  )
.  |.::| : \《 { ::::::: }  ヽ\{ { ::::::::: リ | :::ヽ!   ど     ど ど む
.  | ::!::|ハト.乂__ノ       ー '  | :::<    |
 八::| :|::::i /i, ,     ,     /i/ , }:::}i::人   __ ノ\
  (__):::l:::::.                 i.:/::::::::厂「{:::::::{    ` ー― ´
 / :{ | :V:入     { ̄`ソ      }/}::::}/::::::l.|:::::::|
 { ::|人::∨::::>...   `      . ィ升|:::/::::::::八::::::{
54番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:23:08.51 ID:TLUKDe/l0
なあ、そんなに依存性を小さくしてどうするつもりだよ
ついでにその高度に洗練された設計手法とやらに依存してるお前の頭も設計し直したらいいんじゃないか
55番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:25:37.83 ID:8ATGZuSr0
詳しい人が多そうだからここで聞こう。


先ほど嫌儲にスマホの専ブラでアクセスした時、
スレ一覧が表示されるべき画面にJavascriptのコードが表示された。

その中に
http://*******/yad.js
ってリンクがあり、ググってみるとマカフィーさん曰くウィルスだった。

その後、ニュー速でも同じ現象を確認。+やVIPは無事だった。
数分間その現象が続いたけど、板一覧を更新したら普通に戻った。

同じ現象に遭遇した人いる?
専ブラだったから不発だったけど、
普通のブラウザでアクセスした人がどうなったのか気になる。

環境
OS:iOS7(iPhone)
ブラウザ:graffitipot
56番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:27:19.13 ID:C0tFls8/0
ついに3巻を出せる環境が整ったな
別にそれでいいだろ
おまえプログラミングで人の命でも扱うのか?シャトルでも作ってんのか?
ってレベル。
58番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:27:25.75 ID:Qrrl7rxs0
>>55
           YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね
         /                  \
【ググった?】                       NO → なら、ねぇよ
         \
            NO → 死ね
>>55
それこの前報告スレが嫌儲に立ってJim-sanが直したと思う
最近馬鹿ほど上から目線で語るようになったよな
61番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 19:54:17.05 ID:8sgBzU/B0
>>59
ありがとう。機知の問題ならいいや。
pic.twitter.com/iTX4RE2deB
何でDDDが普及するとMVVMが消えるの?
DDDとMVVMはどちらかというものではないよ。
MVVMはModelへの関心が一番薄いし普通に共存するんじゃね?
これってどちらかというと貧血オブジェクト問題とかそっちの解決に聞こえる
65番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 20:15:04.98 ID:1OoX+lfE0
貧血オブジェクト?
ドメインモデル貧血症な。

分析設計手法としては、分析レベルのドメインオブジェクトから、実装レベルのモデルオブジェクトへの不連続な飛躍を避けるのが目的かなぁ。
記述言語に純関数型言語F#を使うのは、内部状態を持たず宣言的記述が可能という関数型言語のメリットを生かしたいのと
あと内部状態をパーシステンス層(DB)に外出しする役割分担を明確にしたい、ってはなしかと。
66番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 20:21:57.03 ID:1OoX+lfE0
某証券や某証券システムコンサルのアレは

大昔の業務電算化でコード化されたCobolの手続きをただオブジェクト指向言語に書き換えるだけの貧血オブジェクト・プロジェクトだったよなぁ。しかも、コーディングすらできないのか百人単位で雁首揃えて、ここは地獄かと思ったわ
67番組の途中ですがアフィサイトへの転載は禁止です:2014/04/10(木) 21:14:56.06 ID:DgovEc1+0
元を辿れば大体Smalltalk
68番組の途中ですがアフィサイトへの転載は禁止です
シミュラ、後ろ後ろ