#javascript #ecmascript-6
#javascript #ecmascript-6
Вопрос:
У меня есть идеи по созданию фреймворка javascript, в котором yaml или json будут центральными строительными блоками для создания интерфейсных приложений декларативным способом для обслуживания, управления версиями, автоматической документации, тестирования, изоляции бизнес-логики и обеспечения прозрачных структур на основе API.
Моя идея заключается в том, что строительные блоки кода javascript генерируются динамически на основе этих объявлений yaml / json. Однако мне трудно найти лучший способ, как это сделать.
Варианты, о которых я могу думать:
- Манипуляции со строками (это сработало бы, но кажется утомительным)
- Узнайте, как написать транспилятор и каким-то образом сгенерировать JS (кажется, это долгий путь, но я бы сделал это, если бы пришлось)
- Создание функций динамически, но я не уверен, как я бы преобразовал их в строку.
Если у вас есть опыт работы с транспиляторами или динамической генерацией Javascript (с точки зрения фактически выводимого синтаксиса), не могли бы вы дать мне указания / советы о том, какой путь лучше всего использовать для достижения моей цели?
Комментарии:
1. Модули и классы ES6 для ООП, прокси и API-интерфейсов Reflect для meta.
2. @zer00ne Что я хотел бы сделать, так это подготовить шаблонные файлы и синтаксис, чтобы программист мог сосредоточиться на реализации. Я думаю, что я напишу свою собственную библиотеку на основе строк и базовых ключевых слов ES6… если вы не могли придумать что-то лучше. Цель состоит в том, чтобы иметь некоторый готовый прототип в обозримое время.
3. Рендеринг строк в DOM медленный и подвержен ошибкам (не так сильно, как это было до шаблонных литералов, тем не менее медленный, подверженный ошибкам и непрактичный при крупномасштабном использовании. Избегайте доступа к DOM, насколько это возможно, если при создании HTML с помощью интерфейса узла для этого используется
document.createDocumentFragment()
4. @zer00ne Я говорю о файлах javascript файловой системы…
5. @Trace действительно, так и было бы. Также было бы отличной функцией, если бы была включена функция composite / mixin для ее использования с модулями ES6.