Архив номеров
Форум
Контакты

Разделяй и властвуй: совместная разработка кода

В ОДИНОЧКУ НАПИСАТЬ КОРПОРАТИВНОЕ ПРИЛОЖЕНИЕ ДОСТАТОЧНО ПРОБЛЕМАТИЧНО. ОДНА, ДАЖЕ ОЧЕНЬ УМНАЯ ГОЛОВА, И ДАЖЕ ПРИ ИСПОЛЬЗОВАНИИ СОВРЕМЕННЫХ ВИЗУАЛЬНЫХ СРЕДСТВ, В РАЗУМНЫЕ СРОКИ СМОЖЕТ СОЗДАТЬ ТОЛЬКО НЕБОЛЬШУЮ УТИЛИТУ НЕ БОЛЕЕ 10 000 СТРОК КОДА. ДЛЯ СОЗДАНИЯ ПРОГРАММ БОЛЬШИХ РАЗМЕРОВ ТРЕБУЮТСЯ УСИЛИЯ ЦЕЛОЙ КОМАНДЫ ПРОГРАММИСТОВ, ТРУД КОТОРЫХ НАМ И ПРЕДСТОИТ ОРГАНИЗОВЫВАТЬ.

Чтобы несколько программистов могли без проблем работать над одним проектом, необходимо выполнить как минимум два условия:

  1. Установить программный продукт, который позволит работать над одним проектом нескольким людям.
  2. Скоординировать работу.

Современные системы управления исходным кодом достаточно просты в использовании, поэтому с первым пунктом разобраться достаточно просто. А вот второй пункт может вызвать затруднения.

Я поделюсь своим опытом работы в различных командах. Будем надеяться, что это поможет вам выработать наиболее эффективную стратегию управления исходным кодом.

Установка

Наиболее популярной программой для управления проектами является разработка Microsoft Visual SourceSafe (или просто VSS). На самом деле, нельзя назвать эту программу самой лучшей в своем классе, но, как и многим разработкам известной компании, ей суждено было стать стандартом де-факто.

Поскольку сам процесс установки не таит в себе никаких сложностей, кратко рассмотрим основные функции программы, а затем перейдем к «секретам фирмы».

Итак, пакет VSS нужно устанавливать на каждом компьютере программиста, а одну полную копию желательно установить на выделенном сервере. Почему исходные коды должны быть именно на сервере, а не на компьютере одного из программистов? Как показывает практика, программисты очень часто издеваются над своими компьютерами, устанавливают нужный и ненужный софт, постоянно изменяют настройки и конфигурацию. Все эти свершения не добавляют их системам устойчивости.

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

Когда файлы находятся на выделенном сервере, ими проще управлять с точки зрения безопасности и надежности. Чтобы код невозможно было украсть, к этому серверу можно жестко прописать доступ только программистам и не связывать его с интернетом (запретить доступ сетевым экраном и правами доступа). Что мы понимаем под надежностью? Любой компьютер подвержен ошибкам и сбоям. Жесткий диск может развалиться в любой момент, и когда данные находятся на выделенном компьютере, удобнее и проще наладить их резервное копирование.

Защищая исходные коды на сервере, не забывайте, что у каждого программиста есть локальные копии всех файлов проектов, над которыми он работает. Таким образом, хакеры могут украсть исходные коды у программистов и без обращения к центральному хранилищу. Когда в интернет утекли исходные коды Windows, то их украли не из центрального хранилища, а с компьютера одного из программистов, и хотя это были далеко не все файлы, но и этого иногда вполне достаточно. Защищать нужно все.

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

Краткий экскурс

После установки на сервере необходимо запустить утилиту Visual SourceSafe Admin и добавить всех пользователей, которые будут иметь доступ к исходному коду. Все функции по управлению работой пользователя находятся в меню User. Чтобы добавить нового программиста в команду, выбираем меню Users/Add user. По умолчанию пользователь получит права чтения и записи, но можно ограничить его работу только чтением (Read only). Я пока не встречал необходимости такого ограничения.

Когда на сервере уже настроены все учетные записи, можно переходить к работе на клиентской стороне. Запускаем Visual SourceSafe Explorer, в котором и происходит вся работа с разделяемыми файлами. Для начала необходимо указать базу данных исходных кодов. Выбираем меню File/Open SourceSafe Database. Откроется окно, в котором можно создать новую или выбрать уже существующую базу. Чтобы создать новую запись, щелкаем по кнопке Browse, и ищем файл srcsafe.ini на сервере. Если вы знаете точное расположение файла и к нему есть доступ, то в поле для ввода файла можно явно указать путь, например:

