Coding an Architecture Style
$10.00
Minimum price
$16.00
Suggested price

Coding an Architecture Style

A practical guide to learn Software Architecture by coding in Java

About the Book

If you have had the bad experience of having to maintain a complex "big ball of mud" enterprise application, with pressure from the business to go to production with new features under an aggressive schedule, you, better than anyone, know how important is to have a solid architecture with clear defined rules where we can make modifications, having an understanding where every change will impact.

However, it is not enough to understand how to create solid architectures by looking at beautiful architectural diagrams. Or by reading long explanations about the benefits of Microservices or Modularity. Understanding how to create solid structures requires opening an IDE and starting coding. We have to learn what syntactical constructions, other than classes, functions and procedures, our favourite programming language offers to create large-scale applications and just there we will be able to craft different software structures and start recognizing their benefits and drawbacks.

Throughout this book we will iterate an application in order to show how to code different architecture styles. In each iteration we study and implement an architecture style, going through layered architecture, hexagonal (or ports and adapters), modular and microservices. All this is supported by solid architecture concepts, simple designs and good practices. We use Java 11 to implement all the mentioned styles. In particular, to implement the modular architecture style we use the module system incorporated in Java since version 9. We also show different options to verify the architecture rules imposed by each style. All sources are available for the reader. 

Although the implementation is done in the Java language, it is possible to apply the same concepts in languages such as PHP, Ruby, Python or .NET.

We will also review the different architectural views, we discuss properties of monolith vs distributed architectures to finish with a pragmatic study of availability and scalability quality attributes.

About the Author

Enrique Pablo Molinari
Enrique Pablo Molinari

Enrique Molinari holds a Master in Software Engineering at Universidad Nacional de La Plata (Argentina). With 20 years of experience in the software industry he has worked in many software projects as developer, technical lead and architect. He is also professor at Universidad Nacional de Río Negro, in charge of the Object Oriented Design and Advanced Database Systems undergraduate courses.

Table of Contents

  •  
    • Feedback
  • I Introduction
    • 1 Introduction
      • Another Book about Software Architecture?
      • What Will I Learn?
      • Who Is This Book For?
    • 2 Software Architecture: Fundamentals
      • What is Software Architecture?
      • Visualizing Software Architecture
        • 4+1 View Model
        • Structures and Views (SEI)
        • UML Diagrams
        • C4 Model
        • Conclusion
      • Software Architecture Styles
      • Design vs Architecture
  • II Fundamentals and Implementation
    • 3 Modules, Layers and their Architecture Styles
      • Namespaces, Packages, Layers and Modules
        • Logical vs Physical Separation
        • Java Module System
      • Horizontal vs Vertical Partitions
        • Why Do We Split an Application?
        • Modules vs Layers
      • Layered Architecture
        • Definitions and Style
        • Implementation
      • Hexagonal Architecture
        • Definitions and Style
        • Implementation
      • Inverted Layered Architecture
        • Style and Implementation
      • Modular Architecture
        • Definitions and Style
        • Implementation
    • 4 Monolithic and Distributed Architecture
      • Monolithic Architectures
        • Definitions
        • Modular Monolith
      • Distributed Architectures
        • Reasons to Distribute
        • Partial Failures
        • Transactions
        • Distributed Monolith
        • Microservices
      • Modular Architecture vs Microservices
  • III Quality Attributes
    • 5 Availability
      • Introduction
      • Calculating the Availability
      • Other Issues Affecting Availability
      • Availability in Microservices
    • 6 Scalability
      • Scaling Web Applications
      • Scaling Databases
        • CAP and PACELC Theorems
        • Scaling Reads
        • Sharding: Scaling Writes
  • Notes

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms

Do Well. Do Good.

Authors have earned$11,028,257writing, publishing and selling on Leanpub, earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF, EPUB and/or MOBI files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub