Skip to content

Mol presentation

Stefan edited this page Mar 2, 2022 · 9 revisions

мол - уникальная экосистема для web-разработки

Мол - высокоуровневый фреймворк для создания веб-приложений(SPA-PWA). Подходы к разработке в нем сильно переосмыслены, так чтобы писать меньше кода - делать больше. Результат многолетних исследованний и экспериментов в области web-разработки.

Накопленные знания и опыт в вопросах пользовательских интерфейсов, реактивности, легковесных потоков и расширяемой композиции, одни из самых полных в мире.

Общие принципы

Небольшой набор уникальных принципов и инженерных решениий, ориентированных на скорость, поддержку и сотрудничество.

Адаптивность

В коробке свой набор компонент(типа как bootstrap, material ui), поддерживающих буклетный дизайн, который позволяет малыми усилиями получать приложение сразу для всех размеров экранов, т.е. если использовать его, то не надо пилить отдельные версии для телефонов/планшетов/декстопов. Но можно и не использовать буклетный дизайн, а сделать на основе mol свою библиотеку UI. Одно приложение сразу для всех платформ (поддерживается кордова для упаковки под мобилки).

Высокоуровневость

Аналоги высокоуровневых фреймворков - extjs, OpenUI5. В моле также из кирпичиков собираются приложения, только одновременно с этим он более гибок чем например низкоуровневый реакт.

Скорость

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

Бережливость

Даже сложные приложения на mol работают на старых компах и мобилках (при условии, что браузер не самый старый) из-за уникальных оптимизаций (виртуализация рендеринга).

В сравнение с традиционными frontend-приложениями, при большой функциональности в mol нет копипасты: малый объем кода на выходе делает не актуальными минификацию и frontend-микросервисы, что упрощает инфраструктуру.

Разделение ответственностей

С кодом на $mol могут работать люди с разными уровнями компетенций. Это достигается через DSL для прототипирования и расширяемостью.

Для программиста

Расширяемость

Все разбирается. Нет сокрытия, любую деталь, компонент, можно использовать отдельно, расширять, встраивать. Фреймворк этому всячески помогает посредством контекстов

Багоустойчивость

Этому способствуют строгая типизация (typescript), оригинальная реализация реактивности, автотесты

Отлаживаемость

Любая часть mol легко отлаживается, говорящие, структурированные имена, хлебные крошки на всех уровнях, от компонентов до верстки, облегчающих работу программисту

Модульность

Мол включает "среду разработки" - МАМ. Она реализует модульную систему, сборку приложений в бандлы, работу с NPM, удаленными гит репозиториями. Вопросы с минимизацией размера приложения, организацией моно/поли репозиториев, микрофронтендов(создание приложений большими командами) уже решены из коробки. Модульная система заточена на легкое переиспользование кода и работу с большими объемами кода/приложений. Большинство потребностей, модули мола закрывают. Но в случае чего можно обратится к NPM.

Изоморфность

Мол изоморфен, т.е. один и тот же код из коробки работает и в браузере и на сервере(nodejs). Легко пилить тесты к компонентам, сделать серверный рендермнг. И соответственно тесты тоже в коробке.

Примеры

tss - система мониторинга состояния грузовых вагонов на ЖД, с целью изучения их влияния на железнодорожное полотно. Прототип, время, потраченное на реализацию - 4д