注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(英文版)

實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(英文版)

實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(英文版)

定 價(jià):¥118.00

作 者: Vaughn
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 程序設(shè)計(jì) 計(jì)算機(jī)/網(wǎng)絡(luò)

ISBN: 9787121272745 出版時(shí)間: 2016-03-01 包裝: 平塑
開本: 頁數(shù): 648 字?jǐn)?shù):  

內(nèi)容簡介

  領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)是教我們?nèi)绾巫龊密浖模瑫r(shí)也是教我們?nèi)绾胃玫厥褂妹嫦驅(qū)ο蠹夹g(shù)的。它為我們提供了設(shè)計(jì)軟件的全新視角,同時(shí)也給開發(fā)者留下了一大難題:如何將領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)付諸實(shí)踐?Vaughn Vernon 的這本《實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》為我們給出了全面的解答。本書分別從戰(zhàn)略和戰(zhàn)術(shù)層面詳盡地討論了如何實(shí)現(xiàn) DDD,其中包含了大量的優(yōu)秀實(shí)踐、設(shè)計(jì)準(zhǔn)則和對一些問題的折中性討論。全書共分為 14 章。DDD 戰(zhàn)略部分講解了領(lǐng)域、限界上下文、上下文映射圖和架構(gòu)等內(nèi)容;戰(zhàn)術(shù)部分包括實(shí)體、值對象、領(lǐng)域服務(wù)、領(lǐng)域事件、聚合和資源庫等內(nèi)容。一個(gè)虛構(gòu)的案例研究貫穿全書,這對于實(shí)例講解 DDD 實(shí)現(xiàn)來說非常有用。本書在 DDD 的思想和實(shí)現(xiàn)之間建立起了一座橋梁,架構(gòu)師和程序員均可閱讀,同時(shí)也可以作為一本 DDD 參考書。

作者簡介

 ?。溃¬aughn Vernon(沃恩.弗農(nóng))

圖書目錄

