Вопрос проверяет понимание принципов чистой архитектуры (Clean Architecture) и умение выделять её основные слои.
Чистая архитектура (Clean Architecture), предложенная Робертом Мартином, делит систему на четыре основных слоя, каждый из которых имеет свою ответственность. Главный принцип — зависимость направлена внутрь: внешние слои зависят от внутренних, а не наоборот. Это достигается через инверсию зависимостей.
Order с методами расчета суммы.// Слой сущностей
class Order {
constructor(items) {
this.items = items;
}
getTotal() {
return this.items.reduce((sum, item) => sum + item.price, 0);
}
}
// Слой use case
class CreateOrderUseCase {
constructor(orderRepository) {
this.orderRepository = orderRepository;
}
execute(items) {
const order = new Order(items);
return this.orderRepository.save(order);
}
}
// Слой адаптеров
class OrderRepository {
save(order) {
// сохраняет в БД
}
}В этом примере CreateOrderUseCase зависит от абстракции OrderRepository, а не от конкретной базы данных. Это позволяет легко заменять хранилище.
Чистая архитектура помогает создавать системы, устойчивые к изменениям фреймворков и внешних сервисов. Её стоит применять в сложных проектах с долгосрочной поддержкой, где важна тестируемость и независимость бизнес-логики.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на Python Developer в телеграм