Всем привет! Уже 3-е января и всех с прошедшим Новым годом! Прошу прощения за почти годовое отсутствие. Было много всего, что нужно было переварить, переосмыслить, в мире фронтенда как обычно происходит много чего, формируются новые стандарты, разрушаются старые, JS продолжает пробираться во все технологические сферы, VueJS всё чаще появляется в вакансиях, Angular вроде как тоже развивается (уже 7-я версия, правда я не следил за ним), но React в целом не сдаёт позиций, хотя в самом React мире тоже происходят метаморфозы - чаще вижу посты о том, что отказываются от Redux, переходят на GraphQL Apollo или другие варианты, недавно ввели хуки (React Hooks), новый Context API, которые собственно могут заменить многие несложные use cases использования Redux, скоро введут компоненты для отложенного (Suspense) и асинхронного (Concurrent) рендеринга. Но пост на самом деле не об этом.
В этом посте я хотел бы подвести итоги прошлого года. Он был очень насыщенным и продуктивным.
- Во первых, в середине позапрошлого года я начал сотрудничество с одним крутым амстердамским стартапом, и оно продлилось до ноября этого года. Благодаря этому сотрудничеству я приобрёл бесценный опыт разработки довольно непростых решений, поработал со многими технологиями, закрыл множество пунктов данной цели, приобрёл опыт code review и менторства (хотя тут ещё нужно развиваться), поработал с деплойментом Gitlab CI, Docker, более плотно поработал с NodeJS (много вещей у нас работало на серверной части), поработал с Serverless архитектурой - Google Functions, Graphcool (GraphQL сервис с очень простым API) и много чего ещё. Основным направлением стартапа было А/Б-тестирование сайтов клиентов (сначала это были любые клиенты, дальше уже переключились только на квест румы, судьба так сложилась ?), сложность была в том, что сайты клиентов могут быть написаны с разными конфликтующими библиотеками, могут открываться в совершенно разных браузерах, в том числе и старых, и нужно это было либо приводить к старому синтаксису, либо как-то хэндлить (точнее исключать из тестирования), мы в основном обрабатывали код экспериментов через webpack и babel, приводили его в es5 и уже сервер отдавал такой код на клиент. Также была поначалу сложность, где хранить код экспериментов, в результате решили, что удобнее всего хранить его на сервере, так и работать с ним легче, и разрабатывать новые эксперименты локально тоже было удобнее. Даже сделали небольшой виджет на сайте, чтобы для аналитиков было удобно анализировать и размечать сайт клиента для дальнейшего анализа в Google Analytics, анализировать уже созданные эксперименты, писать к ним отчёты и комментарии.
- Одним из субпроектов данного стартапа был SMail - приложение на телефон, помогающее экспатам (впервые переехавшим в другую страну) понять что же им прислали по бумажной почте (в Европе разные государственные (и не только) организации имеют тенденцию присылать внутреннюю документацию на своём языке), идея приложения - фотографируешь текст, прописываешь язык на который нужно перевести, указываешь почту и через 1-2 минуты на почту приходит перевод этого документа с такой же структурой документа. (Очень похоже на Google Translate, но последний переводит по-блочно, а идея заключалась ещё в том, чтобы в будущем переводили профессиональные переводчики или же обычный онлайн-переводчик, но уже более связно). В целом, моя задача заключалась в разработке приложения на React Native, чтобы оно работало и на Android и на iOS. Это было довольно увлекательно и познавательно, приходилось касаться и Java, понять, что версионирование пакетов играет ключевую роль, и что если вдруг какую-то версию поставишь не ту, то полетит вообще всё или даже не скомпилируется.
- В начале этого года перешёл на экосистему Mac, потому что запарился с проблемами Windows, которые просто мешали работе. Реально, на Mac 70% проблем исчезают, нет конфликтов с разными пакетами/языками, очень просто устанавливать и удалять программы/языки/пакеты, но самое главное, его практически не нужно переустанавливать (если только не обновляешься до какой-нибудь Mojave), не приходится искать какие-то особые версии для устанавливаемых пакетов, как это нужно был делать для Windows. Скорость работы полностью соответствует тому, что ты ждёшь от Mac. Я долго выбирал между моделями Mac и остановился на версии 2015 года - самая оптимальная версия со всеми необходимыми разъёмами и до сих пор хорошим железом. Я взял MacBook Pro 2015 13-ти дюймовый, 8 гб оперативки, i5. Вообще, он покрывает 90% задач, которыми приходится заниматься. Но, 8гб однажды стало не хватать, точнее тогда, когда при открытом WebStorm, Slack и Chrome я попытался открыть Docker. Вот тут Docker запротестовал и выдал уведомление, что не будет запускаться. Дело в том, что хром жрёт очень много памяти. Особенно, когда у тебя по работе открыто штук 20-30 вкладок и ещё столько же установленных расширений. Выход оказался простым: закрыл хром, и Docker открылся. После этого открыл хром, и спокойно продолжил работу. Но всё равно, иногда хочется и 16гб, в будущем хочу обновиться. Возможно до какой-нибудь современной версии.
- Касательно здоровья, фуллтайм работа с периодическими переработками по ночам привела к тому, что к концу этого года нарушился режим сна и это привело к негативным последствиям. Я не мог спать по ночам, я спал только днём, но не высыпался. Сны стали тяжёлыми. Состояние таким же. Заболевать стал чаще. Лишь только за последний месяц отдыха я таки смог его скорректировать в нормальное русло. В итоге, для себя понял, что работа по ночам может разрушить режим сна и работы и соответственно, что потом очень негативно сказывается на продуктивности по работе. Восстанавливается режим тоже довольно сложно. Такой вот опыт.
- По спорту, в начале года походил немного в качалку, месяца 3. Поднял около 6 кг (хочется верить, что мышц ?). Но потом снова не ходил полгода. И вот ещё последние две недели походил, перед праздниками. Наверное это тоже поспособствовало восстановлению режима сна.
- Научился кататься на сноуборде) ну как научился, пока только спускаться на заднем канте, и немного переходу на 180. Вес ещё нужно учиться перекидывать более правильно.
- Дочитал, точнее закончил читать выбранные главы из книги Совершенный код. Одна из топовых книг. Прокачивает очень хорошо по тому, как структурировать код и вообще по всему циклу разработки.
Наверняка что-то ещё не раскрыл, что-то упустил. Но вроде это как-то всё, что смог вспомнить.
Всем добра и счастья в новом году!