Pull to refresh

Comments 11

Сам Реакт не использует single-responsibility principle. Помимо работы с ДОМ в него инкорпорирован Стейт, отсюда постоянный ре-рендер и проблемы с производительностью, с которыми решили бороться с помошью таймаутов, чтобы интерфейс не фризился, и пришлось инкорпорировать асинхронность, вместо async/await, а также componentDidCatch вместо try/catch/finally. Также теперь пошли серверные компоненты и компилятор чтобы хоть как-то улучшить производительность раздутой библиотеки фреймворка.

Критикуешь, предлагай. Предлагаю Фьюзор. У него единственная ответственность - создавать элементы ДОМ и обновлять их. Остальное в ваших руках. Какой хотите стейт. Какое хотите обновление и diffing, хотите реактивность - пожалуйста.

Почему не стоит следовать SOLID я рассказывал тут. Почему не стоит использовать React - тут. Надо бы ещё и про Fusor что-то записать.. А пока вы ждёте, подписывайтесь на мой канал, будет интересно и небесполезно.

Тебе каждый раз лепят тонну минусов, ты совсем никакие выводы не делаешь?

Прекратите писать чушь и вы меня никогда больше не увидите.

Спасибо за статью. Согласен, что с очевидностью я действительно преувеличил. Но в целом я считаю, что это нормально, когда твоя точка зрения эволюционирует во времени, т.к. мы всегда чему-то учимся, получаем новый опыт, подтверждение или опровержение разных позиций. Например, еще вчера мне SRP казался очевидным, сегодня уже нет

Более того, компонент продолжает отвечать за этот функционал. То, что код вынесен в отдельные функции ничего принципиально не меняет. Чтобы соответствовать SRP компонент должен получать уже отфильтрованный список пользователей и возвращать JSX для их вывода на экран. Тогда у него действительно 1 зона ответственности: отрисовка списка пользователей.

Интересный пример с пользователями и фильтрацией. Автор разделил их на три функции: получение, фильтрация, рендеринг. И говорит, что если сломать одну из них, то это не затронет остальные.

Кажется я что-то не понимаю, но разве если я сломаю «получение», все остальное выдаст какой-то адекватный результат? Или фильтрацию? Или рендеринг?

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

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

Стоит также упомянуть другой легендарный принцип, описанный ещё в Совершенном коде Стивена Макконнелла:

Есть смысл во всём но ради своих прихотей заправлять проект разными концепциями мне кажется плохая идея.

Sign up to leave a comment.

Articles