Book Image

arc42 by Example

By : Dr. Gernot Starke, Michael Simons, Stefan Zörner, Ralf D. Müller
Book Image

arc42 by Example

By: Dr. Gernot Starke, Michael Simons, Stefan Zörner, Ralf D. Müller

Overview of this book

When developers document the architecture of their systems, they often invent their own specific ways of articulating structures, designs, concepts, and decisions. What they need is a template that enables simple and efficient software architecture documentation. arc42 by Example shows how it's done through several real-world examples. Each example in the book, whether it is a chess engine, a huge CRM system, or a cool web system, starts with a brief description of the problem domain and the quality requirements. Then, you'll discover the system context with all the external interfaces. You'll dive into an overview of the solution strategy to implement the building blocks and runtime scenarios. The later chapters also explain various cross-cutting concerns and how they affect other aspects of a program.
Table of Contents (9 chapters)
Free Chapter
1
Acknowledgements
8
VII - macOS Menu Bar Application

VI.9 Design Decisions

This section lists the important design decisions that were made while docToolchain has evolved. They fulfill two tasks:

  • Explain to users and contributors who are new to the project why things are the way that they are
  • Help to revise decisions for which the base has changed

DD1: Wrapped Plugins instead of Ruby Gems

Problem: Asciidoctor plugins can be referenced directly as Ruby gems or as Java dependencies to the JRuby-wrapped .jar files. While Ruby gems always provide the latest version, it might take a number of days for the JRuby versions to become available. Both types of plugins are downloaded from different repositories. In an enterprise environment, the Ruby Gems repository might not be accessible. Since the user of docToolchain is likely to be a JVM developer, and Gradle already depends on Java repositories, the Ruby Gems repository is an additional dependency and would violate C3: Enterprise-ready.

Decision: docToolchain will always use the JRuby version...