• Complain

Premanand Chandrasekaran - Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems

Here you can read online Premanand Chandrasekaran - Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2022, publisher: Packt Publishing, genre: Home and family. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Premanand Chandrasekaran Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems
  • Book:
    Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems
  • Author:
  • Publisher:
    Packt Publishing
  • Genre:
  • Year:
    2022
  • Rating:
    4 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Adopt a practical and modern approach to architecting and implementing DDD-inspired solutions to transform abstract business ideas into working software across the entire spectrum of the software development life cycle

Key Features
  • Implement DDD principles to build simple, effective, and well-factored solutions
  • Use lightweight modeling techniques to arrive at a common collective understanding of the problem domain
  • Decompose monolithic applications into loosely coupled, distributed components using modern design patterns
Book Description

Domain-Driven Design (DDD) makes available a set of techniques and patterns that enable domain experts, architects, and developers to work together to decompose complex business problems into a set of well-factored, collaborating, and loosely coupled subsystems.

This practical guide will help you as a developer and architect to put your knowledge to work in order to create elegant software designs that are enjoyable to work with and easy to reason about. Youll begin with an introduction to the concepts of domain-driven design and discover various ways to apply them in real-world scenarios. Youll also appreciate how DDD is extremely relevant when creating cloud native solutions that employ modern techniques such as event-driven microservices and fine-grained architectures. As you advance through the chapters, youll get acquainted with core DDDs strategic design concepts such as the ubiquitous language, context maps, bounded contexts, and tactical design elements like aggregates and domain models and events. Youll understand how to apply modern, lightweight modeling techniques such as business value canvas, Wardley mapping, domain storytelling, and event storming, while also learning how to test-drive the system to create solutions that exhibit high degrees of internal quality.

By the end of this software design book, youll be able to architect, design, and implement robust, resilient, and performant distributed software solutions.

What you will learn
  • Discover how to develop a shared understanding of the problem domain
  • Establish a clear demarcation between core and peripheral systems
  • Identify how to evolve and decompose complex systems into well-factored components
  • Apply elaboration techniques like domain storytelling and event storming
  • Implement EDA, CQRS, event sourcing, and much more
  • Design an ecosystem of cohesive, loosely coupled, and distributed microservices
  • Test-drive the implementation of an event-driven system in Java
  • Grasp how non-functional requirements influence bounded context decompositions
Who this book is for

This book is for intermediate Java programmers looking to upgrade their software engineering skills and adopt a collaborative and structured approach to designing complex software systems. Specifically, the book will assist senior developers and hands-on architects to gain a deeper understanding of domain-driven design and implement it in their organization. Familiarity with DDD techniques is not a prerequisite; however, working knowledge of Java is expected.

Table of Contents
  1. The Rationale for Domain-Driven Design
  2. The Mechanics of Domain-Driven Design
  3. Where and How Does DDD Fit?
  4. Domain Analysis and Modeling Using EventStorming
  5. Implementing Domain Logic
  6. Implementing the User Interface - Task-Based
  7. Implementing Queries
  8. Implementing Long-Running Flows
  9. Integrating with External Systems
  10. Beginning the decomposition journey
  11. Decomposing into finer-grained components
  12. Beyond Functional Requirements

Premanand Chandrasekaran: author's other books


Who wrote Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems? Find out the surname, the name of the author of the book and a list of all author's works by series.

Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Domain-Driven Design with Java A Practitioners Guide Create simple elegant - photo 1
Domain-Driven Design with Java A Practitioners Guide

Create simple, elegant, and valuable software solutions for complex business problems

Premanand Chandrasekaran

Karthik Krishnan

BIRMINGHAMMUMBAI Domain-Driven Design with Java A Practitioners Guide Copyright - photo 2

BIRMINGHAMMUMBAI

Domain-Driven Design with Java A Practitioners Guide

Copyright 2022 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Associate Group Product Manager: Gebin George

Publishing Product Manager: Kushal Dave

Senior Editor: Rohit Singh

Content Development Editor: Kinnari Chohan

Technical Editor: Pradeep Sahu

Copy Editor: Safis Editing

Project Coordinator: Manisha Singh

Proofreader: Safis Editing

Indexer: Sejal Dsilva

Production Designer: Nilesh Mohite

Marketing Coordinator: Sonakshi Bubbar

First published: July 2022

Production reference: 2100822

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham

B3 2PB, UK.

ISBN 978-1-80056-073-4