\\192.168.0.1\VSSFolder\srcsafe.ini.

В данном случае будем считать, что 192.168.0.1 – это IP сервера, и там есть открытая папка VSSFolder. Когда база данных открыта, с ней можно начинать работать.

Работа с сервером

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

Теперь посмотрим, что находиться в окне программы VSS Explorer. Слева можно увидеть дерево директорий, как и в простой файловой системе. При выборе директории справа отображаются содержащиеся в ней файлы. Чтобы добавить новые файлы или директории в SourceSafe, достаточно только перетащить их из файлового менеджера или проводника.

Все, что мы видим сейчас в VSS, находиться на сервере, а чтобы начать работать с исходным кодом, его нужно забрать. Для начала нужно указать, куда должен забираться код. Для этого заранее создайте директорию на своем компьютере, в которую будет складироваться код, а потом щелкните правой кнопкой по корню дерева директорий и выберите меню Set Working Folder. В появившемся окне указываем созданную нами папку.

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

Принцип работы

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

Но прежде чем вносить изменения в исходный код, необходимо забрать нужные файлы из базы данных VSS. Старайтесь забирать только то, что реально будет подвергаться изменениям, чтобы не мешать работать другим. Для этого выделяем нужные файлы, щелкаем правой кнопкой и выбираем Check out. В VSS такие файлы будут помечены красным цветом, а в колонке User появится имя пользователя, который забрал файл. Со всех этих файлов будет автоматически снят признак Read only, и их можно будет смело изменять.

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

Что блокировать

Во-первых, заведите привычку после выделения и перед блокировкой файлов сначала выбрать из контекстного меню Get last version. По идее, во время операции Check out программа VSS должна проверять наличие на сервере более новой версии и обновлять ее. Но на практике это бывает не всегда. Если какой-то файл не будет обновлен, то изменения могут потеряться. Да, их можно будет потом найти в истории, но сливать с вашими изменения может быть проблематично.

Когда забираете модуль, то обязательно забирайте связанные файлы. Для C++ это значит, что нужно забирать не только .cpp-файл, но и .h-.

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

По местам

Теперь поговорим о том, что необходимо размещать в базе данных VSS, а что не стоит того. Конечно же, на сервер должны заливаться все файлы исходного кода и вспомогательные модули. Для Delphi это файлы .dfm и .pas, а для С++ это .cpp- и .h-файлы. Я не рекомендую помещать на сервер промежуточные файлы и те файлы, которые генерируются во время компиляции. Например, если в VSS будут лежать .obj (для С++) или .dcu (для Delphi), то локальные копии автоматически будут помечены, как доступные только для чтения. Зачем? Ведь у нас есть исходный код, и промежуточные файлы всегда могут быть созданы во время компиляции. Иначе она может завершиться провалом только из-за одного заблокированного .obj.

Конечный (исполняемый) файл также нет смысла выкладывать в VSS. В этом случае компилировать сможет только один человек, который заблокировал исполняемый файл на своей рабочей станции. Остальным придется снимать признак Read only в своей локальной файловой системе.

История изменений

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

Еще одно преимущество «истории» в Visual SourceSafe – она хранит копии всех загруженных на сервер изменений. Денные об изменениях, произошедших после блокировки и до отпуска файлов, не сохраняются. В IDE большинства сред разработки промежуточные файлы создаются при каждом сохранении модуля. Опытные программисты нажимают Ctrl+S очень часто, поэтому промежуточных копий будет много, и найти в них что-то полезное почти нереально.

Если нужно узнать историю изменений файлов, можно просмотреть ее с помощью встроенного редактора VSS или открыть ее для редактирования на вашей машине в соответствующем типу файла редакторе. Но просмотр «истории» – пол дела. VSS предоставляет нам возможность сравнить два файла и увидеть, какие изменения внес один из программистов и примерно определить время этих изменений. А если над одним модулем работает несколько программистов, то возможность визуального сравнения поможет определить того, кто именно наделал ошибок.

Только для чтения

В Delphi иногда бывает необходимость временно установить какое-либо свойство в модуле, который не забран или не может быть забран в данный момент. Для этого достаточно перейти в исходный код, щелкнуть правой кнопкой по закладке с именем модуля и снять свойство Read only. Тут нужно понимать, что для редактирования открывается модуль, загруженный в Delphi, а сам файл остается только для чтения. Это значит, что все изменения невозможно будет сохранить, а при попытке сделать это появиться сообщение Is read-only file.

