2024 08 06 вендорить круто

·

(064/100) вендорить - круто

Видимо, буду чередовать посты про системное мышление и что-то по происходящему. По ходу работы периодически рыскаю по багам opensource продуктов, и нахожу какое-то золото. В этот раз это был закрытый баг 25 летней давности в thunderbird: https://bugzilla.mozilla.org/show_bug.cgi?id=18732.

Хорош он по нескольким причинам:

  1. надеюсь будет рекорд гинесса по time to market и антипример что скорость не решает (:
  2. можно глянуть сколько надо затащить в кодовую базу “просто иконку отрисовать” - https://hg.mozilla.org/comm-central/rev/9f64153706e8
  3. для его реализации надо было затащить довольно много third_party, которые лежат в репозитории

И здесь возникает вопрос: зачем класть библиотеки в репу? Помню 10 лет в сообществе node.js был вопрос сохранять ли node_modules в git. В какой-то момент ответ поменялся с да на нет, и к чему это привело мы знаем. Гоферам ответ дал Russ Cox в серии статей 2018 года: https://research.swtch.com/vgo, основной упор был на воспроизводимые билды, и сейчас соотношение включать вендор или нет примерно 30/70.

Какие же плюсы от вендоринга (минус понятен, размер git репозитория):

  1. чаще можно собрать локально без интернета
  2. тебя форсируют читать diff того, что ты завозишь в свою кодовую базу
    1. в go пошли дальше и положи принцип маленькой копипасты в культуру разработки

Теперь готов слушать как это плохо, и что никто всё равно эти диффы не читает. (:

#марафон @chernov_sharit

Обратные ссылки