Здравствуйте, MTD, Вы писали:
MTD>Здравствуйте, мыщъх, Вы писали:
М>>разумеется, сборку отдельного компонента можно осуществлять хоть каждый день. MTD>Отлично.
только "официальная" билд система пишется отдельными людьми. вы, конечно, можете билдить свои компоненты так часто, как вам вздумается, но нет гарантии, что даже obj файл можно собрать, т.к. могут быть зависимости уже на уровне хидеров, которых у вас может не быть.
MTD> Есть. Отдельные компоненты взаимодействуют между собой по документированным протоколам,
не факт. были два компонента А и Б, которые писал Вася и которые взаимодействовали между собой неким образом, который Вася недокументировал, т.к. описывать подробности своей интимной жизни он не подряжался. затем А передали Алисе, а Б отдали Бобу, потому как Вася свалил и документировал только публичный интерфейс. тут бы самое время документировать механизм взаимодействия между А и Б коль скоро их отдали разным людям, но у Алисы с Бобом и без того хватает работы, т.к. им нужно разобраться в чужом коде и понять как он работает.
вы похоже идеалист. реалисты в курсе, что документация практически всегда неполна, не отражает последних изменений и в значительной части находится в головах разработчиков или в их личных заметках в блокноте. а разработчикам свойственно менять место работы или позицию в компании.
если мы говорим про проекты в которых миллионы строк кода, то там всегда царит бардак в большей или меньшей степени и в коде всегда есть таинство. и чем взрослее проект тем больше в нем таинств. достаточно почитать блог сотрудников microsoft, чтобы осознать глубину и ширину стоящих перед ними проблем, когда они не могут осилить свои же собственные протоколы.
> которые без особой нужды не меняются, соответственно используется стабильная версия остальных компонент или тестовые заглушки.
заглушки не позволяют протестировать работу даже на холостом ходу.
М>>а если еще ваш модуль используется в over 9000 мест другими разработчиками, часть из которых юзает его как библиотеку, часть -- пишет враппер и вызывает из руби, часть -- вызывает из java, часть вообще его отбранчила и теперь мержит все ваши изменения самостоятельно.
MTD>Это уже лирика. У каждой команды свой компонент, связи между компонентами задокументированы, все покрыто тестами. Другой команде в чужом коде делать нечего, пусть свой код бранчат.
это не лирика, это физика. вы пишите на си, кто-то пишет на руби и ему нужен ваш код. вы не знаете руби, а рубист не знает си. на сцене появляется мудрый чувак, который пишет враппер на си, make-файл, компилирующий это в библиотеку, которую можно теперь вызывать из руби. вот такие жизненные реалии...
М>>начитались "умных" книжек и решили, что рефракторинг -- это хорошо, а это на самом деле очень плохо. MTD>Таки, да — хорошо, но разумно.
вот именно -- разумно. бездумный рефракторинг ради рефракторинга только вредит. и если что-то поломалось, то это аццкий труд искать лыжи в темной комнате. про бранчи я уже упоминал. изменения нужно мержить и чем дальше удаляется бранч от оригинала тем сложнее перетаскивать канат через игольное ушко, особенно если эти изменения носят стихийный характер с глобальной перестройкой структуры кода.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.