Архив рубрики «Технология программирования»

Гибкая методология разработки программного обеспечения

29.03.2010

Информация о курсе
Курс посвящен методологии разработки программного обеспечения Microsoft Solutions Framework for Agile Software Development корпорации Microsoft.
Эта методология описывает подход и организацию работы при создании программных продуктов и, в отличие от более масштабной и абстрактной системы Microsoft Solutions Framework, сразу готова к применению. Руководство предназначено для менеджеров проектов, а также для разработчиков, аналитиков, тестеров, архитекторов и, возможно, других участников команды разработчиков.

Интересный курс на intuit.ru.

Разработка через тестирование

26.12.2009

Разработка через тестирование (Test-Driven Development) – технология программирования, которая позволяет создавать чистый и устойчивый код с минимальными усилиями.

В основе этой технологии лежит разработка теста до того, как будет реализована какая-нибудь часть программа. Сначала пишется тест, и нужно убедиться, что этот тест не срабатывает. Это может произойти, с одной стороны, из-за того, что используемые в тесте методы тестируемого класса еще не определены, с другой – условия теста программа обрабатывает некорректно. Далее нужно максимально быстро и любой ценой заставить тест сработать. В некоторых случаях решение может оказаться очевидным, реализовать его легко и просто. Иногда пишутся заглушки – «суррогатный код», единственная цель которого - выполнение условий теста. После того, как тест сработал, выполняется рефакторинг созданного кода.

Дальше цикл повторяется: новый тест, заставить тест сработать, рефакторинг.

В результате такого подхода будет создан «чистый код, который работает». Такой код легко читать, легко поддерживать и легко расширять.

Есть замечательная книга, описывающая этот подход: «Экстремальное программирование. Разработка через тестирование», Кент Бек. В ней приводится пример использования этой технологии при реализации простого приложения.

Еще одна книга, которую я бы порекомендовал, называется «The Art of Unit Testing with Examples in .NET», Roy Osherove. В ней акцент поставлен на изучения различных возможностей тестирования с использованием библиотеки NUnit. Эта книга носит более прикладной характер, и отвечает на многие сложности, которые возникают при тестировании.

О системах контроля версий

27.09.2009

При работе с большим количеством электронных документов иногда возникают ошибки, от которых непросто избавиться. Для этого очень удобно вернуться к одной из предыдущих версий документа. Вручную создавать резервные копии сложно и неудобно. Существуют технологии контроля версий, которая позволяет хранить историю изменений всех документов. К таким технологиям относятся CVS (Concurrent Versions System, “Система Конкурирующих Версий»), Subversion – расширение CVS, GIT. Одно из важнейших назначений системы управления контролем версий является реализация возможности работы группы разработчиков над одним проектом. При этом будет видно, кто, когда и какие изменения внес в проект.

Принцип работы с системой контроля версий заключается в следующем. В основе находится репозиторий – централизованная база данных для хранения файлов. Выбираются файлы, над которыми ведется работа, и импортируются в репозиторий. После этого вызовом команды Check Out появляются копии оригинальных файлов, которые работают уже под управлением Subversion. После внесения некоторых изменений в файлы, командой Check In сохраняется текущая их версия. При этом возможно оставить комментарий по внесенным изменениям, сравнить новые файлы с файлами предыдущих версий. Каждый раз, когда возникает необходимость записать новую версию файла, запускается команда Check In. С помощью Revert можно вернуться к одной из предыдущих версий файлов. Команда Update в системе контроля версий добавляет в файлы изменения, сделанные другими пользователями. Также есть возможность создавать одну или несколько «побочных» линий развития проекта – ветки.

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

Технология Subversion имеет несколько реализаций, работающих на различных ОС и специализирующихся для работы в определенных средах разработки. Наибольший интерес представляют Tortoise SVN и VisualSVN.

Tortoise SVN – наиболее универсальная SVN для Windows. Интегрируется в проводник, позволяет отслеживать изменения любых типов файлов, таких как проекты Visual Studio, документы Microsoft Office.

Для работы с Microsoft Visual Studio существует VisualSVN, который интегрируется в интерфейс студии.

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