ニコラむ・グレブネフCUSTIS-DDDずは -ADD䌚議からのレポヌト

ADD Application Developer Daysずいうカンファレンスがあり、゜フトりェア開発のためのあらゆる皮類のアヌキテクチャの郚分に぀いお議論したいず思いたす。通垞、これらの郚分はxDDDDD、TDD、MDDなどで終わりたす。



たずえば、前回の䌚議で圌らは質問をしたしたDDDDomain Driven Designずは䜕ですか

そしお、 CUSTISの ニコラむ・ グレブネフ -立ち䞊がっお答えた。



レポヌト動画









ここからビデオをダりンロヌドできたす0.73 GB



レポヌトのプレれンテヌション





レポヌトテキスト



DDDDomain Driven Designずは䜕ですか



これは、開発方法を定矩するシステム、ビュヌ、アプロヌチのセットです。 2002幎に、 Martin Fowlerは圌の著曞、Enterprise Application Architecture Templatesをリリヌスしたした。 この本は珟圚、゚ンタヌプラむズアプリケヌション開発のための叀兞的なアヌキテクチャです。 特に、Martinは、プロゞェクトのビゞネスロゞックを敎理するための3぀のパタヌンを提䟛したす。



トランザクションシナリオは、すべおのビゞネスロゞックをいく぀かのビゞネスオペレヌションに分割するビゞネスロゞックを線成する方法です。実際、䜕らかの方法で自分の内郚に配眮され、入力でデヌタを受け取り、出力で結果を取埗し、デヌタベヌスの゚ントリなど、システムのいく぀かの倉曎。







ここに、ビゞネスロゞックのこのような構造がありたす。かなり耇雑なロゞック、倧量のアプリケヌションを䜿甚するず、このメ゜ッドはうたく機胜したせん。パスタコヌド、「貌り付けの保存」などが必芁になるためです。

テヌブルモゞュヌルは少し異なるアプロヌチです。 それは、クラス、私たちにずっお関心のある抂念のテヌブル、実際にはデヌタベヌステヌブルを指定する゚ンティティを遞択するずいう事実にありたす。







すべおのクラスには䜕らかの操䜜があり、既に䜕かを知っおおり、䜕かをカプセル化しおいたす。 原則ずしお、デヌタベヌスずの䜜業をカプセル化したす。 特に、メ゜ッドには、远加、削陀、すべおの取埗、その他のメ゜ッドが含たれる堎合がありたす。 さお、各゚ンティティで、テヌブルからク゚リを実行しお䜜業したす。 明らかに、テヌブル間の接続はなく、プログラム内で䜕らかの方法でテヌブルを手動で構築したす。 実際、誰かがMS Visual Studioで䜜業した堎合、たたは䞀般にMSテクノロゞヌで䜜業した堎合、これらはRecordSetずDataSetであり、2008幎たではデヌタを操䜜するための䞻芁なテクノロゞヌでした。

さお、 ドメむンモデル 。 ここで瀺した以前のオプションずは異なりたすが、ここでは本栌的なドメむンモデルを構築しおいたす。 動䜜する゚ンティティ、他の゚ンティティず察話する゚ンティティ、明瀺的な関係を持぀゚ンティティなどで構成されたす。 この図は、ラむブラリなどの自動化ドメむンのモデルを瀺しおいたす。







ドメむンモデルは䞻に゚ンティティで構成されたすが、サヌビス、倀オブゞェクトなど、さたざたなオブゞェクトがただありたす。 さお、サブゞェクト゚リアのオブゞェクトモデルに぀いお話しおおり、䌁業のIPでは、ほずんどのサブゞェクト゚リアにオブゞェクト構造があり、その倧郚分が゚ンティティで構成されおいるこずがわかりたす。

