Software Architecture for Busy Developers
eBook - ePub

Software Architecture for Busy Developers

Stephane Eyskens

Partager le livre
  1. 174 pages
  2. English
  3. ePUB (adapté aux mobiles)
  4. Disponible sur iOS et Android
eBook - ePub

Software Architecture for Busy Developers

Stephane Eyskens

DĂ©tails du livre
Aperçu du livre
Table des matiĂšres
Citations

À propos de ce livre

A quick start guide to learning essential software architecture tools, frameworks, design patterns, and best practicesKey Features‱ Apply critical thinking to your software development and architecture practices and bring structure to your approach using well-known IT standards‱ Understand the impact of cloud-native approaches on software architecture‱ Integrate the latest technology trends into your architectural designsBook DescriptionAre you a seasoned developer who likes to add value to a project beyond just writing code? Have you realized that good development practices are not enough to make a project successful, and you now want to embrace the bigger picture in the IT landscape? If so, you're ready to become a software architect; someone who can deal with any IT stakeholder as well as add value to the numerous dimensions of software development.The sheer volume of content on software architecture can be overwhelming, however. Software Architecture for Busy Developers is here to help. Written by Stephane Eyskens, author of The Azure Cloud Native Mapbook, this book guides you through your software architecture journey in a pragmatic way using real-world scenarios. By drawing on over 20 years of consulting experience, Stephane will help you understand the role of a software architect, without the fluff or unnecessarily complex theory.You'll begin by understanding what non-functional requirements mean and how they concretely impact target architecture. The book then covers different frameworks used across the entire enterprise landscape with the help of use cases and examples. Finally, you'll discover ways in which the cloud is becoming a game changer in the world of software architecture.By the end of this book, you'll have gained a holistic understanding of the architectural landscape, as well as more specific software architecture skills. You'll also be ready to pursue your software architecture journey on your own - and in just one weekend!What you will learn‱ Understand the roles and responsibilities of a software architect‱ Explore enterprise architecture tools and frameworks such as The Open Group Architecture Framework (TOGAF) and ArchiMate‱ Get to grips with key design patterns used in software development‱ Explore the widely adopted Architecture Tradeoff Analysis Method (ATAM)‱ Discover the benefits and drawbacks of monoliths, service-oriented architecture (SOA), and microservices‱ Stay on top of trending architectures such as API-driven, serverless, and cloud nativeWho this book is forThis book is for developers who want to move up the organizational ladder and become software architects by understanding the broader application landscape and discovering how large enterprises deal with software architecture practices. Prior knowledge of software development is required to get the most out of this book.

Foire aux questions

Comment puis-je résilier mon abonnement ?
Il vous suffit de vous rendre dans la section compte dans paramĂštres et de cliquer sur « RĂ©silier l’abonnement ». C’est aussi simple que cela ! Une fois que vous aurez rĂ©siliĂ© votre abonnement, il restera actif pour le reste de la pĂ©riode pour laquelle vous avez payĂ©. DĂ©couvrez-en plus ici.
Puis-je / comment puis-je télécharger des livres ?
Pour le moment, tous nos livres en format ePub adaptĂ©s aux mobiles peuvent ĂȘtre tĂ©lĂ©chargĂ©s via l’application. La plupart de nos PDF sont Ă©galement disponibles en tĂ©lĂ©chargement et les autres seront tĂ©lĂ©chargeables trĂšs prochainement. DĂ©couvrez-en plus ici.
Quelle est la différence entre les formules tarifaires ?
Les deux abonnements vous donnent un accĂšs complet Ă  la bibliothĂšque et Ă  toutes les fonctionnalitĂ©s de Perlego. Les seules diffĂ©rences sont les tarifs ainsi que la pĂ©riode d’abonnement : avec l’abonnement annuel, vous Ă©conomiserez environ 30 % par rapport Ă  12 mois d’abonnement mensuel.
Qu’est-ce que Perlego ?
Nous sommes un service d’abonnement Ă  des ouvrages universitaires en ligne, oĂč vous pouvez accĂ©der Ă  toute une bibliothĂšque pour un prix infĂ©rieur Ă  celui d’un seul livre par mois. Avec plus d’un million de livres sur plus de 1 000 sujets, nous avons ce qu’il vous faut ! DĂ©couvrez-en plus ici.
Prenez-vous en charge la synthÚse vocale ?
Recherchez le symbole Écouter sur votre prochain livre pour voir si vous pouvez l’écouter. L’outil Écouter lit le texte Ă  haute voix pour vous, en surlignant le passage qui est en cours de lecture. Vous pouvez le mettre sur pause, l’accĂ©lĂ©rer ou le ralentir. DĂ©couvrez-en plus ici.
Est-ce que Software Architecture for Busy Developers est un PDF/ePUB en ligne ?
Oui, vous pouvez accĂ©der Ă  Software Architecture for Busy Developers par Stephane Eyskens en format PDF et/ou ePUB ainsi qu’à d’autres livres populaires dans Computer Science et Computer Engineering. Nous disposons de plus d’un million d’ouvrages Ă  dĂ©couvrir dans notre catalogue.

Informations

Année
2021
ISBN
9781801079853
Édition
1

Section 1: Introduction

