Продолжаю проходить курс «JS: React» в школе программирования «Hexlet». Задания чем дальше, тем чудесатей и чудесатей.
Я считаю, что самое главное в разработке приложений - это хорошая сборка ReactJS. Сколько не пробовал собирать сам, после очередного плагина, webpack говорил «кря» и умирал в муках и больше не реанимировался. Поэтому я использую готовые проверенные сборки.
Предыдущая сборка reactjs, которую я скачал для первых уроков, в один момент перестала собираться, я плюнул и начал искать другую. И нашёл React Slingshot «Реактивная рогатка».
У неё всё хорошо, и документация, и грамотные скрипты, но вот нет поддержки правил airbnb для линтера eslint, но их до установить дело пары минут. Для себя отметил, что полную «дичь» линтер с правилами airbnb написать не даст. Я уже изменил уже ряд моих стилей кодирования на более эффективные по мнению eslint.
Все уроки курса «JS: React» стояться на разработке компонентов Bootstrap под ReactJS. Но всё уже придумано за нас и этот набор компонентов уже давно существует React Bootstrap https://react-bootstrap.github.io/ Я его тоже добавил в свою сборку. Но по факту использую только стили. А упражнения решаю честно, не подглядывая в чужой код.
Возникает резонный вопрос, а к чему эта сборка зачем такие сложности, есть же редактор, линтер, встроенный в сам сайт Hexlet. Ну не дотягивает редактор до phpStorm и я ошибся при выполнении одного упражнения и тесты выдали портянку с ошибками на 5-7 страниц и всё, умер встроенный редактор, прокрутка ошибки была с большими тормозами.
И к тому же своя сборка позволяет видеть на экране, что ты запрограммировал, нажимать на кнопки и наблюдать изменения. Подход к разработке, принятый на курсе: разработал компонент, протестировал, сдал. Но без фронтенд-части мне как-то не нравиться, мне любопытней галочки и кнопочки понажимать.
Для себя отметил, мне интересно, не столько моё решение, сколько решение преподавателя. Часто возникает возглас: «А что так можно было?» :-) Понравилась тема про иммутабельность (неизменяемость) данных. Сколько не смотрел курсов по ReactJS, хоть бы один тренер рассказал про использование библиотеки immutability-helper, а только ES6, только хардкор. Сами создаём себе трудности и сами их преодолеваем. Лично мне иммутабельность данных не нравиться. Сколько кода не писал, но вот чтобы жестко была необходима иммутабельность и других вариантов не было, не сталкивался. Но моё мнение не совпадает с мнением программистов Facebook, которые разрабатывали ReactJS.
Далее вымораживает библиотека classname. Стили у тегов динамически на основе введенных данных, нельзя создать. Стили у тегов только строка. И чтобы преобразовать входные переменные в стили, нужна отдельная библиотека classname. Во VueJS уже всё встроено в сам движок. Далее children, передаём информацию в компонент, вот всё хорошо, но только если блок кода один. А если я 2 разных куска кода, хочу вставить в 2 разных места в моём компоненте, то всё никак. До слотов, как VueJS, пока ReactJS не додумался.
Но меня убила работа с формами, много тупого и однотипного кода. Жду когда будет Redux и плагин Formik https://github.com/jaredpalmer/formik Пока это упражнение для мазохистов. Но девиз всех мазохистов: «Боль ничто, по сравнению с последующим наслаждением» :-) Во всех упражнениях работа с библиотекой lodash https://lodash.com/ свелась к получению уникального значения ключа. Lodash мощнейшая библиотека для функционального программирования и сводить её функционал к получению уникальной цифры, всё равно, что русский язык сводить к спряжению неправильных глаголов, а химию к получению дурных запахов.
Вот хорошее видео по lodash.
Процесс обучения идёт, пока я полностью прошёл 13 уроков.
Кроме этого, посмотрел обучающее видео по фронтенду. Нашёл занимательные видео по CSS. Теперь Людмила Мжачих мой кумир :-) Оказывается есть многое то, что я не знаю в CSS.
Кроме того, посмотрел очень хорошее видео «Фёдор Борщёв От джуниора до СТО. Правила построения карьеры в IT» Автор очень хорошо развивает тему построения карьеры IT-специалиста, как технические навыки, так и «мягкие» навыки.
Технических навыков как ни странно нужно не сильно много, чем больше опыта, тем больше выход на передний план «мягкие» навыки: ведение переговоров, управление проектами. Т.е. чем больше специалист начинает решать проблемы фирмы, тем больше его рост и зарплата. И прежде, чем начинать приводить к успеху других, надо начинать с себя. В видео приведены конкретные инструкции по личной эффективности, общению с людьми, ведению переговоров, управлению проектами. Например, шаблон годового плана личностного роста в трелло
Рекомендую это видео на редкость хорошо прочищает мозги.