゚ンティティは、アむデンティティを持぀抂念です。 ぀たり 各゚ンティティむンスタンスは識別可胜で、他の゚ンティティむンスタンスずは異なり、オブゞェクトの状態ずその動䜜をカプセル化したす。 これは、オブゞェクトの状態を倉曎する、䞀貫性のない状態にする、たたは䜕らかの方法で動䜜させないようにする方法をオブゞェクトに通知するこずなく、決しおできないこずを意味したす。

このテンプレヌトは、耇雑なIPでの䜿甚に最も適しおいたす。 䞻題領域を最もうたく構成し、理解に貢献するからです。

2003幎のこのテンプレヌトの開発ずしお、 Eric Evans は「Object-Oriented Design」ずいうタむトルの本を出版したした元のドメむン駆動蚭蚈の構造化された耇雑な゜フトりェアシステム。 この本には、サブゞェクト領域ずしおのそのようなテンプレヌトの説明だけでなく、そのようなセット、ビルド、およびサブゞェクト領域のこのモデルを最終的に取埗する方法を瀺す方法のセットも含たれおいたす。 これは、゚リック゚ノァンスがDDDに぀いお語ったものです。

これは、第䞀に、 知識の凊理です 。 私たちが䞻題分野に぀いお持っおいる知識、それらは分析される必芁があり、実際の䞻題分野はそれらから遞択されなければなりたせん。

第二に、それは単䞀の蚀語です。 どのモデルも、独自の蚀語を圢成する甚語を提䟛し、それを䜿甚しお䜜業し、話し、曞きたす。

モデルごずの蚭蚈Model Driven Design 。 これはDDDの最も技術的な郚分です。 ぀たり、サブゞェクト゚リアの発明モデルをコヌドに盎接マップしたす。぀たり、他のモデルではなく、コヌドにマップしたす。



さお、これらの各郚分をさらに詳しく芋おみたしょう。 名前から刀断しお、DDDはデザむンであるず考えられ、そこからモデルを取埗したいず考えたす。 実際、これはやや間違っおいたす。 そしお䞀般的に、これは䞍可胜だず蚀えたす。 すべおがもう少し耇雑だからです。 サブゞェクト゚リアに来おそれを自動化する堎合-どのモデルがあるかはただわかりたせん。 さらに、圌女ず䞀緒に働く特別なアナリストでさえ、圌らがどのモデルを持っおいるのかを知りたせん。 さらに、䜕らかのモデルは必芁ありたせんが、IPのモデルである必芁がありたす。ほずんどの堎合、䞀般に受け入れられおいるドメむンモデルずは少し異なりたす。 より明確に制限され、より正匏に定矩された新しい抂念たたは他の抂念がありたす。したがっお、DDDに埓っお開発するずきに最初に行う必芁があるのは、察象分野の知識の凊理を開始するこずです。 サブゞェクト領域の衚珟を自分で䜜成した埌、モデルを蚭蚈する必芁がありたす。モデルを䜿甚しお盎接䜜業したす。 モデルが蚭蚈された埌、再びサブゞェクト゚リアに戻り、より詳现に、より詳现に、新しい゚ンティティの匷調衚瀺、明瀺的な暗黙の䜜成などを怜蚎し始めたす。最埌に、リファクタリングするず、再び知識の凊理に戻りたす。 、再床、䜕をしたか、䜕を倉曎できるかを分析し、その埌モデルを䜜成したす。 そしお、そのような反埩プロセスが行われたす。







知識凊理ずは䜕ですか


゚リック・゚バンスが定矩しおいるように、それは必芁な詳现を考慮に入れた抜象的な抂念の怜玢です。

明らかに、IPの開発に必芁です。

誰がこの知識凊理を実行したすか



圓然、開発者はこのプロセスを指瀺したす。これは実際に必芁だからです。 そしお、圌らはシステムがどのように配眮され、それをどうするかを正確に知っおいたす。 察象分野の専門家は、それぞれがどのようにすべおを敎理したかを䌝え、必芁な説明をしたす。



䟋

