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

Есть репа с 6k звезд https://github.com/bxcodec/go-clean-arch про то как надо

строить чистую архитектуру. Я вот смотрю на нее и вижу какую то хуерагу, но 6к звезд не могут ошибаться и я начал подозревать что я че то не понимаю. Там есть пакет usecase, здесь https://github.com/bxcodec/go-clean-arch/blob/master/article/usecase/article_ucase.go#L13 обозначаются зависимости от интерфейсов, которые лежат вообще в другом пакете, в домене https://github.com/bxcodec/go-clean-arch/blob/master/domain/article.go#L19 внезапно описываются интерфейсы для юзкейсов. Пжлста подскажите как такое возможно?

12 ответов

5 просмотров

нормально вроде, а как должно было быть?

Дорогой Danila! Такое возможно по одной простой причине: автор этого репозитория - мудак. И все, кто ему поставил 6k звезд тоже - мудаки (или боты). Потому что только мудак делает 2 совершенно одинаковых интерфейса с разными именами (https://github.com/bxcodec/go-clean-arch/blob/master/domain/article.go) и называет это "чистой архитектурой". Надеюсь, я ответил на твой вопрос. Всего хорошего!

Сергей
Дорогой Danila! Такое возможно по одной простой пр...

Утверждение, явно обладающее дискуссионным потенциалом.

Геннадий Ковалёв
Утверждение, явно обладающее дискуссионным потенци...

сильное заявление в наши дни так стали называть? взял на заметку.

Это просто пример оооочень вырожденный. Поэтому ничего и не понятно. Но вообще юзкейс - может быть абстракцией уровня домена. Доменная модель может разные юзкейсы использовать и комбинировать. При этом юзкейсы в целом могут быть реализованы по разному. Юзкейс в сложном приложении может лежать в отдельном слое и в отдельном пакете. Это не запрещено. И этот пример вводит вас в заблуждение во первых из-за своей вырожденности, а во вторых, потому что скорее всего вы слишком буквально и в неправильном контексте понимаете Go-шную рекомендацию "Интерфейсы должны лежать в месте их использования".

Danila- Автор вопроса
Anton Kucherov
Это просто пример оооочень вырожденный. Поэтому ни...

Гошная рекомендация здесь ни при чем, это просто необходимое условие для правильного направления зависимостей в контексте чистой архитектуры.

Danila- Автор вопроса
Anton Kucherov
О каком именно условии речь?

Интерфейсы лежат в пакете использующем их

Danila
Интерфейсы лежат в пакете использующем их

Если доменная модель (набор структур и функций) лежит в пакете domain и эти функции доменной модели используют некоторые юзкейсы. Где в таком случае должны лежать юзкейсы?

Danila- Автор вопроса
Anton Kucherov
Если доменная модель (набор структур и функций) ле...

Во первых модели не используют юзкейсы, во вторых если уж вы это делаете то юзкейсы лежат в юзкейсах, а в домене интерфейсы

Геннадий Ковалёв
Утверждение, явно обладающее дискуссионным потенци...

Подскажите пожалуйста - какое конкретно утверждение вы имеете в виду (их там три)?

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Карта сайта