- Есть работающая библиотека https://github.com/tshemsedinov/node-mysql-utilities
можно ее развивать:
- Поддржка промисов и async/await
- Оптимизация, поддержка
- Поддержка драйвера mysql2
- Разработка аналогов
node-mysql-utilitiesдля: - Построители запросов (query builders) для: MongoDB, IndexedDB, SQLite и др.
- Разработка прототипа СУБД
- Варианты модели даннх: реляционная, ключ-значение, колоночная, объектная, документная, графовая
- Хранение: файловая система, оперативная память, другая СУБД
- Доступ к данным: файловая система, сетевой протокол, IPC, API (встраиваемая)
Репозиторий https://github.com/HowProgrammingWorks/Transaction
- Несколько объектов в транзакции
DatasetTransaction - Исправить удаление свойств
Transaction(через значения Symbol в дельте) и добавление/удаление объектов изDatasetTransaction - Специяльный EventEmitter
.before/after/on('name', callback) - Журнал коммитов (храним даты, хеши)
- Блокировка объектов (повторно над объектом не стартуем)
- Каскадное реактивное изменение курсоров
- События
.on('commit'),.on('start')... - Таймауты транзакций и долгие транзакции
Transaction.start(obj).timeout(5000); - Отделить прокси от транзакции
const [transaction, obj2] = Transaction.start(obj);
obj2.userName = 'a';
transaction.commit();- Описание полей
const obj = {
name: 'Marcus',
city: 'Roma',
country: 'Pax Romana'
};
const schema = {
address() {
return this.countru + ', ' + this.city;
}
};
const obj2 = Calc.apply(obj, schema);
console.log(obj2.address); // 'Pax Romana, Roma'- Вычисление полей
- Оборачивание в Proxy или виртуальный класс с get
- Индексы для курсоров и для хранилищ в GlobalStorage
- Алгоритмы хеширования с сохранением сравнения
- Индексы по нескольким полям
- Оптимизация запросов через индексы
- Генерация SQL скриптов из схем
- Генерация структуры коллекций Mongodb и GlobalStorage индексов из схем
Репозиторий https://github.com/HowProgrammingWorks/LiveCoding
- Кеширование всех исходников на сервере
- Вычисление, пересылка и применение дельты (изменений)
- Защита от DDOS (система из очередей для балансировки)
- Подсветка синтаксиса
- Сервер (интеграция всех серверных модулей)
- Клиент (интеграция всех клиентских модулей)
Репозиторий https://github.com/HowProgrammingWorks/KnowledgeMap
- Построение графа зависимостей
- Поиск циклов
- Построение последовательности лекций по темам
- Для кеширования в памяти
- Задаем определенный объем памяти для кеша
- Собираем статистику и автоматически определяем, что лучше закешировать
- Имитация файловой системы в памяти
- Возможность загружать в память с диска
- Возможность сбрасывать на диск из памяти
- Для сохранения в облачных файловых хранилищах
- Dropbox
- Google Drive
- Песочница https://github.com/metarhia/sandboxed-fs
- Дорабатываем по issues
Репозиторий https://github.com/metarhia/metasync
- Примитивы параллельного программирования