170 похожих чатов

Приветствую, пытаюсь тут разобраться с архитектурой проекта на го. Появился

такой вопрос, зачем нужен use_case слой? Т.е. пнятно, что в него закладывают бизнес логику, но что такое бизнес логика?

12 ответов

5 просмотров

https://github.com/evrone/go-clean-template читали?

Sasha- Автор вопроса
Арман Торениязов
https://github.com/evrone/go-clean-template читали...

Если скажу да, то скажите, что читал плохо. Если скажу нет, то отправите читать))

Арман Торениязов
https://github.com/evrone/go-clean-template читали...

лол, зачем такое советовать? ребята так хотели "избавиться от спагетти-кода" что запилили кусок грязи) 1. Config прибит гвоздями к постгресу. Я в этом особо плохого не вижу кстати, мне трудно понять любой "переезд с постгреса", но с точки зрения ЧА это харам. 2. Приложенька (app) прибита гвозядми к postgres, rabbitmq, gin. Зачем? Зачем все красивые слова в доке и их НЕ применение. Разве наличие "httpserver" и "usecase/repo" в строке импорта не намекают нам на то, что мы их уже абстрагировали, и должны использовать обёртки вместо конкретных реализаций? (на рэббит ксати как я понял обёртки вообще не хватило😁) Вообще логика работы с тем же postgres размазана по 4-ём пакетам, что является анти-ЧА. Отчего так получается? От того, что ребята хорошо писали на другом языке, в котором надо в любой непонятной ситуации злоупотреблять наследованием и нет duck typing. Поэтому там куча микропакетов с большой вложенностью - норма. В Go это плохо работает - мы получаем циклические импорты или ситуацию в которой "всё импортирует всё" (как раз случай в репе). Связанность усиливается, а не слабеет, инкапсуляция перестаёт приносить пользу. Как говорит Дэйв Чейни: у приличной Go программы структура импорта плоская и широкая. Мы импортируем необходимые кусочки функционала и объединяем их под фасадом. Всё. Сложная иерархия ничего не даёт.

Alex Sibyakin
лол, зачем такое советовать? ребята так хотели "из...

О, я тоже читал эту репу и думал, что же там не так и почему оно выглядит как каша, в итоге для основы понимания взял какую-то другую тоже из топа выдачи гугла

Alexey Samoylov
chi

врядли чи подойдет как шаблон для своего приложения :):)

Vladimir Voytenko ️
А хороший репо-пример есть?

Возможно 🤷‍♂ Я не натыкался (но я и не искал). Да и смотря что считать хорошим. Сама ЧА в известной степени - карго культ. Сейчас кругом аналитики же, которые чётко могут сформулировать что софт должен делать. Опыт Дяди Боба другую эпоху описывает: "вызывает менеджер и говорит, Oracle нам больше не по карману, переписывайте на DB2, у нас есть скидка" 😁 А теперь open source кругом.

Alex Sibyakin
Возможно 🤷‍♂ Я не натыкался (но я и не искал). Да ...

Уже нет Уже менеджер вызывает и говорит: мы переезжаем в ажур, у нас скидка

Daniel Podolsky
Уже нет Уже менеджер вызывает и говорит: мы перее...

тут имхо больше IaC помогает, чем чистая архитектура

Alex Sibyakin
Возможно 🤷‍♂ Я не натыкался (но я и не искал). Да ...

Думаю, можно данный кейс(написание демо по заветам ЧА) рассматривать как самостоятельную задачу из категории головоломок. Лично я их так воспринимаю и у меня не бомбит.

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann ٩( 💢•̀ з•́)و Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта