Catbee 3.0.0

Что нового?

Catbee 3.0.0

Основные цели

- Разделить проект на мелкие библиотеки (isomorphic helpers, rendering, template engines, data layer, logger, i18n, config, uhr)

 

- Позволить работать с любой библиотекой для отрисовки (web-components, react, vue, deku...)

 

- Отвязаться от жесткой структуры проекта

 

- Сделать новую спецификацию компонентов

Catbee 3.0.0

Строгая струкутра проекта

Плюсы

Быстрый старт

Watch mode на сервере

Namespace сущностей

Не нужно думать о сборке

Минусы

Затраты ресурсов на поддержку механизма namespacing'а

Нет возможности группировать сущности в рамках одной папки

Нет возможности изменить инструмент сборки если это потребуется

Catbee 3.0.0

Строгая струкутра проекта

Решение:

Избавиться от глобальных сущностей в пользу локальных регистраций для каждой из сущностей. Сборка уходит из фреймворка.

Catbee 3.0.0

Строгая струкутра проекта

Чего коснулось?

Уходят инъекции function ($config) {}, вместо этого function {locator} { this._config =  locator.resolve('config'} }.

Уходит потребность в component.json, вместо этого все помещается в javascript файле.

Появляется потребность в указании корневого компонента для DocumentRenderer

Catbee 3.0.0

Строгая струкутра проекта

Чего коснулось?

Шаблоны должны стать частью класса компонента, из-за этого уходит TemplateProvider.

Уходят watcher'ы из аттрибутов, так как больше нет жесткой структуры проекта.

Catbee 3.0.0

Строгая струкутра проекта

class Component {
  template (ctx) {
    return `
     Hello ${ctx.name}.
     <cat-nested></cat-nested>
    `;
  }

  // Rest methods here (bind, unbind, render)...
}

module.exports = {
  constructor: Component,
  children: [
    {
      name: 'nested' // Local name, not available for other components
      component: require('../nested'),
      watcher: {
        name: ['path', 'to', 'name']
      } // Support function definition, applyed for all tags <cat-nested>
      props: {
        size: 'big',
        isVisible: true
      }
    }
  ]
}

Catbee 3.0.0

Улучшения в компонентах

Автогенерируемые ID

<Slot> [WIP]

Hydration/Dehydration [WIP]

Отныне не требуется указание уникального id

Указание содержимого внутри тела компонента.

Сейчас требуется кэшировать state асинхронных экшенов внутри проекта, нужно от этого избавиться.

Catbee 3.0.0

Исследования

Переезд на Webpack

Подумать о том как максимально избавить приложение от предварительной компиляции.

Отказ от Babel

Посмотреть на скорость сборки приложения

Catbee 3.0.0

Когда уже будет?

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

Beta - после первого разработческого feedback'а. Эта версия должна содержать в себе все вещи которые нужны что мигрировать текущий проект на новую версию без проблем.

Release Candidate - версия которая уходит на регрессионное тестирование. Проект полностью переехал и с точки зрения разработчика готов к тестированию.

Stable/Release - версия которая готова к релизу приложения и содержит в себе все запланированые улучшения проекта.

Catbee 3.0.0

Полный список изменений

Сatbee 3.0.0 - Работа с Cookie, Redirect, Headers + Routing + Event Bus + структура проекта на Service Locator. Отправляет в Document Renderer команды: Render, InitWithState, UpdateState. В каждый метод передает Routing Context.

Catbee Web Components 1.0.0 - Имплементация DocumentRenderer на основе Web Components / Morphdom / Appstate.

Appstate 2.0.0 - Отвязанный от namespace релиз Appstate.

Catbee i18n 1.0.0 - Имплементация i18n на основе Python Babel, содержит в себе несколько пакетов, таких как i18n-base-methods, i18n-handlebars-helpers, i18n-cli итд...

Catbee Devtools 1.0.0 - Расширение для упрощения tracking'а сигналов.

Catbee 3.0.0

Полный список изменений

Сatbee Config 1.0.0 - Имплементация изоморфной конфигурации созданная для простой работы с разными окружениями.

Catbee Logger 1.0.0 - Имплементация системы логов с системой расширений (транспорты, preset'ы).

Catbee Handlebars 5.0.0 - Новая версия template provider с трансофрмацией и require hook

Catbee Docs - Вебсайт с документацией.

Catberry-Locator 2.0.0 - Новая версия Catberry Locator без инъекций через $.

deck

By Kirill Kaysarov