Предположим, что мы решили открыть startup продажи билетов в кино через мобильные телефоны.
- Список кинотеатров + дополнительную информацию о каждом из них
- Списко фильмов для каждого кинотетра + дополнительную информацию к каждому фильму.
- О пользователе мы знаем координату, где он находится в данный момент.
- О реальном мире мы знаем текущию дату и время.
-
ТворческоеПридумать модели, которые нужны для нашего сервиса.*. По сложности модели могут быть любыми.
-
Реализовать функции, которые создают ваши модели. Например
function createCircle(radius, position, options) { options = options || {}; return { radius: radius, position: position, color: options.color || "black" }; }
Совет: Не пишите функции, которые зависят более чем от 3-5 параметров
Cовет: В опциях должны лежать неважные параметры -
Советую написать небольшую "базу" кинотетров (2-3) и фильмов в них (3-5). Например, так:
var circles = [1, 2, 3, 4, 5].map(function (number) { return createCircle(Math.abs(5 - number), { x: number * number, y: number + number, color: number % 2 ? "black" + number : undefined }); });
-
Реализовать некоторую сущность, которая умеет искать нужный фильм для пользователя
var manager = {};
Мощность функционала зависит только от вас.manager.findByFilmName = function (film) { /бизнес лапша/ return /../; }
manager.sortByUserPosition = function (film) { /бизнес лапша/ return /../; }
Совет. Было бы круто если было бы можно писать код в таком стиле:
collection .findByFilmName(name) .sortByUserPosition() .getTop(10);
-
Тесты. А точнее, примеры использования.На следующем занятии я научу вас писать тесты:
- Браузерные
- Консольные