24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Я - независимое лицо - бэкендер, который решил посмотреть, а что там у хохлов фронтендеров. Долго читал переливания из пустого в порожнее в сравнениях реакт вс ангуляр вс вуй, в итоге попробовал все 3, и я в полном недоумении. Ангуляр лучше просто блять ВО ВСЕМ. Серьезно, обычно когда сравнивают говно с клизмой, то хоть какие-то преимущества у обоих есть, но тут я не нашел у реакта ни одного. Но при этом он настолько лидирует по распространенности, что писать на чем-то другом - рыть себе яму. Как так-то блять?
>>241544392 Так а хули на него столько библиотек? Мне, например, очень нравится микрософтовское уи, но оно есть только под реакт, и я точно не буду ебать себе мозги ручным стайлингом другого уи под него, а возьму ебучий материал или ионик. Т.е. микрософт взяли просто и сами себе свинью подложили.
>>241548458 И хули толку с твоего десятка функций, если все равно придется юзать ту же сотню, только через жопу? Нет директив и ДИ, но функционал их все равно нужен, поэтому вместо шаблона ехал враппер через враппер, еще и потенциально размазанный по нескольким местам.
>>241544167 (OP) Я пробовал ангуляр, пиздец какое это ебаное говно, пытался на нем написать простое приложение, нихуя не работало, какие то непонятные рендеринги, данные нужно пробрасывать через три пизды, документация нефритовый стержень да нихуя объясняет. Не зря это говно не взлетело.
>>241544167 (OP) я писал на первом ангуляре немного, когда он был +- актуален, вскоре перекатился на второй ангуляр + дарт и уже тогда было заметно влияние реакта на ангуляр в плане компоненты > view+controller как по мне реакт удобней как раз "недостатками" типа количества функционала и прочего, потому что каждый дрочит UI как хочет по требованиям UI/UX дизайнеров, мне кажется в реакте проще нетривиальную фигню делать (и потом выкидывать её нахуй когда окажется что она не очень-то и нужна) мимо фуллстэк
>>241550175 Функциональное апи к этому не имеет никакого отношения. Если в ангуляре ты можешь отрендерить компонент Кукарек с директивой Кококо и прокинуть через ди сервис Кудах, то в реакте ты можешь только отрендерить <кукарек><кококо><кудах>, и то тебе будет впадлу это повторять, и ты вообще будешь вызывать нихуя непонятную функцию makeKukarek(), которую поставляет еще один враппер где-нибудь на 10 уровней выше.
Это God-object, глобальная помойка, в которую свалено все состояние приложения. Буквально все, вплоть до того, какая кнопка кликнута в тот или иной момент и какая буква нажата пользователем в очередном инпуте. На текущем проекте, примитивной учетной системе, это сейчас порядка 47-48 тысяч переменных. Хаотично разбросанных по от балды названным подобъектам, порядка 40 уровней вложенности. Работает это все следующим образом. Есть глобальный обработчик событий, и на каждый чих, когда нужно изменить любую из переменных в глобальной помойке, туда отправляется сообщение с привязанными данными. В глобальном обработчике 47-48 тысяч условий break. Слепленных воедино из разных файлов, разумеется. Все эти условия будут опрошены на соответствие строковой константы сообщения условию брейка. Если таковое сработало, то весь глобальный объект пересоздается, ради изменения нажатой пользователем буквы или состояния кнопки. В простом случае обработчик на этом завершается, в непростом одной и той же строковой константе могут соответствовать несколько обработчиков, делающих разное. Например, отправляющих иные сообщения. Которые, в свою очередь, могут отправить еще сообщения. И еще, чтобы асинхронно проверить завершение текущей операции на беке,ведь вчерашние верстальщики не могут осилить сложные концепции генераторов, в которые транспилится async....Это называется "функциональный стайл с effects". Да-да, именно, побочные эффекты, все на них построено. Вся связано со всем, и понять какая часть приложения за что отвечает нет никакой возможности, именно для этого нужны упомянутые "суперудобные отладчики". Да, в консоли браузера смотреть на 47 тысяч переменных на эдак 30-40 уровнях вложенности очень удобно, не поспоришь. И все это миллион раз проходит через один и тот же свич-кейз, с кучей дополнительных приседаний вокруг. В результате банальная учетка на Ryzen 5 шевелится медленнее, чем пакет Flow Simulation c сеткой на миллион элементов. Выглядит очень солидно, солидный продукт для солидных господ, не то что срань какая-то типа Солида или Автокада.
Все уже догадались, что это? Совершенно верно.
Это MFC 6.0 и WndProc, брошенные в кормушку жаваскриптерам. Большинство современных "программистов"-фронтендеров про такое даже не слышали, они фамилию Кнута-то не знают, поэтому трудолюбивые обезьянки с утра до вечера копипастят константы вида XXX_START, XXX_SUCCESS, XXX_FAILURE и героически борются с багами, вызванными зацикливанием эффектов. Зачем это нужно? Чтобы невозможно было переиспользовать части реализации. Чтобы все проекты представляли собой копролит, который проще переписать с нуля, чем починить. В общем, все то же самое,чем были проекты на MFC. Чтобы было чем занять толпу обезъянок-"программистов HTML" и соответственно дать менеджеру возможность оправдать раздутие бюджета перед заказчиком. Еще это из подхода Fire and Motion, т.е. технология используемая Гуглом и прочими крупными корпорациями для торможения прогресса мелких конкурентов.
>>241551131 Хоки - это тот самый мейкКукакрек, тот же враппер вид сбоку. Если мне от сервиса нужен конкретный функционал, и подписчиков на это действие никаких не планируется, то пулять в редукс мне это нахуй не надо.
>>241552154 >конкретный функционал Зависит от функционала. Если стейтлес - хули просто не проимортировать нужный модуль и не вызвать? Если стейтфул - тогда редакс. Это если сильно упростить. Но в любом случае - ДИ в жаваскрипте нинужно.
>>241551399 Два чая Господину! Многие ещё в горшок ссали, когда был MFC (да и прочие, "средства"), а как выссались - сразу же пошли писать хреймворки... С новым, молодёжным подходом решая, впрочем, каждый раз всё те же проблемы, LOL
>>241552752 ДИ юзают для двух простых вещей: чтобы можно было заменить конкретную реализацию вставляемой зависимости без правки кода, и чтобы эта зависимость в свою очередь могла иметь свои зависимости, о которых твой компонент знать не должен. И это актуально хоть для жаваскрипта, хоть для макросов в экселе. Редукс юзают для одной простой вещи: чтобы был один источник правды. Если у тебя он всего блять один, то тебе нахуй не нужен редукс для стейта любой сложности.
>>241544392 Бэк как на ангуляре будет только на жанго и ларавеле, которые не любят по той же причине, по которой не любят ангуляр — отсутствие гибкости
>>241563240 Инструменты есть, гибкости нет — нельзя выбрать подход к архитектуре проекта, что может быть очень нужно в зависимости от масштабов проекта
Мимо опыт с ларавелем, ангуляром, жанго, фастапи и нестом
>>241544167 (OP) Порог вхождения в ангуляр в разы больше я только через полгода начал что-то понимать, хотя на вкат в реакт до норм уровня ушло месяца 2-3 + для мелких проектов ангуляр слишком уж йоба. Проще на вью или реакте наклепать и в прод.
>>241562827 Во-первых жанга и ларавель - это наоборот днище-фреймворки, по сравнению с такими как симфони и спринг. Во-вторых ангуляр наоборот гибче реакта - ты можешь на нем при желании сделать все так же хуево, а вот наоборот - нет.
>>241544167 (OP) Как раньше заебись было - наклепал формочки на хтмл, нажал на кнопку, пост запрос улетел, данные сохранились. Щас пиздец реакты хуякты пиздец... Сайт в одну страницу тянет за собой миллиард пакетов из нпм
>>241564844 Ларавель юзает симфони. Это как бутерброд с колбасой. Отдельно колбаса это заебись и можно много чего сделать с ней, но это уже не готовый бутерброд для тех, кому нужен именно бутер здесь и сейчас.
>>241565262 Так епта, че у нас там в тикете, "зделой дейтпикер зоебись", ну эт хуйня, джиквери.дейтпикер(инпут) хуе-мое, так падажжи, "зделой дейтпикер зоебись и шоб когда инвалид то мигал", э бля че сразу не сказал, окей гугл, "джиквери дейтпикер с валидацией и шоб мигал", как нету бля...
>>241544167 (OP) я сам в ахуе мима другое бекендер. Тут еще это, прикол, годовалый проект никто не будет поддерживать, потому-что сборщик устарел, вщить ха! Так оно и есть, хотел там чет собрать, и пишет мол гульп устарел теперь в моде нпм-скрипт. А вот мне интересно как они проекты поддерживает которые с 2017 на реакте написаны
>>241570722 Простота построения приложений, видно какие где компоненты лежат и что откуда вызывается. В каждом компоненте может быть своя изолированная логика. Хорошая переиспользуемость компонентов. Наличие библиотек на все случаи жизни. Нету скрытого неявного поведения, весь функционал как на ладони.
считал реакт плохеньким пока не дотягивал по знаниям
честно говоря самое легкое для тупого бекера - это vue ангуляр имеет до опизденения версий, непонятно чётам с совместимостью между ними, насколько помню вечно они не могли выпустить нормально чтобы работало и вечно фиксили что то - поэтому я в своё время метнулся с vue на реакт, а не на ангуляр (ну и плюс популярность реакта - я хочу быть востребованным, а не андеграундом)
>>241544167 (OP) Сам фулстек, работал с вью и ангуляром. Принципиально вполне схожие вещи, хотя принятые подходы в разработке несколько отличаются. Сам отдаю предпочтение вью из-за меньшего размера.
>>241544167 (OP) Еле-еле залетел на уходящий галеон реакта по гуидам с двачей. Пиздец конечно скольких макакенов я обошел и сколько затерпел от эйчарок с выебщиками пока не вкотился
Решил попробовать React с простым хеловорлдом. Пишу npm install, ставится почти 2000 каких-то пакетов (я не шучу) и в итоге папка проекта, в котором я ещё ничего не написал своего, весит около 300 метров. В общем, в пизду этот React.
>>241572450 >Это руководитель отделения, а не ангулярщик. Подставляет жёппу директорам и топам он рядовой кодер, просто на заграницу это очевидно
да и в принципе просто есть фирмы с разными условиями у меня как фуллстека базовая зп 250 тыс, но у меня есть свобода брать овертайм когда нужно - типа я сам определяю. овертайм оплачивается где-то 3000 рублей в час - поэтому тоже может выходить больше
>>241571420 Дай угадаю, ты ангуляр ваще не открывал? Потому что из всего перечисленного в нем есть разве что неявное поведение, например, при манки-патчинге нативной хуйни, но реакт делает абсолютно то же самое.
>>241544167 (OP) Я тож так думал, пока с пол года активно не поработал с реактом.
Во первых нужно понимать, что фронтенд это не бэкэнд. Фронтенд состоит на 60-70% из html+Css и только на 30-40% из js. Это значит, что те практики, которые работают на бэкенде, плохо работают на фронте. А именно, на бэкэнде можно применить ооп+юнит тесты и получить на выходе устойчивое к изменениям приложение. На фронте такой финт не сработает,потому что тестами будут покрыты только 30% и только логика. Отсюда вытекает, что юнит тесты и ооп сразу идут лесом ибо они не особо полезны в большинстве случаев. В данном случае выгоднее использовать автотесты, которые позволяют сделать покрытие всей кодовой базы.
Так вот к чему я все это. Ангуляр пытается прикрутить бэкэндовые практики к разработке приложения. Статическая типизация, ооп, dependecy injection - все это наилучшим образом работает на бэкэнде. Но во фронте это не особо нужно и только лишь замедляет процесс разработки.
React+Redux позволяет писать быстро гибкий и устойчивый код в функцинальном стиле. А современные тестовые фреймворки такие как cypress позволяют покрывать тестами всю кодовую базу.
>>241576059 Почему меня должны ебать хтмлл+ксс, если верстун получает намного меньше меня? Мое дело настроить В-ВМ, а какой дальше будет В - уже не ебет, могут хоть консольную приложуху делать, хоть 3д-шутер.
>>241576837 Потому что твоя задача как разработчика, покрыть тестами все приложение. Это позволяет делать изменения без боязни получить баги. Юнит тесты, как я уже описал выше, не очень хорошо с этой целью справляются. А раз юнит тесты не нужны, значит и ооп не имеет смысла. Отсюда рождаются другие методологии разработки.
3мб бандл для продакшена. если для тебя это много, то можешь разделить каждую страницу на отдельный бандл, т.е. он будет подгружаться при переходе на новый экран.
Ангуляр медленный и магический ("two-way binding"). Реакт детерминирован и однонаправлен. За счёт того, что Реакт проще спроектирован, там меньше неожиданных "магических" багов в приложениях.
>>241576059 Другалек, на фронте может появиться бизнес-логика и вот для нее и нужны уже все эти ооп, di и подходы с бэка. Ваша уверенность что стейт-менеджер это отличное место для всего что не верстка приводит к печальным последствиям как и отсутствие тестов в сложных приложениях
>>241578359 Нет никакой надежды. Если появиться сложная логика, то да, эту логику можно обложить ооп и тестами. В любом случае это не отменяет того, что я сказал.
>>241577886 Ну охуеть теперь, т.е. ангуляр, который держит рефы на откуда и куда каждая писечка отрендерилась - магический, а реакт, который ебашит готовый дом и ниченезнаю - нет? И двусторонний биндинг заставляют насильно юзать?
>>241578873 Обычно никто не понимает и всё в сторах лежит вперемешку. Юнит-тесты всё равно нужны, потому что есть связи между модулями/компонентами и они не должны отваливаться и ты не покроешь все кейсы e2e-тестами, заебешься писать их, особенно в случае интерфейсов где много вариантов прохождения какого-то сценария и десятком всяких полей и зависимостями между ними
>>241579519 Ну, покрывать тестами абсолютно все и не требуется. Достаточно, чтобы в зону покрытия вошли все компоненты и основная функциональность. Если какая-то связь между модулями/оборвется, то появится баг который отловят автотесты. Не очень понимаю каким образом юнит тесты получается писать быстрее. Опять же повторюсь юнит тесты в очень редких случаях могут быть необходимы, чтобы покрыть сложную логику обработки данных. Но это настолько редкий кейс, что в большинстве случаях можно спокойно обойтись без них.
>>241579788 В данном случае задачи одинаковые, и от того, что на реакте часть функционала лежит в отдельных репо, она один нефритовый стержень следует гайдлайнам реакта.
>>241563240 ларавель дрисня, равно как и пехопе настоящие джедаи ебошут на легаси тайпскрипт. Лично знаю ебового челика, хуячащего фронт на xslt и svg. Нахуй эти ваши html с css, только хардкор.
>>241584017 Двойное чаепитие. Люди не разобрались в том как правильно писать на редаксе. В итоге создают один редьюсер и пихают туда абсолютно все данные. А потом жалуются что реакт говно. Ну неудивительно.
Я - независимое лицо - бэкендер, который решил посмотреть, а что там у хохлов фронтендеров.
Долго читал переливания из пустого в порожнее в сравнениях реакт вс ангуляр вс вуй, в итоге попробовал все 3, и я в полном недоумении.
Ангуляр лучше просто блять ВО ВСЕМ. Серьезно, обычно когда сравнивают говно с клизмой, то хоть какие-то преимущества у обоих есть, но тут я не нашел у реакта ни одного. Но при этом он настолько лидирует по распространенности, что писать на чем-то другом - рыть себе яму. Как так-то блять?