TGViewer
ТОП - Тёма о программировани ТОП - Тёма о программировани @temaprog · 2.81K subscribers
Post #64 4.09K
Обратная сторона React

Здарова, работяги!

Как я понял из опроса выше, всем очень интересен React🖼️ и очень интересна архитектура. Поэтому начинаем холиварную тему про архитектуру в приложениях со старым добрым(так ли это?) реактом.

Не буду лить воду, обойдемся без подводочек — такого большого кол-ва страшных приложений, как на React, я больше ни на одной другой технологии не видел. Кто-то пошутит, что просто на других технологиях самих приложений очень мало, особенно на моем любимом Angular💻, вот я их и не видел. В этом есть доля правды, но лишь доля. Даже если смотреть отношение страшненьких проектов к реально хорошим, React в топ не выбьется, по моему опыту. Почему так?🤔

Уже около года я много занимаюсь разработкой на чистом ts 💻 и js 💻. И знаете, что я вам скажу. Это сильно отрезвляет. Да, именно так, отрезвляет. Этот опыт помог мне взглянуть на приложения с React иначе.

У React много проблем, это факт. Но есть одна, которая стала сейчас для меня очень отчетливой. Необычность этой проблемы в том, что она одновременно и его главный плюс. React — библиотека. Да, все так просто. React не фреймворк, а лишь библиотека для построения ui слоя вашего приложения. Только лишь одного слоя — UI.

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

Это большая и сложная проблема. Разбираться с ней я предлагаю по кусочкам. Сегодня хочется обратить ваше внимание на один из самых частых признаков, что вы замешиваете бизнес-логику в ui.

Скорее всего, у многих в проекте стоит линтер, скорее всего, у многих в правилах линта есть правило проверки зависимостей в хуках useEffect и подобных. А теперь обратите внимание на те места, где это правило замьючено. После анализа большого числа таких мест я пришел к следующему выводу — чаще всего такие мюты появляются в тех случаях, когда зависимостей слишком много(лишние срабатывания происходят и т. п.), а много их из-за того, что логика в эффекте избыточна, что именно в этом месте вы переборщили и занесли в ваш легкий ui лишнего. Конечно, есть исключения, но их, по моему мнению, сильно меньше. В большинстве же своем это именно проблемные места, которые если еще не болят, то скоро будут, т. к. такие эффекты крайне сложно поддерживать из-за обилия зависимостей, логики, большого кол-ва срабатываний и т. д., поэтому разработчики просто мьютят линтеры и замалчивают проблему.
  • 🔥 76
  • ❤ 6
  • 👍 6
  • 🌭 1
  • 💯 1
More from @temaprog
  1. Sep 15, 2026Здарова, работяги! Кто собирается на Avito.Tech.Conf 26 сентября? Я уже рассказывал про ко…
  2. Sep 14, 2026Зачем ты пишешь? Здарова, работяги! Помню, как все только начинали активно использовать аг…
  3. Sep 4, 2026Здарова, работяги! Приезжает коробка. Внутри бейдж на Avito.Tech.Conf и часы «Ракета».😳 И…
  4. Sep 3, 2026Здарова, работяги! Потихоньку продолжаю дописывать посты из заметок. В прошлый раз — элеме…
  5. Aug 26, 2026Здарова, работяги! Совсем скоро осень, а значит, начинается сезон конференций. Про Avito.T…
  6. Aug 18, 2026Здарова, работяги! Сейчас я много думаю про AI-native команды и внедрение ИИ в разработку.…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →