Book Image

Software Architecture for Web Developers

By : Mihaela Roxana Ghidersa
Book Image

Software Architecture for Web Developers

By: Mihaela Roxana Ghidersa

Overview of this book

Large-scale web applications require you to write code efficiently following business and architectural considerations. They require web developers to understand the impact of their work on the system and how they can evolve the product. With this handbook, every developer will find something to take away. This book will help web developers looking to change projects or work on a new project in understanding the context of the application, along with how some design decisions or patterns fit better in their application’s architecture. It acts as a guide, taking you through different levels of professional growth with a focus on best practices, coding guidelines, business considerations, and soft skills that will help you gain the knowledge to craft a career in web development. Finally, you’ll work with examples and ways of applying the discussed concepts in practical situations. By the end of this book, you’ll have gained valuable insights into what it means to be a web architect, as well as the impact architecture has on a web application.
Table of Contents (15 chapters)
1
Part 1 – Getting the Grasp of Architecture
7
Part 2 – Architect: From Title to Role
10
Part 3 – From Developer to Architect

Design principles

Design patterns help us with some of the issues we’ve discussed regarding making changes, reusability, and maintainability. Using design patterns backed by the experience and different work scenarios of highly experienced forebearers, we can be sure that our code will become more readable, decoupled, and aligned with best practices. From my experience, I can say that design patterns have the power to force us to write clean code.

Let’s cover some of the design principles that stand behind design patterns:

  • SOLID principles (as discussed in Chapter 1, The Role of Architecture)
  • Encapsulate what varies
  • Favor composition over inheritance
  • Loose coupling
  • KISS
  • YAGNI
  • DRY

Let’s look at these design principles in detail.

Encapsulate what varies – This principle is one of the most straightforward. It teaches us to identify the areas of our system that vary and separate them from what never changes and...