Skip to content
This repository has been archived by the owner on Jan 13, 2018. It is now read-only.

Refactor

arikon edited this page Nov 10, 2011 · 13 revisions

Рефакторинг bem-tools

Текущие проблемы

  • «плохое» наследование функциональности для модулей технологий
  • мало точек расширения в текущем API для модулей
  • много лишней конкретики в именах методах текущего API, например getFileContent, newFileContent и тп. Блоки могут быть реализованы в конкретной технологии не только в виде файла, но и в виде директории и нескольких файлов одновременно.

Дополнительные требования

  • асинхронное promises-based API
  • сейчас API полностью синхронное, через него плохо выражаются асинхронные вещи (из синхронной функции нельзя сделать асинхронный return)
  • bem-server будет использовать promises-based API, он должен иметь возможность использовать bem-tools
  • API для вызовы команд (build, create, decl) из других приложений (например, bem-server)
  • параметризуемые технологии (например, xsl:output для xhtml.xsl.js)

Планы

1 итерация

  • [done] использовать inherit (бывший node-inherit) для реализации наследования:
  • [done] в файлах технологий
  • [done] в файлах уровней переопределения
  • [done] более «чистое» API (минимум конкретики, больше точек расширения)
  • [done] портировать из файлов технологий часто используемую функциональность (например, сборку файлов с несколькими расширениями)
  • [done] (частичная) обратная совместимость для старых модулей технологий

2 итерация

  • [done] promises-based API

3 итерация

  • [done] API для вызова команд (build, create, decl) из других приложений

4 итерация

  • параметризуемые технологии