Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті

22 views

Published on

Ідея гексагональної архітектури полягає в тому, щоб відділити зовнішні взаємодії від бізнес логіки задопомогою так званих портів. Мета - ізолювати центральну логіку вашої програми від зовнішніх залежностей.
Під час виступу хочу поділитися досвідом розробки Nodejs додатку з використанням гексагональної архітектури. Обговоримо підводні камені, з якими можна стикнулися під час розробки, основні перевагами та недолікі архітектури. На прикладі розглянемо, як саме організувати архітектуру в Nodejs середовищі, а також стек технологій, що ми використовували, та підходи до тестування.

Published in: Education
  • Be the first to comment

  • Be the first to like this

JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті

  1. 1. Hexagonal architecture in practice
  2. 2. About me Backend Tech Lead at Lecturer at Kottans Andriy Andriyko
  3. 3. What we will talk about 1. What is good architecture? 2. What is hexagonal architecture? 3. Run it! Examples and demo 4. How to test hexagon? 5. Do you really need it? 6. Summary
  4. 4. How do you see an architecture?
  5. 5. What do we want from architecture? ● High Maintainability ● Low Technical Debt
  6. 6. Maintainability
  7. 7. You can become italian chef
  8. 8. Hexagonal architecture
  9. 9. 19 10 Слайд про ноду на гексагоне
  10. 10. Perfect fit for Nodejs
  11. 11. Demo
  12. 12. Application core
  13. 13. Primary adapters
  14. 14. Secondary adapters. Notifications Port Adapter
  15. 15. Secondary adapters. Repository port
  16. 16. Secondary adapters. Repository Adapter
  17. 17. Project structure /core /primaryAdapters /secondaryAdapters
  18. 18. Project structure. Primary adapters
  19. 19. Project structure. Secondary adapters
  20. 20. Project structure. Core /core /component /port /sharedKernel
  21. 21. Демка. Запустить показать
  22. 22. Tests ● Unit ● Integration ● Acceptance
  23. 23. Tests. Unit
  24. 24. Tests. Integration
  25. 25. Tests. Acceptance
  26. 26. Not a silver bullet When you need Hexagon? ● App have business logic ● App will evolve ● Team is big and project is long-term ● Need to change technologies
  27. 27. When you don’t need Hexagon? ● Small projects ● Speed more important than maintainability ● There is a better fit for your problem
  28. 28. Combine approaches ● Service-oriented architecture ● Microservices ● Serverless
  29. 29. Problems ● Transactions ● Validations ● DB queries optimisation
  30. 30. Conclusions Pros Cons Great testability Complexity Maintainability Easy to over-engineer Easy handle changes Delay technical decisions
  31. 31. Questions?
  32. 32. Contacts andriy.andriyko@uptech.team andriy-andriyko Stormteller

×