🗓 19 июля в 15:00
⚡️Фичи на ⅓ быстрее — без переделок и багфиксов!
Разберем техники и подходы, которые позволят вам:
1. Ускорить разработку
2. Снизить количество багов
3. Сократить время на поддержку текущей кодовой базы
https://wep.wf/s9tnsu?utm_source=telegram_channel&utm_medium=t_shemsedinov&utm_campaign=stream_19_07
⚡️Фичи на ⅓ быстрее — без переделок и багфиксов!
Разберем техники и подходы, которые позволят вам:
1. Ускорить разработку
2. Снизить количество багов
3. Сократить время на поддержку текущей кодовой базы
https://wep.wf/s9tnsu?utm_source=telegram_channel&utm_medium=t_shemsedinov&utm_campaign=stream_19_07
👍3❤1🔥1🎉1
Продолжаю писать примеры CRDT для лекции о синхронизации структур данных в распределенных системах и дальнейшего включения этих возможностей в Metarhia.
Уже готовы каунтеры:
- G-Counter: Grow-only State-based
- PN-Counter: Positive-Negative State-based
- OP-Counter: Operation-based Counter
- AC-Counter: Accumulated Counter
- Δ-G-Counter: Delta-based Grow-only
- S-Counter: Schema-based Counter
И часть множеств готова:
- G-Set: Grow-only Set
- 2P-Set: Two-Phase Set
- LWW-Set: Last-Writer-Wins Set
- OR-Set: Observed-Remove Set
- PN-Set: Positive-Negative Set
Другие CRDT появятся тут в ближайшее время: https://github.com/HowProgrammingWorks/CRDT
Уже готовы каунтеры:
- G-Counter: Grow-only State-based
- PN-Counter: Positive-Negative State-based
- OP-Counter: Operation-based Counter
- AC-Counter: Accumulated Counter
- Δ-G-Counter: Delta-based Grow-only
- S-Counter: Schema-based Counter
И часть множеств готова:
- G-Set: Grow-only Set
- 2P-Set: Two-Phase Set
- LWW-Set: Last-Writer-Wins Set
- OR-Set: Observed-Remove Set
- PN-Set: Positive-Negative Set
Другие CRDT появятся тут в ближайшее время: https://github.com/HowProgrammingWorks/CRDT
❤6👍5🔥3🎉2
Вы хотите внедрить local-first в своих проектах? (выбираем что именно)
Anonymous Poll
32%
Да, доступность в оффлайне
24%
Да, синхронизацию данных
14%
Да, разрешение конфликтов
19%
Да, без задержек и крутилок
20%
Нет, это все мечты
42%
Не понимаю, что все это значит
💡 Новые примеры кода из курсов Метархии:
- Простой блокчейн со смартконтрактами (JavaScript + Node.js): https://github.com/HowProgrammingWorks/Blockchain
- Реализация CAS структур данных: https://github.com/HowProgrammingWorks/CAS
- Примеры использования Atomics: https://github.com/HowProgrammingWorks/Atomics
- CRDT структуры данных: https://github.com/HowProgrammingWorks/CRDT
👉 Курсы Метархии:
- Async 2025: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2025.md
- Node.js 2025: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2025.md
- Patterns 2025: https://nodeua.com/Patterns-2025.html
- Простой блокчейн со смартконтрактами (JavaScript + Node.js): https://github.com/HowProgrammingWorks/Blockchain
- Реализация CAS структур данных: https://github.com/HowProgrammingWorks/CAS
- Примеры использования Atomics: https://github.com/HowProgrammingWorks/Atomics
- CRDT структуры данных: https://github.com/HowProgrammingWorks/CRDT
👉 Курсы Метархии:
- Async 2025: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2025.md
- Node.js 2025: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2025.md
- Patterns 2025: https://nodeua.com/Patterns-2025.html
❤10👍5🔥2🎉1
Как у вас с работой?
Anonymous Poll
10%
Я начинающий, еще не искал
7%
Я начинающий, не могу найти
11%
Я начинающий, уже работаю
27%
Я профессионал, проблем нет
26%
Я профессионал, стало сложнее
10%
Я профессионал, сижу без работы
4%
Я эксперт, проблем нет
2%
Я эксперт, сложно найти
4%
Я эксперт, мне работа не нужна
Комментарий под видео: а вот AI по этому поводу говорит... Как вы можете это объяснить? (вариант: как вы рассматриваете на этот счёт)
🤣23❤2🔥1
Вчера проводил лайвкодинг с Cursor 1.3.9 (claude-4-sonet, claude-3.5-sonet, gpt-4.1, o3, gemini-2.5-pro) для студентов курса по паттернам, Node.js и асинхронности. Показал, как правильно формулировать задачу для ИИ — воспринимать его как исполнителя, а не как волшебную коробку, которая все делает за вас. Больше часа писал техническое задание, а затем ИИ очень быстро все реализовал — но все идеи уже были в ТЗ. Я предоставил примеры кода из своих предыдущих разработок, описание задачи заняло 71 строку:
https://github.com/metarhia/metautil/blob/gsid-ai/lib/TASKS.md
После этого, с небольшими доработками в течение 10–15 минут, он сгенерировал вот эти 43 строки кода:
https://github.com/metarhia/metautil/blob/gsid-ai/lib/gsid.js а также много вспомогательного кода для анализа результатов, отчета по производительности и оптимизации, который я добавил в конец файла TASKS_md.
Некоторые материалы я публикую здесь, другие будут доступны только студентам. Скоро запишу видео со сравнением — что получается, если воспринимать ИИ как ассистента, и что выходит, когда человек не понимает задачу и не умеет управлять ИИ.
https://github.com/metarhia/metautil/blob/gsid-ai/lib/TASKS.md
После этого, с небольшими доработками в течение 10–15 минут, он сгенерировал вот эти 43 строки кода:
https://github.com/metarhia/metautil/blob/gsid-ai/lib/gsid.js а также много вспомогательного кода для анализа результатов, отчета по производительности и оптимизации, который я добавил в конец файла TASKS_md.
Некоторые материалы я публикую здесь, другие будут доступны только студентам. Скоро запишу видео со сравнением — что получается, если воспринимать ИИ как ассистента, и что выходит, когда человек не понимает задачу и не умеет управлять ИИ.
GitHub
metautil/lib/TASKS.md at gsid-ai · metarhia/metautil
Metarhia utilities 🧰. Contribute to metarhia/metautil development by creating an account on GitHub.
👍30🔥9❤2
🎫 Открыл Community подписку на Patreon для еженедельных стримов, семинаров, лайвкода, Q&A сессий, всяких материалов, что я выпускникам готовлю. Раньше она была, но последние два года я туда приглашал только всех, кто на курсы приходил и выпускников, каждую неделю 2 часа, мы уже ведем это 5 лет, там всегда интересно. Теперь $10 в месяц: https://www.patreon.com/tshemsedinov/membership
🔥7👍4❤2
CAS-контейнер это один из блоков, из которых мы соберем технологию для local-first (offline-first) разработки, вместе с CRDT и Websocket он обеспечит синхронизацию приложений между закладками браузера, между несколькими устройствами, между разными пользователями. Менторы курса Patterns делают пример фронтенда, я пишу бекенд и синхронизацию. Скоро мы объединим это вместе с PWA и web workers, OPFS и indexedDB как я писал тут https://t.me/metarhia/1904 а позже реализуем транспорт при помощи WebRTC, а целостность состояния будет обеспечивать Blockchain. Конечно, их использование не обязательно, это просто блоки, из которых можно будет собрать свое решение. Бизнес-логику можно будет писать как сервисы или как смарт-контракты на выбор. Даже разработка API будет рациональной, 80% функциональности можно делать без серверного API даже вообще не разрабатывая сервера, на автоматической синхронизации базы данных, но можно и свое API реализовать. Поставьте ❤️ если вы уловили, что мы хотим сделать, 👍 если частично, но интересно, 🤯 если совсем сложно понять. Все эти технологические блоки совсем скоро позволят писать фронтенд не в стиле простыни, где визуальные компоненты содержат работу с API через fetch, а бизнес-логика размазана по событиям на кнопочках (как в делали ваши деды на Delphi), но позволит делать чистую архитектуру и изолировать слои. Ни кто, конечно, не запретит писать лапшу, но сделать простое и красивое решение будет в разы проще. Что мы покажем на примере проекта.
👍54❤30🤯15
🚀 Вместе эти технологии формируют инфраструктуру для local-first приложений:
1️⃣ PWA (Progressive Web App)
Веб-приложения с пользовательским опытом, близким к нативному: офлайн-режим, установка, быстрое время загрузки. Решают проблемы плохой связи и медленной сети, сочетая преимущества веба и нативных приложений.
2️⃣ CRDT (Conflict-Free Replicated Data Types)
Структуры данных для автоматического разрешения конфликтов в распределённых системах. Решают проблемы синхронизации, параллельного редактирования и обеспечивают работу офлайн-приложений без потери или конфликтов данных.
3️⃣ CAS Containers (Compare-And-Swap)
Атомарный механизм одновременного доступа, который хранит записи базы данных с защитой через хеши или версии. Решает проблемы race conditions, конфликтов одновременных изменений, обеспечивает консистентность и оптимистичное управление параллельным доступом в распределённых БД.
4️⃣ IndexedDB (browser built-in database)
Встроенная в браузер база данных с API для транзакционного хранения структурированных данных на стороне клиента. Решает задачи офлайн-хранения, локальных запросов, кэширования и построения b-tree индексов.
5️⃣ OPFS (Origin Private File System)
Защищённая высокопроизводительная файловая система, доступная только веб-приложениям в рамках одного origin (источника). Решает задачи хранения крупных файлов и высокоскоростных файловых операций в вебе.
6️⃣ Blockchain (без майнинга)
Распределённый защищённый журнал записей для децентрализованной базы данных с неизменяемой историей. Решает задачи целостности и неизменности данных, прозрачности и доверия.
7️⃣ JavaScript Smart Contracts
Бизнес-логика, выполняемая на языке JavaScript в децентрализованных средах. Решает задачи автоматизации и доверия при изменении данных, автоматического подтверждения договорённостей и безопасного выполнения кода.
8️⃣ WebSocket
Протокол для двунаправленного обмена данными в реальном времени через одно TCP-соединение. Решает проблемы задержек и поддерживает интерактивные приложения, близкие к реальному времени.
9️⃣ WebRTC (Web Real-Time Communication)
Протокол для потоковой передачи мультимедиа и обмена данными напрямую между пользователями. Решает задачи прямого взаимодействия в реальном времени, низких задержек и децентрализации без промежуточных серверов.
🔟 Metaschema
Декларативный язык схем для моделирования, валидации и синхронизации данных. Решает проблемы несоответствия данных, эволюции и миграции схем, упрощает описание метаданных и работу со сложными структурами данных.
1️⃣ PWA (Progressive Web App)
Веб-приложения с пользовательским опытом, близким к нативному: офлайн-режим, установка, быстрое время загрузки. Решают проблемы плохой связи и медленной сети, сочетая преимущества веба и нативных приложений.
2️⃣ CRDT (Conflict-Free Replicated Data Types)
Структуры данных для автоматического разрешения конфликтов в распределённых системах. Решают проблемы синхронизации, параллельного редактирования и обеспечивают работу офлайн-приложений без потери или конфликтов данных.
3️⃣ CAS Containers (Compare-And-Swap)
Атомарный механизм одновременного доступа, который хранит записи базы данных с защитой через хеши или версии. Решает проблемы race conditions, конфликтов одновременных изменений, обеспечивает консистентность и оптимистичное управление параллельным доступом в распределённых БД.
4️⃣ IndexedDB (browser built-in database)
Встроенная в браузер база данных с API для транзакционного хранения структурированных данных на стороне клиента. Решает задачи офлайн-хранения, локальных запросов, кэширования и построения b-tree индексов.
5️⃣ OPFS (Origin Private File System)
Защищённая высокопроизводительная файловая система, доступная только веб-приложениям в рамках одного origin (источника). Решает задачи хранения крупных файлов и высокоскоростных файловых операций в вебе.
6️⃣ Blockchain (без майнинга)
Распределённый защищённый журнал записей для децентрализованной базы данных с неизменяемой историей. Решает задачи целостности и неизменности данных, прозрачности и доверия.
7️⃣ JavaScript Smart Contracts
Бизнес-логика, выполняемая на языке JavaScript в децентрализованных средах. Решает задачи автоматизации и доверия при изменении данных, автоматического подтверждения договорённостей и безопасного выполнения кода.
8️⃣ WebSocket
Протокол для двунаправленного обмена данными в реальном времени через одно TCP-соединение. Решает проблемы задержек и поддерживает интерактивные приложения, близкие к реальному времени.
9️⃣ WebRTC (Web Real-Time Communication)
Протокол для потоковой передачи мультимедиа и обмена данными напрямую между пользователями. Решает задачи прямого взаимодействия в реальном времени, низких задержек и децентрализации без промежуточных серверов.
🔟 Metaschema
Декларативный язык схем для моделирования, валидации и синхронизации данных. Решает проблемы несоответствия данных, эволюции и миграции схем, упрощает описание метаданных и работу со сложными структурами данных.
🔥18⚡5🤯3❤2🎉1