Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Групповая разработка. Связь между субъектами конфы (число прочтений - 4022 )
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Групповая разработка. Связь между субъектами конфы
10. Января 2008 :: 07:30
Печать  
Меня интересует такой вопрос. Никак не могу найти одной вещи. Может я постановку задачи себе как-то неправильно делаю?
Задача.
1. Есть несколько программистов, которые работают над одной конфой.
2. Работают каждый над своим функционалом. Обновляют с разной периодичностью (рабочую БД)
3. Функционал хоть и разный, но зачастую использует одни и те же субъекты конфы (документы, справ. и т.д.)

Нужно видеть (парсить изменения), какие субъекты затрагивали изменения каждого программера  - без того, чтобы заглядывать в код этих субъектов.
Т.е. создать некую модель, в которой описаны субъекты конфы во взаимосвязи с бизнес-процессами (которые автоматизируются). И рассматривать не просто версии (то, что дает cvs), а версии в привязке к тем субъектам, на которые оказано влияние в результате внесенных в данной версии изменений.

Пример.
При модификации модуля проведения дока "ХХХ" был внесен код типа:
...
УстановитьРеквизитСправочника(ТекЭл,"Кво",ТекКво,ДатаДок);
...

Теперь, чтобы найти, что влияет на такой-то реквизит справочника, нужно проводить поиск по всей конфигурации определенной версии. А если бы мы пропарсили изменения на предмет такий инструкций, которые меняют данные в БД, и собрали инфу в соответствующем виде (категоризированном) с возмодностью отбора по субъекту...
Вот обрыл весь инет и ничего подходящего в этом направлении не нашел.
Может я не туда рою? Пожалуйста, поделитесь своими мнениями на сей счет.
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #1 - 10. Января 2008 :: 10:36
Печать  
Между
Цитата:
Задача.
1. Есть несколько программистов, которые работают над одной конфой.
2. Работают каждый над своим функционалом. Обновляют с разной периодичностью (рабочую БД)
3. Функционал хоть и разный, но зачастую использует одни и те же субъекты конфы (документы, справ. и т.д.)

и
Цитата:
Нужно видеть (парсить изменения), какие субъекты затрагивали изменения каждого программера...

пропущена одна важная деталь. Не указана проблема. Непонятно для чего собственно тебе "нужно видеть (парсить изменения)". В приведенном примере точно такой же недостаток.
  
Наверх
www  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #2 - 10. Января 2008 :: 10:40
Печать  
Проблема в том, чтобы корректно сливать изменения между собой (интервал изменений в раб. БД может быть месяц). Чтобы видеть причину проблем. Ведь они часто проявляются не сразу после обновления. И тогда найти, где проблема все сложнее.
В то же время объединить конфы, в кот. внесено много изменений в одних и тех же объектах сложно - нужн понимать логику, которую закалдывали в те или иные изменения.
Пока что выручает KDifff.
По поводу примера не понял намек - можно "расчехлить"? Я попробую прояснить.
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #3 - 10. Января 2008 :: 10:45
Печать  
Amel писал(а) 10. Января 2008 :: 10:40:
По поводу примера не понял намек - можно "расчехлить"? Я попробую прояснить.

Ну для меня описание проблемы состоит из ответа на три простых вопроса.
1. Что сделали?
2. Что получили?
3. Что ожидали получить?

На вопрос "Что сделали" у тебя есть ответ. На остальные вопросы ответа в первоначальном сообщении не было.
  
Наверх
www  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #4 - 10. Января 2008 :: 10:47
Печать  
Добре.
Тогда такой вопрос.
Как все-таки объединить изменения конфигураций?
При том, что модифицироваться могут одни и те же субъекты конфы разными программерами?
А актуальность метаданных, с которыми каждый работает - разная.
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #5 - 10. Января 2008 :: 10:53
Печать  
Amel писал(а) 10. Января 2008 :: 10:40:
Проблема в том, чтобы корректно сливать изменения между собой (интервал изменений в раб. БД может быть месяц). Чтобы видеть причину проблем. Ведь они часто проявляются не сразу после обновления. И тогда найти, где проблема все сложнее.
В то же время объединить конфы, в кот. внесено много изменений в одних и тех же объектах сложно - нужн понимать логику, которую закалдывали в те или иные изменения.
Пока что выручает KDifff.


