такой вопрос, зачем нужен use_case слой? Т.е. пнятно, что в него закладывают бизнес логику, но что такое бизнес логика?
https://github.com/evrone/go-clean-template читали?
Если скажу да, то скажите, что читал плохо. Если скажу нет, то отправите читать))
лол, зачем такое советовать? ребята так хотели "избавиться от спагетти-кода" что запилили кусок грязи) 1. Config прибит гвоздями к постгресу. Я в этом особо плохого не вижу кстати, мне трудно понять любой "переезд с постгреса", но с точки зрения ЧА это харам. 2. Приложенька (app) прибита гвозядми к postgres, rabbitmq, gin. Зачем? Зачем все красивые слова в доке и их НЕ применение. Разве наличие "httpserver" и "usecase/repo" в строке импорта не намекают нам на то, что мы их уже абстрагировали, и должны использовать обёртки вместо конкретных реализаций? (на рэббит ксати как я понял обёртки вообще не хватило😁) Вообще логика работы с тем же postgres размазана по 4-ём пакетам, что является анти-ЧА. Отчего так получается? От того, что ребята хорошо писали на другом языке, в котором надо в любой непонятной ситуации злоупотреблять наследованием и нет duck typing. Поэтому там куча микропакетов с большой вложенностью - норма. В Go это плохо работает - мы получаем циклические импорты или ситуацию в которой "всё импортирует всё" (как раз случай в репе). Связанность усиливается, а не слабеет, инкапсуляция перестаёт приносить пользу. Как говорит Дэйв Чейни: у приличной Go программы структура импорта плоская и широкая. Мы импортируем необходимые кусочки функционала и объединяем их под фасадом. Всё. Сложная иерархия ничего не даёт.
О, я тоже читал эту репу и думал, что же там не так и почему оно выглядит как каша, в итоге для основы понимания взял какую-то другую тоже из топа выдачи гугла
А хороший репо-пример есть?
врядли чи подойдет как шаблон для своего приложения :):)
Возможно 🤷♂ Я не натыкался (но я и не искал). Да и смотря что считать хорошим. Сама ЧА в известной степени - карго культ. Сейчас кругом аналитики же, которые чётко могут сформулировать что софт должен делать. Опыт Дяди Боба другую эпоху описывает: "вызывает менеджер и говорит, Oracle нам больше не по карману, переписывайте на DB2, у нас есть скидка" 😁 А теперь open source кругом.
Уже нет Уже менеджер вызывает и говорит: мы переезжаем в ажур, у нас скидка
тут имхо больше IaC помогает, чем чистая архитектура
Думаю, можно данный кейс(написание демо по заветам ЧА) рассматривать как самостоятельную задачу из категории головоломок. Лично я их так воспринимаю и у меня не бомбит.
дак IoC это же и есть одна из основных идей ЧА
Обсуждают сегодня