Dmitry
Я разобрал отдельный кейс, где монорепа неудобна. Ты только написал про то, что Борис просто ленивый, ничего не написав, почему это плохо. Конкретно этот способ иногда позволяет закрыть проблему куда быстрее.
Т.е. с монорепой можно поступить так же, как и с мультирепой - ничего не потеряв, а вот с мульти репой - уже лишаешься того удобства, что есть в мультирепе.
Lama
Я могу вспомнить только один раз когда я амендил уже запушенный коммит: тогда я не заигнорил большой бинарник, и он бы оставался в истории
Андрей
Dmitry
Твоя транзакционность изменений условна.
Вполне объективна, если изменение затрагивает с 5-ок репозиториев - нужно синхронизировать это. Это не условность, а объективная необходимость синхронизации, которой в мультирепе нет.
Андрей
Вполне объективна, если изменение затрагивает с 5-ок репозиториев - нужно синхронизировать это. Это не условность, а объективная необходимость синхронизации, которой в мультирепе нет.
Во-первых, любая синхронизация у тебя будет определяться по работающему приложению. Соответственно, у тебя с этим вообще нет проблем, если ты умеешь его запускать из мультирепы. Во-вторых, я говорил не про необходимость транзакционности, а о том, что транзакционность, которую тебе даёт монорепу условна. Или лучше сказать, иллюзорна.
Lama
Просто как операция отдельно от контекста она нисколько не крайняя.
Почему она не крайняя? Амендить локальный коммит — окей. Тут моно/мульти репы вообще ни при чём. Амендить ремоут коммит — это значит переписывать историю, которой ты уже поделился, на которую кто-то может уже рассчитывать (даже если кто-то пулльнул и просто читает код, а особенно, если кто-то от тебя отбранчевался). Самое главное, я не понимаю зачем амендить хотфиксы. Если получается большой размер репы, то гит умеет это сжимать. Если смущает что история портится, то сквошьте при мердже
Lama
Мне лень повторять то, что я уже написал.
Ну я понял, тебе нравится амендить коммиты и резолвить совместимости версий различных компонентов в уме
Lama
10x developer
Dmitry
Во-первых, любая синхронизация у тебя будет определяться по работающему приложению. Соответственно, у тебя с этим вообще нет проблем, если ты умеешь его запускать из мультирепы. Во-вторых, я говорил не про необходимость транзакционности, а о том, что транзакционность, которую тебе даёт монорепу условна. Или лучше сказать, иллюзорна.
По работающему приложению - вот именно. Если у тебя стабильный мастер, то любой коммит из мастера мультирепы даст тебе рабочнее приложение. В случае же мульти реп - чтобы получить рабочее приложение - нужна синхронизация кучи репозиторий и бранчей. И понимание, какая feature в приложении X нужна, чтобы фича в приложении Y запустилась и приложение Z не сломалось.
Dmitry
Так ты проверяешь, что все мастеры норм работают, и всё. В чём отличие?
В том, что когда тебе нужно сделать изменение в 5 репозиториев. Ты допустил - замёрджил ветку в мастер в репозитории X, а в Y идёт ещё ревью.
Lama
Так ты проверяешь, что все мастеры норм работают, и всё. В чём отличие?
Ну вот у тебя ситуация, в мастере приложения A есть фича 1, но нет фичи 2. А в мастере приложения B есть фича 2, но нет фичи 1 А теперь представь что фичей и компонентов больше
Dmitry
Так ты проверяешь, что все мастеры норм работают, и всё. В чём отличие?
И всё - у тебя мастера друг с другом не работают.
Dmitry
Так ты проверяешь, что все мастеры норм работают, и всё. В чём отличие?
Отличие в том, что в монорепе - ты можешь перейти от одного рабочего состояния всего приложения в другое без кучи синхронизации.
Dmitry
Объективной, не условной.
Андрей
В том, что когда тебе нужно сделать изменение в 5 репозиториев. Ты допустил - замёрджил ветку в мастер в репозитории X, а в Y идёт ещё ревью.
Ну, в случае, если у тебя одна большая общая ветка с изменениями во всех пяти приложениях, которая живёт, пока не пройдёт ревью во всех этих приложениях, то да.
Dmitry
Ну, в случае, если у тебя одна большая общая ветка с изменениями во всех пяти приложениях, которая живёт, пока не пройдёт ревью во всех этих приложениях, то да.
Ждёт, но потом всё работает, а в случае мультиреп - те же ревью нужно проходить, только нужно либо синхронизировать, либо иметь нерабочие промежуточные состояния.
Dmitry
“Monorepo involves mostly challenges around scaling the organization in a single repo. Polyrepo involves mostly challenges with coordination.” Вот, в интернете нашёл хорошее суммирование.
Lama
> Scaling the organization in a single repo Проблема давным давно решена. В любой компании, где меньше 10 (число интуитивно выбрал) команд разработки, держать в одной репе всё можно без приседаний. В любой компании, где команд больше, можно использовать сабрепозитории. В очень больших компаниях есть свои аналоги гита
Lama
Lama
Herman
Именно так я и смотрю на пр, где новый микросервис одним коммитом
Dmitry
у меня на новой работе нужно все амендить и придерживаться 1 задача = 1 коммит
Ну, в одной компании я зафорсил squash and merge для PR-ов, потому что разработчики создавали десятки коммитов типа fixed typo, add test, fix line каждый день и история за месяц уже была такой, что там не разобраться. Только сообщение в merge commit-е имело хоть какой-то смысл. Скажем так, где культура коммитов когда-то изначально была убитая - такой кардинальный подход - возможно единственно действенный.
Lama
С первым апреля
Lama
Требуется «Бекенд-разработчик PHP/Golang \ Middle backend-developer (удаленно)» (от 150 000 до 200 000 ₽) https://career.habr.com/vacancies/1000093245 Компания «GymTeam» ищет хорошего специалиста на вакансию «Бекенд-разработчик PHP/Golang \ Middle backend-developer (удаленно)». От 150 000 ₽ до 200 000 ₽. Полный рабочий день. Можно удалённо. Требуемые навыки: #backend, #middle, #PHP, #Golang, #Docker, #SQL.
Herman
а что не так?
Herman
про будет плюсом?
Lama
пых и голанг в канале с эликсир вакансиями
Herman
а, понял, не туда смотрю
jm
Всем читать Канемана
jm
жавистов впихуёвывают в каждую дырку. И это прям попсово, имхо. А то, что попсово, как правило, шлак. (редко когда норм)
Lama
Snake
Дух моей совести
Lama
У меня ещё рабочий день...
jm
Дело в том что почти всё — хуйня. И только немногие попытки сделать что-то — не хуйня. Если разбить попытки что-то сделать на классы так, что в некий класс попадает больше попыток, то в него естественным образом—в абсолютных значениях—войдёт больше хуйни.
Herman
Например что не совсем хуйня?
Herman
Давайте определимся
jm
Поэтому утверждения типа "то что популярно — шлак", которые имплицируют причинно-следственную связь — не более чем когнитивное искажение.
A
Прогеры в целом занимаются одинаковой хуйней не
A
Задачи одинаковые решают
Herman
Как насчёт zig
Lama
Задачи одинаковые решают
Согласен, и мне за это ахуенно стыдно
Lama
Я получаю деньги за то что пишу то, что какой-то чувак уже написал, но копирайт не даёт это взять
jm
ну крч, скорее всего всё наоборот и популярность уменьшает вероятность того что что-то — хуйня, я вот к чему.
A
Я б зависимость популярности и хуиности вообще не проставлял
jm
кстати еще есть баяс что типа если технология популярная, с низким порогом входа, то поскольку продукты на ней сделаны хуёво, это значит что сама технология — хуйня
jm
мне кажется что многие фп люди страдают от этого баяса
Lama
Кто такой этот "баяс"?
A
Ага все давно поняли нормально делай нормально будет
Lama
"нормально делай нормально будет" это самое бессмысленное что я слышал в своей жизни. Я так обычно говорю, когда хочу кому-то попу подогреть
jm
Я б зависимость популярности и хуиности вообще не проставлял
я бы тоже, но если бы меня прижали к стене и скзали "в одном мешке 100 популярных хреновин, а в другом 100 непопулярных, где больше хуйни?" я бы сказал что во втором больше.
jm
а про рабочую этику
A
Никто тебе так не скажет
jm
но можно свести к хуйне через "делай наотъебись — выйдет хуйня"
jm
мне конечно такой вариант больше по душе, потому что он чётче.
Lama
Не, всё популярное — хуйня по определению. Популярное = нравится большинству А большинство это самая тупая масса, которая может быть. И тут дело не в том что большинство людей тупые (я не считаю что большинство людей тупые), а в том, что чем больше масса людей, тем она менее сознательная и более инертная.
jm
хз я верю во фрактальную природу хуйни
jm
ну типа
jm
ты сводишь природу хуйни к абсолютным числам похоже
jm
у тебя есть абсолютный трешхолд после которой нечто становится хуйнёй
Lama
у тебя есть абсолютный трешхолд после которой нечто становится хуйнёй
Не, я скорее говорю о том, что популяность и хуёвость прямопропорциональны