Recommended by Byte Senior Architect! "Software Architecture" a must-read for programmers

 

Preface

Software architecture plays a critical role in successful software delivery, yet it’s frustratingly overlooked by many teams. Even in the most agile teams, the role of software architecture is necessary, whether it is played by one person or the entire team, but finding a balance between the two architectural concepts of pre-emptive and evolutionary is often just a beautiful thing. Willingness did not become reality.

If you need to get the information, you can send a private message to [777] in the background to get it for free.

Chapter 1 What is Software Architecture

By studying this section, we will learn what software architecture is, the difference between architecture and design, what agile architecture means, and why it is important to think about software architecture.

When explained as a noun, architecture is generally related to structure: the decomposition of a product into a series of components, modules and interactions. This requires considering the entire product, including processing (of a building) power, water, air conditioning, or processing (of software) Infrastructure services with cross-cutting concerns such as security and configuration error handling.

Chapter 2 Types of Software Architecture

This section will focus on the role of software architecture, including what the role of software architecture is, what types of skills are required, and why coding, mentoring, and collaboration are important.

A software system rarely exists in isolation, and there may be many people who contribute to the entire architecture process. This ranges from the direct development team who need to understand and agree on the architecture, all the way to the extended team of those interested in security, database, operations, maintenance or support. Anyone in a software architecture role will need to work with these people to ensure that the architecture integrates successfully with its surrounding environment. If you don't cooperate, you're going to fail.

Chapter 3 Software Design

This section is about the overall process of designing software, specifically what you really need to think about before you start coding.

Software architecture talks about important design decisions, the importance of which is measured by the cost of change. The starting point for those important decisions that fundamentally shape the final software architecture is a high-level understanding of requirements, constraints, and principles. Understanding them early will help avoid costly rework in the future.

Chapter 4 Visualization Software

This part is about visualizing software architecture with a set of lightweight but effective sketches.

When I tell people that I travel around the world teaching people about software architecture and how to draw, the reaction is usually one of disbelief or teasing. To be fair, it's not hard to see why. Software architecture already gets a bad rap, and talking about the "big picture" often brings to mind analysis paralysis and a bunch of UML diagrams that few people actually understand. After all, the software development industry has come a long way in the past decade, especially with the impact of the Agile Manifesto and the myriad of technologies it has spawned.

Chapter 5 Generating documentation for the software

This section is about an important topic that we have a love-hate relationship with: writing documentation!

I have been asked to review and participate in the development of systems that had no documentation. You can certainly evaluate the answers to most questions from a code perspective, but that would be onerous. Reading code will always be of limited use, but at some point you may need to ask other people on the team for questions. If you don't ask the right questions, you won't get the right answers: you don't know what you don't know.

Chapter 6 Software Architecture in the Development Life Cycle

This final part will explore how to integrate the previous content into the daily work of software development, and also answer the question of how much software architecture (and pre-design) should be done.

Edit switch to center

Thinking about architectural drivers doesn't take long, but it can provide a starting point for other parts of the software design. Of course, this doesn't mean that the architecture shouldn't change, especially once you start writing code and getting feedback. The key is that you now have a framework and scope of work that can provide the team with some of the vision and guidance they often need. My experience is that small directions go a long way.

If you need to get the information, you can send a private message to [777] in the background to get it for free.

Guess you like

Origin blog.csdn.net/Cipher_Y/article/details/132213367