Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XXXI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 28 апреля 2015 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Караваев В.Ю. СПОСОБЫ ОРГАНИЗАЦИИ КОМАНДНОЙ РАБОТЫ НАД ПРОЕКТАМИ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XXXI междунар. студ. науч.-практ. конф. № 4(30). URL: http://sibac.info/archive/technic/4(30).pdf (дата обращения: 20.04.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

СПОСОБЫ  ОРГАНИЗАЦИИ  КОМАНДНОЙ  РАБОТЫ  НАД  ПРОЕКТАМИ

Караваев  Вадим  Юрьевич

студент  4  курса  кафедры  «Автоматизированных  систем  управления»  Московского  государственного  университета  приборостроения  и  информатики,  филиал,  РФ,  г.  Ставрополь

E -mail5665tm@gmail.com

Авакян  Тамара  Ашотовна

научный  руководитель,  доцент  кафедры  «Автоматизированных  систем  управления»  Московского  государственного  университета  приборостроения  и  информатики,  филиал,  РФ,  г.  Ставрополь

 

При  работе  над  достаточно  крупными  проектами  с  участием  нескольких  человек,  неизбежно  встает  вопрос  об  организации  эффективного  рабочего  процесса.  Стоит  сказать  о  некоторых  характеристиках  проекта,  о  котором  упоминается  в  статье:  тип  —  онлайн  игра,  два  модуля  —  клиентская  часть  на  Unity  Engine,  и  серверная  часть  на  NET.  Framework  4.5,  в  общей  сложности  20  тысяч  строк  кода  на  C#,  несколько  сотен  графических  файлов  в  различных  форматах,  несколько  десятков  звуковых  файлов  и  большое  количество  других  типов  данных.

Уже  при  таком  объеме  проекта  и  количестве  участвующих  разработчиков,  возникают  определенные  проблемы,  связанные  с  эффективным  распределением  времени,  общением  участников  проекта  между  собой  по  рабочим  вопросам,  резервным  копированием  данных,  и  т.  д.  Для  решения  всех  этих  проблем  было  сформировано  несколько  основополагающих  правил:

1.  У  проекта  должен  быть  руководитель.  Наличие  руководителя  автоматически  отметает  большинство  проблем  по  организации  проекта.  Этот  человек  должен  быть  в  курсе  структуры  проекта,  хорошо  знать  каждого  разработчика  и  его  возможности.  Немаловажным  фактором  является  наличие  хотя  бы  минимальных  знаний  во  всех  областях,  в  которых  работают  остальные  разработчики,  что  помогает  гораздо  точнее  контролировать  процесс  разработки.

2.  Использование  систем  контроля  версий.  Это  специальное  программное  обеспечение  для  управления  изменяющейся  информацией  и  незаменимое  средство  для  командной  разработки.  Системы  контроля  версий  выполняют  большое  количество  функций.  Рассмотрим  их  подробнее.

·     Возможность  контролировать  кто,  когда  и  с  какой  целью  внес  изменения  в  проект  —  каждое  или  несколько  изменений  в  проекте  фиксируется  определенным  образом.  Эта  фиксация  называется  коммит.  Каждый  коммит  хранит  в  себе  информацию  о  том,  какие  файлы  были  изменены  с  предыдущей  версии,  когда  и  кем  была  совершена  фиксация,  а  так  же  сообщение  фиксации,  введенное  разработчиком  (Рисунок  1).  Это  сообщение  обычно  хранит  краткую  информацию  о  том,  какая  работа  была  произведена  с  момента  предыдущей  фиксации.  Типичные  сообщения  коммитов  —  «добавлен  модуль  управления  базой  данных»,  «багфиксы  в  основном  модуле  сервера»,  «улучшена  производительность  парсера  JSON»  и  т.  д.

 

Рисунок  1.  Список  коммитов  проекта

 

·     Хранение  предыдущих  версий  проекта  с  минимальными  затратами  на  дисковое  пространство.  Экономия  происходит  за  счет  того  что  для  каждого  коммита  хранится  только  его  дельта  (файлы  измененные  по  сравнению  с  предыдущей  версией).  В  случае  необходимости,  проект  в  любой  момент  можно  откатить  к  любой  из  предыдущих  версий.

·     Простое  и  быстрое  резервное  сохранение  данных  на  сервере.  И  снова,  за  счет  того  что  на  сервер  передается  только  дельта,  а  это  сравнительно  небольшое  количество  информации  по  сравнению  с  общим  объемом  проекта,  возникает  выигрыш  в  количестве  передаваемых  данных,  и  как  следствие  времени  на  такие  передачи.

·     Разрешение  конфликтующих  между  собой  изменений  в  проекте.  Если  файл  является  текстовым,  например,  представляет  собой  файл  с  исходным  кодом,  и  два  программиста  совершили  изменения  в  разных  строках,  то  будет  сгенерирован  новый  файл,  содержащий  в  себе  изменения  обоих  разработчиков.  Если  же  изменения  произведены  в  одинаковых  строках,  или  файл  является  бинарным,  то  будет  предложено  выбрать  из  двух  файлов  тот,  который  является  более  верным.

Примеры  систем  контроля  версий  —  Git,  Team  Foundation  Server,  Mercury,  SVN.  На  сегодняшний  момент  самой  распространенной  является  Git  (Рисунок  2).  Проект  был  начат  Линусом  Торвальдсом,  и  изначально  предназначался  для  управления  разработкой  ядра  Linux,  где  и  зарекомендовал  себя  надежной  системой  отлично  подходящей  для  контроля  разработки  даже  самых  крупных  проектов  [3,  с.  123].

 

