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
deck
- 1,068