Обо мне

Горю программированием. Люблю решать сложные задачи, докапываться до сути. Уважаю критику, она развивает.  Нравиться заниматься спортом: имею 1 разряд по боксу и акробатике.

Последние 3 года пишу свои pet projects на JavaScript, параллельно учась в школе. В 10-ом классе был полугодовой опыт коммерческой разработки.

Из последних активностей:

  • Разрабатываю библиотеку, которая реализует механизм событий, для браузера и Node.js
  • Начал осваивать unit-тестирование с mocha и sinon, испытал настоящий экстаз, не понимаю, как я без этого раньше жил. Сейчас внедряю во все свои новые проекты
  • Копаю книжки по Assembler/C (Том 2 Низкоуровневое программирование  А. В. Столяров) и по архитектуре железа (Таненбаум). Цель: понять, как работает монстр, которым ты каждый день пользуешься.
  • Захожу порешать задачки на Codewars и acmp. Интересное занятие.
  • Внедряю систему GTD
Профессиональные навыки
JavaScriptVue.jsMochaJSSassCSSWebpackNode.jsExpress.jsMySQLMongoDB
Участие в профессиональных сообществах
Опыт работы
Частная практика, работа без зачисления в штат
Февраль 2019 — Апрель 2019 (3 месяца)

Мой первый коммерческий проект.

Перед заказчиком стояла задача: разработать модуль под названием ТЕХНОЛОГ для системы Битрикс24, чтобы автоматизировать работу предприятия по производству металлоконструкций. Основная задача модуля была принимать несколько excel-таблиц, обрабатывать их, складывая в БД, и отображать данные в пользовательском интерфейсе в виде библиотеки деталей.

Всю систему проектировал и разрабатывал самостоятельно. Технологии и подсистемы были выбраны местами субъективно. Первым делом разобрался с Битрикс24, понял, что это. Нашел способы интеграции модуля в Битрикс24. И начал выбирать стек технологий для веб-приложения. 

На Front взял Vue.js, так как до этого имел хороший опыт разработки своего графического редактора, и мог сразу начать разработку без необходимости изучения с нуля. У заказчика не было требований относительно дизайна, поэтому для экономии времени и сил взял инструмент MaterializeCSS, про такие вещи, как Vuetify, тогда не знал, но тем не менее materialize был удобен.

На Back взял PHP, потому что с Node.js опыта не имел. Фреймворк я взял свой собственный - PHP Lite (https://github.com/webkadiz/php-lite). Тогда он мне более менее подходил, и позволил сразу же писать backend часть, без задержек по времени. Плюс в процессе я успел хорошенько модернизовать его.

Базой выступила MySQL, можно сказать, что это было условие заказчика, потому что у хостера другой базы не было.

По прошествии двух месяцев проект был успешно реализован.

Что было интересного в проекте, что он мне дал, чему научил, какие результаты?

1) Было интересно и поучительно проектировать схему БД. В процессе столкнулся с трудностями, несколько раз в середине проекта менял кардинально схему, что было болью

2) На backend'е я не тратил время на модульность, и понял какая эта была ошибка. У меня все было практически в одном классе на тысячу строк кода. И в конце проекта навигировать и разбираться в нем было очень тяжело.

3) Важны тесты. В конце разработки добавлял какую-нибудь фичу, и все ломалось непонятно почему.

4) Больше уделять нужно время проектированию. Клиент с сервером обменивались данными посредством JSON. И когда приходилось меня схему JSON для какой-нибудь новой фичи, появлялось много проблем

5) Разрабатывай предварительные требования, имей ТЗ. У меня его почти не было в начале разработки. Заказчик постоянно просил что-то менять, местами это были кардинальные изменения, влияющие на архитектуру, и порой приходилось переписывать целые компоненты на фронте

6) Понял, что нужно в проект брать процентов 20% новых технологий, потому что иначе придется много изучать, и процесс разработки будет стоять на месте

7) В первый раз деплоился, настраивал хостинг, было интересно

8) В процессе осознал необходимость в Vuex

9) Изучил MaterializeCSS