В чем именно заключается возможная "некорректность" сливания изменений между собой? Я в принципе знаю ответ, но хочу узнать именно о твоих специфических трудностях.

Ну и несколько общих рекомендаций для уменьшения масштаба возможных проблем.
1. "интервал изменений в раб. БД может быть месяц"
Почему нельзя уменьшить этот интервал?

2. "Чтобы видеть причину проблем. Ведь они часто проявляются не сразу после обновления. И тогда найти, где проблема все сложнее."
Используйте автоматическое тестирование. Используйте хоть какое-нибудь тестирование. Но автоматическое будет стоить вам дешевле.

3. "нужн понимать логику, которую закалдывали в те или иные изменения"
Для этого нужно вести багтракер, в котором фиксируются задачи (для чего было сделано то или иное изменение), и все изменения строго привязываются к задаче в багтрекере.

Так же пониманию логики помогает общение между программистами. Вообще, вопроса "объединения" конфигурации не должно стоять. Должен стоять вопрос "разрешения конфликтов". и этот вопрос должен решать не руководитель отдела, а программисты, изменения которых конфликтуют между собой. Просто потому что они знают о данном участке кода больше, чем кто бы то ни было.
  
Наверх
www  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #6 - 10. Января 2008 :: 11:06
Печать  
fez писал(а) 10. Января 2008 :: 10:53:
Почему нельзя уменьшить этот интервал?

Потому что над задачей нужно работать минимум месяц, для того, чтобы ее реализацию можно было бы добавить в раб. БД. К примеру, один занимается производством, другой - продажами. Они могут пересекаться по справочникам (их реквизитам, как то: "дата пр-ва серии" - меняется пр-вом, используется продажами).
Если разработчик производственного  модуля забудет рассказать, какой формат реквизита даты пр-ва серии и т.п. Просто процесс разработки у нас не поставлен (поставлен стихийно) и осн. проблема именно в том, что нет никакой согласованности в том, что кто делает (кроме укрупненного закрепления по участкам как я описал выше)

fez писал(а) 10. Января 2008 :: 10:53:
Используйте автоматическое тестирование

