Проект разработки новой базы данных EdgeDB (Gel) - закрыли
Несколько лет назад появились первые упоминания про новую БД, можно сказать, убийцу
Не могу сказать, что после первого релиза люди побежали тащить в свой продакшен, но тут и там в разговорах всплывали упоминания, надежда, что проект выстрелит, станет частью экосистем для языков, фреймворков
Но случилось, что случилось. На любой труд нужны инвестиции и они иногда заканчиваются. Поэтому команда разработки перешла в компанию
Это не первая БД, которая по сути умерла не дождавшись своего рассвета, но за нее мне особенно обидно, видел почти весь ее путь развития. Идея крутая, надеюсь однажды кто-то приложит руку к оживлению проекта
https://www.geldata.com/blog/gel-joins-vercel
Несколько лет назад появились первые упоминания про новую БД, можно сказать, убийцу
postgres. Необычный синтаксис запросов на смену старому SQL, лаконичные понятные конструкции вместо жирных join-ов, фильтраций, подзапросов на 100500 строк кода...Не могу сказать, что после первого релиза люди побежали тащить в свой продакшен, но тут и там в разговорах всплывали упоминания, надежда, что проект выстрелит, станет частью экосистем для языков, фреймворков
Но случилось, что случилось. На любой труд нужны инвестиции и они иногда заканчиваются. Поэтому команда разработки перешла в компанию
Vercel, а edgedb (не так давно была переименована в gel) осталась на гитхабе и теперь похоже без поддержки и развития. Это не первая БД, которая по сути умерла не дождавшись своего рассвета, но за нее мне особенно обидно, видел почти весь ее путь развития. Идея крутая, надеюсь однажды кто-то приложит руку к оживлению проекта
https://www.geldata.com/blog/gel-joins-vercel
Geldata
Gel joins Vercel | Gel Blog
1🫡29😭9👍1😢1
Всех уже за**али конференции и доклады
Несколько недель назад в разных чатах Онтико запустили опрос, что участники думают про текущие форматы конференций. Не могу сказать, что очень своевременно... Но все равно круто, что организаторы (не только Онтико) потихоньку начинают задумываться о проблеме конференций.
В чем соль. Если походить и пообщаться с завсегдатаями такого рода тусовок, можно заметить, что они все жалуются примерно на одни и те же проблемы:
- Немалая доля докладов это либо пересказ документации, либо "мы такие красавчики в БИгКЕкНейМ"
- Люди приходят за нетворком, но не умеют в него, потому что воробушки-социофобушки
- За 20-100к деняг ты как участник получаешь меньше пользы, чем от обычного курса
- Из-за больших цен на билеты покупают в основном за счет компании (больших), за свой счет мало кто ходит
Что получается по итогу? Правильно, застой. Одни и те же лица как выступают, так и ездят. И то ради выпить пива и увидеть старых знакомых. Безусловно, и в этом тоже есть своя польза, но все таки не та, которую изначально ждешь от конференции
И вот значит сел я читать новый манифест от Онтико, который они опубликовали после анализа всей обратной связи участников. И могу сказать, что мне нравится то, что я увидел. Вот прям очень откликается
Пунктов много, кому интересно, почитайте сами, но самое главное, на мой взгляд, это вот эти два
(перевод. Вместо того, чтобы забить сетку докладами, давайте больше думать про пользу для участников)
(перевод Далеко не все люди умеют общаться, поэтому мы им с этим поможем)
Make conferences great again, получаеца? Что думаете?
https://ontico.ru/manifest.html
Несколько недель назад в разных чатах Онтико запустили опрос, что участники думают про текущие форматы конференций. Не могу сказать, что очень своевременно... Но все равно круто, что организаторы (не только Онтико) потихоньку начинают задумываться о проблеме конференций.
В чем соль. Если походить и пообщаться с завсегдатаями такого рода тусовок, можно заметить, что они все жалуются примерно на одни и те же проблемы:
- Немалая доля докладов это либо пересказ документации, либо "мы такие красавчики в БИгКЕкНейМ"
- Люди приходят за нетворком, но не умеют в него, потому что воробушки-социофобушки
- За 20-100к деняг ты как участник получаешь меньше пользы, чем от обычного курса
- Из-за больших цен на билеты покупают в основном за счет компании (больших), за свой счет мало кто ходит
Что получается по итогу? Правильно, застой. Одни и те же лица как выступают, так и ездят. И то ради выпить пива и увидеть старых знакомых. Безусловно, и в этом тоже есть своя польза, но все таки не та, которую изначально ждешь от конференции
И вот значит сел я читать новый манифест от Онтико, который они опубликовали после анализа всей обратной связи участников. И могу сказать, что мне нравится то, что я увидел. Вот прям очень откликается
Пунктов много, кому интересно, почитайте сами, но самое главное, на мой взгляд, это вот эти два
Ключевым параметром выступления на конференциях становится применимость полученного участниками материала в их повседневной деятельности
(перевод. Вместо того, чтобы забить сетку докладами, давайте больше думать про пользу для участников)
Коммуникация является важнейшей составляющей профессионального развития, поэтому мы организуем различные формы фасилитируемого нетворкинга, от speed dating до mastermind-групп, как на самой конференции, так и вне её
(перевод Далеко не все люди умеют общаться, поэтому мы им с этим поможем)
Make conferences great again, получаеца? Что думаете?
https://ontico.ru/manifest.html
ontico.ru
Конференции развития / пересборка формата IT-конференций в 2026 году
Узнайте о лучших ИТ-конференциях и мероприятиях в России. Посетите топовые IT-события, встречи и митапы для ИТ-специалистов
1❤28👍23🔥6🎉1🍾1
Принц Персии: разбираем код гениальной игры, вытирая слезы счастья
Очень клевая документалка про автора культовой игры. Как появилась идея, какие хитрости использовались при разработке, с какими трудностями пришлось столкнуться во время разработки. Мне очень понравилось, посмотрел на одном дыхании. Рекомендую🍿
https://youtu.be/UhxCE6QBotE?si=7n3GTTrHhyhgmSYV
Очень клевая документалка про автора культовой игры. Как появилась идея, какие хитрости использовались при разработке, с какими трудностями пришлось столкнуться во время разработки. Мне очень понравилось, посмотрел на одном дыхании. Рекомендую
https://youtu.be/UhxCE6QBotE?si=7n3GTTrHhyhgmSYV
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Принц Персии: разбираем код гениальной игры, вытирая слезы счастья
Бусти — https://clickmy.ru/link/rvhYwf
Это видео — про игру Prince of Persia, всеми любимую и обожаемую классику.
Это мой взгляд программиста на то, как Джордан Мехнер — человек, без сомнения больной, но гениальный — в одиночку создал одну из самых кинематографичных…
Это видео — про игру Prince of Persia, всеми любимую и обожаемую классику.
Это мой взгляд программиста на то, как Джордан Мехнер — человек, без сомнения больной, но гениальный — в одиночку создал одну из самых кинематографичных…
❤18🔥4🥴1
Точка синхронизации технологий и тех, кто их использует
T-Sync Conf — офлайн-конференция от Группы «Т-Технологии» для опытных инженеров. 7 февраля в Москве на площадке TAU соберутся платформенные, security и дата-инженеры, аналитики, DevOps, SRE, CI/CD, AI-, ML-, R&D- и DX -специалисты.
Это новый формат инженерного диалога:
— Контуры — тематические зоны, каждая из которых раскрывает отдельный слой инженерной реальности: AI, Data, R&D, Security, Platform и другие направления.
— Вместо классических докладов — круглые столы, стенды, хакатон, воркшопы и мастер-классы.
— Инженерные решения изнутри — возможность посмотреть, как устроены технологии в Т-Банке и других компаниях, и пообщаться напрямую с теми, кто их создает.
А еще много практики, интересных знакомств и живых систем.
Успейте подать заявку
T-Sync Conf — офлайн-конференция от Группы «Т-Технологии» для опытных инженеров. 7 февраля в Москве на площадке TAU соберутся платформенные, security и дата-инженеры, аналитики, DevOps, SRE, CI/CD, AI-, ML-, R&D- и DX -специалисты.
Это новый формат инженерного диалога:
— Контуры — тематические зоны, каждая из которых раскрывает отдельный слой инженерной реальности: AI, Data, R&D, Security, Platform и другие направления.
— Вместо классических докладов — круглые столы, стенды, хакатон, воркшопы и мастер-классы.
— Инженерные решения изнутри — возможность посмотреть, как устроены технологии в Т-Банке и других компаниях, и пообщаться напрямую с теми, кто их создает.
А еще много практики, интересных знакомств и живых систем.
Успейте подать заявку
1🔥3
В пятницу на стриме у MoscowPython будем подводить итоги года по python
P. S. дизайнеры уже совсем обленились, пихают через ИИ вместо обработки фотографии левых людей. Ни стыда, ни совести, ни профессионализма🙄🙄🙄🤷♀
P. S. дизайнеры уже совсем обленились, пихают через ИИ вместо обработки фотографии левых людей. Ни стыда, ни совести, ни профессионализма🙄🙄🙄🤷♀
Подведем итоги года в мире Python уже в эту пятницу в прямом эфире 🎙
Будем обсуждать итоги года вместе с Никитой Соболевым, Колей Хитровым и Сережей Яхницким, а вести выпуск будут Гриша Петров и Миша Корнеев.
Поделимся самыми интересными технологиями за год, обсудим куда идет Python и что нас ждет в следующем году.
📍 Когда:26 декабря, 14:00
Ведущие: Михаил Корнеев и Григорий Петров
🔵 Смотреть на YouTube
🔵 Смотреть на VK Видео
🔵 Смотретреть на Rutube
➡️ Присоединяйтесь к эфиру или смотрите в записи на любой из площадок
Будем обсуждать итоги года вместе с Никитой Соболевым, Колей Хитровым и Сережей Яхницким, а вести выпуск будут Гриша Петров и Миша Корнеев.
Поделимся самыми интересными технологиями за год, обсудим куда идет Python и что нас ждет в следующем году.
Ведущие: Михаил Корнеев и Григорий Петров
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Итоги мира Python 2025
Чтобы научиться программировать и разбираться в тонкостях Python 3.12 записывайтесь на базовый курс Learn Python — https://clck.ru/3MuShF
Таймкоды:
00:00 — интро
1:57 — что запомнилось в Python за год
2:52 — веб-фреймворки
7:12 — наступление uv
13:00 — …
Таймкоды:
00:00 — интро
1:57 — что запомнилось в Python за год
2:52 — веб-фреймворки
7:12 — наступление uv
13:00 — …
🔥15👍5
Дружеский репост
По моим ощущениям с каждым годом все больше разговоров вокруг темы
Если вам тоже нравится, могу порекомендовать канал Вовы Невзорова - @system_design_world
У меня на канале сборная солянка всякого, а на его канале можно найти разные разборы задачек, воркшопы именно по теме дизайна. Спешали для вас Вова подготовил один из примеров таких задачек
❌ Теряем клиентов, System Design виноват!
✅ У нас получилось захватить 20% рынка с монолитным приложением и драгоценной всемогущей PostgreSQL.
Мы сразу ввели аналитику с помощью тяжелых select и построения витрин.
Отдел маркетинга быстро реагировал на вызовы рынка. Требовал постоянного обновления данных.
В какой-то момент эти запросы стали нагружать базу так, что операции вставки при создание заказа существенно замедлились.
🐤 И клиенты стали страдать.
У Вас нет возможности повлиять на текущую архитектурную схему. С другой стороны Вы можете достроить что-то рядом.
Ваши действия?
✨ Так может звучать вводная для System Design Интервью.
На что она намекает? Давайте разбираться 👉
Дано:
1. Единая база
2. Обслуживает запросы на чтение и запись
3. Тормозит
На интервью можно упомянуть про анализ запросов, использование нужных индексов.
И дальше пойти в архитектурное решение. Какое?
💡 Разделение write, read нагрузки
Мы всё также пишем заказы, мета информацию в основную БД. Исходя из условия можно предположить что с этим она может продолжать справляться, если... уберём тяжелые select запросы/анализ данных. Такую гипотезу вполне законно озвучить интервьюеру.
Получили апрув? Идём дальше.
❓ Как обслужить аналитические запросы?
Думаю в Вашей голове уже созревают идеи, архитектурные паттерны для решения этой задачи. Предложу свой - Change Data Capture(CDC).
Change Data Capture
Суть - ловим изменения данных. Не сами. А с помощью инструмента - Debezium.
⚡️ Финальная схема
Postgres (WAL) → Debezium → Kafka → ClickHouse
Такой пайплайн:
1) Позволяет не грузить основную базу
2) Работает за счёт считывания изменений WAL журнала, а не select'а таблиц
3) Выдаёт данные для аналитики в near-real time
Красота, да и только!😊 Но за всё приходиться платить...
🌿 Вечные tradeoff System Design
Можно заметить насколько усложнилась наша инфраструктура.
С одной стороны, это нужно один раз настроить. В тоже время поддержка - падения, изменения, поддерживание SLA, ... . Представленный пайплайн становится важной частью итогового архитектурного решения.
✏️ Итог
• Счастливые пользователи. Crud'ы не тормозят!
• Счастливый маректинговый отдел! Данные свежие и всегда перед глазами!
• Devops инженер, системный администратор настраивают новые графики мониторинга, алертинги, получают новые задачи на поддержания и развития инфраструктуры.
С'est la vie!
P.S. Какое ещё архитектурное решение можно здесь применить, чтобы разгрузить основную БД? (с) Вова
По моим ощущениям с каждым годом все больше разговоров вокруг темы
system design. Воркшопы, доклады, курсы, подготовки к собеседованиям. Уже куда только не засунули рисование квадратиков. Ну, видимо, нравится людям. Если вам тоже нравится, могу порекомендовать канал Вовы Невзорова - @system_design_world
У меня на канале сборная солянка всякого, а на его канале можно найти разные разборы задачек, воркшопы именно по теме дизайна. Спешали для вас Вова подготовил один из примеров таких задачек
Мы сразу ввели аналитику с помощью тяжелых select и построения витрин.
Отдел маркетинга быстро реагировал на вызовы рынка. Требовал постоянного обновления данных.
В какой-то момент эти запросы стали нагружать базу так, что операции вставки при создание заказа существенно замедлились.
У Вас нет возможности повлиять на текущую архитектурную схему. С другой стороны Вы можете достроить что-то рядом.
Ваши действия?
На что она намекает? Давайте разбираться 👉
Дано:
1. Единая база
2. Обслуживает запросы на чтение и запись
3. Тормозит
На интервью можно упомянуть про анализ запросов, использование нужных индексов.
И дальше пойти в архитектурное решение. Какое?
Мы всё также пишем заказы, мета информацию в основную БД. Исходя из условия можно предположить что с этим она может продолжать справляться, если... уберём тяжелые select запросы/анализ данных. Такую гипотезу вполне законно озвучить интервьюеру.
Получили апрув? Идём дальше.
Думаю в Вашей голове уже созревают идеи, архитектурные паттерны для решения этой задачи. Предложу свой - Change Data Capture(CDC).
Change Data Capture
Суть - ловим изменения данных. Не сами. А с помощью инструмента - Debezium.
Postgres (WAL) → Debezium → Kafka → ClickHouse
Такой пайплайн:
1) Позволяет не грузить основную базу
2) Работает за счёт считывания изменений WAL журнала, а не select'а таблиц
3) Выдаёт данные для аналитики в near-real time
Красота, да и только!
Можно заметить насколько усложнилась наша инфраструктура.
С одной стороны, это нужно один раз настроить. В тоже время поддержка - падения, изменения, поддерживание SLA, ... . Представленный пайплайн становится важной частью итогового архитектурного решения.
• Счастливые пользователи. Crud'ы не тормозят!
• Счастливый маректинговый отдел! Данные свежие и всегда перед глазами!
• Devops инженер, системный администратор настраивают новые графики мониторинга, алертинги, получают новые задачи на поддержания и развития инфраструктуры.
С'est la vie!
P.S. Какое ещё архитектурное решение можно здесь применить, чтобы разгрузить основную БД? (с) Вова
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤10👎4👍2
Рисуем квадратики из кода
Рисовать схемы руками дело долгое и неблагодарное. Всегда легко что-то упустить, человеческий фактор, все дела. Рабочая тема - генерировать из кода.
В каждом стеке есть свои библиотеки для такого, в моем случае для
Приходится каждый уровень рисовать отдельной картинкой, что очень неудобно. Вдобавок обе эти либы генерят только картинки и
Поэтому я решил написать свою тулзу, которая эти две проблемы решает
Во-перввх, в отличии от остальных она выдает схему в
Во-вторых, связи рисуются не в тупую с каждым модулем, а на уровне неймспейсов. Это позволяет смотреть на всю структуру целиком и углубляться в отдельных модулях поглубже без превращения схемы в кашу
В последних ревизиях Tapeline добавил рендер схем в
Кидайте свои схемки в комменты, ставьте звездочки, все такое
https://github.com/nkhitrov/arch-blueprint
Рисовать схемы руками дело долгое и неблагодарное. Всегда легко что-то упустить, человеческий фактор, все дела. Рабочая тема - генерировать из кода.
В каждом стеке есть свои библиотеки для такого, в моем случае для
python есть pydeps, impulse. Но у них есть одна большая проблема: при отрисовке вложенных модулей вся схема превращается в кашу. Приходится каждый уровень рисовать отдельной картинкой, что очень неудобно. Вдобавок обе эти либы генерят только картинки и
.dot, который задолбаешься читать и редактировать рукамиПоэтому я решил написать свою тулзу, которая эти две проблемы решает
Во-перввх, в отличии от остальных она выдает схему в
plantuml. Хочешь - храни в документации или в git, хочешь - меняй схему руками. Во-вторых, связи рисуются не в тупую с каждым модулем, а на уровне неймспейсов. Это позволяет смотреть на всю структуру целиком и углубляться в отдельных модулях поглубже без превращения схемы в кашу
В последних ревизиях Tapeline добавил рендер схем в
d2, а fadedDexofan сделал подчеркивание циклических связей Кидайте свои схемки в комменты, ставьте звездочки, все такое
https://github.com/nkhitrov/arch-blueprint
1🔥30👍8🤔5❤2
Python Day в Сбере 20-го числа
В эту пятницу буду выступать с докладом на митапе у Сбера. Расскажу про реальные кейсы и ошибки проектирования, с которыми сталкивался и продолжаю сталкиваться по сей день. Будем много картинок, схемок и какое-то количество примеров кода
Будет и оффлайн, и онлайн, и запись. Регистрация по ссылке 👇
https://developers.sber.ru/kak-v-sbere/events/pythonconf_2026
В эту пятницу буду выступать с докладом на митапе у Сбера. Расскажу про реальные кейсы и ошибки проектирования, с которыми сталкивался и продолжаю сталкиваться по сей день. Будем много картинок, схемок и какое-то количество примеров кода
Будет и оффлайн, и онлайн, и запись. Регистрация по ссылке 👇
https://developers.sber.ru/kak-v-sbere/events/pythonconf_2026
🔥24
Kanban Game
Попробовал новый симулятор тимлида, где нужно двигать карточки вjira по канбан доске. Напомнило мемы про дальнобойщиков, которые после рейса садятся играть в Euro Track Simulator🌚
В первый заход мне удалось заработать $38400. А еще рандомные события в игре достаточно жизненные
https://xn--r1a.website/data_driven_management/578
Попробовал новый симулятор тимлида, где нужно двигать карточки в
В первый заход мне удалось заработать $38400. А еще рандомные события в игре достаточно жизненные
https://xn--r1a.website/data_driven_management/578
👍12😁11🤔3❤🔥2
Сижу значит, читаю статью. Ребята сделали тулзу для ревью через
Самое забавное, что меня привлекло, это что в комментариях на вопросы как будто отвечает не кожанный человек, а сразу
Но сама идея так сделать звучит прикольно. Так мы еще на один шажок ближе к теории мертвого интернета🚬
https://habr.com/ru/articles/1006258/
ollama, чтобы локально можно было запускать. Написали статью об этом на хабр. Не первый такой инструмент, их несколько уже есть на github, но посмотреть все равно можно, че бы нет.Самое забавное, что меня привлекло, это что в комментариях на вопросы как будто отвечает не кожанный человек, а сразу
LLM... Хотя может мне так просто кажется, кто знаетНо сама идея так сделать звучит прикольно. Так мы еще на один шажок ближе к теории мертвого интернета
https://habr.com/ru/articles/1006258/
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣23👍2💯2
Djangist: Я хочу fastapi, Никита: У нас есть fastapi дома
Как ни посмотри на новые фреймворки, все они решают одни и те же задачи. Но некоторые из них привносят что-то новенькое в подходах, в идеях, чтобы решать немножечко по другому
Собственно фреймворк Никиты из тех, что предлагает привычные вещи делать непривычными новыми способами. И какие-то из них мне даже нравятся как ни странно. Рекомендую посмотреть, почитать даже если не пишите на
Как ни посмотри на новые фреймворки, все они решают одни и те же задачи. Но некоторые из них привносят что-то новенькое в подходах, в идеях, чтобы решать немножечко по другому
Собственно фреймворк Никиты из тех, что предлагает привычные вещи делать непривычными новыми способами. И какие-то из них мне даже нравятся как ни странно. Рекомендую посмотреть, почитать даже если не пишите на
django, просто ради концепций👍9
Forwarded from Находки в опенсорсе
django-modern-rest@0.1.0 – первый публичный релиз!
Исходники: https://github.com/wemake-services/django-modern-rest
Подробнейшая документация: https://django-modern-rest.readthedocs.io
Пример настоящего приложения: https://github.com/wemake-services/wemake-django-template
Первый анонс был уже какое-то время назад.
Так что давайте повторять, что у нас тут происходит.
Во-первых, у нас рекорд: еще нет ни одного релиза, а уже 560+ ⭐ на Гитхабе (сходите поставьте, кто еще не).
Вижу, что люди ждут, вижу интерес. Спасибо!
Фичи
– Главная фича, которая вообще подтолкнула меня к такому проекту: инфраструктура Джанги. Тут есть буквально все пакеты на все случаи жизни. Но не было нормального REST фреймворка. В комментах я регулярно наблюдал, как люди ненавидят Джангу, но почти всегда говорят про DRF. Да, он был ужасен – но теперь он на свалке истории!
– Все существующие плагины к родной Джанге должны работать
– Официальная поддержка Джанго в одном файле, да, Джанга может быть настолько простой
– Работаем с любыми моделями: pydantic, msgspec, TypedDict, dataclass, тд. Сериализация и валидация не прибиты гвоздями. А значит можно выбирать сериализатор под контроллер. Где-то msgspec + TypedDict для скорости. Где-то pydantic для более широких возможностей валидации. Можно писать свои
– Скорость. Мы довольно быстрые. Самый быстрый Python фреймворк для REST в Django. По скорости можно сравнивать с FastAPI, мы всего лишь на 30% медленнее. Но у нас и Джанга вообще-то. Скорость будет улучшаться, есть разные интересные идеи
– Типизация: типизировано всё! Но самое важное, типизацию не пихают вам в лицо. Нет огромных и сложных типов. Все просто, надежно и удобно. Поддерживаем
– Поддержка
– SSE! Без дополнительных костылей: просто работает (с валидацией сообщений и возможностью строить бизнесовые ADT поверх типов сообщений и крутейшей схемой)
– Семантика. Одна из ключевых фичей: мы очень сильно упоролись по генерации схемы. Добавил
– Swagger, Scalar, Redoc из коробки, легко настраивать
– Работаем не только с json, поддерживаем content negotiation, можно писать свои парсеры и рендереры
– JWT и DjangoSessionAuth из коробки, есть возможность отзыва токенов и сессий
– Возможность писать заготовки контроллеров и полностью переиспользовать код. Писать плагины под
– Загрузка и отдача файлов (но на питоне такое очень осторожно надо делать, лучше на Rust)
– Нет привязки к логике или DI (берите любой, например dishka). Мы просто парсим данные и возвращаем их. То есть: код не превратится в кашу из логики и фреймворка уже через 10 бизнес фичей
– Удобная обработка ошибок на многих уровнях
– Полная возможность для кастомизации. Можно даже поменять формат внутренних ошибок в рамках контроллера
– Удобные тесты:
– Скилы для LLM для написания кода по OpenAPI спеке,
– Но никакого нейрослопа внутри!
Исходники: https://github.com/wemake-services/django-modern-rest
Подробнейшая документация: https://django-modern-rest.readthedocs.io
Пример настоящего приложения: https://github.com/wemake-services/wemake-django-template
Первый анонс был уже какое-то время назад.
Так что давайте повторять, что у нас тут происходит.
Во-первых, у нас рекорд: еще нет ни одного релиза, а уже 560+ ⭐ на Гитхабе (сходите поставьте, кто еще не).
Вижу, что люди ждут, вижу интерес. Спасибо!
import uuid
import msgspec
from dmr import Body, Controller
from dmr.plugins.msgspec import MsgspecSerializer
class UserCreateModel(msgspec.Struct):
email: str
class UserModel(UserCreateModel):
uid: uuid.UUID
class UserController(
Controller[MsgspecSerializer],
Body[UserCreateModel],
):
def post(self) -> UserModel:
return UserModel(uid=uuid.uuid4(), email=self.parsed_body.email)
Фичи
– Главная фича, которая вообще подтолкнула меня к такому проекту: инфраструктура Джанги. Тут есть буквально все пакеты на все случаи жизни. Но не было нормального REST фреймворка. В комментах я регулярно наблюдал, как люди ненавидят Джангу, но почти всегда говорят про DRF. Да, он был ужасен – но теперь он на свалке истории!
– Все существующие плагины к родной Джанге должны работать
– Официальная поддержка Джанго в одном файле, да, Джанга может быть настолько простой
– Работаем с любыми моделями: pydantic, msgspec, TypedDict, dataclass, тд. Сериализация и валидация не прибиты гвоздями. А значит можно выбирать сериализатор под контроллер. Где-то msgspec + TypedDict для скорости. Где-то pydantic для более широких возможностей валидации. Можно писать свои
– Скорость. Мы довольно быстрые. Самый быстрый Python фреймворк для REST в Django. По скорости можно сравнивать с FastAPI, мы всего лишь на 30% медленнее. Но у нас и Джанга вообще-то. Скорость будет улучшаться, есть разные интересные идеи
– Типизация: типизировано всё! Но самое важное, типизацию не пихают вам в лицо. Нет огромных и сложных типов. Все просто, надежно и удобно. Поддерживаем
mypy, pyright, pyrefly в самых строгих вариантах– Поддержка
async везде. От вьюх и моделей до SSE. Никаких sync_to_async внутри– SSE! Без дополнительных костылей: просто работает (с валидацией сообщений и возможностью строить бизнесовые ADT поверх типов сообщений и крутейшей схемой)
– Семантика. Одна из ключевых фичей: мы очень сильно упоролись по генерации схемы. Добавил
auth= в контроллер? В списке ответов появился 401 статус код автоматически. Возвращаешь ответ, заголовок, куку, которой нет в спеке? Во время дебага – случится ошибка валидации. На проде валидацию нужно отключать для скорости. Так мы гарантируем точность ответов и схемы. Не нравится схема? Все легко переопределить или вообще отключить– Swagger, Scalar, Redoc из коробки, легко настраивать
– Работаем не только с json, поддерживаем content negotiation, можно писать свои парсеры и рендереры
– JWT и DjangoSessionAuth из коробки, есть возможность отзыва токенов и сессий
– Возможность писать заготовки контроллеров и полностью переиспользовать код. Писать плагины под
dmr будет просто и удобно– Загрузка и отдача файлов (но на питоне такое очень осторожно надо делать, лучше на Rust)
– Нет привязки к логике или DI (берите любой, например dishka). Мы просто парсим данные и возвращаем их. То есть: код не превратится в кашу из логики и фреймворка уже через 10 бизнес фичей
– Удобная обработка ошибок на многих уровнях
– Полная возможность для кастомизации. Можно даже поменять формат внутренних ошибок в рамках контроллера
– Удобные тесты:
polyfactory, pytest, schemathesis (проходим все правила из коробки)– Скилы для LLM для написания кода по OpenAPI спеке,
llms-full.txt, Context7 для контекста– Но никакого нейрослопа внутри!
GitHub
GitHub - wemake-services/django-modern-rest: Modern REST framework for Django with types and async support!
Modern REST framework for Django with types and async support! - wemake-services/django-modern-rest
🔥40🤔6❤2
Изучаю сейчас разные библиотеки по стейт машинам. Попался вот такой. На скрине его 🥲
Очень "квик", очень "старт"...
quickstart раздел. Посмотрите на кол-вол строк кода и на ползунок браузера, просто какого он размераОчень "квик", очень "старт"...
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27🗿2✍1
Opensource, claude и немного дичи
Я очень люблю новые штучки. Инструменты, спецификации, методолгии и т.п. За время работы в ИТ у меня накопилось немалое количество заметок с идеями. Разной степени бредовости, дикости, а возможно где-то даже полезности
Но человек я очень ленивый. Решив проблему один раз в голове, бОльшая часть дофамина уже получена, писать потом еще код как-то... зачем?
Недавно я решил попробовать
Так что теперь я плотно взялся за реализацию всех своих давних идей.
Github будет в ужасе от моих способностей
Я очень люблю новые штучки. Инструменты, спецификации, методолгии и т.п. За время работы в ИТ у меня накопилось немалое количество заметок с идеями. Разной степени бредовости, дикости, а возможно где-то даже полезности
Но человек я очень ленивый. Решив проблему один раз в голове, бОльшая часть дофамина уже получена, писать потом еще код как-то... зачем?
Недавно я решил попробовать
claude. Вдруг вайбкодит как-то сможет разгрузить меня от части рутины. И в целом результатом я доволен. Сейчас он помогает мне писать сразу две библиотечки (и один веб сервис). И за пару дней на каждого я их смог довести до состояния вполне себе неплохих прототиповТак что теперь я плотно взялся за реализацию всех своих давних идей.
Github будет в ужасе от моих способностей
10👍26❤6😭2
Слили исходники claude code
Очень безопасные и самостоятельные агенты, видимо, проглядели дыру и вместе с пакетом улетели и
Теперь проще обсуждать с безопасниками телеметрию и слив данных через модели☕️
https://github.com/instructkr/claude-code
Очень безопасные и самостоятельные агенты, видимо, проглядели дыру и вместе с пакетом улетели и
.map файлы. Теперь можно почитать исходники клиента claudeТеперь проще обсуждать с безопасниками телеметрию и слив данных через модели
https://github.com/instructkr/claude-code
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - ultraworkers/claw-code: The repo is finally unlocked. enjoy the party! The fastest repo in history to surpass 100K stars…
The repo is finally unlocked. enjoy the party! The fastest repo in history to surpass 100K stars ⭐. Join Discord: https://discord.gg/5TUQKqFWd Built in Rust using oh-my-codex. - ultraworkers/claw-code
😁31👀4🥰1
Forwarded from emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc. (Ivan)
Провёл собственное исследование по языкам программирования будущего.
В целом, дядька Боб правильно уловил ветер и выдвинул правильные требования к языку программирования для AI:
- гомоиконичность;
- явные типы;
- никаких скрытых потоков управления;
- контракты встроены в язык.
Но это пока просто идея. Не реализовано даже формальной верификации контрактов. Типы явные, но это скорее аннотации, чем Хиндли-Милнер. Нет алгебраических типов с exhaustive matching (хотя tagged unions упомянуты). Нет вывода типов.
Если цель - ИИ как полноценный разработчик, нужен язык, который максимизирует вероятность того, что сгенерированный им код корректен. Это значит: сильная система типов (компилятор ловит ошибки ИИ), простота (меньше галлюцинаций), достаточный объём кода в обучающих данных, и путь к формальной верификации.
Lean 4 - стратегически самый интересный, но практически самый рискованный. Если через 5-7 лет Lean станет практическим языком программирования, выбравшие его сейчас окажутся впереди всех. Но не сегодня.
На сегодняшний день выделяются два языка.
Rust - первый кандидат. Огромный объём обучающих данных, ИИ пишет на нём уверенно. Borrow checker отсекает ошибки с памятью. Система типов ловит логические ошибки. Verus, rocq-of-rust, Aeneas для верификации. Экосистема зрелая. Один минус - сложность языка увеличивает вероятность, что ИИ сгенерирует компилируемый, но неидиоматичный код. Тем не менее, строгость компилятора это компенсирует.
Ownership-модель - это фундамент, на котором можно строить доказательства.
Правила Rust устраняют настолько много трудноформализуемых случаев, что это делает его одним из самых удобных современных языков для применения формальных методов.
OCaml - второй кандидат. Меньше обучающих данных, но язык проще, и паттерны более предсказуемые. Алгебраические типы и exhaustive pattern matching - идеальный формат для ИИ-генерации: он описывает все случаи, компилятор проверяет, что ИИ ничего не пропустил. Gospel (Generic OCaml SPEcification Language) - tool-agnostic язык формальных спецификаций для OCaml.
Именно поэтому OCaml используется в финтехе. Экосистема, правда, уступает Rust.
Вишенка на торте - Camlp5. Это OCaml с Lisp-синтаксисом. Типы, компиляция, всё как в OCaml, но добавлена гомоиконичность. S-выражение - это одновременно и программа, и структура данных, которую можно анализировать, трансформировать, генерировать другой программой. Это не макросы как синтаксический сахар - это фундаментальное свойство: программа может порождать программы так же естественно, как оперировать числами.
Программирование перестаёт быть написанием инструкций и становится написанием ограничений. Победят языки, в которых спецификацию невозможно написать неоднозначно.
Дейкстра мечтал об этом полвека назад. Но раньше не было генератора, способного превратить спецификацию в код. Теперь он есть - и узкое место сместилось от написания кода к доказательству его корректности.
Это возвращает нас к тому, с чего начался ML (Робина Милнера) - к языку, созданному для доказательства теорем. Круг замыкается.
Милнер в начале 1970-х в Эдинбурге строил LCF - Logic for Computable Functions - систему для доказательства теорем. Ему нужен был язык, в котором на уровне системы типов невозможно было бы сконструировать невалидное доказательство. Так появился ML - Meta Language.
Пятьдесят лет спустя мы приходим к той же задаче, только с другой стороны. Милнер хотел, чтобы человек писал доказательства, а машина их проверяла. Мы идём к тому, что машина будет писать код, а формальная система - проверять его корректность. Задача та же - гарантия корректности через типы. Только роли поменялись.
ML был создан как язык для мира, где код должен быть доказуемо правильным. Этот мир тогда не наступил, потому что индустрии было важнее "быстро и дёшево", чем "правильно". Но если генерация кода становится бесплатной, а цена ошибки растёт - "правильно" побеждает. И оказывается, что фундамент для этого был заложен полвека назад в Эдинбурге.
В целом, дядька Боб правильно уловил ветер и выдвинул правильные требования к языку программирования для AI:
- гомоиконичность;
- явные типы;
- никаких скрытых потоков управления;
- контракты встроены в язык.
Но это пока просто идея. Не реализовано даже формальной верификации контрактов. Типы явные, но это скорее аннотации, чем Хиндли-Милнер. Нет алгебраических типов с exhaustive matching (хотя tagged unions упомянуты). Нет вывода типов.
Если цель - ИИ как полноценный разработчик, нужен язык, который максимизирует вероятность того, что сгенерированный им код корректен. Это значит: сильная система типов (компилятор ловит ошибки ИИ), простота (меньше галлюцинаций), достаточный объём кода в обучающих данных, и путь к формальной верификации.
Lean 4 - стратегически самый интересный, но практически самый рискованный. Если через 5-7 лет Lean станет практическим языком программирования, выбравшие его сейчас окажутся впереди всех. Но не сегодня.
На сегодняшний день выделяются два языка.
Rust - первый кандидат. Огромный объём обучающих данных, ИИ пишет на нём уверенно. Borrow checker отсекает ошибки с памятью. Система типов ловит логические ошибки. Verus, rocq-of-rust, Aeneas для верификации. Экосистема зрелая. Один минус - сложность языка увеличивает вероятность, что ИИ сгенерирует компилируемый, но неидиоматичный код. Тем не менее, строгость компилятора это компенсирует.
Ownership-модель - это фундамент, на котором можно строить доказательства.
Правила Rust устраняют настолько много трудноформализуемых случаев, что это делает его одним из самых удобных современных языков для применения формальных методов.
OCaml - второй кандидат. Меньше обучающих данных, но язык проще, и паттерны более предсказуемые. Алгебраические типы и exhaustive pattern matching - идеальный формат для ИИ-генерации: он описывает все случаи, компилятор проверяет, что ИИ ничего не пропустил. Gospel (Generic OCaml SPEcification Language) - tool-agnostic язык формальных спецификаций для OCaml.
Именно поэтому OCaml используется в финтехе. Экосистема, правда, уступает Rust.
Вишенка на торте - Camlp5. Это OCaml с Lisp-синтаксисом. Типы, компиляция, всё как в OCaml, но добавлена гомоиконичность. S-выражение - это одновременно и программа, и структура данных, которую можно анализировать, трансформировать, генерировать другой программой. Это не макросы как синтаксический сахар - это фундаментальное свойство: программа может порождать программы так же естественно, как оперировать числами.
Программирование перестаёт быть написанием инструкций и становится написанием ограничений. Победят языки, в которых спецификацию невозможно написать неоднозначно.
Дейкстра мечтал об этом полвека назад. Но раньше не было генератора, способного превратить спецификацию в код. Теперь он есть - и узкое место сместилось от написания кода к доказательству его корректности.
Это возвращает нас к тому, с чего начался ML (Робина Милнера) - к языку, созданному для доказательства теорем. Круг замыкается.
Милнер в начале 1970-х в Эдинбурге строил LCF - Logic for Computable Functions - систему для доказательства теорем. Ему нужен был язык, в котором на уровне системы типов невозможно было бы сконструировать невалидное доказательство. Так появился ML - Meta Language.
Пятьдесят лет спустя мы приходим к той же задаче, только с другой стороны. Милнер хотел, чтобы человек писал доказательства, а машина их проверяла. Мы идём к тому, что машина будет писать код, а формальная система - проверять его корректность. Задача та же - гарантия корректности через типы. Только роли поменялись.
ML был создан как язык для мира, где код должен быть доказуемо правильным. Этот мир тогда не наступил, потому что индустрии было важнее "быстро и дёшево", чем "правильно". Но если генерация кода становится бесплатной, а цена ошибки растёт - "правильно" побеждает. И оказывается, что фундамент для этого был заложен полвека назад в Эдинбурге.
🔥17👍5🤔4
pov: Делаешь формочку саппорта, чтобы юзеры описывали правильное состояние и разработчик понимал, как это исправлять
Тем временем юзеры:
P.S. для тех, кто вдруг не понял: мем в том, что неоченвидно что есть "верно" 🙄
Тем временем юзеры:
Please open Telegram to view this post
VIEW IN TELEGRAM
🍓14😁11❤4