Тёмный

ОЧЕНЬ ЧИСТАЯ АРХИТЕКТУРА НА GOLANG 

The Art of Development
Подписаться 17 тыс.
Просмотров 19 тыс.
50% 1

Весь исходный код здеся:
github.com/the...
Больше обо мне и курсах можно прочитать здесь:
artofedu.org/
Не забываем про Телеграмм группу:
Telegram Group: t.me/theartofd...
И канал:
Telegram Channel: t.me/theartofdev
Предыдущие видео про чистую архитектуру:
Часть 3 - • Уроки по Golang. Advan...
Часть 2 - • Уроки по Golang. Advan...
Часть 1 - • Уроки по Golang. Advan...
Приятного просмотра!
GitHub репозиторий: github.com/the...
Задачи для пулл реквестов: github.com/the...
Поддержи выход новых видео на Патреоне!
/ theartofdevelopment
Другие видео:
Уроки по Golang. Advanced. REST API. Вебсервер.
• Уроки по Golang. Advan...
Изучаем Python. Урок 1. Основы. Бонус: Пишем приложение на FastAPI • Изучаем Python. Урок 1...
Изучаем Golang. Урок 1. Основы + веб-сервер в 3 строки в конце урока! • Изучаем Golang. Урок 1...
Разработка системы заметок на Python, Golang и микросервисы в 2021 году • Разработка системы зам...
Как стать разработчиком. Часть 1 • Как стать разработчико...
Что такое микросервисы за 200 секунд • Что такое микросервисы...
Что такое Apache Kafka за 200 секунд • Что такое Apache Kafka...
Telegram Group: t.me/theartofd...
VK: thearto...
Дружественный Golang чат: t.me/gogolang
----
Меня зовут Артур Карапетов и я занимаюсь всем, что связано с разработкой. Я создаю высоконагруженные информационные системы, стартапы, занимаюсь личным обучением людей в сфере разработки (программисты, аналитики, системные администраторы), также я помогаю компаниям и стартапам с обучением людей работать и повышением их квалификации.
На этом канале я выкладываю ролики на интересующие меня темы, здесь можно найти серию роликов про создание информационной системы с нуля, а также можно найти серию уроков по языкам, которые я люблю. Добро пожаловать и приятного просмотра!
#go #разработка #архитектура #программирование #golang #курс #урок #голанг #го #tutorial #architecture #cleaning #production #development #howto #learnbasics #coding #programming #изучаемIT

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 59   
@tzofeolam
@tzofeolam 2 года назад
Выходит, что в Go нет устоявшейся конвенции по логическому разделеню кода на директории/пакеты, как например в Java? Иногда забавно наблюдать за всеми этими метаниями в ролике, в процессе написания кода: "сделаем это здесь... нет, лучше сделаем этот тут или лучше там".
@MarkAnto7
@MarkAnto7 Год назад
Реально очень чистая архитектура, файл мэин.го из репозитория пустой А без шуток лучшие уроки по Го - спасибо Артур.
@marcelosoian
@marcelosoian 4 месяца назад
Нельзя не поставить лайк. Много чего уточнил для себя. Спасибо что поделились.
@MaximRovinsky
@MaximRovinsky 2 года назад
С переделанной архитектурой, теперь должно быть проще тестировать и в целом выглядит прозрачно понятно. Круто организовано - это 𝕃𝕚𝕜𝕖👍
@brothers_karamazovs
@brothers_karamazovs 2 года назад
Спасибо за стрим! Было бы здорово осветить подробнее тему реализации транзакций в юзкейсах и сервисах на практике.
@bossikom
@bossikom 2 года назад
А зачем в entity нужны json-атрибуты. по сути domain вообще не должен знать что такое json? Он должен конвертиться во что угодно соответствующим адаптером (json, sql, xml, proto...)
@artfrela
@artfrela Год назад
Думаю сила привычки ;-)
@theeasywaytr4293
@theeasywaytr4293 2 года назад
Ура!!!
@Кир-я9о
@Кир-я9о Год назад
Спасибо за отличные уроки по Го. В репозитории примера файл мэйн.го пустой. Так и задумано?
@MIhailRbk
@MIhailRbk Год назад
Потому что все адепты чистой архитектуры умалчивают о том как все это дерьмо инитить, а вот тут всплывает все дерьмо которое они так старательно отовсюду вычистили
@TheArtofDevelopment
@TheArtofDevelopment Год назад
я не адепт) но проблемы есть везде
@ibragimov-s3y
@ibragimov-s3y 10 месяцев назад
почему не создать бы один общий интерфейс и привязывать сторажи к нему? зачем дублирование кода?
@vp_arth
@vp_arth 6 месяцев назад
Интерфейсы в go вообще не нужны в общем случае. Они объявляются ровно там, где требуется соответствие контракту. Один и тот же сторадж в разных сценариях может удовлетворять разным интерфейсам - один сценарий только создаёт сущности, другой только ищет и т.п. Полный интерфейс всего стораджа не нужен никому.
@userqh67vey6
@userqh67vey6 11 месяцев назад
архитектура все еще чистая или уже не очень?
@TheArtofDevelopment
@TheArtofDevelopment 11 месяцев назад
уже не очень. ждите новый ролик.
@fpway
@fpway 10 месяцев назад
Зачем разделять dto в http и в service? Они имеют идентичные поля, разница лишь в json тэгах. Они на что-то влияют? Почему нельзя использовать один dto с тэгами на два слоя?
@andreyparovozz
@andreyparovozz 5 месяцев назад
Куда девать контроллеры миддл вари?
@TheArtofDevelopment
@TheArtofDevelopment 5 месяцев назад
в отдельный пакет
@andreyparovozz
@andreyparovozz 5 месяцев назад
@@TheArtofDevelopment В папке controllers? Вообще, предложенная архитектура мне очень нравится. Очень лаконично и логично!
@TheArtofDevelopment
@TheArtofDevelopment 2 года назад
Смотреть x1.5-x2 :D и заходим в Телеграмм Канал: t.me/theartofdev И в Телеграмм Группу: t.me/theartofdevel
@АлександрСуходубенко-ю6н
Все круто конечно, но смотреть тяжело... Лайф формат классно, но сложно для восприятия.
@ВикторДолгушин-м4ц
Спасибо, что продолжаете делиться своими успехами.
@temak8805
@temak8805 2 года назад
Спасибо, супер. Хотелось бы увидеть примеры с транзакциями на разных уровнях.
@alekseybudaev2135
@alekseybudaev2135 2 года назад
Как всегда круто. Давай что нибудь на веб сокетах.
@andreyspoki4672
@andreyspoki4672 Год назад
Пересмотрел предыдущие видео о чистой архитектуре и это видео. Этот вариант намного круче, проще, понятнее и гибче. Сделано более качественно, однозначно лайк👍 Будем реализовывать на практике😊
@Vladislav2951
@Vladislav2951 9 дней назад
Как это всё работает, автор конечно же не показал... Ну да, ведь, это совершенно неважно! Чемодан без ручки.
@vp_arth
@vp_arth 6 месяцев назад
У тебя не юзкейсы, а коллекции юзкейсов. Юзкейсы - это «предоставить список доступных книг отфильтрованных по X», «выдать книгу пользователю», «получить новую книгу на баланс» и т.п.
@ИванКозлов-ь8ъ
@ИванКозлов-ь8ъ Год назад
Эх. Сколько придётся принять антидепрессантов, чтобы из python войти в чистую архитектуру на Golang. Когда на видео эксперт 20 минут тратит на реализацию простейшего казалось бы кейса exlude/include fields. Который по идее должен идти в месте с параметрами функции GetList(limit, offset, include, exclude). Но в Golang нет параметров default у функций вот и появляются всякие встраивания структуры в структуру, которые работают под кейс всё равно, а не ABC. Страшно.
@vp_arth
@vp_arth 6 месяцев назад
А где-то уже есть отдельное видео о том, чем так плохи указатели? Если бы в go были константные указатели, ты бы от них не отказался?
@zak_47
@zak_47 2 года назад
как всегда топ!
@bsprspktvnk
@bsprspktvnk 2 года назад
можно пожалуйста громче
@АлексейСмирнов-н7р
Отличный видос, то что я искал. Только начал изучать чистую архитектуру и меня очень напрягало куча одинаковых интерфейсов в разных папках. Значит я все правильно понял
@DzintarsDev
@DzintarsDev Год назад
Teperj nado video - " Samaja chistaja Go arhitektura"! :D
@Almas-2002
@Almas-2002 2 года назад
можешь записать видео с крутыми запросами через select на go
@gooseman5578
@gooseman5578 9 месяцев назад
нет "тама" исходного кода, он старый
@vp_arth
@vp_arth 6 месяцев назад
Вместо того, чтобы просто возвращать 200 с совершенно другой структурой ответа (бедные клиенты), посмотри хотя бы на `Content-Type: application/problem+json` Какая разница, транспорт это или нет. До того как понять, какова схема прилетела в ответе, клиент вынужден как-то распарсить ответ и убедиться, что это не ошибка.. Не надо так.
@TheArtofDevelopment
@TheArtofDevelopment 4 месяца назад
так нет другой структуры. поля error и message парсите всегда и все
@ibragimov-s3y
@ibragimov-s3y 2 года назад
Ахтур
@ubermensch1971
@ubermensch1971 8 месяцев назад
Не понимаю какую роль тут играют сервисы? они же просто вызывают методы репозитория что можно делать и из юзкейсов
@TheArtofDevelopment
@TheArtofDevelopment 8 месяцев назад
там размещаю дополнительную логику по сущности: обогащение, кеш можно туда воткнуть.
@asmr_codster
@asmr_codster Год назад
Спасибо за видео. А что делать, если этот сервис нужно поднять на сервере в докере? yaml/env/json файлы же не хранят в репозитории? Как тогда задеплоить в gitalb, например ?
@TheArtofDevelopment
@TheArtofDevelopment Год назад
через ENV переменные
@theeasywaytr4293
@theeasywaytr4293 2 года назад
Наконец-то посмотрел, спасибо, красота какая! Вопрос: а как же интерфейс Сервиса? Разве NewService не должен возвращать именно интерфейс, а не конкретную реализацию сервиса?
@TheArtofDevelopment
@TheArtofDevelopment 2 года назад
нет. принимаем интерфейс а возвращаем интерфейс
@artfrela
@artfrela Год назад
@@TheArtofDevelopment очепятка, Accept interfaces, return structs
@preegnees6664
@preegnees6664 Год назад
А есть какая нибудь такая же крутая архитектура при работе с брокерами типа Кафки?
@TheArtofDevelopment
@TheArtofDevelopment Год назад
так архитектура такая же. чтение из кафки - это как веб контроллер, запись в кафку это как слой работы с БД.
@preegnees6664
@preegnees6664 Год назад
@@TheArtofDevelopment понял, спасибо большое)))
@cegheyYT
@cegheyYT 2 года назад
Про возврат из конструктора неэкспортируемого типа, мне сделали замечание в дипломной работе ((, теперь ищу источник истины ))
@TheArtofDevelopment
@TheArtofDevelopment 2 года назад
а что они предлагают возвращать? интерфейс ?
@cegheyYT
@cegheyYT 2 года назад
@@TheArtofDevelopment на вызывающией конструктор функции я и так принимаю в виде интерфейса. Но сказали что это плохая практика, нужно делать экспортируемым сам тип. Хотя я не понимаю что плохого в таком подходе, Вот и ищу где почитать про самый правильный способ ))
@PeWpIC
@PeWpIC 2 года назад
@@cegheyYT Нужно проверить. Например у тебя есть интерфейс, а тебе нужно определить тип и кастануть к нему, если тип не экспортируемый, то не сможешь привести к нему
@PeWpIC
@PeWpIC 2 года назад
Ну и вообще странно делать тип не экспоритруемым, если предпологается, что он будет использоваться за пределами своего пакета
@flamehowk
@flamehowk Год назад
Какие книги? Какие авторы? Какие модели? Те, которые по подиуму ходят, или те, которые по небу летают? Автор хоть бы 5 секунд потратил на то, чтобы объяснить - об чем тут вообще речь...
@TheArtofDevelopment
@TheArtofDevelopment Год назад
5 секунд потратил
@flamehowk
@flamehowk Год назад
@@TheArtofDevelopment Наверное где-то в другом видео, ссылку на которое автор дать забыл. Да Вы просто переслушайте свое видео - там нет никакого объяснения. Сторонний зритель заходит и ощущает себя пришедшим на середину пьесы...
Далее
Офицер, я всё объясню
01:00
Просмотров 3,5 млн
pumpkins #shorts
00:39
Просмотров 9 млн
С какого года вы со мной?
00:13
Просмотров 191 тыс.
gRPC  + HTTP + Golang = КОДОГЕНЕРАЦИЯ
1:14:14
Офицер, я всё объясню
01:00
Просмотров 3,5 млн