Начиная новый проект - с чего начать? - PullRequest
3 голосов
/ 02 апреля 2010

Я собираюсь начать собственный проект, который будет ASP.NET MVC + Fluent NHibernate. Я хочу использовать тестовый подход как можно больше. Итак, с чего именно начать? Схема базы данных? Доменная модель? Отображение классов модели домена в базу данных?

Ответы [ 4 ]

6 голосов
/ 02 апреля 2010

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

Если вы разбираетесь в написании тестов и в TDD, может быть полезно начать с конца- сквозное тестирование (в этом случае они будут написаны для веб-интерфейса) и создание тонкого фрагмента функциональности, который затрагивает все архитектурные части системы (как рекомендуется в GOOS ).Другими словами, создайте ходячий скелет .Преимущества этого подхода состоят в том, что (1) вы сможете решать и решать проблемы интеграции с самого начала, (2) когда сквозные тесты используются для управления проектом, это может помочь вам избежать реализациилишние детали и (3) трудности написания сквозных тестов требуют от вас улучшения архитектуры и добавления контрольных хуков, которые также могут быть полезны при мониторинге системы в работе.(Целенаправленное модульное тестирование все еще будет необходимо, потому что они обеспечивают проектное давление на уровне класса, плюс они работают быстрее и, следовательно, обеспечивают более быструю обратную связь.)для интегрируемости .

2 голосов
/ 02 апреля 2010

Начните с макета / прототипа (например, Balsamiq Mocks) приложения, затем запишите представления, контролируйте насмешку по мере продвижения, затем напишите логику контроллера, посмеиваясь над DAO / Repositorys. К тому времени, когда вы начнете писать свои DAO / Repositories, у вас будет хорошее представление о ваших необходимых объектах домена. Выбей их и используй Fluent Nhibernate для создания своей базы данных.

По крайней мере, так я пытаюсь делать.

2 голосов
/ 02 апреля 2010

Сбор требований.

1 голос
/ 02 апреля 2010

Я рекомендую вам Архитектура S # arp Проект, в котором используются лучшие практики объединения:

  • NHibernate
  • FluentNhibernate
  • TDD / DDD с подходом первых моделей с базой данных Sqlite для модульного тестирования
  • Mocking
  • Шаблон репозитория

Вы также можете установить S # arp arch. шаблон для Visual Studio IDE.

...