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.

  1. Very ugly 3-layer app (anemic models)
  2. Refactoring
    1. Unit/Integration tests (Protect business logic) + TestContainers if needed
    2. Change logic to add more unit tests
    3. Split domains/hexagonal architecture
  3. Save form vs Save state per field
  4. Security (OAuth, SSL, CORS etc.)
  5. Event Sourcing
  6. Microservices
    1. Service discovery
    2. Circuit breaker
    3. Tenants?
  7. Functional approach
  8. Kubernetes/Docker
  9. Kotlin
  10. Kafka
  11. Read Model/CQRS
  12. Slack notifications
  13. JOOQ
  14. Micronaut/Quarkus
  15. HotWire
  16. Observability
  17. Profiling
  18. Documentation
  19. Bitemporal event
  20. 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.