以䞋に䟋を瀺したす。 モデルリサむクルずは䜕かを説明したす。 これが最も簡単なタスクです-特定の月の埓業員の絊䞎を蚈算したす。 これに遭遇したこずのある人は、おそらく絊䞎が私たちが望むほど簡単に蚈算されないこずを知っおいたす。

䞻題の専門家は、



月の就業日数に察する就業日数の比率に、月の就業日数に察する埓業員の絊䞎の比率を掛けたもの





モデルを構築しおいたす







明らかに、そのフレヌズには、埓業員、月、就業日数、埓業員の絊䞎などの抂念がありたす。

専門家に勀務日を尋ねたす。 答えが埗られたす。

埓業員が職堎にいたが、ただ蟞めなかった勀務日。







新しい゚ンティティがありたす。それはある皮のDAYです。明らかに、それははっきりず目立っおおり、埓業員ず月ずの関係を持ち、「仕事/䌑日」、「珟圚」ずいう属性を持っおいたす。

さらに、ドメむンスペシャリストは、埓業員がただ䌑暇を取っおいるか、病気の䌑暇を取り、そこですべおが異なっおいる、率が異なる、その他の問題があるこずを思い出したす。







私たちはそのようなモデルを描きたすが、私たちに䜕かが間違っおいるこずがすでにここに芋えおいたす-倚くの接続。 質問するのは理にかなっおいたす。 たた、䌑暇䞭であろうず病気䌑暇䞭であろうず、埓業員が職堎にいたこずをどのようにしお芋぀けるこずができたすか。 そしお、スペシャリストは「タむムシヌトから」ず答えたす。 圌は圌にずっお絶察に自然だったので、圌は圌に以前に蚀及しおいたせんでした。 これは別の蚀及を必芁ずするものではありたせんが、ここでは知識を凊理し、システムを分析するこずにより、そのような゚ンティティを特定したした。したがっお、埓業員がいる堎合、取埗するモデルはより理解しやすく、次の機胜を持぀タむムシヌトがありたす以䞋の方法











そしお、このレポヌトカヌドには、これらの日数のカりントに関連するすべおのロゞックがカプセル化されおいたす。 内郚はすべお非垞に耇雑に線成されおいるため-ずにかく、これは単玔化されたモデルです。 そしお、これらすべおをタむムシヌトにカプセル化し、その埌、私たちは明確に特定し、明確に蚀ったので、専門家ず話すずきは専門家ず冷静に話すこずができたす。



単䞀の蚀語は、DDDの結果ずしお埗られる蚀語です。 これは、すべおのプロゞェクト参加者が互いに通信する蚀語です。 これは、䜕らかのモデルを構築し、それを捚おお、ずにかく、いく぀かの新しい甚語で、指で䜕かを説明しお話し始めるずいう意味ではありたせん。 いいえ、私たちは䞻題領域のモデルを持っおいたす。それは、その甚語、関係、行動においお話し、技術的なタスクの構造などに぀いお話し合うべきです。 この蚀語は、サブゞェクト領域のモデルに基づいお構築されおおり、明確にそれに埓う必芁がありたす。 たた、ドメむンモデルもチェックしたす。 䜜成したサブゞェクト゚リアのモデルが非垞に耇雑で、蚀語で䜿甚するのが難しい堎合、他の甚語や他の文を垞に䜿甚する必芁がありたす。これは、モデルが正しく䜜成されおいないこずを意味したす。 良いモデルがあるかどうかを確認する非垞に良い方法は、その甚語をロシア語で䜿甚するこずです。 このモデルに぀いお話しおください。そこに䞍快感がなければ、すべおが順調です。 そしお、このモデルはすべおのドキュメントで䜿甚されたす。 ぀たり 単にモデルを構築しお話しおいるだけではありたせん。 いいえ、TK、芁件、システムアヌキテクチャなどを含む公匏ドキュメントを䜜成するのは、これらのモデルに基づいおいたす。 そしお奇劙なこずに、このたったく同じ蚀語をコヌドで䜿甚する必芁がありたす。 ぀たり 人ず話すずきにこのモデルをロシア語で䜿甚した堎合、コンピュヌタヌず話すずきに同じモデルを䜿甚する必芁がありたす。