Рисунок  2.  Консоль  управления  Git

 

3.  Использование  веб-сервиса  для  хостинга  проектов.  Примеры  таких  веб-сервисов  —  Github,  Bitbucket.  Типичный  веб-сервис  имеет  в  своем  распоряжении  большое  количество  полезных  инструментов:  возможность  удаленно  хранить  репозитории  систем  контроля  версий,  багтрекер,  трекер  задач,  вики-страницы.

Хранение  удаленных  репозиториев,  решает  проблему  с  хранением  и  резервированием  исходных  данных.  Даже  если  проект  хранился  в  единственном  экземпляре  у  одного  из  разработчиков  и  был  вследствие  непредвиденных  обстоятельств  утерян,  копия  этого  проекта  всегда  будет  находиться  на  удаленном  сервере.  Также  можно  организовать  хранение  репозиториев  на  локальном  сервере  при  помощи  соответствующих  программных  средств.  Например,  если  сервер  находится  под  управлением  ОС  семейства  Windows,  хорошим  выбором  является  Bonobo  Git  Server.

Багтрекер  —  система  отслеживания  ошибок,  позволяет  контролировать  ошибки,  возникающие  в  проекте.  Каждый  разработчик  может  создать  запись,  в  которой  будет  сообщаться  о  характере  ошибки,  обстоятельствах  при  которых  ошибка  себя  проявляет  и  т.  д.

Трекер  задач  —  система  для  отслеживания  задач  возникающих  в  проекте  (Рисунок  3).  В  трекере  можно  создавать  записи,  включающая  в  себя  следующую  информацию  о  задачах  -  название,  описание,  кто  создал  задачу,  кому  адресовано  ее  выполнение,  тип,  приоритет  задачи  (trivial,  minor,  major,  critical,  blocker).  Обычно  задачи  могут  предлагаться  всеми  участниками  проекта,  однако  утверждать  их  к  обязательному  исполнению  вправе  только  руководитель.  Задачи  с  наибольшим  приоритетом  должны  выполняться  в  первую  очередь.  Довольно  часто  трекер  задач  так  же  совмещает  в  себе  функции  багтрекера,  в  таком  случае  задаче  присваивает  тип  bug.  Задачи  типа  bug  с  приоритетом  critical  и  выше,  обычно  решаются  без  утверждения  руководителя.

 

Рисунок  3.  Список  задач  на  Bitbucket

 

Если  было  решено  использовать  не  веб-хостинг,  а  хранение  репозиториев  на  локальном  сервере,  либо  требуется  более  мощный  трекер  задач,  чем  тот  который  предлагается  веб-хостингом,  можно  использовать  отдельные  программные  модули,  такие  как  JIRA,  Redmine,  Asana.

В  раздел  «вики»  можно  внести  любую  информацию,  которая  может  быть  полезной.  Например,  если  репозиторий  является  приватным,  то  вики  может  включать  в  себя  документацию  по  коду  или  структуре  проекта.  Если  репозиторий  публичный,  то  в  вики  может  содержаться  руководство  пользователя.

4.  Документация  по  коду.  Даже  если  в  команде  всего  один  программист,  код  обязательным  образом  должен  быть  хорошо  прокомментирован.  Однако  комментариев  не  должно  быть  слишком  много,  это  тормозит  рабочий  процесс,  и,  как  это  не  парадоксально,  часто  даже  затрудняет  чтение  кода.  Общее  правило  таково  -  один  комментарий  на  блок  из  нескольких  строк  кода  выполняющих  определенную  функцию.  Число  таких  строк  от  5до  20.  Для  комментирования  методов  и  типов,  в  языке  C#  имеется  механизм  XML-комментирования.  При  компиляции  проекта  все  комментарии  выполненные  таким  образом  собираются  в  отдельный  XML-файл,  а  в  IDE  такой  файл  будет  использован  для  средств  Intellisense  [1,  с.  278].  Также  на  основе  этого  XML-файла  в  последующем  можно  будет  сгенерировать  отдельный  файл  документации  при  помощи  сторонних  программных  средств,  например  Sandcastle.  Сгенерированная  документация  может  быть  в  форматах  DOC,  PDF,  CHM,  Html  страниц.

5.  Грамотная  структура  проекта.  Исходники  проекта  должны  быть  грамотно  структурированы.  Общепринятым  стандартом  для  проектов  на  Unity  является  следующая  структура  папок:  Textures  —  для  файлов  текстур,  Scripts  —  для  файлов  исходных  кодов,  Interface  —  для  графических  файлов  интерфейса,  Models  —  для  3D  моделей,  Sprites  —  для  2D  спрайтов,  Sounds  —  для  звуков  в  игре,  Music  —  для  саундтрека,  Extras  —  для  подключаемых  плагинов  и  остальных  типов  данных  [2].  Все  файлы  проекта  должны  иметь  английские  названия,  так  как  английский  язык  давно  стал  стандартом  де-факто  в  среде  разработчиков.  Такой  подход  позволяет  свободно  ориентироваться  в  проекте  носителю  любого  языка,  и  на  корню  решает  все  проблемы  с  кодировкой  при  использовании  любых  инструментальных  средств. 

 

Список  литературы:

1.Рихтер  Д.  CLR  via  C#.  Программирование  на  платформе  Microsoft  .NET  Framework  4.5  на  языке  C#.  4-е  изд.  СПб.:  Питер,  2015.  —  896  с.:  ил.

2.Руководство  Unity  //  Официальный  сайт  Unity  Engine  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html  (дата  обращения  03.03.2015).

3.Чакон  С.  Pro  Git.  2-е  изд.  New  York.:  Apress,  2014.  —  456  с.

Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.