При работе с Fast Report в Delphi могут возникнуть проблемы. Редактор построения отчетов будет загружаться с ошибками и может вообще не запуститься, если модуль, на котором установлен компонент TfrxReport, открыт только для чтения. Чтобы избежать ошибок, перед открытием редактора отчетов необходимо снять Read only с модуля. С файла этот признак снимать не обязательно.

Итого

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

Если есть какие-то вопросы, я всегда готов ответить через WEB-сообщения моего сайта. Пишите!


Михаил Фленов
Профессиональный программист. Автор бестселлеров «Библия Delphi», «Программирование в Delphi глазами хакера», «Программирование на C++ глазами хакера». Некоторые книги переведены на иностранные языки и популярны в США, Канаде, Польше и других странах. Основал компании Heapar Software (www.heapar.com) и CyD Software Labs (www.cydsoft.com).

Обсуждение статьи
Логин:
Пароль:
Регистрации на сервере не требуется. Если у вас есть форумный логин, вы можете использовать его.
Если нету, то вы можете зарегистрироваться на forum.itspecial.ru
Обсуждение этой статьи на forum.itspecial.ru
Для отправки сообщения введите код, указанный на картинке
Заголовок
Сообщение

Guest guest@gameland.ru Отправлено: 28.08.2009 18:34:19
RE: Разделяй и властвуй: совместная разработка кода
Михаил Фленов Профессиональный программист. Основал компании Heapar Software (www.heapar.com) и CyD Software Labs (www.cydsoft.com). Это те компании которые разорились...
Guest guest@gameland.ru Отправлено: 29.01.2010 18:07:54
RE: Разделяй и властвуй: совместная разработка кода
а какие еще существую средства управления коллективной разработки. Не ужели кроме майкрософт никт больше ничего подобного не сделал?
Guest guest@gameland.ru Отправлено: 16.09.2010 13:23:07
RE: Разделяй и властвуй: совместная разработка кода
tourmaline
Discount coach Discount Coach Bag - 3725 results like
Cheap coach purses a replcia purses suppliers of cheap coach purses

ed hardy shirts We supply Cheap Ed Hardy shirts
ed hardy t shirt We supply Cheap Ed Hardy shirt for kids
Cheap D&G sunglasses discount sunglasses at Cheap D&G sunglasses
Discount prada sunglasses These discount Prada sunglass styles are
Cheap Gucci sunglasses these cheap Gucci sunglasses are still cutting
Cheap prada sunglasses wholesale cheap Prada sunglasses, Coach, Gucci
Cheap Oakley sunglasses We buy Oakley Sunglasses and sell them to you
discount Oakley sunglasses Designer Sunglasses at Discount: Oakley Sunglasses
Discount Gucci sunglasses At Eyesave you get great discount Gucci Sunglasses.
Discount D&G sunglasses At Eyesave you get great discount D & G Sunglasses
football shirt the largest football shirt community
soccer jersey Buy cheap soccer jerseys and shirts
cheap soccer jersey Wholesale Soccer Jerseys,Cheap Soccer Jerseys
oakley sunglass
coach outlet Coach outlet stores are known for
Mac brushes such as MAC brush and Bobbi Brown brush etc
wholesale nike rif New Cheap wholesale nike rif, Online buy cheapest
wholesale adidas shoes wholesale adidas shoes manufacturers directory
cheap moncler jackets exporters. cheap moncler jackets manufacturer
discount moncler jackets discount moncler jackets manufacturers directory
cheap moncler coats as a professional Cheap Moncler Jackets seller
Christian louboutin shoes find the Fahison Christian Louboutin shoes
soccer jersey good quality, cheap price
soccer jerseysjust choose you like
moncler coats
moncler jacket
moncler

moncler coats
moncler jacket
moncler coats
moncler jacket
moncler jacket
moncler
Basin faucet

Billiard Table
Embroidery digitizing
valve ball
UF membrane
Moncler jackets
moncler coats
Bridal wear auckland
wedding dress auckland
sunglasses wholesale
cheap moncler jackets
discount moncler jackets
cheap moncler coats
ed hardy shirts

Car DVD Player
shower filter
packing machine

Bathroom faucet
Kitchen faucet
Shower faucet