www.packt.com

To my mother, Bhanumathy, for all her sacrifices and for exemplifying the power of determination. To my wife, Vidya, for being my loving partner throughout our joint life journey and to our son, Siddharth, for being a constant source of joy and pride.

Prem

To my late mother, Visalam, and my father, Krishnan, for inculcating the value of hard work and perseverance. To my loving wife, Suja, for being the patient partner and providing a lot of encouragement, and to my daughter, Ananya, for being the source of cheer and happiness in our family.

Karthik

Forewords

The ideas behind Domain-driven Design (DDD) have an outsized influence on software architecture and the way we think about software projects. Ubiquitous Language is a term defined by DDD, describing the practice of creating a more precise language when discussing design in software projects. However, DDD itself has provided a ubiquitous language for software architecture: most discussions around microservices touch on terms originating in the DDD world.

However, the book that started it all, Domain-driven Design by Eric Evans, falls into the category of what Mark Twain called a classic: a book that everyone wants to have read. The truth of the matter is that, while the book is packed full of influential ideas, it is quite abstract for readers looking for advice on how to build software. That doesnt indicate a deficiency in the sourceit is designed to cover broad concepts, which encompasses many different facets of design, including but not limited to software development.

However, when developers need to utilize these ideas in a practical sense, such as in a concrete project, the abstract doesnt helpthey need a practitioners guide, which readers now hold in their hands. This book does an excellent job translating the concepts of DDD into useful overviews and concrete advice on how to implement the ideas. For example, a pertinent question that developers have that is unanswered in the DDD book: which is better to implement a project, imperative or functional programming style? Each has trade-offs; this book helps teams make those kinds of implementation decisions. This book covers multiple perspectives on applying DDD to Java projects, including foundational material about how DDD and agile engineering practices intersect in modern projects.

While many books exist that cover DDD and software architecture independently, this book does an excellent job mapping one to another, describing how the design influence of DDD maps to a number of different architecture topologies. For example, it describes how teams can reconcile bounded contexts with layered and other architecture styles.

Part one of this book covers many foundational details of the book, including technical and design details. Part two covers Real World DDD, covering how to apply the abstract ideas in a more concrete realm. It covers everything from how to discover and document the domain, to how to map real-world concepts into DDD concepts. For example, it does an excellent job describing aggregates, their design, and relationships.

Part three covers a topic dear to my heart as the author of Building Evolutionary Architectures, which is the evolution of software. Software products constantly evolve, including new features and capabilities. Therefore, software development isnt a static processit must evolve along multiple dimensions to remain successful. This book contains a number of useful evolution patterns, covering both the domain and architecture characteristics.

Towards the ideal of creating a practitioners guide, the book also covers engineering practicalities such as logging, testing, versioning, and a host of other practical considerations. Though these areas may fall outside the scope of the DDD book, teams need them.

DDD offers a host of conceptual ideas but lacks implementation details. This book serves as an excellent bridge between abstract and implementation. While the focus is on Java, the content is broad enough for any practitioner to get a good overview of the many important considerations for DDD projects. In fact, each specific technology stack would benefit from having a practitioners guide such as this one.

- Neal Ford

Director/Software Architect / Meme Wrangler

Thoughtworks, Inc.

The early 2000s were a dynamic time in the software industry. A number of luminaries were exploring lightweight agile processes that had the effect of converting software engineering from a paint-by-numbers activity into first-class knowledge work. Agile methodologies such as eXtreme Programming were natural extensions of arguments put forth by Jack Reeves in his 1992 C++ Journal article What is Software Design, which claimed that source code not design docs or architecture diagrams was the only equivalent to design specifications found in other engineering disciplines. The split between design and manufacturing still exists, of course, but with software, we dont need people for manufacturing. The compiler does it for us, which means that all work the people do is design work, and agile processes pushed the new generation of software engineers into messy design conversations with the business.

The turn of the century also corresponded with the dotcom boom (and subsequent bust) as user interactions shifted from desktop applications to the web, creating technical scaling problems that were orders of magnitude beyond what the industry had faced up to that point. Distributed technologies werent exactly new, but the ever-increasing technical complexity needed to solve problems of scale required new architectural approaches and created a demand for software engineering talent.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems»

Look at similar books to Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems»

Discussion, reviews of the book Domain-Driven Design with Java - A Practitioners Guide: Create simple, elegant, and valuable software solutions for complex business problems and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.