Обо мне
Доброго времени суток. Меня зовут Илья и я являюсь Frontend разработчиком. На этой странице я написал о том, как пришел к веб-разработке, и как использую свои умения сейчас.
Предыстория
Интересоваться веб-разработкой я начал в 2013 году, когда попал на сайт игровой тематики, сделанный на конструкторе Ucoz. Мне стало интересно как создать свой сайт и быть его администратором. Спустя короткое время я нашел тот самый конструктор и начал тыкаться в него. Конечно, в то время я не искал никакую документацию и даже не было мысли зайти в Ютуб. Я просто нажимал кнопки и смотрел что происходит. Через некоторое время я разобрался в интерфейсе и мне понравился тот факт, что я могу как-то видоизменять сайт и это будут видеть люди, будут пользоваться тем, что сделал я.
Загоревшись идеей создать свой проект, я начал постигать Ucoz, ставить и редактировать дизайны других юзеров. К слову, у меня даже получалось, я продолжал штамповать сайты на игровую тематику пока не познакомился с CMS DLE. В процессе работы с новой системой, я понял что масштабы разработки явно увеличились: к обычному HTML и CSS добавился JavaScript и PHP. На момент моего знакомства с DLE стоял 2018 год, и я подумал о том, что сайты могут приносить деньги если этим заниматься всерьез. В DLE используется jQuery и так уж получилось что его я узнал быстрее чем нативный JavaScript (с этим потом были сложности, расскажу дальше). На тот момент у меня не было мысли становится разработчиком, я только хотел иметь пассивный доход с рекламы. Однако чем больше я занимался сайтом, тем больше узнавал HTML, CSS и JavaScript. Мне становилось интереснее программировать, чем верстать или управлять контентом на сайте. На момент когда я понял что нужно лучше понять JavaScript был конец 2019 года. Трудности начались когда я не мог различить где обычный JavaScript а где jQuery. Уточню, что тогда я не читал книги по программированию и не смотрел видеоролики на эту тему. Только код, гугл, и я. Каждый метод или функцию я гуглил по несколько раз, потому что сразу не запоминал их назначения.
С конца 2020 года я начал учить React js и его экосистему.
Настоящее время
В данный момент я пишу на React + TypeScript все свои проекты. В качестве стейт менеджера использую Redux Toolkit + RTK Query. Достаточно часто использую Next.js и пишу собственные хуки. Есть опыт применения сокетов с использованием Socket.IO. Для стилизации использую Chakra UI, в случае если важна производительность или поддержание бренда пишу собственные компоненты. Работал с styled components и emotion js. Есть опыт настройки конфига для Webpack и небольшой для Rollup. Для построения форм использую либу React-Hook-Form. В наличии древний опыт с jQuery (надеюсь не придется применять). По возможности использую семантическую верстку. Есть опыт работы с SEO (хостил и развивал свои проекты).
Про Backend
Мне нравится Frontend разработка, однако, без бекенда создать какой-либо большой проект не получится. С этого момента я перешел к изучению Express js и MongoDB, сделал пару проектов с использованием этих библиотек. MongoDB - удобная вещь, но весьма финансово затратная (как мне показалось), поэтому я решил вернуться к MySQL (до этого был опыт, когда работал с DLE). Для удобного использования MySQL я решил выбрать ORM: выбор стоял между TypeORM и Prisma.js. Проанализировав информацию, пришел к выводу что Prisma будет лучшим выбором, хотя технология еще относительно новая.
С использованием этих библиотек мне удалось реализовать собственную авторизацию в веб приложении. Была возможность авторизоваться, зарегистрироваться и продолжать сессию с помощью Refresh token, время жизни которого было 30 минут, по истечению которых он обновлял и сам себя и Access token. Для генерации токенов использовал библиотеку jose.