Страницы

пятница, 31 августа 2012 г.

CardFlow. Гранит науки.

Недавно я писал, какие веб-фреймворки мне хотелось бы посмотреть. В том числи упомянул необходимость предварительно реализовать серверную часть. Поскольку проект не столько для дела, сколько для тренировок, хотелось определиться с тем, что стоит прокачать. Вот мой предварительный список для прокачки с помощью CardFlow:

  • CQRS/ES, в том числе хочется побаловаться с Event Store
  • Полная асинхронность. Интересно с точки зрения более полного (и скромного!) использование машинных ресурсов. Да и ES с таким подходом хорошо дружит.
  • Для связи использовать какую-либо MQ/ESB (разницу между MQ и ESB хорошо расписал Udi Dahan) Скорее всего это будет Rhino ESB. Бесплатна, и готова к работе. Документация конечно хромает, но необходимое по интернету насобирать можно.
  • Проектирование с учётом тестирования. Каждый этап. В идеале – возможность запускать приёмочные тесты как в полностью синхронном внутрипроцессном режиме, так и в полностью рабочей среде.
  • Работа с удалёнными сервисами. Интересно в разрезе написания тестов, и реальной работы. Какой именно удалённый сервис будет пока не придумал, но думаю в пути мысль возникнет.
  • XCOPY-развёртывание, привет TopShelf.
  • BDD в общем, и SpecFlow в частности.
  • Управление зависимостями с помощью Nuget. Не идеален, но лучше, нежели таскать сборки руками.

Пока хватит. В следующий раз приступим к реализации. Гибкие методологии рекомендуют начинать с приёмочного теста. Он и станет первой строчкой кода в проекте.

четверг, 30 августа 2012 г.

CardFlow.

Почитывая книгу Leading Lean Software Development, увидел пример Kanban Board. Идея сразу запала в душу, и спустя пару дней навязала желание сделать учебный проект именно Kanban Board. Писать, что такое Kanban, и причем тут доска не буду. Лучше почитайте книгу выше, или другую специализированную литературу. Но одно стоит заметить: Kanban – переводится как карточка, и методология крутиться вокруг движения карточек. Что логично приводит к подходящему названию – CardFlow.

После самого главного (название), надо определиться с функциональностью проекта. Проект учебный, поэтому требуется как можно проще описать функционал. Главное в этом процессе – сделать поменьше всякого функционала. Итак, пока будет только две Функции:

  1. Редактирование доски: количество, расположение слотов, переходы между ними.
  2. Создание и передвижение карточек по доске.

Для полноценного менеджера задач конечно недостаточно: нет участников, нет авторизации, много чего нет… Но хватит, чтобы побаловаться с CQRS и Event Sourcing Подмигивающая рожица

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