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

Всем привет Часто вижу тут упоминание таких практик, как репозиторий (в

контексте доступа к БД), разделение пакетов service и api, + все это еще приправлено DI

Мне как человеку с бекграундом Django/flask многое из этого чуждо и непонятно. Я привык как в джанге - есть views, есть models, и т.д.

В связи с этим вопрос - что бы почитать такого, (статьи/книги), чтобы сложить целостное представление об архитектуре веб-приложения на го? Не совсем с нуля, а вот как у меня, с бекграунда другого стека?

Пока вижу только тонны мусорных статей, где описано максимум "как импортировать qin и сделать todolist"
Мне интересно, как сложные проекты делаются в целом.
(+ будет круто, если там же покажется, как этот код сделать тестируемым, но это опционально - могу и отдельно почитать)

20 ответов

16 просмотров

ну у тебя была парадигма MVC, а тут другая

чистая архитектура чистый код паттерны gang of four enterprise patterns (https://martinfowler.com/articles/enterprisePatterns.html)

GO тут не причем. Clean architecture

Степан
model-view-controller, не?

Да, и это для десктопа.

Vadim
mvc в десктопе. У него adr, mvp.

мало кто понимает что MVC это не MVC. в интернете везде написано что в django/flask это MVC, даже про Spring также написано...

Artur Karapetov
мало кто понимает что MVC это не MVC. в интернете...

Мало кто понимает, что MVC изначально вообще между V и С не предполагает транспорт ) это чисто паттерн для GUI. В asp MVC у доке типа написали что они так видят MVC и пошло поехало

Лучшая архитектура та, что форсится линтером. Один раз договорились, накидали правила, закинули в CI. Изменения (разработчики взрослеют, меняются взгляды) также только через новые договоренности, которые превращаются в правила. Что там в итоге выберете – чистую или тупой crud в контроллерах – неважно, важно делать это единообразно.

Про мусорные статьи ты верно написал - их тонна. Пойми вот эту статью: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

Vadim
Лучшая архитектура та, что форсится линтером. Один...

Разные bounded context могут требовать разного уровня проработки. К тому же в процессе развития, в каких-то частях приложения может оставаться говнокод. Проще уж оставить как есть чем менять правила чтобы идти рефакторить для удовлетворения линтера

Айван
Разные bounded context могут требовать разного уро...

Линтер либо берется с самого старта, тогда говнокод там оказаться не может, либо уже на готовый проект, тогда подгоняется под правила, а говно в baseline отправляется и не тревожит никого.

Vadim
Лучшая архитектура та, что форсится линтером. Один...

Интересно, что в строительной архитектуре, каркас делает инженер-конструктор из конструкторского бюро, по заказу архитектора. А потом на конструкцию натягиваются хотелки заказчика. Т.е. в случае с кодом, конструкция это код и структура директорий. Но она не является первичной. Она вторична, так как создаётся под конкретную архитектуру или архитектурную парадигму или школу

Тут проблема в том, что каждый хочет самую лучшую и современную архитектуру, из-за чего очень долго топчется на вопросах в духе "как назвать папку", "куда положить репозиторий" и так далее. Это как в одном чате по архитектуре писали, что, если ваш проект начинается с авторизации, он умрет. Проект надо начинать с фичей, выделять их, изолировать. Архитектура появится.

Vadim
Тут проблема в том, что каждый хочет самую лучшую ...

Архитектура сама не появится. Это набор наработок, проверенный временем, который точно будет работать и является опытом. А то что самотёком пойдет - не факт что заработает в итоге. Потому что комплексити бизнес логики нужно закладывать в самом начале исходя из требований бизнеса. А там дальше уже и определять структуру. Но структура все-равно вторична. А архитектура первична.

NNurik N
Архитектура сама не появится. Это набор наработок,...

Вот пример различия. Если по какой-то причине невозможно реализовать бизнесфичу потому, что текущая архитектура не позволяет этого сделать то это больша юя проблема. А если это не позволяет сделать текущая структура, то это уже проблема поменьше. Так как если она не противоречит архитектуре, то можно реализовать. В случае архитектуры нужны вообще подходы менять, а это очень затратно.

NNurik N
Вот пример различия. Если по какой-то причине нево...

И вы с самого начала сможете заложить архитектуру, которая будет удовлетворять любой фиче? Не надо сравнивать со строительством, другой уровень ответствтенности, масштаб изменений. Архитектура приложений лучше всего на основе ретроспективы формируется, а для этого нужны фичи.

Vadim
И вы с самого начала сможете заложить архитектуру,...

Я больше про то умение компоновать паттерны из архитектуры. Если они правильно скомпонованы, но это легче поддерживать так как подводные камни уже известны используемых подходов. А потом переделывать но с учётом тех же критериев. Типа определить недостатки и достоинства каждого из подхода или паттерна который закладывается. Это даёт предсказуемость. А если самотёком все пустить то всегда будет жопа. Абсолютно всегда

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта