Юрий
но в целом да, я с вами согласен, что бывает зачастую запарно
Vladislav
зачем 6? они сильно отличаются для того чтобы делать разные dao?
Ilya
Вы стоимость поддержки такого "продукта" оцениваете?) Что будет через год-два с таким продуктом, сколько затрат будет на его поддержку, который не использует чистую архитектуру
На практике как обычно никто реально до конца не понимает «чистую архитектуру» и на код ревью все вечно что-то рефакторят чтобы допустить хотябы до стейджа, а это опять куча времени и сил(одна из причин кстати почему гуглы создали голенг)
Ilya
Т.е идея языка скорее всего это чтобы избежать всяких чистых архитектур и ооп, но колесо сансары просто так не покинуть
Юрий
А зачем мы тогда пишем на го вообще. Могли бы на си шарпе писать, там вон и автомаппер есть) Я считаю, что зачастую это прям оверхед. Конечно если ты пишешь сервис работы с какими-нибудь платежами то там стоит обращать на это внимание, но все же, в большинстве случаев это просто теребоньканье взрослых дядечек
Юрий
все есть яд и все есть лекарство)
Юрий
Куда важнее архитектура самого проекта) переписать микросервис не так дорого как переписать весь проект из-за неграмотной архитектуры)
Andrey
вот на заборе написано слово из 3 букв, а там лежат дрова...
Владимир
Вы стоимость поддержки такого "продукта" оцениваете?) Что будет через год-два с таким продуктом, сколько затрат будет на его поддержку, который не использует чистую архитектуру
ну вот как вы думаете, сколько успешных продуктов в проде используют ЧИ, а сколько - нет? Я думаю, не ошибусь, если скажу, что 99.99% работающих сервисов ничего не слышали о ЧИ, и они очень разные в поддержке - есть простые, есть непростые.
Виктор
в большинстве в бизнесе победит говно код который быстрее вышел в продакшен и словил первый хайп а потом уже можно рефакторингом занятться
Юрий
я свидетель того, когда и мвп сработал и из-за грамотной архитектуры (уважение и слава моему бывшему коллеге техлиду) мы смогли выдержать очень быстрый наплыв огромного количества пользователей с не настолько большими затратами на железо, а вот сами микросервисы были склепаны из говна, это да
Виктор
всему свое время скорее всего
Andrey
конечно, только я вот в коммитерах не увидел создателей golang - а так всё хорошо
Юрий
прикольно
Ну это щас прикольно) а тогда я этого не понимал) глуп и неопытен, меня напрягало, что наши сервисы были написаны как раз не по чистной архитектуре, а по принципу "Вася, херачь быстрее") только через время когда ушел из компании начал понимать что там было на самом деле
Vladislav
там походу не в чи дело было
Юрий
Но я думаю каждый кто только начинает пусть в айти должен перерасти этот этап архитектурной дрочки чтобы понимать что стоит делать, а что нет. Потому что вообще без понимания - ты пишешь совсем говно
Виктор
А для чего потом рефакториь?)
А вот многие не делают так. Но когда вы сильно разростаетесь то добавить фичу становится тяжелее
Юрий
А для чего потом рефакториь?)
Ну тут чаще просто переписывать надо полностью)
Виктор
Так как везде есть «люфты»
Vladislav
конкурент просто делал, а не чаи гонял
Юрий
Да никакой байки) тут стандартная история когда ты из-за недостатка опыта просто не видишь чего-то и думаешь, что люди вокруг дебилы, а ты крутой. Но потом со временем понимаешь что это ты дебил
Юрий
Ахахха) А у тебя монолит
ну насколько я слышал из докладов того же авито они постепенно пилили его
Юрий
и я думаю в глубине проектов мэйла все еще есть какие-нибудь куски кода на перле
Ilya
Архитектура должна быть, и ее основная задача это как можно быстрее доводить фиксы,фичи и т.д до прода. Поэтому архитектура должна всех кто пишет код обязать соблюдать консистентность кода и все. Никаких абстракций над абстракциями и слоев
Юрий
ну это тоже от ситуации к ситуации. Какой-нибудь озон может себе позволить думать над архитектурой каждого микросервиса. Хотя насколько я знаю у них там от команды к команде все стандартизировано просто
Сидредин
Условно самое тяжелое для меня было отделить понятия Inversion Of Control и Dependency Inversion. И после этого стало понятно, что у тебя слои должны идти изнутри наружу. То есть на самом низком уровне у тебя есть domain, где ты описываешь сущности и их поведение, нужно понять, что уровень domain с сущностями не зависит ни от чего так как он в самом низу. То есть от него зависят, но он не зависит. У тебя так же есть слой работы с базой данных, который регистрирует все, что возможно и отдает тебе только интерфейсы для работы с репозиториями. То есть условно контракт репозитория у тебя меняться не должен, а реализация внутренняя может меняться спокойно. То же самое с уровнем бизнес логики. Ты зависишь от слоя репозиториев исключительно контрактами. То есть ты в бизнес логике используешь просто методы интерфейса, тебе плевать на реализацию этого. Выше уже уровень каких-нибудь контроллеров будь то grpc или http не важно, ты выкенешь один фреймворк напишешь на другом тебе не придется всю остальную программу переписывать. Короче говоря суть ровно в том, чтобы каждый слой выше использовал только интефейсы слоя ниже, чтобы не зависеть от реализации. сущности - > слой доступа к базе -> слой бизнес логики -> транспортный/представительский слой. И все это регистрируется в какой-то входной точке условно для го это cmd/app/main.go
Domain - это про DDD или не только про него?
Юрий
Не только про него. Тут скорее о сущностях в проекте. То есть условно у вас новостной сайт есть сущности новость, автор, теги и так далее. У них есть свои методы и тому подобное
Миринговин
и я думаю в глубине проектов мэйла все еще есть какие-нибудь куски кода на перле
Если этот код до сих пор работает, значит он проработал свои 15 лет. Видели проекты на голанге, которым хотя бы по 8 лет?
Миринговин
Думаю, они успевают быстрее сдохнуть за год-другой
Aleksandr
надо писать так, чтобы не жалко было переписать
Юрий
Если этот код до сих пор работает, значит он проработал свои 15 лет. Видели проекты на голанге, которым хотя бы по 8 лет?
Я думаю до того, чтобы писать проекты на го примерно тогда и додумались, тут уже вопрос в том, что специфика разработки меняется. Сейчас эти микросервисы штампуют со скоростью света, а условный монолит постоянно обрастает и фиг он сдохнет за год
Юрий
А я утверждал что писать на перле плохо или невозможно? Просто проекты выбирают пилить монолит на микросервисы и решают выбрать другой инструмент. Если рынок делает так - значит на то есть причины
Миринговин
А я утверждал что писать на перле плохо или невозможно? Просто проекты выбирают пилить монолит на микросервисы и решают выбрать другой инструмент. Если рынок делает так - значит на то есть причины
Я не спрашиваю про "плохо" или "невозможно". Я спрашиваю, что мешало писать микросервисы на перле раньше. Почему вы пытаетесь микросервисную архитектуру выставить неким ноу-хау? Если раньше писать было как-то проблемно, то охота услышать почему. Как бы мозгов в том, чтобы разбить большой проект на несколько мелких, немного. Об этом могли в 80х спокойно размышлять.
Юрий
Ладно, мне на это просто нечего ответить, расскажите ваше мнение
Миринговин
Как бы у нас crudо-яп, в котором у сервиса срок жизни как у летнего насекомого. А разговоров про ЧИ как будто у нас жаба и мы тут щас на заводы и АЭС софт интегрируем
Юрий
Ну тут как бы все и сошлись на мнении, что чистая архитектура не серебряная пуля для наших задач
Юрий
как это ничего, он продал эту идею в массы
Миринговин
А он разве там голанг имел ввиду? Вроде у него везде жаба.
Ilya
Как бы у нас crudо-яп, в котором у сервиса срок жизни как у летнего насекомого. А разговоров про ЧИ как будто у нас жаба и мы тут щас на заводы и АЭС софт интегрируем
Так смешно еще то что в язык который изначально задумывался без ооп и архитектуры чтобы упростить доставку на прод, начали втюхивать ооп и архитектуру
Миринговин
Так смешно еще то что в язык который изначально задумывался без ооп и архитектуры чтобы упростить доставку на прод, начали втюхивать ооп и архитектуру
Поэтому я и спрашиваю про софт и время его жизни. Как бы что такое большая программа, которой десять лет и она написана на пехепе/петоне/крестах, как бы многие видели. Примерно можно понять, какие у нее бывают проблемы. А с голангом что? Кто-то вживую видел такой софт? А вот по докладам уже можно заметить, что народ наебенил мамкиного хайлоада на свои 5к рпс, а внезапно оказывается, что микросервисы из этих 5к рпс генерируют еще 50к рпс внутри - и весь ресурс компании начинает выжираться попытками обслужить такого микросервисного монстра.
Миринговин
Докер не писал местный колхоз, который рассуждает про дядю боба. Это продукт для программистов. Его не нужно лепить к вопросу про коммерческий софт, который мы пишем на местах
Scas
го это про простоту (в смысле сложности кода) и микросервисы - так чтоб разрабы пришли быстро поняли и переписали микросервис - а архитектура (событийная обычно) и всякие саги это уже инженеры продумают. Когда условный не гугл юзает го то он ради экономии начинает экономя на спичках пилить монолит и огребает изза яваи шарпистов в архитекторах.
Миринговин
Не нужно крайностей просто, везде нужен правильный баланс. 20 микросервисов хорошо, 200 плохо
Я как-то смотрел доклад Сысоева про nginx. Меня очень впечатлил его ответ про htaccess. Ему задали поднадоевший вопрос, почему в nginx нет такой прекрасной и удобной штуки как htaccess. На что он ответил, что nginx разрабатывался в крупной компании под нагрузку, деньги и процесс разработки крупной компании. Он про определенные бизнес-процессы характерные для таких компаний. И когда маленькая фирма с трема программистами и одним админом пытается переехать на nginx, она не понимает, почему нет htaccess. А ответ как раз в этом
Миринговин
А я своими глазами как-то видел такой переезд и вопросы в стиле, какого хуя нам теперь надо дергать кого-то. а раньше просто правили файлик и всё. И на этот вопрос натурально внятно ответить никто по месту не мог )
Max
но в целом да, я с вами согласен, что бывает зачастую запарно
Ну если немного заморочиться с шаблонами и кодогенерацией, то можно получить базовый каркас для сервиса с готовой чистой архитектурой
Михаил
Не нужно крайностей просто, везде нужен правильный баланс. 20 микросервисов хорошо, 200 плохо
О, это известная проблема: когда изобретут новый технический приём, его тут же начинают применять где надо и где не надо Новый приём почти всегда воспринимается как панацея
Mikhail
О, это известная проблема: когда изобретут новый технический приём, его тут же начинают применять где надо и где не надо Новый приём почти всегда воспринимается как панацея
Но это можно (как разработчику) это понять - микросервис в Go единственный понятный способ инкапсуляции при отсутствии полноценного ООП
Mikhail
Да, где-то так
Поэтому при классическом )))) образовании разработчика из Java тянет наплодить микросервисов 🤣🤣🤣
@name_666
Всем привет. Сережа тут ?
Emin Zalaev
Всем привет. Сережа тут ?
да, он выгорел, сидит в углу бормочет что в Го есть ООП
@name_666
да, он выгорел, сидит в углу бормочет что в Го есть ООП
В го, да , есть ООП. Так же как в СИ наверное
@name_666
Выгорел он давно. Когда его хозяин наказал
Valeriy
Может такое быть из-за того, что сам я сижу в Грузии, и они не хотят на удаленку. Или могут быть другие причины и какие?
Может да, а может и нет. Пиши сопроводительное письмо. Пиши почему хочешь работать в компании и почему им подходишь. Только слишком много не пиши) Удачи
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
проблема в том, что написать стОящее
Привет я
И раскрутить
Юрий
Но не в сфере программирования.
а чем продажи в айти отличаются от других продаж?