Index
A
- abstractions
- about / Applying the pattern
- actors
- mapping / Talking about the actors
- aggregations
- about / Aggregations
- algorithmic complexity
- about / Algorithmic complexity
- anticorruption layer, context management
- about / The anticorruption layer
- methodologies, isolating / Isolating the methodologies
- Apache
- about / Understanding the core problem
- APIs, context management
- about / The APIs
- customer / The customer and the supplier
- supplier / The customer and the supplier
- client, developing / Developing a client
- application
- packaging / Packaging the application
- deploying / Deploying
- application, starting
- about / Getting started, it's about time
- value, creating without code / Creating value without creating code
- feature, deciding / Deciding on the first feature
- application lifecycle
- managing / Managing the application's lifecycle
- architecture, modern applications
- about / The architecture of modern applications
- Hexagonal architecture / Hexagonal architecture
- aspect-oriented programming
- about / Aspect-oriented programming
- associations
- about / Associations
- async
B
- bower
- Broccoli
- about / Managing the build
- browserify
- URL / Moving up the dependencies
- about / Seeing the bigger picture
- build
- managing / Managing the build
- build system
- need for / Why every application needs a build system
- selecting / Choosing the right system
- business language
- working with / Working with and on the business language
C
- command query separation
- about / Command-query separation
- common language
- building / Building a common language
- communication
- about / Communication is key
- complexity
- about / The different kinds of complexity
- algorithmic complexity / Algorithmic complexity
- logical complexity / Logical complexity
- business rules / The business rules
- conformist
- about / The conformist
- context
- building / Building context
- knowledge, sharing / Separation and shared knowledge
- context management
- about / The different ways to manage contexts
- context map, drawing / Drawing a context map
- monolithic architecture / The monolithic architecture
- shared kernel / A shared kernel
- APIs / The APIs
- conformist / The conformist
- anticorruption layer / The anticorruption layer
- separate ways / Separate ways
- Open Protocol / An open protocol
- context map
- drawing / Drawing a context map
- contexts
- about / Keeping it all in your head
- recognizing / Recognizing the contexts
- continuous integration
- about / Continuous integration
- core problem
- about / Understanding the core problem
- Cucumber
- about / Feature specs
D
- Data Mapper Pattern
- dependency graph
- about / Mapping the dependencies
- development
- approaches / The Different approaches to development
- domain
- isolating / Isolating the domain
- about / Naming objects according to the domain
- traps, of common names / The traps of common names like *Manager
- object design, applying to / Applying object design to the domain
- domain-driven design
- about / The core idea of domain-driven design
- concepts / The concepts of domain-driven design
- distractions / It is all about distractions
- focusing, on problems / Focus on the problem at hand
- references / Further reading
- prerequisites / Matching the domain to the problem, Growing into a domain, A good domain for domain-driven design
- domain patterns
- recognizing / Recognizing domain patterns
- domains, suitable for domain-driven design
- about / The domains suitable for domain-driven design
- banking applications / Banking applications
- travel applications / Travel applications
- prerequisites / The domain prerequisites
- DSLs
- about / Domain-specific languages
- creating / Creating DSLs
- in domain-driven design / DSLs in domain-driven design
E
- ECMAScript 6
- about / Objects first
- ECMAScript 6 modules
- entities
- entity relational mapping
- versus event stores / Event stores versus entity relational mapping
- Erlang
- about / Recognizing the contexts
- events
- about / Events
- event stores
- versus entity relational mapping / Event stores versus entity relational mapping
- experts, involving
- about / Involving the experts
- gaps, finding / Finding the gaps, Talking business
- express
- web application, glueing via / Gluing the application together via express
F
- feature specs
- about / Feature specs
- framework
- plugging in / Plugging in a framework
- functional programming
- about / Functional programming
- and JavaScript / Functional programming and JavaScript
- value objects / Value objects
G
- goals
- greenfield projects
- about / Inside the dungeon
- grouping
- about / Grouping and interfaces
- Grunt
- about / Managing the build
H
- hard problem, identifying
- about / Identifying the hard problem
- dependencies, managing / Mapping the dependencies
- spiking approach / Drawing with code – spiking
- Hexagonal architecture
- about / Hexagonal architecture
I
- inheritance
- interfaces
- about / Grouping and interfaces
J
- Jake
- about / Managing the build
- JavaScript
- and functional programming / Functional programming and JavaScript
- JavaScript frameworks
- about / Different frameworks and their implications
- implications / Different frameworks and their implications
- JavaScript Mixins
- JavaScript projects
- about / The different kinds of JavaScript project
- user experience, enhancing / Enhancing the user experience
- single-page applications / Single-page applications
- jQuery
- URL / Creating DSLs
- about / Creating DSLs
- JSLint
K
- Kafka
- knowledge sharing
- about / Sharing knowledge
L
- language, publishing
- about / The publishing language
- documentation, creating / Creating the documentation
- documentation, updating / Updating the documentation
- test-driven development / Tests are not the only documentation
- language guidance
- implementing / Implementing language guidance
- logical complexity
- about / Logical complexity
M
- Makefile
- about / Choosing the right system
- malleable code
- refactoring / Refactoring all the time towards malleable code
- Markdown
- about / The medium
- method names
- readability / Readability of method names
- micro-service architecture
- mocks
- about / Introducing mocks
- reference link / Introducing mocks
- considerations / Why and why not to mock
- model
- about / The first route and model
- Model-View-Controller (MVC)
- modeling patterns, beyond inheritance / Modeling patterns beyond inheritance
- modern applications
- architecture / The architecture of modern applications
- monolith application
- about / Don't fear the monolith
- MonolithFirst
- URL, for blog / The monolithic architecture
- monolithic architecture
- about / The monolithic architecture
N
- Node.js
- node package manager (npm)
- about / The first route and model
- notification
- about / The object composition
- npm
- URL / Moving up the dependencies
- about / Seeing the bigger picture
O
- object-oriented modeling, of business domains / The object-oriented modeling of business domains
- object-oriented programming (OOP)
- about / Readability of method names
- object classification
- significance / The importance of object classification, Seeing the bigger picture
- object design
- applying, to domain / Applying object design to the domain
- object orientation
- about / The power of object-orientation
- principles / The object-oriented principles so far
- pure object orientation falling short, scenarios / The scenarios of pure object-orientation falling short
- objects
- roles / Different objects and their roles
- about / Objects first
- basics / The basics of objects in JavaScript
- Open/closed principle
- Open Protocol
- about / An open protocol
- orc dungeon
- managing / Managing an orc dungeon
- about / Inside the dungeon
- incoming prisoners, managing / Managing incoming prisoners
- current state / The current state of the art
- specification / Specification
- OSI/ISO model
- about / The shoulders of giants
P
- Paper Programming
- about / Paper programming
- working / So how does such a paper program work?
- pattern
- applying / Applying the pattern
- performance tests
- about / Performance tests
- persistence ignorance
- about / Applying the pattern
- plain old objects
- about / Plain old objects
- polymorphism
- without inheritance / Polymorphism without inheritance
- primitive obsession anti-pattern
- about / Not everything is an entity
- prisoner transfer concept / Who is involved in the prisoner transfer?
- problem
- viewing / Another look at the problem
- exploring / Exploring a problem
- problem, outlining
- about / Outlining the problem
- knowledge, tracking / Tracking knowledge
- mediums / The medium
- project, structuring
- about / Structuring a project as we see it
- approachability / Approachability
- locality, of edits / Locality of edits
- fitness, for handling changes / Fitness
- pure object orientation falling short
R
- README-driven development
- Rhino
- about / Using JavaScript server side
- route
- about / The first route and model
S
- Scheme
- separate ways, context management
- about / Separate ways
- unrelated applications / Unrelated applications
- server-side JavaScript
- about / Using JavaScript server side
- advantages, of controlled environment / The advantages of a controlled environment
- advanced modularization / Advanced modularization
- service-oriented architecture (SOA)
- services
- about / Services
- shared functionality
- dealing with / Dealing with shared functionality
- dependencies, moving up / Moving up the dependencies
- shared kernel
- about / A shared kernel
- shared toolbox
- about / A shared toolbox
- simple objects
- system, building on / Building a system on simple objects
- single-page applications
- about / Single-page applications
- client-side rendering / Rendering on the client side
- Single Responsibility Principle
- Sinon.JS
- about / Introducing mocks
- specification, orc dungeon
- about / Specification
- available cells, tracking / Tracking available cells
- outgoing transfers, starting / Starting outgoing transfers
- state of incoming transfers, tracking / Tracking the state of incoming transfers
- incoming transfers, initiating / Initiating incoming transfers
- Spidermonkey
- about / Using JavaScript server side
- spies
- reference link / Introducing mocks
- spiking
- about / Drawing with code – spiking
- structure diagram
- about / Not so scary UML
- stubbing out
- about / Why and why not to mock
- SUnit test framework
- about / Testing
- system
- building, on simple objects / Building a system on simple objects
T
- test environment
- setting up / Setting up a test environment
- testing
- about / Testing
- testing, in contexts
- about / Testing in contexts
- integration, across boundaries / Integration across boundaries
- test-driven development / TDD and testing in production
- tests
- types / Different types of tests and goals
- feature specs / Feature specs
- unit tests / Unit tests
- performance tests / Performance tests
- running / Running the tests
- Travis-CI
- about / Continuous integration
U
- Unified Modelling Language (UML)
- about / Not so scary UML
- structure diagram / Not so scary UML
- unit tests
- about / Unit tests
- use case diagram
- about / Not so scary UML
V
- value objects
- about / Value objects, Value objects
- advantages / The advantages of value objects
- referential transparency / The referential transparency
W
- web application
- building / From greenfield to application
- model, creating / Creating the model
- route / The first route and loading the dungeon
- dungeon, loading / The first route and loading the dungeon
- page, displaying / Displaying the page
- glueing, via express / Gluing the application together via express
- moving / Moving the application forward