asics mexico 66 shoes Brown, Asics Mexico 66 Leather Women
asics mini cooper shoes ASICS SHOES MINI Cooper 1PCS
Asics Gel-Stratus 2.1 Shoes shop for Asics GEL-Stratus 2.1 Cross Training
onitsuka tiger shoes Shop for onitsuka tiger shoes . Price comparison

moncler coats
moncler jacket
moncler
Shower faucet
GHD HAIR STRAIGHTENERS
monoammonium phosphate Shop for monoammonium phosphate . Price
Cheap Ed hardy shoes Cheap Ed Hardy Mens Shoes on Sale
Cheap Ed hardy caps Ed Hardy Caps, Cheap Ed Hardy Hats on Sale
Discount Ed hardy T-shirts Shoppers Excited about Discount Ed Hardy T Shirts

Maintain wire hanger must obey 3 steps.Firstly,often clean the metal
wire hanger.
scendly, spread on it with oil.Finally,try to hang dispersive when hang Weights.
These measures are necessary for it, also the good protection, know these knowledge,
you will notice? In order to better life, start from small thing.
Guest guest@gameland.ru Отправлено: 28.09.2010 13:27:59
RE: Разделяй и властвуй: совместная разработка кода
Теги: Microsoft Visual SourceSafe, программирование, совместная работа

Keywords: zPOSTz zCODEz z10019z
Для Авторов: edit delete
Guest guest@gameland.ru Отправлено: 29.09.2010 11:13:02
RE: Разделяй и властвуй: совместная разработка кода
feidumo
Designer handbag price is too expensive to make some of us fear to tread, however, you are keen to have a designer handbag, in our shop everything is possible, we are a professional replica designer handbag seller, the favorable price and high quality are our promise to all the customers

The Rosetta StoneCD-ROM series is the premier choice for students seeking to master a foreign language on their computer. Intended for all serious students, these courses are equivalent to a year of college


Naruto, Sailor Moon and Velvet are all well-known in Asia,a lot od young poeple are crazy on this cartoon and playing cosplay.,naruto costumes, sailor moon costume, velvet cloak became the most popular costume among the youth

The cosplay sphere in Hong Kong are separated as two sides, with one mainly including Chinese citizens (sometimes Japanese also included) and one mainly including non-Chinese citizens (such as Europeans and Americans). The ambiance between two sides is different at all, since the status of Chinese-citizen-mainly side has been turning

It is our destination to make the Replica Gucci handbag as one part of your body, whenever you take it out. Every piece of our cheap Gucci handbag artwork has been checked very carefully in each process. Therefore, we are proud to promise our customers the most fabulous Gucci handbags.
As the leading brand of handbag, discount Gucci handbag has conquered the world not for a short time. www.gucci-hangbags.com provides a variety of collections fo Gucci handbag wholesale . All these elegant & luxury handbags will promote not only your appearance, but also your personal temperature.
Gucci handbag on sale! Buy gucci handbags, gucci bags, gucci wallets from our online. On eluxury-brands.com, you can find the exact luxurious goods, that's right for you. Start your shopping now
Guest guest@gameland.ru Отправлено: 29.09.2010 11:13:51
RE: Разделяй и властвуй: совместная разработка кода
All cheap jerseys' name and number are sewn-on and embroidery instead of printing. If you feel free to place the orders more than 10pcs and the orders could be different cheap mlb jerseys or cheap hockey jerseys mixing together and we are showing you free shipping
In our shop, meet your satisfaction is a easy job, we sell a wide range of replica nfl jerseys. We promise the quality of our product
Guest guest@gameland.ru Отправлено: 29.09.2010 11:16:03
RE: Разделяй и властвуй: совместная разработка кода
Call it a wheel hub or a wheel bearing, at WheelHubPros.com, we have the correct one for your car in stock. The wheel hub bearing is a very important car part yet it often gets overlooked. Considering the wheel hub bearing is the only part that connects the wheels to the car body, it should never be overlooked.

A bad hub bearing can cause phantom noises or ghost vibrations at sporadic points during the drive. Many people respond by checking the brakes, struts, and springs. If they do not find any issues with those parts, they move on, chalking up the distractions to the car's "old age." In reality, changing the wheel bearing kits often fixes the issue.

