-54%
-81%

₹477 ₹2599

 Hurry up!  This offer ends in

 Hurry up! 

This offer ends in

Why Buy This Book?

What exactly do I get in this?

3 Pack Bundle

What’s Covered?

Table of content

• What Is Design and Architecture?
    ✔ The Goal?
    ✔ Case Study
    ✔ Conclusion
• A Tale of Two Values
    ✔ Behavior
    ✔ Architecture
    ✔ The Greater Value
    ✔ Eisenhower’s Matrix
    ✔ Fight for the Architecture
• Starting with the Bricks: Programming Paradigms
• Paradigm Overview
    ✔ Structured Programming
    ✔ Object-Oriented Programming
    ✔ Functional Programming
    ✔ Food for Thought
    ✔ Conclusion
• Structured Programming
    ✔ Proof
    ✔ A Harmful Proclamation
    ✔ Functional Decomposition
    ✔ No Formal Proofs
    ✔ Science to the Rescue
    ✔ Tests
    ✔ Conclusion
• Object-Oriented Programming
    ✔ Encapsulation?
    ✔ Inheritance?
    ✔ Polymorphism?
    ✔ Conclusion
• Functional Programming
    ✔ Squares of Integers
    ✔ Immutability and Architecture
    ✔ Segregation of Mutability
    ✔ Event Sourcing
    ✔ Conclusion
• Design Principles
• SRP: The Single Responsibility Principle
    ✔ Symptom 1: Accidental Duplication
    ✔ Symptom 2: Merges
    ✔ Solutions
    ✔ Conclusion
• OCP: The Open-Closed Principle
    ✔ A Thought Experiment
    ✔ Directional Control
    ✔ Information Hiding
    ✔ Conclusion
• LSP: The Liskov Substitution Principle
    ✔ Guiding the Use of Inheritance
    ✔ The Square/Rectangle Problem
    ✔ LSP and Architecture
    ✔ Example LSP Violation
    ✔ Conclusion
• ISP: The Interface Segregation Principle
    ✔ ISP and Language
    ✔ ISP and Architecture
    ✔ Conclusion
• DIP: The Dependency Inversion Principle
    ✔ Stable Abstractions
    ✔ Factories
    ✔ Concrete Components
    ✔ Conclusion
• Component Principles
• Components
    ✔ A Brief History of Components
    ✔ Relocatability
    ✔ Linkers
    ✔ Conclusion
• Component Cohesion
    ✔ The Reuse/Release Equivalence Principle
    ✔ The Common Closure Principle
    ✔ The Common Reuse Principle
    ✔ The Tension Diagramfor Component Cohesion
    ✔ Conclusion
• Component Coupling
    ✔ The Acyclic Dependencies Principle
    ✔ Top-Down Design
    ✔ The Stable Dependencies Principle
    ✔ The Stable Abstractions Principle
    ✔ Conclusion
• Architecture
• What Is Architecture?
    ✔ Development
    ✔ Deployment
    ✔ Operation
    ✔ Maintenance
    ✔ Keeping Options Open
    ✔ Device Independence
    ✔ Junk Mail
    ✔ Physical Addressing
    ✔ Conclusion
• Independence
    ✔ Use Cases
    ✔ Operation

Table of content

• Introduction
    ✔ What is a Design Pattern?
    ✔ Design Patterns in Smalltalk MVC
    ✔ Describing Design Patterns
    ✔ The Catalog of Design Patterns
    ✔ Organizing the Catalog
    ✔ How Design Patterns Solve Design Problems
    ✔ How to Select a Design Pattern
    ✔ How to Use a Design Pattern
• Case Study
    ✔ Design Problems
    ✔ Document Structure
    ✔ Formatting
    ✔ Embellishing the User Interface
    ✔ Supporting Multiple Look-and-Feel Standards
    ✔ Supporting Multiple Window Systems
    ✔ User Operations
    ✔ Spelling Checking and Hyphenation
    ✔ Summary
• Creational Patterns
• Abstract Factory
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Singleton
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Discussion of Creational Patterns
• Structural Patterns
• Adapter
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Bridge
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Composite
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Decorator
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Facade
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Flyweight
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Proxy
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Discussion of Structural Patterns
    ✔ Adapter versus Bridge
    ✔ Composite versus Decorator versus Proxy
• Behavioral Patterns
• Chain of Responsibility
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Command
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Interpreter
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Iterator
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Mediator
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Memento
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Observer
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• State
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Strategy
    ✔ Intent
    ✔ Also Known As
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Template Method
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Visitor
    ✔ Intent
    ✔ Motivation
    ✔ Applicability
    ✔ Structure
    ✔ Participants
    ✔ Collaborations
    ✔ Consequences
    ✔ Implementation
    ✔ Sample Code
    ✔ Known Uses
    ✔ Related Patterns
• Discussion of Behavioral Patterns
    ✔ Encapsulating Variation
    ✔ Objects as Arguments
    ✔ Should Communication be Encapsulated or Distributed?
    ✔ Decoupling Senders and Receivers
    ✔ Summary
