Я — разработчик.


Сумбурный пост. Править не буду. Первая и последняя версия.

В разработке я достаточно давно. Вероятно с того момента, как моё увлечение компьютерами и техникой стало для меня несколько бОльшим, чем увлечением. Сначала было интересно разбираться в HTML и CSS, затем PHP.  Много-много говнокода  и процедурных решений. И много всего ещё.

Обычно принято измерять опыт программиста в часах. Скажем, джуниором можно считаться, если писал на каком-то языке часов 700. Откуда такие цифры и кто их принял на вооружение я не имею ни малейшего понятия. И честно-говоря не очень хочу просвещаться на этот счёт.

Что бы не быть голословным, в моём портфолио есть:

  • CRM для страхового брокера;
  • CRM для компании по аренде жилья;
  • CRM для производителя текстильной продукции с сублимационной печатью;
  • Пара ресурсов с мониторингом игровых серверов;
  • Куча интеграций с 1С, Почтой России, службами доставки;
  • Много сайтов и простеньких скриптиков для каких-то сиюминутных узких задач;
  • и прочее и прочее…

Многие из этих проектов работают до сих пор с разной степенью интенсивности и поддержки.

Так вот. Я — разработчик. Скажем честно, не то что бы очень серьёзный или супер-быстро-пишущий-кучу-кода. У меня, к сожалению, нет специального образования или кучи-очень-прокачивающих-курсов за плечами. Я — разработчик и я самоучка. Можно много говорить о пользе и правильности академического образования, повышении квалификации и прочем. Но это НЕ ОБЯЗАТЕЛЬНОЕ условие, чтобы быть разработчиком. То есть совсем.

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

Клиенту наплевать на процесс

Совсем. Однозначно и бесповоротно. За всю свою практику я ни разу не встречал клиента, который интересовался, как и что я пишу. Клиенту всегда важен результат. Ему нужно, что бы «…вот эта иконочка делала так, чтобы было клёво…»(цитата). И плевать ему на то, что обрабатывающий скрипт ест 5Кб памяти вместо 4,5Кб. И совершенно ему не важно, отлаживал ли я этот скрипт или скопипастил кусок кода из интернетов. Соглашусь, что это совсем не правильный подход, но речь сейчас о заказчике, а не о вас, светлых и беспечных ангелах от программирования. Вы бы никогда не позволили себе сделать нечто подобное. Клиенту важно, чтобы были достигнуты поставленные цели. А как — это проблема разработчика.

Качество кода

Давайте честно посмотрим на нашу работу? Нет? Ок. Тогда я признаюсь. Я часто пишу не идеальный код. Мало того более-менее приближенный к идеалу вариант получается в лучшем случае с третьего раза.

  • Я плохой программист? Возможно.
  • Мой код работает? Да.
  • Заказчик доволен? Да.
  • Денюжка капает(да простят меня идейные энтузиасты за мой приземлёный взгляд)? Капает.

Я ни в коем случае не призываю всех и каждого разом бросить рефакторинг, забить на тестирование и писать «лишь бы работало» за «лишь бы платили». Но должна быть граница между адекватными временными затратами и бесконечным переписыванием кода.

Немного мёда

Теперь посмотрим на программирование немного с другой стороны. Что чаще вы используете при написании кода? Неужели высшую математику? Я, оглядываясь на свой опыт могу с уверенностью констатировать: математические способности далеко не самое важное для программиста. Чаще всего программирование это безусловно творческий процесс. Иногда ловишь себя на мысли о том, что если сейчас встанешь и подойдёшь к зеркалу — увидишь доктора Брауна из «назад в будущее» а не серьёзного специалиста и гуру кодинга. Да, вы, конечно, никогда так о себе не думали. Это у меня мания величия и звёздная болезнь.

Вспомните свой самый сложный проект. Сколько сил и времени ушло на фееричные в своей гениальности костыли приёмы программирования? Сколько пота было пролито над одним единственным методом, который ставит какую-то запятую по заказу маркетолога? И всё это не есть плохо. Это творческий процесс. Он не может быть линеен и математически обоснован. Не может быть идеального кода, если он только что появился на свет. Он, как ребёнок будет расти и развиваться вместе с поиском ошибок и взрослением самого проекта и когда-нибудь приблизится к вашему представлению об идеальном коде.

К чему ж ты клонишь, чудо-автор?

Да в общем-то к тому, что хочется донести до некоторых любителей вычитывать каждую строчку кода по 1000 раз простую истину:

если код работает и его можно читать, если можно поддерживать этот код не взрывая себе мозг — не надо доводить его до идеала!

Мало того. Через месяц вы глянете на свой идеальный контроллер и перепишите две трети кода. Того кода, который вы правили месяц, сорвали сроки, получили по шапке и… кроме вас этого никто не видел!

Всё. Виртуальными табуретками можно закидывать в комментариях. Жгите товарищи.

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *