Устроился работать Junior Frontend и попал в ад, что делать?
О себе:
Мне 31 год живу в Москве. Решил сменить кардинально профессию с врача на frontend. Верстка, React, redux, нативный js и полный комплект стандартных инструментов к этому.
За 3 недели нашел себе работу Junior Frontend. На собесе пообщались рассказали про проект - это что-то типа конструктора срм / сложных корпоративных систем по принципу low-code, но проект старый.
Написан на бустрапе, jqerry, бэк на node, некоторые виджеты на реакте. Ну я и подумал, что пофигу на var, jQerry и кучу сторонних библиотек типа bluebird для асинхронности. Главное первый опыт, главное взяли. Мне дали доступ к платформе, и я сижу 4 день в шоке.
Тут очень хитрая система: чтобы разработать приложение в платформе-ты задаешь классы, свойства, методы, строишь взаимосвязи, таблицы, словари, типы данных для метода, FOREIGN KEY колекции (типа наследования классов). Затем Вся инфа идет на сервер и преобразуется в базу данных и код приходит к тебе в клиент уже сгенирован. Ну к примеру класс с 7 методами это 4000 строк кода)). Затем выбираешь формы и начинается Ад, потому что нужно как-то выводить данные в формы и строить бизнес логику. Код пишешь на самой платформе, код уходит на сервер с ним что-то проходит)))
Ад в том, что это вообще не типичный фронтэнд. По сути есть объекты в которые обворачивается твой код. Чтобы понять какие данные приходят из инпута нужно танцы с бубном танцевать (типа this.total.console.log() и ответ в консоль приходит в виде объекта) или чтобы сделать запрос в базу с ФРОНТА, ты создаешь объект с настройками и кидаешь в функцию. Нельзя навесить обработчики событий, они заданы в системе в виде глобальных методов на которые я не могу посмотреть.
Ну то есть я даже не могу код посмотреть, чтобы понять какой метод вызывать, и как классы наследуются. Ну то есть оно происходит где-то там "под капотом". Соответственно любое обращение к методу это асинхронная задача. Документации почти нет, комментариев к коду нет, так как сервер генерит структуру фронта из тех параметров которые ты задал, а твоя задача строить бизнес логику между классами и методами и выводит в формы.
Мне дают простую задачу "жмешь эту кнопку, а в этом окне появляется инфа с сервера", которую бы за 15 минут бы решил на реакте, нативном жс, а тут я вожусь один день, чтобы вообще понять как "достучаться до метода класса"
Я понимаю, что тут стек технологий какой-то непонятный, что хотел бы все таки упор делать react (на гите 5 приложений написано, со всеми плюшками типа хуки, редакс, сага, базу данных firebase юзаю), typeScript, node js то что сейчас востребовано, а не работать с легаси кодом.
Это мой первый опыт. У меня прям ступор, что мне делать? Учиться и получать заветный "коммерческий опыт", но древние технологии? или что? Подскажите плиз Ваше мнение, мне больше у кого спросить
Прочитал половину, дальше лень, совет, ливай с этого говна, лучше пойти подешевле работать куда по серьезнее, хоть нахватаешься полезной практики, а тут разгребать застывшее говно мамонта с такими костылями, пользы ноль. Не ну если только времени не жалко, тогда ладно, ковыряй
разгребать застывшее говно мамонта с такими костылями, пользы ноль
Я бы сказал, что польза отрицательная.
По сути, ты будешь учиться делать костыли и когда попадёшь в нормальный проект, по привычки опять будешь костыли делать. В идеале попасть в более-менее новый проект, в котором с удовольствием используются последние технологии.
Если платят хорошо, а после Ада остаётесь живым, то можете дома кодить свой проект по лучшим практикам, а на работе грести деньги.
Если платят плохо и перспектив никаких, то просто уходите :)
Pavel Shvedov, ну я также думаю, но опять же при поиске работы нужно как-то пройти фильтр из рекрутеров и попасть на собес. А хоть какой-то коммерческий опыт в резюме - это плюшка. Это неверный подход?
Василий Сафин, в текущий кризис прыгать туда сюда начинающему опасно, можно и врачом не быть и Frontend не стать. Плюс учтите, что Junior Frontend вы станете после 1.5 года работы по специальности.
Сложно сказать, насколько это вообще ад.
Да, возможно стек старый, но с архитектурной точки зрения приложение может быть сделано хорошо.
Ваша проблема сейчас в том, что вы в какой-то мере начали понимать типичный реакт стек, но не видели мира за его пределами.
Приложения на реакте, как правило, это пример плохой архитектуры. В реакте есть какие-то общие практики, но сейчас вы не можете сказать хороши они или нет, потому что вы не работали с другими.
Мой совет - продолжить работать и попытаться понять глобально как работает продукт, какие архитектурные паттерны и решения в нем используются.
Когда вы пройдете стадию отрицания и разберетесь в том, как все работает, у вас будет два пути - либо вы поймете что код на самом деле не так плох, и почерпнете для себя несколько хороших идей, либо окончательно убедитесь что код и в самом деле говно, но с полноценным набором причин, а не теми, что вы описали. Сейчас ваше описание выглядит просто как неаргументированная паника разработчика, который столкнулся с чем-то отличным от базового стека. Анализируйте, изучайте. То, как не надо делать - это тоже хороший опыт.