Skip to content

AndreiGanichev/ArchitectureTests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArchitectureTests

While software architects are interested in exploring evolutionary architectures, we aren’t attempting to model biological evolution. Theoretically, we could build an architecture that randomly changed one of its bits (mutation) and redeployed itself. After a few million years, we would likely have a very interesting architecture. However, we don’t have millions of years to wait. We want our architecture to evolve in a guided way, so we place constraints on different aspects of the architecture to reign in undesirable evolutionary directions. A good example is dog breeding: By selecting the characteristics we want, we can create a vast number of different shaped canines in a relatively short amount of time.

Проект предназначен для демонстрации возможностей архитектурных тестов. Представляет собой приложение для ведения списка дел. Реализован в виде модульного монолита. Внутри модулей используется Clean architecture.

Архитектура

Архитектурные тесты реализованы с помощью:

  1. ArchUnitNet
  2. NetArchTest

Источники

Архитектура

  1. Building Evolutionary Architectures. Neal Ford, Rebecca Parsons, Patrick Kua
  2. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Robert C. Martin
  3. Who Needs an Architect? Martin Fowler
  4. Is High Quality Software Worth the Cost? Martin Fowler
  5. Vertical Slice Architecture Jimmy Bogard
  6. PresentationDomainDataLayering Martin Fowler

Архитектурные тесты

  1. Unit Test Your Architecture with ArchUnit Jonas Havers
  2. Writing ArchUnit style tests for .NET and C# for self testing architecture rules

Идеи для проверок

  1. HttpClient создается только с помощью IHttClientFactory
  2. Все enpoints возвращают ошибку в формате Problem Details
  3. Все модели запросов/ответов сериализуемы. Актуально в случае кастомных типов, для которых не поддерживается сериализация "из коробки".
  4. При логирование используется шаблон с параметрами, а не интерполяция строк.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published