Enterprise Architecture – struktura całości
Infrastructure Architecture – krzem i okolice
System Architecture – automatyzacja zadań
Application Architecture – białkologia
Na początku?
Na końcu?
W „środku”?
Nigdy!
Architektura jest żywa!
To zależy
Jest ograniczona przez technologię
Jest motywowana technologią
Problem z 1991r
Nauczmy konsumenta szukać logo
A software system can best be designed if the testing is interlaced with the designing instead of being used after the design.
TDD
The good systems that are presently working were written by small groups. More than twenty programmers working on a project is usually disastrous.
Scrum?
Each stage produced a usable product and the period between the end of one stage and the start of the next provided the operational experience upon which the next design was based.
SOA
Mikroserwisy
Blockchain
It's all the same fucking day, man
Kod modularny
Dostępny w prawie każdym języku
Wsparcie w narzędziach
Prosty koncepcyjnie
Niezależne od architektury
Wynikają z obserwacji
TDD
BDD
YAGNI
DRY
KISS
Wzorce
DDD
OO BDSM
@Test
public void client_registration_via_sso(){
Client newClient = new Client(DEFAULT_NAME);
Registration reg = regServ.register(newClient);
assertEquals(reg.client, newClient);
assertNotNull(reg.clientIdCard);
assertNot(reg.passwordData);
}
@Test
public void client_registration_via_sso(){
Client newClient = giveMeNewClientNoPass();
Registration reg = regServ.register(newClient);
assertThat(reg)
.isForClient(newClient)
.hasClientIdCard()
.isFromSSO();
}
@Test
public void client_registration_via_sso(){
Client newClient = new Client(DEFAULT_NAME);
Registration reg = regServ.register(newClient);
assertEquals(reg.client, newClient);
assertNotNull(reg.clientIdCard);
assertNot(reg.passwordData);
}
@Test
public void client_registration_via_sso(){
Client newClient = giveMeNewClientNoPass();
Registration reg = regServ.register(newClient);
assertThat(reg)
.isForClient(newClient)
.hasClientIdCard()
.isFromSSO();
}
Koszt (czas)
Fetysz code coverage
Początkowe wydłużenie czasu implementacji
Konieczność szkolenia i samodoskonalenia
Dodatkowa infrastruktura
Ryzyko złego wyboru
Przestrzega reguł
Mądrze je łamie
Ponieważ wynika z reguł architektury
Nie testuj architektury
Bo się nie da :D
Sprawdzaj kod
Checkstyle i PMD
Structure 101
Archunit