In this part, I'll introduce software architecture, what we are talking about and how it is reflected in the real world. I'll also explain what is in scope for the book and what's not.
This section comprises the following chapter:
  • Chapter 1, Introducing Software Architecture

Chapter 1: Introducing Software Architecture

In this chapter, I will introduce the subject of software architecture. My purpose is to help you understand my vision of software architecture and how I will tackle this topic throughout the book.
More specifically, this chapter covers the following topics:
  • Software architecture in a nutshell
  • A software architect's duties
  • Introducing the different architecture disciplines
  • Positioning software architecture within the global architecture landscape
By the end of the chapter, you should have a better grip on software architecture and a better idea of how this book will walk you through your software architecture journey.

Software architecture in a nutshell

However rich the literature is on the topic, it's not so easy to find a common definition of software architecture. We as architects like to decouple things, so let's decouple the words software and architecture. Starting with software, we can give this broad definition: computer programs. Our second word, architecture, can be defined as the art of designing buildings, houses, and the like. If we extrapolate a bit, we could define software architecture as the art of designing computer programs. This definition sounds very broad.
Rest assured, we can evacuate hardware from the equation because it represents the machines themselves. Phew—this should make our task easier, although we are left with everything that runs on a piece of hardware, which remains extremely vast.
Searching for software architecture on Google reveals about 262,000 results, which is very impressive. So many results probably mean a lot of different definitions and a lack of a common understanding of what software architecture is all about. The same query on Google Images does not bring up a single diagram that could help up figure out what software architecture is.
Given the diversity of definitions, I will provide my own, although I don't claim to have the absolute truth. I will start by tying software architecture to the Architecture Tradeoff Analysis Method (ATAM), which we will see in Chapter 3, Understanding ATAM and the Software Quality Attributes. In a nutshell, ATAM consists of evaluating different quality attributes—such as performance, availability, reliability, and so on—of a piece of software. Some of these attributes are code-related, whereas some are infrastructure- or security-related.
Although there is no single definition of software architecture, one thing is absolutely certain: a software architect should be acquainted with ATAM. Another thing that appears as an emerging consensus is that the role of a software architect is tightly coupled with the actual development of an application, and I share this viewpoint. This is how Wikipedia (https://en.wikipedia.org/wiki/Software_architect) defines software architecture, but for me, software architecture goes far beyond mere coding, and that is what you will find out while reading this book. Let's now look at what a software architect's job description might look like.

A software architect's duties

Sometimes, a good job description helps understand the tasks and duties pertaining to a given position. Here again, looking for such descriptions on the web gives many different results, but this is what I think are the responsibilities of a software architect:
  • Addressing both functional requirements (FRs) and non-functional requirements (NFRs): As you know, FRs are the primary trigger to design a solution. Whether the solution/service is designed for the business or for the Information Technology (IT) department itself, you make your business case and then start the design work. NFRs (availability, security, disaster recovery (DR), and so on) are not always expressed but are also particularly important and are often the most challenging part.
    This book will help you address these requirements in a structured way. Addressing both FRs and NFRs is also the duty of a solution architect, so it can be debated whether this should fall under the duties of a software architect or not. I think that a good software architect is able to address FRs. An excellent software architect can address both while addressing FRs in a more in-depth way than a solution architect.
  • Providing technical standards, coding guidelines, and design patterns to developers: Functional features are an integral part of the code base. It's a no-brainer that good design patterns usually improve the resulting quality of a solution. As a software architect, you must understand them and you must be able to sense which pattern is valuable in your own context. We will dive into design patterns in Chapter 5, Design Patterns and Clean Architecture, as well as in Chapter 6, Impact of the Cloud on the Software Architecture Practice, where we will explore cloud and cloud-native patterns.
  • Interacting with stakeholders to ensure developed applications land smoothly in the company's landscape: A successful software architect understands multilateral concerns. They are able to interact with security, infrastructure, solution, and enterprise architects, as well as with developers.
    This book will give you the essential keys to achieve T-shaped skills, which means being an expert in a given field (the base of the T) but also knowledgeable across disciplines (the top of the T). To reinforce your T top bar, we will explore some fundamentals of enterprise architecture (EA), which is a common practice in large organizations, and we will touch on some infrastructure and security typical frameworks. However, I have to manage your expectations here, as the book will only introduce these topics.
  • Performing an active role in the solution delivery process: A close follow-up with the development teams and a good understanding of waterfall and agile methodologies will undoubtedly lead to a smoother delivery.
  • Proactive technology watching to identify new trends and paradigm shifts: Technology is an enabler. Most digital native companies managed to leverage technology wisely and they became Netflix, Facebook, and the like. A good software architect must permanently keep an eye on the ever-evolving technology landscape.
More importantly, a good software architect must exercise good judgment. They should not blindly apply framework x or y, nor pattern a or b. They must contextualize and apply their skills wisely. Let's now discover the various architecture disciplines.

Introducing the different architecture disciplines

There are so many types of architects that we can quickly get lost and wonder who does what in an enterprise. Because this understanding is an essential asset, let's start by reviewing the different disciplines, and I will position software architecture in the mix in the next section. The following diagram shows some of the most common architecture disciplines and their main duties:
Figure 1.1 – Architecture disciplines: main duties
F...

Table des matiĂšres