/HW1

Домашнее задание 1

Primary LanguageJavaScript

HW1

КиноБыстро.

Что будем делать?

Предположим, что мы решили открыть startup продажи билетов в кино через мобильные телефоны.

Что мы имеем на руках:

  • Список кинотеатров + дополнительную информацию о каждом из них
  • Списко фильмов для каждого кинотетра + дополнительную информацию к каждому фильму.
  • О пользователе мы знаем координату, где он находится в данный момент.
  • О реальном мире мы знаем текущию дату и время.

Домашнее задание 1

  1. Творческое
    Придумать модели, которые нужны для нашего сервиса.
    *. По сложности модели могут быть любыми.
  2. Реализовать функции, которые создают ваши модели. Например
    function createCircle(radius, position, options) {
      options = options || {};
      return {
          radius: radius,
          position: position,
          color: options.color || "black" 
       };
    }
         
    Совет: Не пишите функции, которые зависят более чем от 3-5 параметров
    Cовет: В опциях должны лежать неважные параметры
  3. Советую написать небольшую "базу" кинотетров (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
            });
        });
         
  4. Реализовать некоторую сущность, которая умеет искать нужный фильм для пользователя
    var manager = {};
    

    manager.findByFilmName = function (film) { /бизнес лапша/ return /../; }

    manager.sortByUserPosition = function (film) { /бизнес лапша/ return /../; }

    Мощность функционала зависит только от вас.
    Совет. Было бы круто если было бы можно писать код в таком стиле:

    collection
       .findByFilmName(name)
       .sortByUserPosition()
       .getTop(10);
    
  5. Тесты. А точнее, примеры использования.
    На следующем занятии я научу вас писать тесты:
    • Браузерные
    • Консольные