10 причин попробовать Матрешку

imageДокументация на русскомGithub репозиторий

1. Чистый JavaScript и HTMLМногие фреймворки пытаются починить веб, создавая собственный язык программирования. Идея Матрешки проста: с вебом всё в порядке. Вся логика, которую пишет программист, находится, как и должна, в JavaScript файлах, а HTML остаётся языком разметки гипертекста. Шутка об HTML программисте должна остаться шуткой.2. Минимум сущностей Матрешка не требует создания избыточных сущностей. Благодаря простому синтаксису привязок, связь между JavaScript и HTML может быть описана там же, где и логика. Программисту не требуется задумываться сразу о нескольких вещах, размышляя о балансе полномочий объектов. Вопрос где прописать обработчик: во «вьюхе» или в контроллере отпадает сам по себе. Хотя, никто не запрещает разделить данные и контроллер, разместив их в разных JS файлах.3. Работай с данными, забудь о представлении Попробовав популярный (но уступающий под натиском более современных продуктов) фреймворк Backbone, сталкиваешься с серьезным неудобством: объявляя данные, зависящие от UI и UI, зависящий от данных, вам, как правило, требуется создать два обработчика события. Один ловит изменения данных, второй ловит пользовательские действия. Проблема подкрепляется еще тем, что HTML элементы, как правило, совершенно идентичны в рамках приложения: input, select, кастомные виджеты из jQuery UI могут многократно встречаться на странице. Программисту, который реализует еще одну «единицу» приложения (например, форму), приходится пользоваться «копипастой».С Матрешкой всё намного проще. Вам нужно лишь однажды объявить привязку (в одном месте, а не в двух), затем работать с данными (как с обычными JavaScript объектами), забыв, что у нас вообще есть представление.

4. Гибкость Новичку часто непонятно, как перейти на новую архитектуру. Порой, для того, чтоб добавить сторонний виджет, нужно приложить немало усилий, изучая адаптеры, директивы и т. п…Задавшись вопросом, как прикрутить тот или иной скрипт (например, какой-нибудь jQuery плагин), верным ответом будет, в том числе, «сделаю как знаю». Вывод какого-нибудь виджета, будь то Google Maps или одна из многочисленных галерей, делается так, как указано в официальной документации к виджету. Матрешка создана с любовью к VanillaJS.

5. Ненавязчивая архитектура Большинство популярных фреймворков закладывают принципы структурирования кода, ограничивая творчество программиста, как архитектора ПО. Я не считаю, что это очень плохо, хотя часто задаешься вопросом «а почему нужно делать именно так»?…Матрешка не заставляет использовать определенную структуру кода, и не принуждает пользоваться хорошими, но, возможно, не самыми удачными решениями. Вы сами выбираете паттерны проектирования и структурирования приложения. Хоть Матрешка и позиционируется, как фреймворк, но, скорее, это библиотека, уменьшающая объем предстоящей работы.

6. Меньше кода Самая главная задача, которая ставилась при разработке фреймворка — решение максимально большого круга задач (в разумных пределах). Поэтому, результирующий код, как правило, выглядит достаточно компактно, особенно прибегая к помощи ECMAScript 6.7. Легко понять, что происходит Из-за ненавязчивости рекомендаций и отсутствии жесткого регламентирования любой, кто не знаком с фреймворком, но хорошо знает JavaScript, скорее всего, разберется в вашем коде (если вы, конечно, сами хороший программист :). При создании методов, одним из важных приоритетов была очевидность их функциональности.8. Легко начать Для того, чтоб начать работать с Матрешкой, нужно всего лишь знать назначение трех классов и нескольких методов. Остальное — синтаксических сахар. В документации они помечены красным флажком, чтоб было легче ориентироваться.9. Небольшой размер Матрешка достаточно компактна для фреймворка. На момент написания статьи Матрешка весит меньше 38K/12K зазиповано.10. Поддержка синтаксиса ECMAScript 6 Поддержка JavaScript следующего поколения является одной из самых приоритетных задач. На сегодняшний день, Матрешка, кроме основных возможностей ECMAScript 6, поддерживает классы и циклы for…of. В дальнейшем, при развитии языка, новые возможности будут добавляться в первую очередь.11. Документация (бонусная причина) Все знают, что программист обязан знать английский язык, так как большинство актуальных материалов и статей, в первую очередь, выходят на английском. Но я уверен, что большинство людей, читающих эту статью, несмотря на свои знания английского (от посредственных до отличных), отдадут предпочтение русскоязычным материалам.Документация, начиная с этого года будет выходить на двух языках: на русском и английском. Причем, обе версии, являясь официальными версиями, будут всегда оставаться актуальными.

Вот такой краткий пост получился. Всем пятницы!

© Habrahabr.ru