Представим: старт проекта завтра. Что возьмете в основу?
— Быстрая верстка за счёт утилитарных классов
— Чёткий дизайн-системный язык без лишнего нейминга
— Удобно для больших команд — меньше стиля-разброда
— Стили прямо в компоненте → чище структура
— Динамика через пропсы без костылей
— Отличная интеграция с React, всё на JS
Голосуем реакциями:
👍 — Tailwind
❤️ — Styled Components
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51❤29🥱10
Два фреймворка, два подхода, одна вечная дискуссия.
— Компонентная архитектура и масштабируемость
— Огромная экосистема и сообщество
— Hooks и современный подход к состоянию
— Мгновенный старт и лёгкая интеграция
— Реактивность «из коробки»
— Понятный синтаксис для шаблонов
Голосуем реакциями:
👍 — React
❤️ — Vue
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤114👍52🥱7❤🔥2
— Строгая архитектура и предсказуемость
— Огромное комьюнити и тулзинг
— Подходит для enterprise-приложений
— Минимализм и простота
— Меньше кода, легче читать
— Подходит для небольших и средних проектов
Голосуем реакциями:
👍 — Redux
❤️ — Zustand
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤55👍27
— Всегда помнит, что было раньше
— Отлично справляется с хитрыми API
— Настраивается под любые сценарии
— Лаконичен и лёгок
— Быстро подхватывает свежие данные
— Идеален для простых CRUD
Голосуем:
👍 — React Query
❤️ — SWR
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🥱12❤5
Чтобы не теряться в потоке постов, мы собрали удобную навигацию по тегам. Всё нужное — в пару кликов:
#readme — код-сниппеты, CSS-трюки, JS one-liners, команды Git/CLI
#hotfix — реальные баги и проблемы с объяснением, как их исправить
#blueprint — high-level концепции и паттерны
#under_hood — разбираем, что происходит внутри фреймворков и браузера
#stack — обзоры библиотек, плагинов, инструментов
#release_digest — все важное за неделю/месяц в одном месте: новые версии фреймворков, релизы библиотек, ссылки и краткие описания
#code_challenge — интерактивные задачи с разбором на следующий день
#code_battle — столкновение технологий или подходов
#pixel_pause— мемы, юмор и забавные истории из фронтенд-жизни
#career_merge — советы по резюме, soft skills, вопросы с собеседований, обсуждение зарплат
#ux_review — изучаем интерфейсы и UX известных сайтов и приложений
#read_watch — подборки полезных материалов: статьи, конференции, GitHub, книги
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥1
Когда-то он был “про view”. Теперь — серверные компоненты, Suspense, компилятор, серверные экшены. Это уже не инструмент, а целая среда. React стал фреймворком.
Только делает вид, что нет.
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔7😁4
Два инструмента, одна цель — чистый и красивый код. Но подходы — кардинально разные
— Проверенный временем стандарт
— Тысячи плагинов и правил
— Гибкая конфигурация на JS/TS
— Работает в любой экосистеме
— Новый формат линтинга и форматирования «в одном»
— Написан на Rust — летает даже в монорепах
— Умное кеширование и мгновенный запуск
— Простая миграция с ESLint + Prettier
Голосуем реакциями:
👍 — ESLint
❤️ — Biome
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤37👍18
Кажется, вот он — новый порядок, чистый код, свежий старт. А потом снова файл на 600 строк и состояние, которое живёт своей жизнью. И вы ловите дежавю.
🔥 — Выбрали новый фреймворк
❤️ — Переписали старый проект с нормальной архитектурой
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥3
Когда принципы сталкиваются с дедлайнами — рождается архитектурный холивар.
— Чёткие слои и зависимости
— Контракты, интерфейсы, unit-тесты
— Легко масштабировать и поддерживать
— Меньше слоёв, больше пользы
— Фокус на фичах, а не абстракциях
— Решения под задачу, а не под учебник
Голосуем реакциями:
👍 — Clean Architecture
❤️ — Pragmatic Architecture
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤26👍13🤔2
🕹 npm install: хитрость фронтендера
Каждый сталкивался с дилеммой: проверять всё или просто вставить команду и надеяться, что заработает?
➕ Проверяем пакет перед установкой
➕ Копируем команду из StackOverflow и надеемся, что заработает
Голосуем реакциями:
👍 — Осторожность
❤️ — Копипаст
🐸 Библиотека фронтендера
#code_battle
Каждый сталкивался с дилеммой: проверять всё или просто вставить команду и надеяться, что заработает?
Голосуем реакциями:
👍 — Осторожность
❤️ — Копипаст
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍15
Когда ответственность встречается с делегированием — рождается главный миф разработки.
— Баги находятся на этапе разработки
— Быстрый feedback loop
— Рефакторинг без страха
— Разработчик = ответственность за качество
— Быстрее пишу код без тестов
— QA всё равно найдёт баги
— "Я же не тестировщик"
— Баги уходят в прод, но это не моя вина
Голосуем реакциями:
👍 — Пишу unit-тесты перед коммитом
❤️ — Тесты есть, но не всегда
🤔 — QA справится, они для этого есть
🔥 — Продакшн и есть тестовая среда
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥8🤔8❤4🥰1
Что вернёт код на картинке выше
Массив вроде есть, но что хранится в array[0]…
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱11🥰5👍1
Пять лет на React — и вдруг понял, что жизнь без useEffect реально возможна. Ниже — коротко, в чём именно разница
const [count, setCount] = useState(0)
setCount(count + 1)
const count = ref(0)
count.value++
Просто работаешь с переменной — и всё обновляется. Никаких setState, никаких магических зависимостей.
const filtered = useMemo(() => items.filter(i => i.active), [items])
const filtered = computed(() => items.value.filter(i => i.active))
Во Vue не нужно думать про зависимости — оно само знает, когда пересчитать значение.
<div v-for="item in items" :key="item.id"> читается легче, чем {items.map(item => <div>...)}. v-if, v-show, v-model — три директивы, которые убирают сотни строк boilerplate.
useEffect(() => {
if (email && !isValidEmail(email)) setError(‘Invalid’)
else setError(’’)
}, [email])
const email = ref(’’)
const error = computed(() => email.value && !isValidEmail(email.value) ? ‘Invalid’ : ‘’)
Что реально зацепило:
1. Нет useEffect hell — watch и watchEffect проще и читаемее.
2. v-model — двустороннее связывание без боли и бойлерплейта.
3. Меньше бандл: React + ReactDOM ≈ 45 KB (gzip), Vue 3 ≈ 34 KB (gzip).
Что не зашло:
— Экосистема меньше
— TypeScript-интеграция всё ещё местами шероховата
На работе продолжаю React (экосистема, команда, легаси). Но когда сажусь за свой проект в выходные — открываю Vue.
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🌚3🥰2👏2🎉1