РСС

Ношу шлем, тяжело дышу…

Меня зовут Антон Шувалов. Я работаю в Lazada. Кроме программирования я пишу музыку и иногда занимаюсь дизайном интерфейсов. Я есть в Twitter, Facebook, и на GitHub. Вы можете написать мне email.

Если вы задумали порадовать меня небольшим подарком (не может быть!) — вот список моих мещанских мечт.

Make Streak, Not Holywars

В какой-то момент я присмотрелся к панели «Your Contributions» в своем профайле на GitHub. Помню, я тогда подумал что-то типа: «Какого черта мой аккаунт выглядит так заброшенно!? Это же не так!»

GitHub я использую практически ежедневно. В основном это сводится к чтению фида, поиску различных модулей и библиотек, примеров для вдохновения. А вот работу над своими штуковинами я постоянно откладываю. Ну как, откладываю… Периодически что-то выкладываю, но та-а-а-ак редко. И это при том, что я пишу код по будням, по выходным, по праздникам, в новый год, в ванной, в день рождения, и за обедом. И сны мне снятся на Canvas и WebGL.

Я решил, что пора бы что-то здесь менять. Не дня без коммита! Хватит тянуть с тем, что давно хотелось сделать! Хватит откладывать в долгий ящик то, с чем давно хотелось разобраться! Свои велосипеды? Почему бы нет! Будет интересней смотреть на чужие.

NPM

Последние полгода я пишу под NodeJS. В комплекте с Node идет отличный менеджер зависимостей — «npm». Как благородный NodeJS-кун, я, конечно же, что-то там публикую. Обычно, это небольшие и достаточно независимые компоненты которые я планирую довести до ума и применить где-то еще. Вот только выношу я что-то достаточно редко. Обычно лень.

Лень

Да, лень! Лень обдумать ответственность компонента. Лень чистить его от хлама. Лень выносить в независимый модуль. Лень его потом поддерживать. Сам смотри:

  1. Скачивай репозиторий,
  2. вноси правки,
  3. заливай на GitHub,
  4. публикуй в npm,
  5. обновляй зависимость в своем проекте.

Сплошные неудобства!

Если вы считаете так же — ударьте себя. Или попросите кого-нибудь сделать это. Черт подери! Вы ведь считаете, что монолитная, громоздкая система, которая получилась в результате вашей лени — это в порядке вещей. В старости, сидя с кружкой пива на прокуренной кухне, вы будете жаловаться своим друзьям: «Я был программистом. Это тяжелая работа». Средний палец — мой самый выразительный жест.

Модулей!

Я думаю, что по большей части, проблему поддержки модулей можно решить тестами и граммотным проектированием. И первому и второму можно научиться в процессе. Ну ошибешься ты при проектировании API, ну придется тебе что-то там серьезно менять. Отлично! Намотаешь на ус.

Стремление к созданию модульных систем помогает развиваться.

  1. Сама необходимость создавать независимые модули помогает развивать навык проектирования.
  2. Так как ты работаешь не с монолитным крепко связанным гордиевым узлом кода, а с набором модулей, то ошибки становятся более локализованными, следовательно легче анализировать те или иные факапы.
  3. Фидбек от пользователей, пулл-реквесты, комьюнити, если конечно, повезет.
  4. Приятно получить сообщение: «Ты идиот! Неужели ты не знал о библиотеке X, которая делает в точности то же самое, только лучше!?». Сидишь ты в своем вакууме, создаешь не пойми что, а тут человек показал, что, дескать, все это за тебя уже сделали. А ты такой не в курсе.

Мне нравится то что я делаю, и я хочу делать это лучше. Поэтому, 30 дней назад, я решил уделять больше внимания опенсорсу.

Итоги

В течение последних 30 дней я ежедневно что-то писал на GitHub. Гарантированный результат, который я получу за это — опыт. Если это окажется не единственным, что я получу в итоге — я буду визжать как сучка от радости!

За этот месяц я наконец-то хоть как-то разобрался с юнит-тестами, узнал, как создавать CLI с помощью NodeJS, наконец-то отрефакторил свой блог, написал плагин для GruntJS, пару переводов во Frontender Magazine. Кроме того, я выяснил и опробовал на практике кучу тонкостей языка, пополнил свои сниппеты, сделал пару полезных утилит, и обзавелся массой интересных идей.

Даже если все, что я написал за этот месяц — это никому не нужные велосипеды, ну или, что более вероятно, просто идиотская хрень, то я все равно счастлив. Я чувствую как я продвигаюсь вперед, а Streak на GitHub отличный повод продвигаться вперед ежедневно.

'Sucking at something is the first step to becoming sorta good at something'

«Как рушатся комплексные системы», Ричард И. Кук
О фундаментальных проблемах больших запутанных систем
7 паттернов для рефакторинга JavaScript-приложений
Перевод отличной серии статей о проектировании и рефакторинге проектов
Музыка для работы
Мои плейлисты: теплый glitch, нежные девичьи голоса, интересная электроника и chillwave
Ссылколог
Коллекционирую полезные ссылки