Юрий
но в целом да, я с вами согласен, что бывает зачастую запарно
Vladislav
зачем 6? они сильно отличаются для того чтобы делать разные dao?
Ilya
Т.е идея языка скорее всего это чтобы избежать всяких чистых архитектур и ооп, но колесо сансары просто так не покинуть
Юрий
А зачем мы тогда пишем на го вообще. Могли бы на си шарпе писать, там вон и автомаппер есть) Я считаю, что зачастую это прям оверхед.
Конечно если ты пишешь сервис работы с какими-нибудь платежами то там стоит обращать на это внимание, но все же, в большинстве случаев это просто теребоньканье взрослых дядечек
Юрий
все есть яд и все есть лекарство)
Vladislav
Юрий
Куда важнее архитектура самого проекта) переписать микросервис не так дорого как переписать весь проект из-за неграмотной архитектуры)
Andrey
вот на заборе написано слово из 3 букв, а там лежат дрова...
Виктор
в большинстве в бизнесе победит говно код который быстрее вышел в продакшен и словил первый хайп
а потом уже можно рефакторингом занятться
Юрий
я свидетель того, когда и мвп сработал и из-за грамотной архитектуры (уважение и слава моему бывшему коллеге техлиду) мы смогли выдержать очень быстрый наплыв огромного количества пользователей с не настолько большими затратами на железо, а вот сами микросервисы были склепаны из говна, это да
Виктор
всему свое время скорее всего
Andrey
конечно, только я вот в коммитерах не увидел создателей golang - а так всё хорошо
Виктор
Юрий
прикольно
Ну это щас прикольно) а тогда я этого не понимал) глуп и неопытен, меня напрягало, что наши сервисы были написаны как раз не по чистной архитектуре, а по принципу "Вася, херачь быстрее") только через время когда ушел из компании начал понимать что там было на самом деле
Vladislav
там походу не в чи дело было
Ilya
Юрий
Но я думаю каждый кто только начинает пусть в айти должен перерасти этот этап архитектурной дрочки чтобы понимать что стоит делать, а что нет. Потому что вообще без понимания - ты пишешь совсем говно
Виктор
Так как везде есть «люфты»
Vladislav
конкурент просто делал, а не чаи гонял
Виктор
Юрий
Да никакой байки) тут стандартная история когда ты из-за недостатка опыта просто не видишь чего-то и думаешь, что люди вокруг дебилы, а ты крутой. Но потом со временем понимаешь что это ты дебил
Юрий
и я думаю в глубине проектов мэйла все еще есть какие-нибудь куски кода на перле
Ilya
Архитектура должна быть, и ее основная задача это как можно быстрее доводить фиксы,фичи и т.д до прода. Поэтому архитектура должна всех кто пишет код обязать соблюдать консистентность кода и все. Никаких абстракций над абстракциями и слоев
Юрий
ну это тоже от ситуации к ситуации. Какой-нибудь озон может себе позволить думать над архитектурой каждого микросервиса. Хотя насколько я знаю у них там от команды к команде все стандартизировано просто
Сидредин
Условно самое тяжелое для меня было отделить понятия Inversion Of Control и Dependency Inversion. И после этого стало понятно, что у тебя слои должны идти изнутри наружу.
То есть на самом низком уровне у тебя есть domain, где ты описываешь сущности и их поведение, нужно понять, что уровень domain с сущностями не зависит ни от чего так как он в самом низу. То есть от него зависят, но он не зависит.
У тебя так же есть слой работы с базой данных, который регистрирует все, что возможно и отдает тебе только интерфейсы для работы с репозиториями. То есть условно контракт репозитория у тебя меняться не должен, а реализация внутренняя может меняться спокойно.
То же самое с уровнем бизнес логики. Ты зависишь от слоя репозиториев исключительно контрактами. То есть ты в бизнес логике используешь просто методы интерфейса, тебе плевать на реализацию этого.
Выше уже уровень каких-нибудь контроллеров будь то grpc или http не важно, ты выкенешь один фреймворк напишешь на другом тебе не придется всю остальную программу переписывать.
Короче говоря суть ровно в том, чтобы каждый слой выше использовал только интефейсы слоя ниже, чтобы не зависеть от реализации.
сущности - > слой доступа к базе -> слой бизнес логики -> транспортный/представительский слой. И все это регистрируется в какой-то входной точке условно для го это cmd/app/main.go
Domain - это про DDD или не только про него?
Юрий
Не только про него. Тут скорее о сущностях в проекте. То есть условно у вас новостной сайт есть сущности новость, автор, теги и так далее. У них есть свои методы и тому подобное
Миринговин
Думаю, они успевают быстрее сдохнуть за год-другой
Aleksandr
надо писать так, чтобы не жалко было переписать
Миринговин
Юрий
А я утверждал что писать на перле плохо или невозможно? Просто проекты выбирают пилить монолит на микросервисы и решают выбрать другой инструмент. Если рынок делает так - значит на то есть причины
Юрий
Ладно, мне на это просто нечего ответить, расскажите ваше мнение
Vladislav
Миринговин
Как бы у нас crudо-яп, в котором у сервиса срок жизни как у летнего насекомого. А разговоров про ЧИ как будто у нас жаба и мы тут щас на заводы и АЭС софт интегрируем
Юрий
Ну тут как бы все и сошлись на мнении, что чистая архитектура не серебряная пуля для наших задач
Миринговин
Юрий
как это ничего, он продал эту идею в массы
Миринговин
А он разве там голанг имел ввиду? Вроде у него везде жаба.
Ilya
S
Миринговин
Докер не писал местный колхоз, который рассуждает про дядю боба. Это продукт для программистов. Его не нужно лепить к вопросу про коммерческий софт, который мы пишем на местах
Mikhail
Миринговин
Scas
го это про простоту (в смысле сложности кода) и микросервисы - так чтоб разрабы пришли быстро поняли и переписали микросервис - а архитектура (событийная обычно) и всякие саги это уже инженеры продумают. Когда условный не гугл юзает го то он ради экономии начинает экономя на спичках пилить монолит и огребает изза яваи шарпистов в архитекторах.
Mikhail
Миринговин
Не нужно крайностей просто, везде нужен правильный баланс. 20 микросервисов хорошо, 200 плохо
Я как-то смотрел доклад Сысоева про nginx. Меня очень впечатлил его ответ про htaccess. Ему задали поднадоевший вопрос, почему в nginx нет такой прекрасной и удобной штуки как htaccess.
На что он ответил, что nginx разрабатывался в крупной компании под нагрузку, деньги и процесс разработки крупной компании. Он про определенные бизнес-процессы характерные для таких компаний. И когда маленькая фирма с трема программистами и одним админом пытается переехать на nginx, она не понимает, почему нет htaccess. А ответ как раз в этом
Миринговин
А я своими глазами как-то видел такой переезд и вопросы в стиле, какого хуя нам теперь надо дергать кого-то. а раньше просто правили файлик и всё. И на этот вопрос натурально внятно ответить никто по месту не мог )
Mikhail
Mikhail
Михаил
Mikhail
Да, где-то так
Поэтому при классическом )))) образовании разработчика из Java тянет наплодить микросервисов 🤣🤣🤣
@name_666
Всем привет. Сережа тут ?
Сидредин
@name_666
@name_666
Выгорел он давно. Когда его хозяин наказал
Sergey
#ищуработу #golang #remote #junior
Всем привет!
Ищу удаленную работу стажером/джуном golang developer.
Опыт разработки backend 2 года
Опыт разработки на golang 10 месяцев.
Golang начал изучать в декабре 2021 года, есть небольшой опыт разработки pet project в команде.
Знаком с docker, git, grpc/rest api, postgresql, mongodb, sql/nosql.
Английский на уровне чтения документации.
Контакты:
Personal website - https://roxyash.github.io/portfolio
Github - https://github.com/roxyash
Linkedin - https://www.linkedin.com/feed
Georgy
Стартап джунов. Ммм.
Sergey
Го
Привет я
Стартап чисто из бэкендеров джунов
Georgy
Я к тому, что у джунов слабо поставлены софт-скиллы, и вести что-то они едва ли будут способны.
Юрий
ООО "бречены на успех"
Юрий
Alexander
тут скорее другая проблема
Alexander
проблема-то не в том, чтобы написать
Alexander
проблема в том, что написать стОящее
Привет я
И раскрутить
Georgy