10:45p |
Девелоперское Система CVS (SVN) имеет одну потенциальную проблему, связанную с независимой разработкой двух зависимых модулей. Программист 1 писал кода А, который зависит от кода Б, который пишет программист 2. Программист 2 внес очередные изменения, откоммитил и пошел спать. Программист 1 также внес изменения, откоммитил, и поскольку их код не пересекся, то и SVN ничего не сказало. Только вот программист 1 забыл собрать откоммиченное. А чего его собирать - без варнингов-то? А уже через час программист 3, занимающийся совсем другим кодом (в моем лице) выясняет, что программа падает сразу после запуска. Потому что код А стал несовместим с кодом Б. Программист 3 пишет в рассылку о том, что все упало и идет спать. Проходит почти 20 часов, и программист 4 пишет о том, что у него тоже все упало и возвращает проект к состоянию, когда все стояло (поскольку имеет право). Т.е. к состоянию до коммита программиста 1. Программист 1, сделав svnup, выясняет, что его код вызывает краш приложения. Пересобрав его, он понимает, что это так и начинает штудировать собственные изменения. Это при том, что он уже успел продолжить разработку вслепую... Потеряв часть кода, и найдя причину, программист 1 разбирается в коде программиста 2. Тот патчит свою часть, программист 1 отправляется спать. И только на следующий день он коммитит обновление. Итого: почти сутки приложение недоступно, а программист 1 потерял больше 3-х суток из-за того, что программист 2 закоммитил первым :)
Вот в такой ситуации мы оказались неделю назад с kdbus. Многие временно перешли на gdbus из комплекта gnome 2.16 :) Вот так мы разрабатываем программы под KDE 4 с использованием утилит из Gnome :))
Мораль: 1. Делайте синхронизацию как можно чаще. 2. Не забывайте проверять ваши приложения сразу после коммита с получением новых данных. 3. Ну и наконец, не используйте разрабатываемые средства разработки. Правда, это не всегда получается... |
11:57p |
Хорошие новости Solid - новый фреймворк для поддержки оборудования в KDE 4, практически готов. С другой стороны, его не смогут включить в KDE вплоть до 4-й версии, поскольку там поменялась работа с kioslaves. Зато Solid позволяет KDE одинаково работать с оборудованием в любой ОС, а это сильно упрощает разработку приложений. |