Поделиться через


Оптимизация рабочей области

 

Опубликовано: Апрель 2016

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

  • Оптимизация имен папок

  • Оптимизация рабочей области с помощью явных, неявных, замаскированных и нерекурсивных сопоставлений папок

  • Использование рабочих областей для изоляции работы и управления работой в разных ветвях

Оптимизация имен папок

Если вы еще не используете ветви на своем сервере, следует помещать весь свой код во вложенную папку с именем Main (например: $/TFVCTeamProject/Main/). Если это сделать, вы будете готовы, когда ваша команда вырастет настолько, что для управления базой кода потребуются ветви. На компьютере разработки необходимо использовать короткий и понятный путь к папке, который соответствует структуре проекта, например C:\Users\YourName\Source\Workspaces\TFVCTeamProject\Main\SolutionName\.

Некоторые дополнительные советы по эффективному именованию папок:

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

  • Старайтесь не использовать пробелы, чтобы было проще выполнять операции командной строки.

Оптимизация рабочей области с помощью явных, неявных, замаскированных и нерекурсивных сопоставлений папок

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

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

Если посмотреть на показанную ниже рабочую область вымышленного разработчика Раисы, может возникнуть вопрос: почему она просто не сопоставила $/SiteApp/ объекту c:\code\SiteApp\ и все? Простая рабочая область, такая как эта, неявно сопоставила бы все необходимые ей папки в $/SiteApp/Main/.

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

Папки, сопоставляемые оптимизированной рабочей областью

Папки, сопоставляемые с оптимизированной рабочей областью

Раиса не разрабатывает настраиваемые процессы сборки, поэтому ей не нужна папка $/SiteApp/BuildProcessTemplates. Она предполагает, что со временем база кода будет расти, и ей не хотелось бы автоматически загружать каждый новый бит кода, добавляемый в $/SiteApp/Main/. Команды, работающие в этих других папках, изменяют эти файлы, и при получении Раисой последних файлов с сервера она может столкнуться с длительными задержками, ожидая обновления файлов, которые ей не нужны.

Для разработки своего кода Раисе нужны все проекты кода, составляющие решение FabrikamFiber. Вместо явного включения каждого проекта кода (например, $/SiteApp/Main/FabrikamFiber/FabrikamFiber.DAL) она сопоставляет $/SiteApp/Main/FabrikamFiber/ и, следовательно, неявно сопоставляет все вложенные папки, содержащие нужные ей проекты кода.

Раисе не нужны файлы в $/SiteApp/Main/FabrikamFiber/3DModels или $/SiteApp/Main/FabrikamFiber/Docs, а поскольку они неявно сопоставлены за счет Шаг 1, она использует два замаскированных сопоставления, чтобы удалить эти папки из своей рабочей области.

Раиса и другие члены ее команды поддерживают и иногда расширяют набор некоторых фундаментальных библиотек. Ей нужны почти все текущие библиотеки в этой папке, и будут нужны библиотеки, которые ее команда добавит туда в будущем, поэтому она сопоставляет $/SiteApp/Main/libraries/Common.

Раисе необходим только небольшой сегмент большой папки $/SiteApp/Main/libraries/Common/LibraryC, поэтому она сопоставляет ее как замаскированную, а затем явным образом сопоставляет только нужные ей вложенные папки: $/SiteApp/Main/libraries/Common/LibraryC/Sub-Library1.

Раисе нужны некоторые файлы непосредственно внутри LibraryD, но ей не требуются большие объемы вложенных папок, поэтому она применяет нерекурсивное сопоставление к этой папке: $/SiteApp/Main/libraries/Specialized/LibraryD/*.

Использование рабочих областей для изоляции работы и управления работой в разных ветвях

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

Например, в Fabrikam Fiber база кода и штат сотрудников выросли. Чтобы изолировать риск между несколькими командами, базу кода разветвили. Раиса продолжает работать в своей небольшой команде, но теперь она использует несколько рабочих областей для управления работой, которую она теперь выполняет в нескольких ветвях.

Ветви, с которыми работает Julia

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

Интеграция и стабилизация Она создает две новые рабочие области для выполнения работы в ветвях "Тест" и "Разработка", где она взаимодействует с другими разработчиками и тест-инженерами, чтобы стабилизировать код в процессе интеграции.

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

Сопоставление папок на сервере клиентским папкам

Примечание

Ветвление или приостановка (откладывание) — предпочтительные способы для изоляции разных направлений работы в одной базе кода.Однако если ни один из этих подходов не соответствует вашим нуждам, можно сопоставить одну и ту же папку на сервере в нескольких рабочих областях.В большинстве случаев делать это не требуется.При сопоставлении одной и той же папки на сервере в нескольких рабочих областях помните, что в каждой из рабочих областей могут быть свои ожидающие изменения для одного и того же файла.