01.07.2002, 14:03 | #1 |
Участник
|
Как вести параллельную ( || ) разработку
Возникла следующая проблема.
Как организовать параллельную разработку в двух приложениях таким образом, чтобы объединение не занимало много времени и сил. |
|
01.07.2002, 16:42 | #2 |
Участник
|
На сколько я знаю единственный инструмент для параллельной разработки, который есть в AOT-е - это блокировка на уровне объектов, т. е. можно заблокировать целиком форму, класс, таблицу ...
|
|
01.07.2002, 17:34 | #3 |
Участник
|
Вы немного меня не поняли .... разработка ведется в разных приложениях. И все бы было хорошо, если бы объекты разработки не пересекались..... Вопрос в том как в этом случае упростить и ускорить объединение этих приложений. Т.е. цель - получить в результате одно и рабочее приложение.
|
|
02.07.2002, 09:21 | #4 |
Moderator
|
Цитата:
Вы немного меня не поняли .... разработка ведется в разных приложениях.
Цитата:
И все бы было хорошо, если бы объекты разработки не пересекались..... Вопрос в том как в этом случае упростить и ускорить объединение этих приложений
|
|
02.07.2002, 10:21 | #5 |
Moderator
|
А почему не Вы не используете простой и в то же время достаточно мощный инструментарий сравнения объектов? Ведь если изменения в один и тот же объект внесли в обоих приложениях, как иначе корректно совместить эти изменения?
__________________
Андрей. |
|
02.07.2002, 11:58 | #6 |
Участник
|
Можно еще вести разработку в разных слоях USR и USP, тогда предидущее предложение с механизмом сравнения двух текстов (слоев) будет еще проще...
|
|
02.07.2002, 17:08 | #7 |
Участник
|
-> Андре
1. Действительно разработчики работают в независимых приложениях 2. Запретить модифицировать одни и теже объекты достаточно сложно. Хотя разработка и ведеся по разным направлениям, но при этом достаточно часто одновременно в разных приложениях изменяются одни и теж формы или классы (для разных целей). Как объединять эти два приложения быстро и эффективно??? -> Dron AKA andy Механизм сравнения дествительно эффективная штука, но для небольшого объема. При увеличении объема, процесс сравнения и создания корректного кода значительно усложняется, и сильно увеличивается затраченное на это время. -> art Со слоями таже трудность, даже если разработка ведется в разных слоях при "склеивании" слоев опять же надо тратить время на их сравенение и создание из двух кусков одного. |
|
07.07.2002, 20:23 | #8 |
Участник
|
Опыт показывает, что оптимальный способ - выделять мастерверсию приложения и, по возможности, в порядке очереди, всем участвующим в разработке разработчикам поднимать на нее модификации со своих локальных версий. При этом _обязательно_ пользоваться инструментом сравнения слоев. Таскать версию между группами разработчиков не рекомендуется - каша получится. Если разработчик работает удаленно - то его модификацию поднимает свободный разработчик из числа тех, кому доступна мастерверсия. Мастерверсии нужено эммитировать с присвоением порядкового номера. Бэта версии - не должны быть доступны консультантам во избежании казусов и истерик.
|
|
08.07.2002, 12:00 | #9 |
Участник
|
Конечно Вы правы. Это неплохой вариант, но при одновременном изменении одних и тех же объектов в двух группах разработчиков, будет необходимо осуществлять "обратную связь", т.е. мастерприложение (созданное из двух разных) необходимо отдавать этим двум группам разработчиков (для того чтобы расхождение в разработке были минимальны). В свою очередь востановление этого мастерприложения у разработчиков на местах, будет занимать некое продолжительное время - что плохо.
Возможно в решении этой проблемы помогло бы детальное документирование проделанных изменений, но опять же на это тратится определенное время и не все разработчики с удовольствием идут на это, да и не всегда смогут задокументировать все изменения полностью. И опять же что документировать? Измененный код??? Элементы АОТ??? Тут другая проблема, в каком виде документировать изменения, чтобы это максимально помогло бы разработчикам при сравнении слоев и их склеивании??? |
|
09.07.2002, 16:10 | #10 |
NavAx
|
Я, в свое время, придумал следующий хитрый способ объединять версии: воспользоваться внешней утилитой сравнения, к примеру, мы пользуемся Araxis. Можно взять windiff из MS VS. Сценарий следующий:
1. проекты экспоритруем в файлы из проектных версий, желательно, чтобы в проекты входили одинаковые элементы. 2. сравниваем экспоритрованные файлы и объединяем их в один файл. Код экспортного файла вполне читаемый, поэтому проблемм возникнуть не должно. 3.Полученный, объединенный файл импортируем в тестовую версию. 4. Компилируем, проверяем, переносим метки и настройки и т.д. |
|
11.07.2002, 18:14 | #11 |
Участник
|
Учитывая специфику системы (в т.ч. несовершенство средств разработки) 99% предложеных методик ведения кооперативной разработки будут далеки от идеала. Однако, это вариант позволояет установить баланс между скоростью разработки и сложностью его реализации. Он требует аккуратности от разработчиков, чем, к сожалению, большая часть последних не страдает
Г-н LedgerVoucher совершенно верно обратил внимание на документирование проектов. У меня, к примеру, есть такая мечта: иметь человека хорошо знающего ф-ть системы и имеющего хороший опыт программирования, который бы в Rational Rose рисовал склетон классов и все остального. Более того, были попытки проделывать эту операцию как на этапе анализа, так и перед этапом первого тестирования проекта. И в первом и во втором случае временные потери не оправдываются. Согласитесь, ведь если сборкой версии занимается достаточно опытный разработчик, знающий все горячие клавиши и быстро рулящий мышью, он, вероятнее всего, не будет пользоваться предложенной ему диаграмой. Ему проще поискать в коде текст коментариев, относящихся к проекту и сравнить слои приложения (usr и usp). Помоему, так. Есть вариант вести список модифицированных элементов репозитария в экселе. Еще можно много чего придумать. Стоит ли? imо, напрашивается вывод - сажать за сборку версии опытного разарботчика - относительно безболезненное решение.
__________________
--------- underCover |
|
15.07.2002, 15:32 | #12 |
Moderator
|
Цитата:
macklakov
Я, в свое время, придумал следующий хитрый способ объединять версии: воспользоваться внешней утилитой сравнения, к примеру, мы пользуемся Araxis. Можно взять windiff из MS VS. Сценарий следующий: 1. проекты экспоритруем в файлы из проектных версий, желательно, чтобы в проекты входили одинаковые элементы. 2. сравниваем экспоритрованные файлы и объединяем их в один файл. Код экспортного файла вполне читаемый, поэтому проблемм возникнуть не должно. 3.Полученный, объединенный файл импортируем в тестовую версию. |
|
15.07.2002, 19:06 | #13 |
Участник
|
И опять же, надо чтобы таким объединением рулил человек который знает кто чего написал и зачем (особенно в пересекающихся объектах) - а это не всегда возможно в разнесенных проектах. Тогда нужна документация по каждому внесенному изменению, а это опять рождает ряд трудностей. Если документация подробная - то объединять легко, но писать саму документацию долго. А если документация простая, то наоборот объединять долго.
|
|