2024 08 06 вендорить круто
(064/100) вендорить - круто
Видимо, буду чередовать посты про системное мышление и что-то по происходящему. По ходу работы периодически рыскаю по багам opensource продуктов, и нахожу какое-то золото. В этот раз это был закрытый баг 25 летней давности в thunderbird: https://bugzilla.mozilla.org/show_bug.cgi?id=18732.
Хорош он по нескольким причинам:
- надеюсь будет рекорд гинесса по time to market и антипример что скорость не решает (:
- можно глянуть сколько надо затащить в кодовую базу “просто иконку отрисовать” - https://hg.mozilla.org/comm-central/rev/9f64153706e8
- для его реализации надо было затащить довольно много third_party, которые лежат в репозитории
И здесь возникает вопрос: зачем класть библиотеки в репу? Помню 10 лет в сообществе node.js был вопрос сохранять ли node_modules в git. В какой-то момент ответ поменялся с да на нет, и к чему это привело мы знаем. Гоферам ответ дал Russ Cox в серии статей 2018 года: https://research.swtch.com/vgo, основной упор был на воспроизводимые билды, и сейчас соотношение включать вендор или нет примерно 30/70.
Какие же плюсы от вендоринга (минус понятен, размер git репозитория):
- чаще можно собрать локально без интернета
- тебя форсируют читать diff того, что ты завозишь в свою кодовую базу
- в go пошли дальше и положи принцип маленькой копипасты в культуру разработки
Теперь готов слушать как это плохо, и что никто всё равно эти диффы не читает. (:
#марафон @chernov_sharit