ドメむンモデルがあり、甚語を生成したす。 抂念、゚ンティティ、および動䜜で構成されおいるため。 蟞曞にある「甚語」ずいう蚀葉の定矩の䟋を次に瀺したす。



甚語ずは、特定の明確に限定された意味を持぀科孊技術甚語の単語である甚語のシステムです。



これは、蚀語ずいう蚀葉によっお、このモデル、぀たり盞互に通信するために生成された蚀語を䜿甚できるこずを意味したす。 たた、甚語の意味が明確に制限されおいるずいう事実により、これらの甚語をコヌドで䜿甚する機䌚が䞎えられたす。



モデルによる蚭蚈。


最も難しい郚分はDDDです。 技術的な理由で、あらゆるものの䞍完党なツヌル、思考のthinking性、その他の倚くの理由により困難です。 これがモデル蚭蚈ですEric Evansによる。

モデルによる蚭蚈モデル駆動型開発 - プログラム芁玠ずモデル芁玠の特定のサブセット間の最も正確な察応が芳察されるアヌキテクチャを蚭蚈したす。

これは、ドメむンモデルがあった堎合





-そしお、私たちは圌女のためにプログラムを䜜り始めたす。







そしお䞀床-私たちはちょうどそのようなモデルを取埗したす。 䞭倮には、ビゞネスロゞックがありたす。 たったく異なる抂念が䜿甚されおいるこずがわかりたす。 ここに、ある皮のデヌタセットがありたす。 デむトラむダヌ、チヌム、コネクタヌ、およびドメむンモデルで蚀及されおいなかったその他のもの。 察象地域の人々、このプログラムを曞いおいる人々ずこの蚀語を話そうずするず、あなたが䜕を意味するかを非垞に長い間説明しなければならないずいうこずではありたせん。

そしお、ここには、1぀のモデルず別のプログラムがあるこずがわかりたす。 プログラムモデルは同じ抂念デヌタセット、接続などずドメむンモデル曞籍、著者、出版瀟、読者などで動䜜したす。

これは、ドメむンモデルを砎棄する必芁があるこずを意味したす。もちろん、それは有甚であり、ドメむンモデルを構築した人々はドメむンをよく知っおいたしたが、その関連性はすぐに倱われたす。

しかし、これはそうではなく、ドメむンモデルの適甚範囲ははるかに広くなっおいたす。 ゚ノァンスの定矩から



モデル駆動型蚭蚈MDDは、オブゞェクト指向プログラミング蚀語ぞの䞻題蚀語の盎接投圱です。



぀たり モデルにAuthorの抂念がある堎合、これは間違っおいたす。コヌドでは、これはデヌタセットの文字列であり、型付けされおいなくおも明瀺的には存圚したせん。



䟋を挙げたしょう。 次のタスクを䜜成したしょう。

指定された日付から、埓業員をナニットに登録したす。


䌚蚈システムの䞀般的なタスクであり、䞀郚の郚門が履歎を保持しおいるこず、ナニットの埓業員を獲埗できるようにする必芁があるこずは容易に理解できたす。 ナニットには、日付に埓業員を登録するなどの機胜がありたす。 通垞そうであるように、コヌドでこれを曞いおみたしょう。







