Devin
(тот самый "заменяла") ведет проект DeepWiki
где описывает проекты по их репозиториям. Любит чертить диаграммы.Вот дипвики Vue. Довольно интересно
#vuejs
На vue-faq.org я написал, что
Для диаграммы на картинке я попробовал сперва построить структуру объектов на
#oop #reactivity
JS
классы во Vue
лучше не использовать. Это не совсем правильно. Не надо использовать классы с реактивными свойствами. Но если через классы создаются объекты без реактивности внутри, которые ты уже помещаешь в реактивные массивы - то вполне вариант.Для диаграммы на картинке я попробовал сперва построить структуру объектов на
TS
, получилось громоздко и запутанно. Переделал на классы - стало намного читабельней и меньше кода. Ну и типизация настоящая (почти), а не эрзац. Так что теперь это основной вариант для сложных структур данных.#oop #reactivity
Часть 1/2
📊 Noema Report: @vuejs_ru
Краткий дайджест для фронтенд-разработчиков
(на основе обсуждений в Telegram-канале)
Основные темы обсуждения
Миграция с Vue 2 на Vue 3:
Сложности перехода: проблемы с зависимостями (Vuex, Vue Router), необходимость рефакторинга кода (1610659, 1610696).
Рекомендации: поэтапный переход через Vue 2.7, отказ от миксинов, внедрение Pinia вместо Vuex (1610696).
Стейт-менеджмент:
TanStack Query vs кастомные решения:
Споры о необходимости изучения TanStack. Аргументы "за": стандартизация, кэширование (1610974, 1611011).
Альтернатива: кастомные реализации для полного контроля (1611028).
Pinia: проблемы с реактивностью и сохранением в localStorage через
Роутинг во Vue:
Сложности с организацией вложенных маршрутов (1610778).
Обсуждение разделения на основное приложение и админку:
Рекомендация: использовать отдельные точки входа (1610780, 1610792).
Работа с иконками и редакторами:
Динамическая загрузка SVG без плагинов (1610907).
Поиск аналогов CKEditor для Vue (1610940).
Актуальное и интересное
Файловый роутинг в Nuxt:
Критика за неочевидность вложенных маршрутов (1610749).
Сравнение с Next.js: гибкость vs навязанная архитектура (1610717).
Автоимпорты в Nuxt:
Многие отключают их из-за путаницы (1610728).
Проблемы и решения
Ошибки в WebStorm с PrimeVue:
Костыль через создание фиктивных CSS-переменных (1610830).
📊 Noema Report: @vuejs_ru
Краткий дайджест для фронтенд-разработчиков
(на основе обсуждений в Telegram-канале)
Основные темы обсуждения
Миграция с Vue 2 на Vue 3:
Сложности перехода: проблемы с зависимостями (Vuex, Vue Router), необходимость рефакторинга кода (1610659, 1610696).
Рекомендации: поэтапный переход через Vue 2.7, отказ от миксинов, внедрение Pinia вместо Vuex (1610696).
Стейт-менеджмент:
TanStack Query vs кастомные решения:
Споры о необходимости изучения TanStack. Аргументы "за": стандартизация, кэширование (1610974, 1611011).
Альтернатива: кастомные реализации для полного контроля (1611028).
Pinia: проблемы с реактивностью и сохранением в localStorage через
pinia-plugin-persistedstate
(1610558).Роутинг во Vue:
Сложности с организацией вложенных маршрутов (1610778).
Обсуждение разделения на основное приложение и админку:
Рекомендация: использовать отдельные точки входа (1610780, 1610792).
Работа с иконками и редакторами:
Динамическая загрузка SVG без плагинов (1610907).
Поиск аналогов CKEditor для Vue (1610940).
Актуальное и интересное
Файловый роутинг в Nuxt:
Критика за неочевидность вложенных маршрутов (1610749).
Сравнение с Next.js: гибкость vs навязанная архитектура (1610717).
Автоимпорты в Nuxt:
Многие отключают их из-за путаницы (1610728).
Проблемы и решения
Ошибки в WebStorm с PrimeVue:
Костыль через создание фиктивных CSS-переменных (1610830).
Часть 2/2
Vue 3 + Vite:
Проблемы с билдом статики (1610707).
Спорные моменты
Использование Composition API:
Часть сообщества настаивает на переходе с Options API, другие считают это избыточным для легаси-проектов (1610696).
Фреймворки vs кастомные решения:
Холивар вокруг TanStack Query: "модный инструмент" vs "велосипеды" (1611001, 1611024).
Советы и best practices
Для миграции на Vue 3:
Начинать с Vue 2.7, постепенно внедрять Composition API (1610696).
Использовать
Оптимизация сборки:
Динамически импортировать SVG через
Роутинг:
Избегать смешения маршрутов админки и основного приложения в одном файле (1610780).
Ключевые сообщения:
О важности понимания основ (напр.,
Критика избыточности TanStack Query в проектах без сложного кэширования (1611011).
Совет по организации кода: "Лучше 10 файлов, чем 10 условий в одном" (1610922).
=====
Noema - ваш секретарь для создания сводок по телеграм каналам и группам.
Vue 3 + Vite:
Проблемы с билдом статики (1610707).
Спорные моменты
Использование Composition API:
Часть сообщества настаивает на переходе с Options API, другие считают это избыточным для легаси-проектов (1610696).
Фреймворки vs кастомные решения:
Холивар вокруг TanStack Query: "модный инструмент" vs "велосипеды" (1611001, 1611024).
Советы и best practices
Для миграции на Vue 3:
Начинать с Vue 2.7, постепенно внедрять Composition API (1610696).
Использовать
vue-tsc
для проверки типов (1610733).Оптимизация сборки:
Динамически импортировать SVG через
vite/glob
(1610917).Роутинг:
Избегать смешения маршрутов админки и основного приложения в одном файле (1610780).
Ключевые сообщения:
О важности понимания основ (напр.,
onScopeDispose
) при использовании библиотек (1611021).Критика избыточности TanStack Query в проектах без сложного кэширования (1611011).
Совет по организации кода: "Лучше 10 файлов, чем 10 условий в одном" (1610922).
=====
Noema - ваш секретарь для создания сводок по телеграм каналам и группам.
Одна из "книг", наиболее сильно повлиявших на моё мировоззрение - "Протоколы Нюрнбергского процесса".
Есть жанр "фэнтези", есть художественные фильмы с какой-то идеей, есть документалки - но там тоже режиссер стремиться передать что-то своё. А есть судебные протоколы, которые простым языком тупо описывают некие события. Совершенно другой уровень восприятия. Если интересно понять, что это было, обязательно к прочтению.
Так же полезно поразмышлять, зачем нужно было свозить десятки миллионов людей за тысячи километров в одно место, чтобы умерщвлять их специальным научно подобранным способом.
#offtop
Есть жанр "фэнтези", есть художественные фильмы с какой-то идеей, есть документалки - но там тоже режиссер стремиться передать что-то своё. А есть судебные протоколы, которые простым языком тупо описывают некие события. Совершенно другой уровень восприятия. Если интересно понять, что это было, обязательно к прочтению.
Так же полезно поразмышлять, зачем нужно было свозить десятки миллионов людей за тысячи километров в одно место, чтобы умерщвлять их специальным научно подобранным способом.
#offtop
В
И не забываем, что
#js #tip
JS
чтобы выйти из вложенных циклов можно использовать меткиouterLoop: for (let i = 0; i < 5; i++) {
let j = 0;
while (true) {
if (j === 2) {
break outerLoop; // Выходит из внешнего цикла
}
j++;
}
}
И не забываем, что
Array.prototype.sort()
приводит к строкам. Нужен компаратор.[10, 2, 1].sort(); // [1, 10, 2] (как строки!)
[10, 2, 1].sort((a, b) => a - b); // [1, 2, 10] (правильно)
#js #tip
Эван поставил на свои проекты llms.txt
https://vite.dev/llms.txt
https://rolldown.rs/llms.txt
https://vuejs.org/llms.txt
Сгенерированы vitepress-plugin-llms
(надо было ловить хайп и писать такой плагин)
#ai #seo
https://vite.dev/llms.txt
https://rolldown.rs/llms.txt
https://vuejs.org/llms.txt
Сгенерированы vitepress-plugin-llms
(надо было ловить хайп и писать такой плагин)
#ai #seo
99.9% технически реально качественного софта помирает на
На Product Radar за недолгую его историю выставлялось около 800 проектов, некоторые из них очень классные.
Вот, например, наткнулся: acetone.ai - супер удобный сервис для удаления фона с фото и картинок
#pet #software #image
GitHub
с парой десятков звезд, а говно типа Facebook
-a "завоёвывает" мирНа Product Radar за недолгую его историю выставлялось около 800 проектов, некоторые из них очень классные.
Вот, например, наткнулся: acetone.ai - супер удобный сервис для удаления фона с фото и картинок
#pet #software #image
Атрибуты хорошего кода
Хороший код (ПО) обладает рядом атрибутов, которые делают его удобным для чтения, поддержки и развития. Вот ключевые характеристики:
1. Читаемость
Понятные имена переменных, функций, классов (например, calculateTotalPrice() вместо calc()).
Единый стиль (консистентность в именовании, отступах, структуре).
Комментарии там, где логика неочевидна (но без избыточности).
2. Модульность и структурированность
Разделение на функции/классы/компоненты (принцип Single Responsibility).
Низкая связанность (low coupling) – компоненты минимально зависят друг от друга.
Высокая связность (high cohesion) – код внутри модуля решает одну задачу.
3. Тестируемость
Покрытие тестами (код легко проверить на корректность).
Изолированность (зависимости можно подменить mock-объектами).
4. Эффективность и производительность
Оптимальные алгоритмы (O-нотация учитывается, но без преждевременной оптимизации).
Минимизация ресурсов (память, процессор, сетевые запросы).
5. Гибкость и расширяемость
Открытость/закрытость (Open/Closed Principle) – код можно расширять без изменения существующей логики.
Использование паттернов проектирования (например, Factory, Strategy, Observer).
6. Надежность и отказоустойчивость
Обработка ошибок (корректные исключения, logging).
Обработка edge-cases (крайние случаи, невалидные входные данные).
7. Поддерживаемость
Документация (хотя бы минимальная: README, docstrings).
Рефакторинг – код можно улучшать без страха что-то сломать.
8. Безопасность
Защита от уязвимостей (SQL-инъекции, XSS, CSRF и др.).
Валидация входных данных.
9. Совместимость и переносимость
Кросс-платформенность (если требуется).
Четкие зависимости (использование package managers: pip, pnpm, maven).
10. Соответствие стандартам и best practices
Следование языковым идиомам (Pythonic way, Java Code Conventions, Vue code style и т. д.).
Интеграция с CI/CD (автоматические тесты, деплой)
#architecture #code
Хороший код (ПО) обладает рядом атрибутов, которые делают его удобным для чтения, поддержки и развития. Вот ключевые характеристики:
1. Читаемость
Понятные имена переменных, функций, классов (например, calculateTotalPrice() вместо calc()).
Единый стиль (консистентность в именовании, отступах, структуре).
Комментарии там, где логика неочевидна (но без избыточности).
2. Модульность и структурированность
Разделение на функции/классы/компоненты (принцип Single Responsibility).
Низкая связанность (low coupling) – компоненты минимально зависят друг от друга.
Высокая связность (high cohesion) – код внутри модуля решает одну задачу.
3. Тестируемость
Покрытие тестами (код легко проверить на корректность).
Изолированность (зависимости можно подменить mock-объектами).
4. Эффективность и производительность
Оптимальные алгоритмы (O-нотация учитывается, но без преждевременной оптимизации).
Минимизация ресурсов (память, процессор, сетевые запросы).
5. Гибкость и расширяемость
Открытость/закрытость (Open/Closed Principle) – код можно расширять без изменения существующей логики.
Использование паттернов проектирования (например, Factory, Strategy, Observer).
6. Надежность и отказоустойчивость
Обработка ошибок (корректные исключения, logging).
Обработка edge-cases (крайние случаи, невалидные входные данные).
7. Поддерживаемость
Документация (хотя бы минимальная: README, docstrings).
Рефакторинг – код можно улучшать без страха что-то сломать.
8. Безопасность
Защита от уязвимостей (SQL-инъекции, XSS, CSRF и др.).
Валидация входных данных.
9. Совместимость и переносимость
Кросс-платформенность (если требуется).
Четкие зависимости (использование package managers: pip, pnpm, maven).
10. Соответствие стандартам и best practices
Следование языковым идиомам (Pythonic way, Java Code Conventions, Vue code style и т. д.).
Интеграция с CI/CD (автоматические тесты, деплой)
#architecture #code
Получил очень интересный и полезный опыт:
1. Выделив
2. Добавив дизайн систему на
3. Выделив в отдельный репозиторий, который ставится как
4. Создав документацию
5. Добавив темизацию и кастомизацию компонентов
6. Переиспользовав его в других проектах
На
Alt-UI
#arkui #altui #ui
1. Выделив
UI
часть проекта Lissa Health
в отдельный модуль (привет, #fsd)2. Добавив дизайн систему на
CSS свойствах
и оформив всё как UI kit
3. Выделив в отдельный репозиторий, который ставится как
Git submodule
и подключается через npm
локально (для быстрых правок)4. Создав документацию
5. Добавив темизацию и кастомизацию компонентов
6. Переиспользовав его в других проектах
На
npmjs.org
не публиковал, на универсальность, полноту (не собираюсь выпускать ее как общую библиотеку) и актуальность документации не претендую, но можно просто посмотреть как работать с Ark-UI
.Alt-UI
#arkui #altui #ui
GitHub
GitHub - vuesence/alt-ui: Atl-UI Vue labrary (based on Ark-UI)
Atl-UI Vue labrary (based on Ark-UI). Contribute to vuesence/alt-ui development by creating an account on GitHub.