Тема для меня новая, но интересная. Пока руки не доходят, чтобы разобраться.
Но проблема, о которой мы говорим, не касается тестирования. Если я говорю здесь про баги, то только про те, которые тестирование не отлавливает (в бизнес-логике). Практика показывает, что не всегда удается сразу правильно разработать ТЗ. И, если по ходу приходится что-то менять (напр., тип реквизита или сделать его периодическим), то нужно знать, а где еще нужно поменять работу с этим реквизитом (хотя, конечно можно поиском по модулям, но так ведь не все отловишь и опять же при слиянии изменений нужно это как-то учесть. Кроме того, нужно ведь принять правильное решение по поводу того, что в принципе делать с этим реквизитом с учетом того, где он вообще используется в БД и как.
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #7 - 10. Января 2008 :: 11:18
Печать  
Amel писал(а) 10. Января 2008 :: 11:06:
Просто процесс разработки у нас не поставлен (поставлен стихийно) и осн. проблема именно в том, что нет никакой согласованности в том, что кто делает (кроме укрупненного закрепления по участкам как я описал выше)

Ну так надо решать основную проблему, а не следствие. Тут же ровно как с автоматизацией учета - если автоматизировать бардак, то получится автоматизированный бардак.

То есть главная ваша задача - это создать и закрепить согласованность в действиях разных разработчиков.

Причем многого тут не требуется. Если разработчики работают над разными модулями, но сразу понятно, что между этими модулями должна быть какая-то связь - самое главное это договориться об этой связи. О нюансах этой связи. А если вдруг кому-то понадобится поменять формат этой связи между модулями - то это изменение должно быть обсуждено с другими разработчиками.

Думаю, что вам может помочь написание спецификаций. Хотя бы по вопросам обмена информацией между модулями. Почитайте Джоела Спольски, у него довольно хорошо написано: зачем нужны спецификации и как их правильно писать, чтобы они не становились кучкой никому не нужной бумаги.
  
Наверх
www  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #8 - 10. Января 2008 :: 11:19
Печать  
Спасибо.
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #9 - 10. Января 2008 :: 11:22
Печать  
Amel писал(а) 10. Января 2008 :: 11:06:
fez писал(а) 10. Января 2008 :: 10:53:
Используйте автоматическое тестирование

Тема для меня новая, но интересная. Пока руки не доходят, чтобы разобраться.
Но проблема, о которой мы говорим, не касается тестирования. Если я говорю здесь про баги, то только про те, которые тестирование не отлавливает (в бизнес-логике).

Тестирование как раз и помогает отлавливать баги в бизнес-логике.

Amel писал(а) 10. Января 2008 :: 11:06:
Практика показывает, что не всегда удается сразу правильно разработать ТЗ. И, если по ходу приходится что-то менять (напр., тип реквизита или сделать его периодическим), то нужно знать, а где еще нужно поменять работу с этим реквизитом

Если код, использующий этот реквизит, покрыт тестами, то при смене типа эти тесты с большой вероятностью сломаются.
  
Наверх
www  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #10 - 10. Января 2008 :: 11:36
Печать  
fez писал(а) 10. Января 2008 :: 11:22:
Тестирование как раз и помогает отлавливать баги в бизнес-логике.

А вот это я себе слабо представляю. Как автоматически (да хоть вручную) проверить, к примеру, что когда-то понадобится анализировать продажи в разрезе стран, если при постановке задачи анализа продаж такое даже в голову не приходило постановщику задачи. Ну или любой другой подобный пример.
fez писал(а) 10. Января 2008 :: 11:22:
Если код, использующий этот реквизит, покрыт тестами, то при смене типа эти тесты с большой вероятностью сломаются.

Это правда. Согласен, что все такие изменения будут отлавливаться автоматическим тестированием метаданных после слияния изменений (если, конечно, тесты грамотно разработаны). Может быть это действительно решит все мои вопросы.
Хотя меня удивляет, почему никто до сих пор не сделал такую модель под 1С (о которой я писал в первом посте).
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #11 - 10. Января 2008 :: 13:01
Печать  
Amel писал(а) 10. Января 2008 :: 11:36:
fez писал(а) 10. Января 2008 :: 11:22:
Тестирование как раз и помогает отлавливать баги в бизнес-логике.

А вот это я себе слабо представляю. Как автоматически (да хоть вручную) проверить, к примеру, что когда-то понадобится анализировать продажи в разрезе стран, если при постановке задачи анализа продаж такое даже в голову не приходило постановщику задачи. Ну или любой другой подобный пример.


Неправильно мыслишь. Как только появляется какое-то новое требование - на него сначала должен быть написан тест. Естественно, он с самого начала не проходит. Как только этот тест начал проходить - наша работа по реализации нового требования закончена. После этого мы прогоняем ВСЕ тесты, что есть в конфигурации, и смотрим, не сломали ли мы чего-нибудь своими изменениями.

Цитата:
Хотя меня удивляет, почему никто до сих пор не сделал такую модель под 1С (о которой я писал в первом посте).

Потому что решают эти проблемы другими способами. Или не решают их вовсе. Вообще людей, которых волнуют проблемы грамотной коллективной разработки - их крайне мало.
  
Наверх
www  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #12 - 10. Января 2008 :: 13:09
Печать  
Не со всем согласен, но ход мысли мне понравился (по поводу работы с тестами).
Очень жаль (по поводу грамотной групповой разработки), но факт. Никогда не "доходят руки", чтобы наладить работу как следует.
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #13 - 10. Января 2008 :: 13:36
Печать  
Amel писал(а) 10. Января 2008 :: 13:09:
Очень жаль (по поводу грамотной групповой разработки), но факт. Никогда не "доходят руки", чтобы наладить работу как следует.

Есть анекдот в тему.

Идет мужик по лесу, и видит как другой мужик, весь в мыле, пилит тупой пилой дерево.
Ну натурально спрашивает:
- Ты что делаешь?
- Не видишь, дерево пилю, да вот плохо пилится.
- А чего пилу-то не заточишь?
- Некогда мне, пилить надо.
  
Наверх
www  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Групповая разработка. Связь между субъектами к
Ответ #14 - 10. Января 2008 :: 13:37
Печать  
Смех
анекдот иллюстративный! Зачот!
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать