Przez ciągły natłok obowiązków nie mam czasu, aby się zatrzymać i zastanowić w którym kierunku pójść. Robię wiele rzeczy, ale ciężko mi je domknąć do końca. Nie omija to też rozwoju w IT. Wiem, że są koncepcje, które są ważniejsze od samej technologii jak np. dobre podzielenie domeny, którą właśnie implementujemy. Jednak na koniec dnia musimy coś przysłowiowo zakodzić. Stąd właśnie przyszedł pomysł, aby skupić się też na tych “twardych” skillach. A przy okazji chcę podzielić się tą moją listą na blogu. Być może wtedy będę miał większą motywację do działania w tym kierunku i dodatkowo ktoś może na tym skorzysta.
First of all
Jednak na początku muszę znaleźć sobie naprawdę trywalną domenę do zakodzenia. Coś na tyle prostego, aby nie tracić czasu na zgłębianie wszystkich przypadków brzegowych. Ale też nie tak prostą jak dodawanie dwóch liczb. Myślę nad prostym procesem głosowania albo procesem rejestrowania się na szczepienia i ich odhaczaniu. Co wybiorę to czas pokaże. Ważne, żeby coś mieć, aby móc pobawić się wodotryskami.
Moja lista wodotrysków do nauki
Punktem zero będzie stworzenie projektu, który nie będzie najpiękniejszy. Wręcz przeciwnie, będzie tragiczny. Będę się starał stworzyć naprawdę brzydkiego potworka w architekturze trójwarstwowej. W ten sposób będę mógł poćwiczyć kilka rzeczy z mojej listy. A prezentuje się ona następująco.
- Very ugly 3-layer app (anemic models)
- Refactoring
- Unit/Integration tests (Protect business logic) + TestContainers if needed
- Change logic to add more unit tests
- Split domains/hexagonal architecture
- Save form vs Save state per field
- Security (OAuth, SSL, CORS etc.)
- Event Sourcing
- Microservices
- Service discovery
- Circuit breaker
- Tenants?
- Functional approach
- Kubernetes/Docker
- Kotlin
- Kafka
- Read Model/CQRS
- Slack notifications
- JOOQ
- Micronaut/Quarkus
- HotWire
- Observability
- Profiling
- Documentation
- Bi-temporal event
- jMeter
Podsumowanie
Mam nadzieję, że uda mi się osiągnąć postawione cele chociaż wydają się bardzo ambitne. Jestem ciekaw ile zajmie mi wykonanie tego wszystkiego. Oczywiście o ile wytrwam do końca. Nie będę też ukrywał, że lista ta pewnie nie jest kompletna i będzie ewoluowała. Liczę, że przyda się ona i Tobie. Może również masz rozpisane technologie, których chcesz się nauczyć/podszkolić? Daj znać w komenatrzu, może razem się do czego zainspirujemy.