Опубликовали результаты опроса State of Vue.js 2025
Довольно много информации, надо самому смотреть
Удивили данные по "custom composables" aka "модульные / глобальные рефы" - занимают уже половину от рынка
#stats
Довольно много информации, надо самому смотреть
Удивили данные по "custom composables" aka "модульные / глобальные рефы" - занимают уже половину от рынка
Pinia
. Народ умнеет.#stats
Я писал не так давно про MCP и их потенциально большую роль в будущем, и тут вот уже что появилось:
vite-plugin-vue-mcp
Грубо говоря, если агенту понадобится информация о роутах проекта, он не будет ползать по всей твоей кодовой базе, парся файлы, а получит информацию сразу в структурированном виде. Что намного быстрей и эффективней.
Полезность конкретно этой штуки нуждается, конечно, в проверке, но начало положено.
#ai
vite-plugin-vue-mcp
MCP
сервер в форме Vite
плагина, который позволяет AI
агенту IDE
запрашивать данные о твоем Vue
проектеГрубо говоря, если агенту понадобится информация о роутах проекта, он не будет ползать по всей твоей кодовой базе, парся файлы, а получит информацию сразу в структурированном виде. Что намного быстрей и эффективней.
Полезность конкретно этой штуки нуждается, конечно, в проверке, но начало положено.
#ai
GitHub
GitHub - webfansplz/vite-plugin-vue-mcp: Vite plugin that enables a MCP server helping models to understand your Vue app better.
Vite plugin that enables a MCP server helping models to understand your Vue app better. - webfansplz/vite-plugin-vue-mcp
Совсем недавно вышла Mistral OCR - первая
Подключил её в Lissa.
Отлично распознает. Бесплатно. Без лимитов. С санкционной территории работает. Где подстава пока не пойму...
Мучения с
#ocr #ai
LLM
для качественного парсинга картинок и pdf
с картинкамиПодключил её в Lissa.
Отлично распознает. Бесплатно. Без лимитов. С санкционной территории работает. Где подстава пока не пойму...
Мучения с
Tesseract
и Ко закончились, хотя оставил их на фолбэк.#ocr #ai
mistral.ai
Mistral OCR | Mistral AI
Introducing the world’s best document understanding API.
Деривативом к Lissa Health создался телеграмный ботик для
@argus_ocr_bot
Позволяет задать один уточняющий вопрос после распознавания для фильтрации данных, форматирования, перевода на другой язык или еще чего-то
Примеры:
1. Сфотографировать квитанцию СДЭК => Оставь только номер отправления
2. Сфотографировать визитку => Сделай json
3. Сфотографировать непонятный текст => Переведи на русский
Критика и предложения welcome
#lissa #tgbot #argus
AI
распознавания текста на фото и картинках@argus_ocr_bot
Позволяет задать один уточняющий вопрос после распознавания для фильтрации данных, форматирования, перевода на другой язык или еще чего-то
Примеры:
1. Сфотографировать квитанцию СДЭК => Оставь только номер отправления
2. Сфотографировать визитку => Сделай json
3. Сфотографировать непонятный текст => Переведи на русский
Критика и предложения welcome
#lissa #tgbot #argus
При использовании сторов иногда получаются проблемы из-за перекрестных ссылок, которые дают
При использовании модульных рефов может возникнуть аналогичная ситуация - например, когда переменная
#store #reactivity #architecture
ReferenceEror
При использовании модульных рефов может возникнуть аналогичная ситуация - например, когда переменная
refA
определяется в модуле А
, который использует модуль B
, а B
вешает watch
на refA
. Причем это применимо только к системе реактивности Vue
, потому что с обычными объектами такой проблемы нет.#store #reactivity #architecture
Решения для проблемы выше
1. Переделать. Перекрестное использование сущностей - архитектурно плохая практика. Каждая должна содержать в себе только свое состояние и логику работы с собой. Если
К созданию сторов / модульных рефов надо подходить так же ответственно, как к проектированию схемы реляционной базы данных. Это координатный базис, и в нем не может быть перекрестных зависимостей.
Если есть логика, которая работает и с
2.
3. Шина событий (
4. Если
5. Не надо пихать реактивность туда, где можно обойтись без нее. Если переменная
Так же приоритетно, как и пункт 1.
#store #reactivity #architecture
1. Переделать. Перекрестное использование сущностей - архитектурно плохая практика. Каждая должна содержать в себе только свое состояние и логику работы с собой. Если
А
использует B
, значит B
- утилитарен по отношению к А
(например, А
- какой-то бизнесовый стор, B
- отвечает за открытие диалогов). Но тогда коду из А
нечего делать в B
.К созданию сторов / модульных рефов надо подходить так же ответственно, как к проектированию схемы реляционной базы данных. Это координатный базис, и в нем не может быть перекрестных зависимостей.
Если есть логика, которая работает и с
А
, и с B
, то, скорей всего, она прикладная для этих сторов, и должна лежать в отдельной сущности (компоненте, композабле, простом или реактивном модуле, сторе).2.
setTimeout
/ nextTick
, как на картинке. Работает и с модульными рефами, но выглядит уродливым костылём3. Шина событий (
eventBus
) для сообщений между сторами. Как самостоятельное решение возможно, но в данном случае опять же костыль.4. Если
refA
в примере вынести в отдельный модуль, то ошибка пропадет. То же самое, скорей всего, справедливо и для сторов, но будет выглядеть неуклюже. Выносить надо не голый стейт, а разделять стор грамотно, по ответственности.5. Не надо пихать реактивность туда, где можно обойтись без нее. Если переменная
B
зависит от А
, и источников изменения А
всего один-два, то необязательно ставить watch
над А
в B
, можно обновлять B
императивно напрямую. Это уберет прямую зависимость от А
в B
(если код в А
уже как-то использует B
), а также повысит читаемость и производительность. В первую очередь касается кода, который работает с бэкенд API
. Так же приоритетно, как и пункт 1.
#store #reactivity #architecture
В Твиттере обсуждение большого поста разработчика
Отмазывает компанию, говорит, всё это случайности, а не злой умысел. Что в Next.js было мало намеренных изменений, ломающих совместимость, но много ненамеренных багов при обновлениях версий.
Пишет, что Next.js стал популярным благодаря своим достоинствам, но в какой-то момент его "перепродвигали" из-за больших вложений в маркетинг. Теперь разработчики начинают понимать, что Next.js не всегда подходит для их задач. Предостерегает от того, чтобы называть тех, кто чувствует странности в продвижении Next.js, теоретиками заговора
Что сейчас у
#react #sst #nextjs #spa
OpenNext
(инициативы по облегчению деплоя Next
приложений куда-то окромя Vercel
)Отмазывает компанию, говорит, всё это случайности, а не злой умысел. Что в Next.js было мало намеренных изменений, ломающих совместимость, но много ненамеренных багов при обновлениях версий.
Пишет, что Next.js стал популярным благодаря своим достоинствам, но в какой-то момент его "перепродвигали" из-за больших вложений в маркетинг. Теперь разработчики начинают понимать, что Next.js не всегда подходит для их задач. Предостерегает от того, чтобы называть тех, кто чувствует странности в продвижении Next.js, теоретиками заговора
Что сейчас у
Vercel
небольшая команда по связям с разработчиками (DevRel
), и они не платят инфлюенсерам за продвижение. Однако раньше это было не так - Vercel
активно спонсировал людей, как официально, так и неофициально.#react #sst #nextjs #spa
Хорошая статья по использованию ИИ в программировании
Особенно,
Можно добавить, что большой бизнес все проблемы решит, а средний, малый и непрофильный столкнется с одноразовыми приложениями, накодеными vibe кодерами. Будет много недовольных клиентов.
Политика "одноразовых" продуктов из внешнего мира приходит в IT
#ai
Особенно,
Заключение
Можно добавить, что большой бизнес все проблемы решит, а средний, малый и непрофильный столкнется с одноразовыми приложениями, накодеными vibe кодерами. Будет много недовольных клиентов.
Политика "одноразовых" продуктов из внешнего мира приходит в IT
#ai
Хабр
Какие проблемы создает использование ИИ программистами
Структура статьи Введение Часть 1. Появился ИИ, ну и в чем проблемы? - Появились отличия в “программистах” Часть 2. Ну поменялись программисты и что? Важен же код. - Появились отличия в коде. Часть 3....
Если у вас есть массив, в каждом элементе которого есть
#tip #performance #reactivity
computed
, то лучше создать один на весь массив, чем много для каждого элемента// Bad
const rows = productRows.map(row => ({
...row,
total: computed(() => row.price * row.qty),
}));
// Good
const computedRows = computed(() =>
productRows.map(row => ({
...row,
total: row.price * row.qty,
}))
);
#tip #performance #reactivity
Кевин Денг
(создатель Vapor
) получил ежемесячное спонсорство от VoidZero
в размере $1024 Еще столько же дают совместно Эван и
Vue.js
, и еще около $1000 все остальныеПрошлой осенью Кевин жаловался, что ему не на что содержать семью, и поэтому он забросил
Vapor
Как и ожидалось, Эван использует полученные
VoidZero
инвестиции для вознаграждения работающим во Vue
и Vite
экосистемах людям, но как-то уж очень экономно он это делает.#vapor #voidzero