Как бы вы отнеслись к подходу разработки front-end без использования зависимостей?
Всех приветствую.
Сложилась у меня на новой работе непростая ситуация. Устроился в компанию на должность фронта - заманили обещаниями о новом проекте на angular 7 в недалёком будущем. Я прошёл собес, принял предложение. Пока старт нового проекта не дали, меня привязали к другому проекту. Названий приводить не буду дабы без огласки (соответствуя соглашению о неразглашении). Его фронт написан примерно на 70%. Когда я увидел что там творится, я был в ужасе.
1) Используется только jquery + bootstrap. Все модули слайдеров, галерей, поповеров написаны вручную.
2) Проект разделён на 2 репозитория. Первый - голая статика, второй - полноценный рабочий репозиторий с backend на java. У обоих устоявшиеся различия в скриптах, часть когда статики просто неактуальна.
3) SCSS применяется а-ля 2012. Модули разбиты на секции с медиазапросами, селекторы тупо копипастятся из секции в секцию вместо описания всей стилизации, включая медиазапросы в одном селекторе.
4) Вся разметка просто кишит bootstrap хелперами, порой в одном блоке может быть до 15ти классов-хелперов. Нечитаемая жесть.
Я уже закрыл глаза на секционные разделения селекторов по медиазапросам - сносно, хоть и неприятно.
Реализовал пару модулей на typeScript с применением зависимостей в первых же задачах. Swiper - для просмотра галереи страниц каталогов с возможностью зума страницы и popper.js (который и без установки лежит в bootstrap) для дебага их кривого самописного поповера.
При первом же code review автор этого шлака запретил мне наследовать bootstrap хелперы через scss директиву extend, попросил заместить swiper его самописным слайдером - хоть меня это и выбесило я стерпел, разобрался в его коде, дописал его, руками написал свой зум слайдов.
Когда он дизапрувнул изменения в поповере я уже просто не выдержал. Он попросил меня вернуть и применить его кривой код, вёрстка котогоро ехала по любому чиху. Я пошёл к руководителю проекта и высказал всё, что я думаю о фронте проекта, о недопустимости подобного подхода в проде, сказал что хочу уволиться - я действительно хотел уйти. Пришёл получить опыт с последним ангуляром, а получил по голове самописной статикой и кучей чужого кода.
Он убедил меня не делать поспешных решений и пообещал созвать собрание front-end разработчиков с других проектов, что даст мне шанс высказаться о всех косяках и граблях, на которые я наступил. Пообещал что меня выслушают и примут общее решение о необходимости изменений.
Я хочу поинтересоваться у сообщества, как бы поступили вы? Я до этого полтора года плотно сидел на vuejs - меня не по-детски радовал этот фрейм. Надеялся на опыт с ангуляром - для общего познания (всё равно я рассчитывал убедить ребят использовать vue уже после страницы доки ангуляра про dependency injection). И тут меня скатывают в такое днище. Я понимаю что в любой момент могу уйти, найти компанию, которая хочет с vue не меньше меня. Но перфекционист/ленин во мне не хочет так просто сдаваться, и надеется на поддержку ребят из других проектов этой компании.
Не стоит качать права и остаивать свою точку зрения только придя в компанию и повздорив с порога с местным лидом. Для начала надо поделать тасков. Так, как тут принято. Разобраться во всем и потихоньку двигать лодку в правильном направлении, приобретя уже какой-то вес в компании.
Выскажись конечно на собрании, но особо не найдейся на поддержку, ты человек новый, никто не ломанется переписывать весь проект из-за новичка. Руководству проще оставить проект на проверенном разработчике, чем ждать, пока новенький будет полгода все ломать, без всякой гарантии, что он вообще сможет сделать лучше. Иметь свою точку зрения хорошо, но нужно так же понимать, когда она уместна, и когда потенциальный профит превзойдет неизбежные потери на перестраивание.
Ну а доводы, превозносящие Vue над Angular, только выдают твою зеленость. Преимущество Vue только в простоте обучения, а Angular это уже серьезный фреймворк, построенный по классическим принципам.
upd. И еще добавлю - для бизнеса важно чтобы проект работал и приносил прибыль. И неважно на каком фреймворке, на какой технологии он сделан. Эти вещи имеют значение только в контексте поиска новых разработчиков на рынке. Выбор инструмента вторичен к реализации бизнес-функционала.
Антон Швец, ну я бы не сказал что не осилил доки, но этот фрагмент вызывает поначалу с непривычки много тупняков. Аналога ngModule во вью нет - вся регистрация происходит через components: {...} или глобально - в точке входа new Vue. Все нужные примочки для vue prototype так же в точке входа - обогащаются через vue use. А в анлугяре приходится описывать используемые зависимости с для каждого нового компонента и следить за ними. К этому можно привыкнуть, у ангуляра есть много преимуществ перед Vue, но это его слабое место. И на мой взгляд для использования фреймворка как фичи (т.е при необходимости динамического обновления части страницы в монолите) Vue подходит лучше, потому что на нём просто быстрее.