目錄序前言致謝關(guān)于作者如何使用本書、Chapter 1 Getting Started with DDDCan I DDD?Why You Should Do DDDHow to Do DDDThe Business Value of Using DDD1. The Organization Gains a Useful Model of Its Domain2. A Refined, Precise Definition and Understanding of the Business Is Developed3. Domain Experts Contribute to Software Design4. A Better User Experience Is Gained5. Clean Boundaries Are Placed around Pure Models6. Enterprise Architecture Is Better Organized7. Agile, Iterative, Continuous Modeling Is Used8. New Tools, Both Strategic and Tactical, Are EmployedThe Challenges of Applying DDDFiction, with Bucketfuls of RealityWrap-UpChapter 2 Domains, Subdomains, and Bounded ContextsBig PictureSubdomains and Bounded Contexts at WorkFocus on the Core DomainWhy Strategic Design Is So Incredibly EssentialReal-World Domains and SubdomainsMaking Sense of Bounded ContextsRoom for More than the ModelSize of Bounded ContextsAligning with Technical ComponentsSample ContextsCollaboration Context.Identity and Access Context.Agile Project Management ContextWrap-UpChapter 3 Context MapsWhy Context Maps Are So EssentialDrawing Context MapsProjects and Organizational RelationshipsMapping the Three ContextsWrap-UpChapter 4 ArchitectureInterviewing the Successful CIOLayersDependency Inversion PrincipleHexagonal or Ports and AdaptersService-OrientedRepresentational State Transfer—RESTREST as an Architectural StyleKey Aspects of a RESTful HTTP ServerKey Aspects of a RESTful HTTP ClientREST and DDDWhy REST?Command-Query Responsibility Segregation, or CQRSExamining Areas of CQRSDealing with an Eventually Consistent Query ModelEvent-Driven ArchitecturePipes and FiltersLong-Running Processes, aka SagasEvent SourcingData Fabric and Grid-Based Distributed ComputingData ReplicationEvent-Driven Fabrics and Domain EventsContinuous QueriesDistributed ProcessingWrap-UpChapter 5 EntitiesWhy We Use EntitiesUnique Identity.User Provides IdentityApplication Generates IdentityPersistence Mechanism Generates IdentityAnother Bounded Context Assigns IdentityWhen the Timing of Identity Generation MattersSurrogate IdentityIdentity Stability.Discovering Entities and Their Intrinsic CharacteristicsUncovering Entities and PropertiesDigging for Essential BehaviorRoles and ResponsibilitiesConstructionValidationChange TrackingWrap-UpChapter 6 Value ObjectsValue CharacteristicsMeasures, Quantifies, or DescribesImmutableConceptual WholeReplaceabilityValue Equality.Side-Effect-Free BehaviorIntegrate with Minimalism.Standard Types Expressed as ValuesTesting Value ObjectsImplementation.Persisting Value ObjectsReject Undue Influence of Data Model Leakage.ORM and Single Value ObjectsORM and Many Values Serialized into a Single ColumnORM and Many Values Backed by a Database Entity.ORM and Many Values Backed by a Join Table.ORM and Enum-as-State ObjectsWrap-UpChapter 7 ServicesWhat a Domain Service Is (but First, What It Is Not)Make Sure You Need a Service.Modeling a Service in the DomainIs Separated Interface a Necessity?A Calculation ProcessTransformation Services.Using a Mini-Layer of Domain ServicesTesting Services.Wrap-UpChapter 8 Domain EventsThe When and Why of Domain EventsModeling EventsWith Aggregate CharacteristicsIdentityPublishing Events from the Domain ModelPublisherSubscribersSpreading the News to Remote Bounded ContextsMessaging Infrastructure ConsistencyAutonomous Services and SystemsLatency TolerancesEvent StoreArchitectural Styles for Forwarding Stored EventsPublishing Notifications as RESTful ResourcesPublishing Notifications through Messaging MiddlewareImplementationPublishing the NotificationLogPublishing Message-Based NotificationsWrap-UpChapter 9 ModulesDesigning with ModulesBasic Module Naming ConventionsModule Naming Conventions for the Model.Modules of the Agile Project Management ContextModules in Other LayersModule before Bounded ContextWrap-UpChapter 10 AggregatesUsing Aggregates in the Scrum Core DomainFirst Attempt: Large-Cluster AggregateSecond Attempt: Multiple AggregatesRule: Model True Invariants in Consistency BoundariesRule: Design Small AggregatesDon’t Trust Every Use CaseRule: Reference Other Aggregates by IdentityMaking Aggregates Work Together through IdentityReferencesModel NavigationScalability and DistributionRule: Use Eventual Consistency Outside the BoundaryAsk Whose Job It IsReasons to Break the RulesReason One: User Interface ConvenienceReason Two: Lack of Technical MechanismsReason Three: Global TransactionsReason Four: Query PerformanceAdhering to the RulesGaining Insight through Discovery.Rethinking the Design, AgainEstimating Aggregate CostCommon Usage ScenariosMemory ConsumptionExploring Another Alternative DesignImplementing Eventual Consistency.Is It the Team Member’s Job?Time for DecisionsImplementationCreate a Root Entity with Unique IdentityFavor Value Object PartsUsing Law of Demeter and Tell, Don’t AskOptimistic Concurrency.Avoid Dependency Injection.Wrap-UpChapter 11 FactoriesFactories in the Domain ModelFactory Method on Aggregate RootCreating CalendarEntry InstancesCreating Discussion InstancesFactory on ServiceWrap-UpChapter 12 RepositoriesCollection-Oriented RepositoriesHibernate ImplementationConsiderations for a TopLink ImplementationPersistence-Oriented RepositoriesCoherence ImplementationMongoDB ImplementationAdditional BehaviorManaging TransactionsA WarningType HierarchiesRepository versus Data Access ObjectTesting RepositoriesTesting with In-Memory ImplementationsWrap-UpChapter 13 Integrating Bounded ContextsIntegration BasicsDistributed Systems Are Fundamentally DifferentExchanging Information across System BoundariesIntegration Using RESTful ResourcesImplementing the RESTful ResourceImplementing the REST Client Using an Anticorruption LayerIntegration Using MessagingStaying Informed about Product Owners and Team MembersCan You Handle the Responsibility?Long-Running Processes, and Avoiding ResponsibilityProcess State Machines and Time-out TrackersDesigning a More Sophisticated ProcessWhen Messaging or Your System Is UnavailableWrap-UpChapter 14 Application.User InterfaceRendering Domain Objects Render Data Transfer Object from Aggregate InstancesUse a Mediator to Publish Aggregate Internal StateRender Aggregate Instances from a Domain Payload Object State Representations of Aggregate InstancesUse Case Optimal Repository Queries.Dealing with Multiple, Disparate ClientsRendition Adapters and Handling User EditsApplication ServicesSample Application ServiceDecoupled Service OutputComposing Multiple Bounded ContextsInfrastructureEnterprise Component ContainersWrap-UpAppendix A Aggregates and Event Sourcing: A+ESInside an Application ServiceCommand HandlersLambda SyntaxConcurrency Control.Structural Freedom with A+ESPerformanceImplementing an Event StoreRelational PersistenceBLOB PersistenceFocused AggregatesRead Model ProjectionsUse with Aggregate DesignEvents EnrichmentSupporting Tools and PatternsEvent SerializersEvent ImmutabilityValue ObjectsContr

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號