Enterprise Architecture – structure of corp
Infrastructure Architecture – hardware
System Architecture – automation
Application Architecture – proetinology
At the beginning?
At the end?
In the 'middle'?
Never!
Architecture is alive!
It depends
Is limited
Is motivated by it
Problem of year 1991
Let's learn client to look for 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.
Agile like?
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
Microservices
Blockchain
It's all the same fucking day, man
Modular code
All popular languages support it
Tools support it
Theory is easy to understand
Architecture independent
Has source in observation
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();
}
Cost (time)
80/20
return on investment
code coverage
Longer start
Learn & teach
Extra stuff (hardware/sofware)
Wrong chose
follow the rules
Break them in smart way
because came from Architecture
Do not test architecture
It is impossible :D
Check&test the code
Checkstyle i PMD
Structure 101
Archunit