Создать шаблон строки функции

#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.