Comments 6
К слову о TDD, тоже делаю первые шаги, заметил одну приятную вещь:

Раньше я писал код и смотрел что получается в браузере, кликал в нужный раздел своего приложения,
нажимал несколько кнопок и проверял, то ли произошло, что я задумывал. Затем, если всё шло не по плану,
менял код и опять тратил от 30 секунд до минуты на проверку результата и всех его возможных значений.

А теперь, я просто пишу тест со всеми вариантами входных данных, сохраняю, вижу упавшие тесты, захожу в код,
пишу нужную функцию и сохраняю несколько раз по мере написания, убеждаясь, что тесты падают до тех пор, пока они не выполнятся.

Т.е. тесты выполняются мгновенно при сохранении за 500мс, и мне не нужно ходить в браузер и заново вводить данные или ждать ответа с сервера.

Я теперь, даже больше люблю находиться в коде, чем кликать в своём приложении. Ну а про плюсы того, что не нужно заново всё перепроверять при рефакторинге в случайном месте кода — я уже молчу.

Все кто не пишет тесты — попробуйте, это реально удобно и быстрее.

PS: И с тех пор как пересел на underscore и Angular.js, меньше пишу велосипедов и больше получаю удовольствия.
О чём же сыр-бор?
kidomi написана на CoffeeScript.
Она компилируется Google Closure в расширенном (ADVANCED_MODE) режиме.
Она покрыта юнит-тестами.
И эти тесты работают в т.ч. с помощью PhantomJS.
Всё это собирается и запускается с помощью make.

Ну и что?
Как я понимаю, шаблонизатор используется для генерации некоего вывода из ввода. И какая при этом разница на чем он написан? и т.д.
Важна производительность, корректность преобразования и т.д., а не все выше процитированное.
Или я неправильно понял смысл этой статьи?
Написать подобный шаблонизатор вообще-то очень просто. В простейшем случае всё делается одной рекурсивной функцией размером в десяток с лишнем строк (с комментариями :). Лично я для себя как раз и открыл некоторые вышеперечисленные аспекты. Например то, что определённый CoffeeScript код можно без проблем прогнать через Closure ADVANCED_MODE, или например возможности тестирования ".min.js" версий библиотеки.
Так я про то же. Заголовок
kidomi: построение DOM-объектов «на лету»
предполагает что будет обсуждаться именно это, а не все вышеперечисленное. В таком случае более подходил бы заголовок «TDD на примере шаблонизатора» или что-то подобное. А здесь разговор об внутренней реализации, вместо обсуждения его работы.
Не скажу что в статье нет ничего полезного, но статья явно расходится с содержанием заголовка.
Там где есть интерес к js шаблонизаторам тихо оставлю свою ссылку controls.js — полноценный с событиями, клиент/сервер, сериализация/десериализация дерева объектов. и не только это.
Only those users with full accounts are able to leave comments. Log in, please.