Referred toEd hardy tee, more than is loved among young people , it is also popular brands and hot in Hollywood, Brittany Spears, Paris Hilton, David Beckham, Ewan McGregor, Usher ...... list goes on, even in Asia has been guiding stars the trend , Rain loves retro punkand Ed Hardy is the love in private , BoA, Lee Min Yu, Jolin worn Ed Hardy attend some parties, Lee Hom Heroes of Earth album in a diamond mesh cap is the Tiger Ed Hardy's masters merchandise.

In our shop ed hardy hoodies and ed hardy tattoo are in plenty of stock , welcome to our shop anytime

We promise the quality of our football jersey 100% polyster,100% embroidery, high quality, paypal accepthot jersey, fashion jersey, authentic FOOTBALL JERSEY.
We also developed samples and make customer orders according to the designated sample.


Discount designer shoesare very popular in the last two years
discount designer shoes are very popular in the last two years appears the shoes. When these shoes first appeared on fashion magazines have been strongly criticized that the lack of training in public, however, to the independence and freedom of modern women, this argument is naturally failed . Today, lively style make these shoes become very popular, no matter wore it shopping, parties, or even out of the workplace are the the generous nature of looks.
At the same time, we specialized in discount designer clothes


Anviz Biometric manufactures a complete range of biometric products including fingerprint time attendance, fingerprint access control,fingerprint lock, USB fingerprint reader, OEM fingerprint module etc.


Sneakersdropship.com guarantee each nike sneaker we sell with a good quality. No question will be asked to accept your return or exchange in case that you are not satisfied with the item you have bought from us. The item should be returned in their original condition and presentation box/pouch - unworn with the original wrapping within 30 business days of rec
Guest guest@gameland.ru Отправлено: 11.10.2010 4:43:32
RE: Разделяй и властвуй: совместная разработка кода
With the development of science and technology, home theater has become the general population, dvd box set market more active, DVD and CD look similar, they are the diameter of 120 millimeter, usually used to broadcast TV film, the standard definition of high quality music with great capacity data storage usage.
Страницы: << 1 >>

Теги: Microsoft Visual SourceSafe, программирование, совместная работа


Keywords: zPOSTz zCODEz z10019z
Для Авторов: edit Lock delete Lock

Автор: Михаил Фленов
Дата: 08.12.2008 12:04:18©


Другие материалы номера
Unix desktop: бизнес-ниша систем *nix
Почему OpenBSD, почему Windows?
Корпоративный *nix: краткий обзор дистрибутивов
Open Source на корпоративном рынке: сравнение совокупной стоимости
Из Windows в Linux: некоторые аспекты переноса
Миграция в открытый стандарт: проблемы переноса
Cтроим мосты: запуск WIN-программ в среде UNIX
Армагедон XXI века: вред монополизма
Сеть своей головой: основные принципы планирования сети и обеспечения ее безопасности
Cколько стоит упасть и отжаться: вероятность тотального краха
Сетевая бюрократия: разработка пакета регламентирующих документов
Совершенно секретно: безопасность баз данных предприятия
Быстрый и меткий: Fastreport как средство корпоративной отчетности
Программирование в ACE: параллелизм
Проблематика сетевого анализа и аудита: оптимальные варианты для успешного решения сетевых проблем и превентивной проверки ЛВС
Эра дешевой, современной, ультразащищенной IP-телефонии: краткие рекомендации создателям новых монополий
Опрос: переход с Windows на Unix?
Живой офис: прорыв или крушение
На службе государства: СОРМ
Технологии и решения на рынке систем хранения данных
Физические аспекты информационной безопасности
Обзор коммутатора HP ProCurve Switch 1800-8G

В этом разделе
Введение в SOA. Часть 1. Проектирование информационных систем
Delphi и Oracle: разрабатываем утилиту для администрирования ORACLE
Языки, которые мы потеряли
IT-практикум: Delphi и AutoCAD. Организация связи двух популярных программных комплексов
Проблемы совместного доступа к данным в Oracle
Рубиновый кофе
Королевство Zend: Инструменты для профессионального php-разработчика
Отлажено до автоматизма: автоматизация Windows штатными средствами
Каркасы ACE
Программирование в ACE: обмен данными
Программирование в ACE: параллелизм
Разделяй и властвуй: совместная разработка кода
Быстрый и меткий: Fastreport как средство корпоративной отчетности


Хакер | GameLand | Мобильные компьютеры | Купи Камеру | Total Football | All Hockey | Onboarg Magazine | Хулиган | Sync
Total DVD | DVDxpert | Maxi Tuning | (game)land company | GamePost | Свой Бизнес


Rambler's Top100