Project

General

Profile

Actions

Вступление в проект

Общая структура SVN

Документация на симулятор расположена в папке /doc.
Исходные коды содержатся в папке /trunk/project/NetworkSimulator.
/trunk/tools содержит вспомогательные утилиты (NModel).

Структура /trunk/project/NetworkSimulator

Данная папка содержит solution (решение) для Microsoft Visual Studio 2010.
В решении содержится 5 проектов.

  • NetSim.Kernel
    В данной сборке реализованы базовые интерфейсы сущностей и их простые реализации (или готовые к использованию классы, или абстрактные).
  • NetSim.Kernel.Test
    Эта сборка содержит набор модульных тестов на NetSim.Kernel.
  • NetSim.Library
    В данной сборке реализуются сущности (устройства, физические интерфейсы, среды передачи данных и т.п.).
  • NetSim.Library.Test
    Эта сборка содержит набор модульных тестов на NetSim.Library.
  • NetSim.TestMocks
    В данной сборке содержатся реализации-заглушки базовых сущностей, которые используются в модульных тестах.

Сборка проекта

Запуск модульных тестов.

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

Для упрощения написания тестов на сущности уже написаны некоторые заготовки тестов:
Интерфейс source:trunk/project/NetworkSimulator/NetSim.Library.Test/Interface/InterfaceBaseTest.cs
Среда передачи данных source:trunk/project/NetworkSimulator/NetSim.Library.Test/Backbone/BackboneBaseTest.cs
Устройство source:trunk/project/NetworkSimulator/NetSim.Library.Test/Device/DeviceBaseTest.cs

Режимы сборки

Имеется два режима сборки проекта - Debug и Release.
Отметим, что в каждом режиме выставлен максимальный Warning Level и включена опция Treat warnings as errors. Не рекомендуется выключать эту опцию.
Кроме того, для сборок NetSim.Kernel и NetSim.Library автоматически генерируется .xml-файл с документацией, поэтому при сборке на все public-методы должна быть документация, иначе компиляцию будет выполнить невозможно.

Построение документации

Для построения .chm-документации из .xml-файлов с xmldoc написан сценарий командной строки makedoc.cmd, расположенный в корневой папке решения.
Для его запуска нужно установить последнюю релиз-версию Sandcastle.

Подсчёт статистики

Также в корневой папке решения есть скрипты, строящие статистику кода (объём в байтах, кол-во документации, общее кол-во строк кода, ...).
allstat.cmd показывает статистику, getstat.cmd записывает статистику по всему решению в файл stat.txt.
Для запуска getstat.cmd должен быть установлен PERL.
Оба .cmd-скрипта вызывают приложение Statistics.exe, также расположенное в корневой папке решения.

Данные скрипты не завязаны на остальной проект и добавлены разработчиками для "интереса". От этих скриптов можно отказаться.

Рекомендации по написанию кода

  1. Рекомендуется использовать при разработке расширение для Visual Studio Resharper.
    .xml-файл с настройками стиля форматирования расположен в корневой папке решения.
  2. Рекомендуется использовать сборки по назначению.
    Не нужно реализовывать новые сущности в NetSim.Kernel или писать тесты в NetSim.Library.
  3. Рекомендуется каждую сущность покрывать набором тестов.
  4. При написании тестов рекомендуется просматривать результаты статистики Code Coverage и стараться доводить процент покрытия тестами до 100%.
    По крайней мере, процент покрытия должен превышать 90%.
  5. При написании тестов рекомендуется использовать заготовки тестов.

Updated by Виктор Самунь almost 11 years ago · 2 revisions