Telegram Group Search
Что будет результатом?

"🤦‍♂️".substr(0,2);
"🤦‍♂️".substr(2,3);



(telegram заменяет эмоджи, лучше смотреть в консоли браузера)

#js #unicode
Devin (тот самый "заменяла") ведет проект DeepWiki где описывает проекты по их репозиториям. Любит чертить диаграммы.

Вот дипвики Vue. Довольно интересно

#vuejs
На vue-faq.org я написал, что JS классы во Vue лучше не использовать. Это не совсем правильно. Не надо использовать классы с реактивными свойствами. Но если через классы создаются объекты без реактивности внутри, которые ты уже помещаешь в реактивные массивы - то вполне вариант.

Для диаграммы на картинке я попробовал сперва построить структуру объектов на TS, получилось громоздко и запутанно. Переделал на классы - стало намного читабельней и меньше кода. Ну и типизация настоящая (почти), а не эрзац. Так что теперь это основной вариант для сложных структур данных.

#oop #reactivity
Добавил в свою Noema возможность подписок - периодической рассылки сводок в определенный канал или группу

Так что если здесь что-то появится, не пугаемся

#noema #tg #ai
Часть 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 через 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).
Использовать vue-tsc для проверки типов (1610733).

Оптимизация сборки:
Динамически импортировать SVG через vite/glob (1610917).

Роутинг:
Избегать смешения маршрутов админки и основного приложения в одном файле (1610780).

Ключевые сообщения:
О важности понимания основ (напр., onScopeDispose) при использовании библиотек (1611021).
Критика избыточности TanStack Query в проектах без сложного кэширования (1611011).
Совет по организации кода: "Лучше 10 файлов, чем 10 условий в одном" (1610922).
=====
Noema - ваш секретарь для создания сводок по телеграм каналам и группам.
Одна из "книг", наиболее сильно повлиявших на моё мировоззрение - "Протоколы Нюрнбергского процесса".

Есть жанр "фэнтези", есть художественные фильмы с какой-то идеей, есть документалки - но там тоже режиссер стремиться передать что-то своё. А есть судебные протоколы, которые простым языком тупо описывают некие события. Совершенно другой уровень восприятия. Если интересно понять, что это было, обязательно к прочтению.

Так же полезно поразмышлять, зачем нужно было свозить десятки миллионов людей за тысячи километров в одно место, чтобы умерщвлять их специальным научно подобранным способом.

#offtop
Audio
Долгий подкаст с Мурычем про Java, OOP, FP, тестирование и как писать на JS под KDE

Попытка вынести мозг (OOP vs. FP), но неудачная )

#murych #audio #oop
В 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
Cursor дарит на год бесплатно Pro подписку студентам

Для верификации нужна почта в .edu домене

#ai
Шикарные посты попадаются...

#ai
Эван поставил на свои проекты llms.txt

https://vite.dev/llms.txt
https://rolldown.rs/llms.txt
https://vuejs.org/llms.txt

Сгенерированы vitepress-plugin-llms
(надо было ловить хайп и писать такой плагин)

#ai #seo
Please open Telegram to view this post
VIEW IN TELEGRAM
99.9% технически реально качественного софта помирает на 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. Выделив UI часть проекта Lissa Health в отдельный модуль (привет, #fsd)
2. Добавив дизайн систему на CSS свойствах и оформив всё как UI kit
3. Выделив в отдельный репозиторий, который ставится как Git submodule и подключается через npm локально (для быстрых правок)
4. Создав документацию
5. Добавив темизацию и кастомизацию компонентов
6. Переиспользовав его в других проектах

На npmjs.org не публиковал, на универсальность, полноту (не собираюсь выпускать ее как общую библиотеку) и актуальность документации не претендую, но можно просто посмотреть как работать с Ark-UI.

Alt-UI

#arkui #altui #ui
This media is not supported in your browser
VIEW IN TELEGRAM
Фронтенд-фреймворки показывают, как они умеют.
На екмаскрипте.

#js #video #offtop
2025/05/18 23:38:37
Back to Top
HTML Embed Code: