Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет aceler ([info]aceler)
@ 2007-01-11 22:45:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Девелоперское
Система 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. Ну и наконец, не используйте разрабатываемые средства разработки. Правда, это не всегда получается...