デヌタセットでの䜜業も匕甚しおいたせんが、いく぀かのORMに基づいたモデルであり、Linqをサポヌトしおいるものの、実際のものずは若干異なりたす。 ご存知のように、プログラマヌなら誰でもこれを行うこずができたす-埓業員を登録するためにデヌタベヌスに保存されたすべおの叀い間隔を取りたす-特定の日付から始たるすべおの間隔を取り、削陀する必芁がありたす。 同時に、䜕が起こるかを芋おください。 削陀が衚瀺されるだけでなく、削陀が行われる前に、DeparmentHistroyRepositoryがあるためです。 おそらく、「リポゞトリ」の抂念は、倚少なりずも䞻題領域に統合できたすが、実際にはテヌブルであり、郚門ごずの情報を保存するこのような新しい゚ンティティは、モデルにずっおすでに非垞に悪いものです。

次に䜕をしたすか 次に、埓業員がナニットで働いおいないこずを䌝えるために、圌が働いおいた1日前に存圚しおいた前の期間を完了する必芁がありたす。







ドメむンモデルには、select、where、from、from、DataEnd、DepartmentHistoryRepositoryなどの単語がたったくなかったこずを認めなければなりたせん。 これらの抂念はコヌド内にのみあり、すでに明らかな矛盟が芋られたす。 同時に、これらの操䜜の䞡方がタスクにたったく存圚しないこずに泚意しおください。これらは、技術的な必芁性が原因です。

そしお最埌に、タスク自䜓を行い、本質を䜜成したす







同時に、この゚ンティティを䜜成するのは䞀般的なナニットではなく、厳密に蚀えば、このナニットは誰かにクレゞットされたすが、䞀郚のDepartmentHistoryRepositoryでは、プログラマだけがこれを知っおおり、すべおが可胜ではない可胜性が高いこずに泚意しおください。 次に、別の名前でメ゜ッドを呌び出したす-"新芏䜜成"CreateNew-なぜ新しいのですか 䜕も䜜成せず、単にその人を登録したす。

しかし、モデルドラむブデザむンの堎合、次のようになりたす。







ここで、たずえば-そのように。 ここでは、特にロシア語を䜿甚しお、ドメむンモデルずコヌドで䜿甚するものずの察応を可胜な限り最倧限に近づけたした。 さらに、䜕らかの皮類のロゞックが存圚する堎合でも、このメ゜ッドにカプセル化し、より詳现に開発する必芁がありたす。 次に、このスタむルですべおのコヌドを蚘述したす。 第䞀に、プログラミング蚀語に慣れおいない人でも簡単に読むこずができたす-それは倚かれ少なかれロシア語で曞かれたす。 ロシア語ずは異なり、Cは括匧、コンマ、ピリオドなどが異なりたす。 さたざたな間投詞、前眮詞、その他の関連語に眮き換えられたす。

DDDずは䜕かを簡単に説明できるずいいのですが。 これは、サブゞェクト゚リアを開発する際の知識の凊理であるこずを思い出させおください。これは、私たち党員が垞に盞互に通信しなければならない単䞀の蚀語です。 ドメむンベヌスのモデリング。぀たり、このモデルを開発しただけでなく、コヌドに盎接実装するこずを意味したす。



なぜDDDが必芁なのですか。


これは耇雑さに察凊する効果的な方法です。 実際、耇雑なシステムでは-優れたドメむンモデルだけで耇雑性に察凊できたす。 そしお、コヌドに盎接実装する堎合、プログラマヌ、アナリスト、ドメむン゚キスパヌトがすべお同じ甚語で䜜業する堎合、プログラマヌは垞に「リヌダヌ䜜成者」からデヌタセット、レコヌドセットに倉換する方法を考える必芁はありたせん。 これは重芁であり、プログラマヌがたったく考えおはならないこずではなく、明瀺的に分離するだけです。 䜕ずは別に。 そしお、これは単䞀の蚀語です。 この単䞀の蚀語には盎接マッピングコヌドがあるため、このこずの䟡倀を過小評䟡しないでください。たあ、この蚀語で話すほがすべおのフレヌズは、玔粋に投機的であっおもすぐに確認できたす。 コヌドで実装するこずは可胜ですか 原則ずしお、コヌドが他のいく぀かの甚語で蚘述されおいる堎合、かなりの時間がかかりたす。 さらに、単䞀の蚀語自䜓、蚀語自䜓の存圚により、芁件の開発を倧幅に改善できたす。 かなりよく知られおいる事実は、プロゞェクトの品質ずプロゞェクトの速床がスコヌプの適切な定矩に䟝存しおいるこずです。ほずんどの郚分はそこにありたせん。぀たり、1぀の甚語がなければ䜕をするか、垞に定矩したせん。私たちが話しおいるこずに぀いお再亀枉するたびに非垞に困難です。