• Conclusion
    ✔ What to Expect from Design Patterns
    ✔ A Brief History
    ✔ The Pattern Community
    ✔ An Invitation
    ✔ A Parting Thought

Table of content

• Getting Started with DDD
    ✔ Can I DDD?
    ✔ Why You Should Do DDD
    ✔ How to Do DDD
    ✔ The Business Value of Using DDD
    ✔ The Organization Gains a Useful Model of Its Domain
    ✔ A Refined, Precise Definition and Understanding of the Business Is Developed
    ✔ Domain Experts Contribute to Software Design
    ✔ A Better User Experience Is Gained
    ✔ Clean Boundaries Are Placed around Pure Models
    ✔ Enterprise Architecture Is Better Organized
    ✔ Agile, Iterative, Continuous Modeling Is Used
    ✔ New Tools, Both Strategic and Tactical, Are Employed
    ✔ The Challenges of Applying DDD
    ✔ Fiction, with Bucketfuls of Reality
    ✔ Wrap-Up
• Domains, Subdomains, and Bounded Contexts
    ✔ Big Picture
    ✔ Subdomains and Bounded Contexts at Work
    ✔ Focus on the Core Domain
    ✔ Why Strategic Design Is So Incredibly Essential
    ✔ Real-World Domains and Subdomains
    ✔ Making Sense of Bounded Contexts
    ✔ Room for More than the Model
    ✔ Size of Bounded Contexts
    ✔ Aligning with Technical Components
    ✔ Sample Contexts
    ✔ Collaboration Context
    ✔ Identity and Access Context
    ✔ Agile Project Management Context
    ✔ Wrap-Up
• Context Maps
    ✔ Why Context Maps Are So Essential
    ✔ Drawing Context Maps
    ✔ Projects and Organizational Relationships
    ✔ Mapping the Three Contexts
    ✔ Wrap-Up
• Architecture
    ✔ Interviewing the Successful CIO
    ✔ Layers
    ✔ Dependency Inversion Principle
    ✔ Hexagonal or Ports and Adapters
    ✔ Service-Oriented
    ✔ Representational State Transfer—REST
    ✔ REST as an Architectural Style
    ✔ Key Aspects of a RESTful HTTP Server
    ✔ Key Aspects of a RESTful HTTP Client
    ✔ REST and DDD
    ✔ Why REST?
    ✔ Command-Query Responsibility Segregation, or CQRS
    ✔ Examining Areas of CQRS
    ✔ Dealing with an Eventually Consistent Query Model
    ✔ Event-Driven Architecture
    ✔ Pipes and Filters
    ✔ Long-Running Processes, aka Sagas
    ✔ Event Sourcing
    ✔ Data Fabric and Grid-Based Distributed Computing
    ✔ Data Replication
    ✔ Event-Driven Fabrics and Domain Events
    ✔ Continuous Queries
    ✔ Distributed Processing
    ✔ Wrap-Up
• Entities
    ✔ Why We Use Entities
    ✔ Unique Identity
    ✔ User Provides Identity
    ✔ Application Generates Identity
    ✔ Persistence Mechanism Generates Identity
    ✔ Another Bounded Context Assigns Identity
    ✔ When the Timing of Identity Generation Matters
    ✔ Surrogate Identity
    ✔ Identity Stability
    ✔ Discovering Entities and Their Intrinsic Characteristics
    ✔ Uncovering Entities and Properties
    ✔ Digging for Essential Behavior
    ✔ Roles and Responsibilities
    ✔ Construction
    ✔ Validation
    ✔ Change Tracking
    ✔ Wrap-Up
• Value Objects
    ✔ Value Characteristics
    ✔ Measures, Quantifies, or Describes
    ✔ Immutable
    ✔ Conceptual Whole
    ✔ Replaceability
    ✔ Value Equality
    ✔ Side-Effect-Free Behavior
    ✔ Integrate with Minimalism
    ✔ Standard Types Expressed as Values
    ✔ Testing Value Objects
    ✔ Implementation
    ✔ Persisting Value Objects
    ✔ Reject Undue Influence of Data Model Leakage
    ✔ ORM and Single Value Objects
    ✔ ORM and Many Values Serialized into a Single Column
    ✔ ORM and Many Values Backed by a Database Entity
    ✔ ORM and Many Values Backed by a Join Table
    ✔ ORM and Enum-as-State Objects
    ✔ Wrap-Up
• Services
    ✔ What a Domain Service Is (but First, What It Is Not)
    ✔ Make Sure You Need a Service
    ✔ Modeling a Service in the Domain
    ✔ Is Separated Interface a Necessity?
    ✔ A Calculation Process
    ✔ Transformation Services
    ✔ Using a Mini-Layer of Domain Services
    ✔ Testing Services
    ✔ Wrap-Up
• Domain Events
    ✔ The When and Why of Domain Events
    ✔ Modeling Events
    ✔ With Aggregate Characteristics
    ✔ Identity
    ✔ Publishing Events from the Domain Model
    ✔ Publisher
    ✔ Subscribers
    ✔ Spreading the News to Remote Bounded Contexts
    ✔ Messaging Infrastructure Consistency
    ✔ Autonomous Services and Systems
    ✔ Latency Tolerances
    ✔ Event Store
    ✔ Architectural Styles for Forwarding Stored Events
    ✔ Publishing Notifications as RESTful Resources
    ✔ Publishing Notifications through Messaging Middleware
    ✔ Implementation
    ✔ Publishing the NotificationLog
    ✔ Publishing Message-Based Notifications
    ✔ Wrap-Up
• Modules
    ✔ Designing with Modules
    ✔ Basic Module Naming Conventions
    ✔ Module Naming Conventions for the Model
    ✔ Modules of the Agile Project Management Context
    ✔ Modules in Other Layers
    ✔ Module before Bounded Context
    ✔ Wrap-Up
• Aggregates
    ✔ Using Aggregates in the Scrum Core Domain
    ✔ First Attempt: Large-Cluster Aggregate
    ✔ Second Attempt: Multiple Aggregates
    ✔ Rule: Model True Invariants in Consistency Boundaries
    ✔ Rule: Design Small Aggregates
    ✔ Don’t Trust Every Use Case
    ✔ Rule: Reference Other Aggregates by Identity
    ✔ Making Aggregates Work Together through Identity References
    ✔ Model Navigation
    ✔ Scalability and Distribution
    ✔ Rule: Use Eventual Consistency Outside the Boundary
    ✔ Ask Whose Job It Is
    ✔ Reasons to Break the Rules
    ✔ Reason One: User Interface Convenience
    ✔ Reason Two: Lack of Technical Mechanisms
    ✔ Reason Three: Global Transactions
    ✔ Reason Four: Query Performance
    ✔ Adhering to the Rules
    ✔ Gaining Insight through Discovery
    ✔ Rethinking the Design, Again
    ✔ Estimating Aggregate Cost
    ✔ Common Usage Scenarios
    ✔ Memory Consumption
    ✔ Exploring Another Alternative Design
    ✔ Implementing Eventual Consistency
    ✔ Is It the Team Member’s Job?
    ✔ Time for Decisions
    ✔ Implementation
    ✔ Create a Root Entity with Unique Identity
    ✔ Favor Value Object Parts
    ✔ Using Law of Demeter and Tell, Don’t Ask
    ✔ Optimistic Concurrency
    ✔ Avoid Dependency Injection
    ✔ Wrap-Up
• Factories
    ✔ Factories in the Domain Model
    ✔ Factory Method on Aggregate Root
    ✔ Creating CalendarEntry Instances
    ✔ Creating Discussion Instances
    ✔ Factory on Service
    ✔ Wrap-Up
• Repositories
    ✔ Collection-Oriented Repositories
    ✔ Hibernate Implementation
    ✔ Considerations for a TopLink Implementation
    ✔ Persistence-Oriented Repositories
    ✔ Coherence Implementation
    ✔ MongoDB Implementation
    ✔ Additional Behavior
    ✔ Managing Transactions
    ✔ A Warning
    ✔ Type Hierarchies
    ✔ Repository versus Data Access Object
    ✔ Testing Repositories
    ✔ Testing with In-Memory Implementations
    ✔ Wrap-Up
• Integrating Bounded Contexts
    ✔ Integration Basics
    ✔ Distributed Systems Are Fundamentally Different
    ✔ Exchanging Information across System Boundaries
    ✔ Integration Using RESTful Resources
    ✔ Implementing the RESTful Resource
    ✔ Implementing the REST Client Using an Anticorruption Layer
    ✔ Integration Using Messaging
    ✔ Staying Informed about Product Owners and Team Members
    ✔ Can You Handle the Responsibility?
    ✔ Long-Running Processes, and Avoiding Responsibility
    ✔ Process State Machines and Time-out Trackers
    ✔ Designing a More Sophisticated Process
    ✔ When Messaging or Your System Is Unavailable
    ✔ Wrap-Up
• Application
    ✔ User Interface
    ✔ Rendering Domain Objects
    ✔ Render Data Transfer Object from Aggregate Instances
    ✔ Use a Mediator to Publish Aggregate Internal State
    ✔ Render Aggregate Instances from a Domain Payload Object
    ✔ State Representations of Aggregate Instances
    ✔ Use Case Optimal Repository Queries
    ✔ Dealing with Multiple, Disparate Clients
    ✔ Rendition Adapters and Handling User Edits
    ✔ Application Services
    ✔ Sample Application Service
    ✔ Decoupled Service Output
    ✔ Composing Multiple Bounded Contexts
    ✔ Infrastructure
    ✔ Enterprise Component Containers
    ✔ Wrap-Up
Still Have Questions?

No Problem! Mail us at [email protected] to Connect

Contact Us

24/7 WhatsApp and email support

Unlock the power of simplified business knowledge with engineeringexplained.in. Explore our collection of easy-to-understand ebooks today!

Contact Information