9 привычек неумелого разработчика

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

Будьте скромнее

Выстраивание и проектирование хорошего кода  —  это не мифический недостижимый идеал, а лишь то, над чем нужно постоянно работать. Необходимо четко понимать, какие качества делают программиста хорошим.

Мы всегда ищем способы сделать код лучше и отточить свои навыки. Большинство людей не могут закрепить в сознании то, что именно делает программиста неуспешным. Какие привычки незаметно преграждают путь к хорошо продуманному и эффективному коду? Эти самые привычки являются тем, что отдаляет человека от становления специалистом.

Поэтому, чтобы стать по-настоящему профессионалом, для начала нужно понять те привычки и тонкости, которые мешают развиваться в правильном направлении. Первым шагом к пониманию сути является признание и осознание проблемы. Для этого стоит развивать в себе самопознание и скромность в своих навыках.

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

1. Написание кучи бесполезных комментариев к коду

Если человеку приходится сопровождать каждую свою строчку кода комментарием, значит он делает что-то не так.

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

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

2. Написание слишком длинных функций

Если написанные вами функции тянутся на 15–20 строк кода, значит они выполняют слишком много задач. Это создает тесную связь между логикой приложения и тем, как его код становится неспособным к расширению.

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

3. Нерегулярное тестирование кода

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

4. Следование совету “работает  —  не трогай”

Это, возможно, самый плохой совет, который только можно дать программисту  —  такое мышление лишь принесет с собой много других проблем, с которыми можно столкнуться при написании кода. Если что-то работает, то это лишь первый готовый набросок. Как и в случае с любым наброском, его следует исправлять и дорабатывать, чтобы прийти к наиболее правильному и оптимальному решению.

5. Отказ от использования имеющихся ресурсов

Многих программистов раздражает, что иногда их товарищи задают такие простые вопросы, ответ на которые можно было бы найти за пару секунд в Google или в документации.

Сейчас существует такое невероятное количество информации, и нам даны, казалось бы, нескончаемые ресурсы для поиска решений наших задач. Чтобы начать разбираться в разных вещах, следует потрудиться и потратить время на исследование проблемы. Поиск решения  —  важнейший навык, который должны развивать все программисты, желающие достичь успеха.

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

6. Неспособность документировать изменения

Этот совет не означает, что нужно комментировать все подряд, как уже было сказано выше, однако все равно очень важно уметь записывать внесенные изменения. Довольно легко потеряться в потоке данных, если никогда не записывать изменения и затем забыть, что уже было сделано. Это не то положение, в котором вам захочется оказаться.

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

7. Неумение использовать интуитивные или конкретные правила наименования

К сожалению, довольно часто можно увидеть, как программисты до сих пор используют переменные вроде i, j, k, z, num или какие-нибудь аббревиатуры, которые не привносят никакого понимания в суть переменной. 

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

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

8. Написание повторяющегося кода

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

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

9. Накопление знаний

У вас есть выбор стать либо тем, кто делится знаниями, либо тем, кто их собирает. Быть вторым вариантом намного хуже.

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

Люди не зря работают в командах. Необходимо делиться знаниями не только для того, чтобы повысить навыки своих коллег, но и чтобы увидеть проблему с разных точек зрения и предложить свои решения на этот счёт. Слаженная командная работа необходима для успеха в любой поставленной задаче.

Заключение

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

Если вы будете думать о том, что пишете, то сможете стать профессионалом.

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Zachary Minott: The 9 Habits of Highly Ineffective Programmers

Предыдущая статьяМемоизация как средство ускорения веб-приложений
Следующая статьяПочему Dockerfile больше не нужен для создания контейнера в Go