Size: a a a

2021 September 29

IK

Isayakiy Kotletov in ctodailychat
так а у либы че api не поддерживают получается?
источник

DT

Dmitry Tsybin in ctodailychat
ты делаешь предположение, что все либы поддерживают свой API и вот это всё. Когда у тебя много проектов, у либы нет задачи быть отдельным продуктом, есть продуктовые фичи и тд - большой шанс, что где-то что-то будет терять обратную совместимость
монорепа в этом месте - способ разменять сложность “управленческую” на сложность “инженерную” (scaling vcs + build system)
источник

DT

Dmitry Tsybin in ctodailychat
BTW, речь идёт не про команды 5-10 или даже 50 человек, речь идёт про тысячи разработчиков, которые как не в себя фигачат новый код и меняют старый каждый день
источник

IK

Isayakiy Kotletov in ctodailychat
если либа не поддерживает обратку - я считаю это про культуру разработки. может где-то рокетсайнс обратку в либе поддержать, но я  такое не видел у нас по крайней мере
источник

DT

Dmitry Tsybin in ctodailychat
если ты делаешь это на протяжении 20 лет (в рамках одной и той же кодовой базы) и должен эту совместимость потом тащить какое-то долгое время, то это дорого
источник

DT

Dmitry Tsybin in ctodailychat
тем более ты можешь узнать про несовместимость очень отложенно, когда кто-то через какое-то время решит обновиться на новую версию и там что-то пойдёт не так
источник

DT

Dmitry Tsybin in ctodailychat
в модели монорепы эту задачу не надо решать. Но надо решать другие
источник

DT

Dmitry Tsybin in ctodailychat
ещё раз сформулирую мысль: это всё про размену одних сложностей другими. Менеджерских, “вопросов культуры” и прочего на сложность поддержки сложной инфраструктуры
источник

IK

Isayakiy Kotletov in ctodailychat
так тесты писать надо
источник

DT

Dmitry Tsybin in ctodailychat
кто-то выбирает одно, кто-то другое. В том числе это зависит и от структуры бизнеса и тд
источник

DT

Dmitry Tsybin in ctodailychat
так, давай с обратной сторны зайдём - в командах какого размера ты работал?
источник

IK

Isayakiy Kotletov in ctodailychat
да всмысле не надо решать:) если там обратка внутри ломается по логике - без тестов не узнаешь
если в API ломается - ну ок, нужно будет одновременно 2 проекта чинить, а не по-очереди
источник

IK

Isayakiy Kotletov in ctodailychat
командах или на сколько команд либы которые мы делали работали?
источник

DT

Dmitry Tsybin in ctodailychat
тесты - это очень хорошо и монорепа форсит их даже больше, потому что тест - это контракт, и если чьё-то изменение ломает твой тест, то это изменение не мерджат
источник

IK

Isayakiy Kotletov in ctodailychat
короче ладно, забей) я понял
источник

DT

Dmitry Tsybin in ctodailychat
но это значит, что я должен знать все места где написаны тесты на какую-то либу
источник

DT

Dmitry Tsybin in ctodailychat
а в монорепе ты не должен - все тесты в одном месте, и тут вопрос уже в том как запустить только релевантные diff-у
источник

IK

Isayakiy Kotletov in ctodailychat
в моем мире тесты на либу в либе живут все
источник

IK

Isayakiy Kotletov in ctodailychat
и либа гарантирует своим api и тестами свои сценарии
источник

DT

Dmitry Tsybin in ctodailychat
а если я интеграционный тест хочу со своим кодом? в общем я поддержу предложение забить 🙂 можем как-нибудь в отдельном треде продолжить
источник