Rola programisty w architekturze
Pokazać zmiany w czasie
Wyjaśnić pewne pojęcia
Historia
Relacja z Architekturą
Demonstracja narzędzi
+ Duża swoboda
+ Możliowść eksperymentowania
- Źle dobrane narzędzia
- Zła skala
Cecha „młodych zespołów”
+ Mamy pojęcie o wymaganiach
+ Możemy szacować zasoby
- Impotencja decyzyjna
- Legacy code
„Jesteśmy doświadczeni”
+ Wiemy co jest grane
- Jazda bez trzymanki
- Jednak nie wiemy co jest grane
Kto sieje ASAP ten...
+ Jest przetestowana
± Zmień organizację lub zmień organizację
- Mała elastyczność
- Koszty klienta
„Korpo greenfield”
To zależy
Jest ograniczona przez technologię
Jest motywowana technologią
Problem z 1991r
Nauczmy konsumenta szukać logo
SOA
Mikroserwisy
Blockchain
It's all the same fucking day, man
Bo komputer to urządzenie elektryczne
Usługi Cthulhu
Usługi zombie
Usługi wampiry
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();
}
Przestrzega reguł
Mądrze je łamie
Ponieważ wynika z reguł architektury
Nie testuj architektury
Bo się nie da :D
Sprawdzaj kod
Findbugs
Structure 101
Archunit