作者:morten udnæs 15 年以前
304
Lean Architecture and DCI concepts
The text explores various principles and methodologies for efficient software development, highlighting the importance of Lean and Agile approaches. Lean focuses on thoughtful planning to minimize waste, while Agile emphasizes action and adaptability.
開啟
Lean Architecture and DCI concepts Creating code that follows users mental modelavoids having to make uses cases for every possible variation First phase Use case, to organize the timing of responsible decisions Input to domain model to scope the domain Screen design to ensure a usable system Define the problem: The difference betwen current state and the desired state Documentation is for communication AND to remember perspectives and decisions Waiting is waste The hard part of design is the partitioning of a systeminto modules and collections of related APIs Agile is about doing. Lean is about thinking before doing (to reduce waste) Rework in design saves costly rework in production Rework during production is waste Lean Principles Software architecture should support the enterprisevalue stream Continues flow Code just in time Everyone has to participate Focus on long term results What the system is vs. what the system does Does relates to functionality Is relates to form/architecture We go to the code for what and how, but only the authors or theirdocumentation tell us why Use case scenarios are implementedas traits/rolemethods/mixins Lightweigh use cases capturessystem functionality Domain model can be build in a coupleof weeks using abstract base classes Design-by-contract gets us closer torunning code even faster Enage all stakeholders to get a cross-functional team from the start to get insight and be able to defer decisions to the (last) responsible moment Source code and architecture should reflect the end user mental model of the world