11.03.2002, 09:20 | #1 |
Moderator
|
Организация работы программистов
Всем добрый день.
До недавнего времени я занимался разработкой в Аксапте один, но недавно в нашей организации появилось еще несколько разработчиков. Соответственно встала проблема оптимальной организации их совместной работы. Поясню, что я хотел сказать. Допустим я детально разобрался в устройстве какого-то модуля (ну например, Закупки). Естественно возникает желание как-то оформить мои знания таким образом, чтобы они стали легко доступными и для других разработчиков. То есть, необходим какой-то механизм, который позволит им избежать изучения данной области с нуля. Первая (да пожалуй, и единственная толковая) мысль – UML. Но тут же вспоминаешь про два важных момента. Во первых, UML довольно громоздкий язык моделирования и требует значительного времени на его изучение, а в дальнейшем на составление диаграмм. Во вторых, я не знаю не одного средства, позволяющего генерировать код, пригодный для Аксапты. Допустим первое не так уж и страшно – я с UML знаком (не скажу, что детально знаю), остальным разработчикам объясню. Генерировать код по моделям, в принципе, не так уж и нужно. Скорее нужно, как уже говорилось выше, документировать свои знания об Аксапте. Отсюда первый вопрос: Как Вы считаете, нужен ли в данном случае UML или это явно не тот случай и не стоит тратить на это время? А если не стоит - подскажите пожалуйста, как лучше документировать как коллективные знания о системе, так и модификации вносимые в нее? Если UML вполне здесь подходит, то встает вопрос о выборе средства для построения диаграмм. Попробую сформулировать требования к этому средству. Так как я не собираюсь генерировать код по создаваемым моделям, то на первое место выходят требования удобства и простоты работы, а также количество и возможности настройки отчетов. Так же не помешают хорошие возможности импорта/экспорта данных из построенных моделей. Насколько я, понял, лидером в данной области считается Rational Rose. Или я не прав? Кроме Rational Rose я рассмотрел ряд других средств для построения UML диаграмм и Visual UML (Visual Object Modelers) показался мне наиболее подходящим для решения моих задач. Если говорить про Rational Rose, то мне очень не понравилось то, как он составляет отчеты (а точнее, всего один отчет, причем практически не настраиваемый). Может есть дополнительны модуль, позволяющий создавать разнообразные отчеты ? Кроме того, все инструментальные средства, рассмотренные мной, позволяют работать только одному человеку с одним документом. Или это тоже есть в виде отдельного модуля для Rational Rose? Вопрос второй: Если все таки мы решим использовать UML, какое инструментальное средство посоветуете Вы? |
|
14.03.2002, 09:32 | #2 |
Moderator
|
Неужели никому нечего сказать по этому поводу ?????
Как я понял - либо везде программисты работают в одиночку и не нуждаются в организации взаимодействия с другими разработчиками и документировании своих работ. В таком случае объясните мне - как же Вы все успеваете сделать в одиночку ? Либо эта самая организация работы разработчиков у Вас уже налажена, но Вы не хотите делиться имеющимся у Вас опытом, что тоже странно. В общем виде все это уже описанно в литературе, а меня интересовало применение этих методик именно к Аксапте. Может я не четко выразил свою мысль или некорректно сформулировал свой вопрос ? Или все заняты "переводом бизнес-процессов под управление системой Navision Axapta" и ни у кого нет времени на ответ в форуме ? :-) Спасибо за внимание. |
|
14.03.2002, 10:00 | #3 |
Участник
|
Скзать есть что.
Действительно нет времени. Кратко: = документация явно недостаточна = методк от поставщика пока мало = российская функциональность меняется очень часто = международная достаточно стабильна, но она очень-очень объемна = скоро бдует следующая версия Аксапты. И по анонсам там изменится многое В связи с этим, считаю нерентабельным заниматься документированием своими силами (понимаю все недостатки такого подхода) Жду обещанных на весеннем семинаре методк поставщика. |
|
20.03.2002, 15:33 | #4 |
Участник
|
Очень интересует эта проблема, не верю в будущие возможные предложения поставщика. Я думаю, действительно, никто серьезно не подходит к процессу разработки несколькими людьми и передачи сведений. Наверное, время не пришло и все еще мало на грабли на собственные же..
Будем надеяться ( Пока, действительно , просто зашиваемся |
|
20.03.2002, 16:11 | #5 |
Moderator
|
Цитата:
mazzy
Жду обещанных на весеннем семинаре методк поставщика. Попробую задавать более конкретные вопросы. Два программиста работют над различными проектами. В ходе их работы им приходится изменять один и тот же объект (таблицу,...) из АОТ. Система работает в двухзвенной архитектуре (!!!). Как Вы решаете такие проблемы ? |
|
20.03.2002, 18:57 | #6 |
----------------
|
У нас проблема решается таким образом:
Приложение лежит на общем сетевом диске По очереди блокируем объект и изменяем его. В коде комментариями отмечаем что, где и зачем. Естествнно, существуют документы (Т.З.) на изменение функциональности, на которые и ставятся ссылки в комментариях. |
|
20.03.2002, 19:00 | #7 |
Moderator
|
Цитата:
Wamr
Приложение лежит на общем сетевом диске |
|
20.03.2002, 20:31 | #8 |
Участник
|
warm на вопрос о блокировании уже ответил.
Могу только добавить, что используемые объекты лучше складывать в проект и выполнять блокирование для проекта целиком. Тогда одним движением блокируются и разблокируются все взаимосвязанные объекты. Семинар уже был. Это был партнерский семинар. Там говорилось о методиках. И о том, что они будут. |
|
21.03.2002, 19:14 | #9 |
Moderator
|
Цитата:
Wamr
Приложение лежит на общем сетевом диске По очереди блокируем объект и изменяем его. В коде комментариями отмечаем что, где и зачем. Например : Два программиста работают над разными проектами, один изменяет класс А, другой класс Б. Каждый предварительно блокирует свой класс. Теперь представим, что из класса Б вызывается класс А. А что, если первый программист уже начал работать с этим классом. И причем не закончил. Причем класс находится в явно нерабочем состоянии. В результат он помешает работать второму программисту. :-(( Вот если бы эти изменения становились видимыми всем в момент снятия первым программистом блокировки. А пока он не снял блокировку все бы работали со старой, последней рабочей версией класса.... По моему в SourceSave именно так и происходит. А в Аксапте так нельзя ? |
|
21.03.2002, 21:03 | #10 |
Administrator
|
В таком случае программистам следует сделать первоначальный устойчивый слепок среды и перейти к программированию в локальных средах, построенных исходя из этого "слепка". По завершении работы над задачами некоторое время придется потерять на интеграцию проектов (для этого, кстати, в Axapta есть средства; посмотрите хотя бы http://www.axforum.info/forums/showt...=&threadid=254 и http://www.axforum.info/forums/showt...=&threadid=253), но так или иначе чем-то все равно приходится жертвовать.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
27.03.2002, 21:00 | #11 |
Участник
|
Re: Организация работы программистов
|
|
05.04.2002, 18:48 | #12 |
Moderator
|
Еще один вопрос, вернее ситуация: два программиста работают в двузвенной архитектуре с одной и той же базой данных. Один из них изменил длину поля в одной таблице и синхронизировал базу данных. Второй изменил вторую таблицу и синхронизировал базу данных. В результате его синхронизации первая таблица вернулась к первоначальному состоянию.
Увеличим число программистов например до десяти и проблема начинает казаться серьезной. Выход видится таким - все модификации за день собираются у одного человека, который собирает их в один проект и каждое утро дружненько и хором все импортирует себе этот проект. У всех функциональность одинакова и проблема на время решена. Но вспомним про пользователей. В виду их слабой компьютерной подготовки и нежелания допускать их к средствам разработки, ну не могут они каждое утро импортировать файл обновления функциональности. Значит надо обойти всех пользователей и каждому обновить функциональность ? Так когда ж я работать то буду ? Кроме того кто-то может забыть выполнить эту операцию, а кому-то просто лень будет этим заниматься. Может можно эту операцию автоматизировать ? Или решать эту проблему стоит совсем по другому ? Поделитесь пожалуйста Вашим опытом. |
|
05.04.2002, 19:12 | #13 |
Участник
|
Хм... А зачем в твоем случае держать Appl каталог на КАЖДОЙ машине?
Программисты должны работать в одном каталоге на серевере. Пользователям имеет смысл ставить Appl локально только в том случае, если логика меняется нечасто и/или сеть очень загружена. Если уж appl сделать у каждого локальным, то автоматические обновления можно сделать двумя способами: 1. загружать не Аксапту, а командный файл. Командный файл перед запуском аксапты проверяет и копирует новую логику (достаточно проверять изменяемые слои. обычно usr-слоя достаточно). 2. в login-script'е запустить подобный командный файл. Тогда логика будет обновляться при входе пользователя в сеть. Но в любом случае это не очень хороший путь. Прямой и штатный способ уменьшить нагрузку на сеть - использовать трехзвенку. |
|
05.04.2002, 20:05 | #14 |
Administrator
|
Цитата:
Изначально опубликовано mazzy
Командный файл перед запуском аксапты проверяет и копирует новую логику (достаточно проверять изменяемые слои. обычно usr-слоя достаточно). А каким образом командный файл будет проверять логику (точнее, что подразумевается под процедурой проверки)?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
05.04.2002, 21:08 | #15 |
Участник
|
Проверить нужно совпадение того, что на сервере с тем, что лежит на локальной машине. Проверить достаточно длину. Наверное, стоит проверить и дату и время последней модификации.
Не. синхронизацию делать не надо. Программисты работают на сервере. Ни в коем случае не на локальных логиках. Соответственно, синхронизация делается при изменении логики на сервере. Клиенту нужно делать только реплику *.aod файлов на локальный компьютер только для уменьшения нагрузки на сеть (хотя... тут еще подумать надо уменьшится ли нагрузка). НО! Честно говоря, это гемор, от которого лучше избавиться трехзвенкой. |
|
08.04.2002, 08:45 | #16 |
Moderator
|
Цитата:
mazzy
Хм... А зачем в твоем случае держать Appl каталог на КАЖДОЙ машине? А выдержит ли сеть ? Каталог Appl - более 300 Мб все-таки. Как я понимаю при работе с программой большая часть этого добра будет передаваться по сети на рабочее место пользователя. А если пользователей ожидается человек 30-50 ? Пока сеть не так уж и загружена, но в результате предлагаемой Вами операции не станет ли она таковой ? Цитата:
1. Загружать не Аксапту а командный файл. Командный файл перед запуском аксапты проверяет и копирует новую логику (достаточно проверять изменяемые слои. обычно usr слоя достаточно).
Цитата:
Но в любом случае это не очень хороший путь. Прямой и штатный способ уменьшить нагрузку на сеть - использовать трехзвенку.
|
|
08.04.2002, 09:26 | #17 |
сибиряк
|
исходя из своей практики, могу сказать, что при 30-50 пользователях (даже при 15-20)
с каталогами приложений на сетевых дисках аксапта практически не работает. в смысле скорости. единственное правильное решение - использовать AOS. рано или поздно Вы все равно придете к этому. копировать приложения локально, проверка дат,.. - это все лишняя головная боль, отсутствие четкости и уверенности в переносе наработок.... Для предприятий с числом пользователей 1-5 я бы посоветовал двухзвенную архитектуру. 5-10,15 - терминальные соединения. больше - используйте Axapta Object Server. Единственная недостаток здесь - некоторые вещи, которые прекрасно работают на 2хуровневой не работают корректно под АОСом. Но в основном у нас это касалось своих разработок. Ну и плюс проблемма с кэшем Что касается характеристик серверов - у нас примерно одинаковые ситуации. Работает приблизительно 40 - 50 пользователей. через AOS. AOS - Pentium III 1000/512mb/2 IDE (даже не скази!!!)винчестера. Загрузка аоса приблизительно 50-60 %, пиковой не бывает практически никогда. ... и еще нашел http://www.navision.ru/main.asp?IDR=355
__________________
С уважением, Вячеслав. |
|
08.04.2002, 16:32 | #18 |
Участник
|
Судя по сообщениям, в axapta основном используется в 2хуровневой конфигурации. Интересно было бы узнать, почему? AOS шибко дорогой?
|
|
08.04.2002, 16:45 | #19 |
Moderator
|
Судя по:
Цитата:
AOS - Pentium III 1000/512mb/2 IDE (даже не скази!!!)винчестера. Загрузка аоса приблизительно 50-60 %, пиковой не бывает практически никогда.
В самое ближнее время попробуем перейти на трехзвенку. Спасибо всем за советы. |
|
08.04.2002, 17:09 | #20 |
Участник
|
Судя по сообщениям, в axapta основном используется в 2хуровневой конфигурации. Интересно было бы узнать, почему? AOS шибко дорогой?
|
|
|
|