そしお、これらすべおが最終的に開発ず保守の䜎コストをもたらしたす。これはもちろん、䌁業情報システムの開発においお非垞に重芁です。



倚くの利点を説明しおきたした。 そしお、なぜDDDを䜿甚できないのか、なぜそれを拒吊できるのか いく぀か問題がありたす。 すべおが私たちが望むほど良いわけではありたせん。



短所DDD


組織の問題、たずえば分析ず蚭蚈の分離、それは䞡方ずも明瀺的である可胜性がありたす-分析にたったく参加しおおらず、分析に参加しおいなくおも、明確にではなく、人の頭だけにあるアナリストず開発者がチヌムにいたすが、圌自身のために、圌は最初にある皮のモデルを分析しお構築し、次にそれを実装しようずしたす。 そしお、圌はそれを原則ずしお䜕らかの圢で実珟しようずしおいたす。 この堎合、DDDを䜿甚しお、モデルをどのように実装するかをすぐに考えなければなりたせん。 たた、たずえば、この圢匏ではモデルを実装できないこずを理解しおいる堎合、パフォヌマンスは非垞に重芁です。 次に、これらの新しい抂念を明瀺的に、明瀺的に、明瀺的な甚語で玹介し、それに基づいお顧客やプロゞェクトの他のすべおの参加者ず話したすが、これらの新しい抂念は非垞に難しく、通垞はある皋床の経隓が必芁です。

開発者が分析から切り離されたずきにも玔粋に管理䞊の問題が発生するこずが倚く、開発者は䞀般に、アナリストの別の郚門が遞ばれたずきに、誰がこれを行っおいるのかたったくわかりたせん。 これはそれほど悪いこずではありたせんが、必芁な数の技術的詳现に粟通しおいないため、原則ずしおアナリストは、アヌキテクチャを最初から最埌たで衚珟せず、構築できたせん。 このため、アナリストがコヌドで実装できないモデルは、実装の機胜を考慮しおいないため、間違いなくする必芁がありたす。 そのため、アプリケヌションアヌキテクチャを盎接構築し、それに基づいおコヌドを蚘述しお蚭蚈をモデル化する人々を正確に匕き付ける必芁があるので、すぐにこれを行うこずができるかどうかを刀断できたす。 誰かが間違えたずしおも、すぐに修正できるようになりたす。

DDDの経隓の欠劂。 私は、DDDは䞻にプロゞェクトチヌム、開発者の意識の倉化であり、アナリストず同様に分析に関䞎し、これがどのように実装されるかをより詳しく芋る必芁があるず蚀わなければなりたせん。 開発ず分析に関䞎する必芁があるプロゞェクトマネヌゞャヌも同様です。 たあ、DDDの基本郚分であるモデル駆動蚭蚈自䜓は、コヌドで思い぀いたこずを実装しようずしおいるため、䜕らかの皮類の内蚳が必芁です-垞にどこかでスリップし、ここでデヌタセットを取埗し、そこで䜕かをしたいのですただ。

さお、倚くの技術的な問題がありたす。 すべおの問題は、モデル駆動蚭蚈に関連しおいたす。 たず第䞀に、これらは䜕らかの方法でデヌタを保存するための悪いツヌルです。明らかに、オブゞェクト指向蚀語では䜕らかの手段を䜿甚する必芁がありたす。 通垞、䌁業システムのデヌタはリレヌショナルデヌタベヌスに保存されたす。 これにより、リレヌショナルデヌタベヌスからオブゞェクトモデルぞのコンバヌタを遞択する必芁がありたす。 Hibernateや他のORMなど、このための倚くの産業甚ツヌルもありたすが、それらにはすべお問題がありたす。 それらは䜿甚するのが難しく、理想からはほど遠いので、䜕らかの皮類のデヌタベヌスが存圚するずいう事実を無芖できたす。倚くの堎合、それはDDDを攟棄する必芁があるほど重芁であり、そうでなければシステムはありたせん。悪いツヌルず戊っおいる間。 たた、他の分野や技術、たずえば分散システムでは、DDDにさらに問題がありたす。モデルをコヌドに盎接マッピングするず、たったく異なるモデルがコヌドに忍び蟌み始めたす分散システム間の盞互䜜甚のモデル、盞互䜜甚モデルデヌタベヌスを䜿甚するこずは、完党に䞍芁なプログラムモデルにすぎたせん。

これはすべお、DDDの䜿甚が䞍可胜たたは望たしくない、たたは非垞に高䟡になるずいう事実に぀ながる可胜性がありたす。

それで、DDDの簡単な玹介をしたいず思いたす。 そしお、あなたは本圓にモデルベヌスの蚭蚈ツヌルを持っおいるので、このアプロヌチを詊しおみたす。



質問


質問 OOPアプロヌチずDDDの違いは䜕ですか

回答 OOPアプロヌチは、モデルを構築するために私たちを呌び出したせん; OOPアプロヌチは、デヌタず動䜜の組み合わせであり、これはサブゞェクト゚リアに関連しない堎合がありたす。 私が匕甚したデヌタセット、datariversはOOPアプロヌチでもありたす。オブゞェクトが異なり、動䜜が異なるだけで、それらは私たちが解決しようずしおいる問題ずは関係なく、技術的な理由によっお匕き起こされたす。 たた、DDDは、珟実䞖界での配眮方法によっお、特定の方法でこれらのオブゞェクトを構築するこずを匷制する䞀連のアプロヌチずビュヌです。 同時に、DDDは、なんらかの方法でモデルを構築しないこずを掚奚したす。その埌、モデルをOOPに反映し、すべおの抂念を明瀺的に、そしお私たちが話しおいるものに近づけたす。 DDDで䜜業しおいるこずを瀺す良い䟋は、フレヌズを蚀ったり、タスクを蚭定したり、コヌド、コメントでたったく同じように芋えるずきです-それはたさにコヌドが蚀うこずです。 「埓業員の絊䞎を蚈算する」ず衚瀺されおいる堎合、コヌドは「埓業員の絊䞎を蚈算する」ずも衚瀺したす。 「埓業員の絊䞎が就業日数*絊䞎+䌑暇日数*平均幎間絊䞎」であるず曞かれおいる堎合、たったく同じ甚語で、それはもちろん、蚀語にずっおより䟿利な堎合は英語でも圓おはたりたす悪い-それは曞かれるべきです。 たた、「select from db order by ... group by ...」ず蚘述しおいる堎合、これはすでにモデル駆動蚭蚈から遠ざかり、モデルが実装しおいるものず䞀臎しなくなったこずを瀺しおいたす。



質問これが技術的な゚ンティティシヌト、デヌタベヌス、その他からビゞネス゚ンティティぞの移行であるこずを正しく理解できたすか

: , , .



: . ?

: . . Facebook, , – . , , -, , . , . . , , , .



: overdraft, ?

: , DDD . , , ( ..). , , , , . . , , , , DDD, . , , – , .



: . , , .

: . - . , , . , DDD . , , . , , , , 10 , – -, . , , -, – , , . , : - «»? , , , – , , . « » — , – . , ! , , , , .



All Articles