Premises Flashcards

1
Q

No Silver Bullet

A

In Software Architecture, there’s no “silver bullet”. There’s no architecture that fits well in all the contexts. It is important, though, to know and understand all the architectures, its pros and cons and which problems they solve.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Terminology - Functional

A

Any piece of code that has purely a technical role. In other words, code that is not related to the domain. Examples: Factories, Repositories and Views.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Terminology - Conceptual

A

Any piece of code that represents bussiness logic and/or capability. It is related to the domain. Examples: User, Product and Order.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Terminology - Package

A

Any set of classes grouped together, ideally following some set of rules

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Terminology - Module

A

It is a functional package, it reflects a technical capability in the application. It is decoupled and can be swapped by another implementation. Examples can be the Security Module

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Terminology - Component

A

It is a conceptual package that reflects a business capability. It is also, ideally, decoupled from other components and modules. Examples can be “User”, “Product” or “Checkout”

The most important thing to remember, though, is that, ideally, it reflects a bounded context. Components provide for Conceptual cohesion.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Terminology - Application

A

Application is the user-facing code, the UI, which is built on top of the Components.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Terminology - System

A

I think of the system as a set of applications that somehow work together to provide functionality to a wide range of enterprise necessities, forming an enterprise-wide system, an Enterprise Application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Terminology - Architecture

A

Software Architecture is the set of structures needed to reason about the system, which comprises software elements, relations among them, and properties of both.

All technical decisions that are cross-cutting to all feature development, ie. frameworks, coding standards, documentation, processes.

It’s the big picture view of the system, the broad strokes, the structure, the components and their relations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Terminology - Architect

A

He is the guardian and promoter of the Architecture, which is discussed and decided as a guild. He is one of the most experienced developers in the team/department, which happens to have the extra responsibility of analysing high-level problems and solutions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Smells of a bad Architecture

A

Rigidity, Fragility, Immobility, Viscosity, Needless repetition, Opacity, Needless complexity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly