Существует возможность писать чистый код, соблюдать график, сдавать продукт вовремя и расти по карьерной лестницы. Костыли, велосипеды, бесполезный рефакторинг — это лишь верхушка айсберга вредных привычек, которые мешают эффективно программировать. В этой статье мы поговорим о том, как превратить вредные привычки в полезные. И которые позволят эффективно создавать продукт и развиваться.
Не зря на ироничном гербе программистов отображены наиболее вредные практики в разработке: костыли и велосипеды, которые используют программисты. Кроме этих инструментов грязного кода существуют и другие вредные привычки, которые мешают работе программистов, снижают качество продукта и сказываются на его дальнейшей эксплуатации и усовершенствовании.
Костыли
Ничего страшного в использовании столь не изящного инструмента как костыли нет, особенно если давят сроки релиза и требуют продуктовые характеристики программы. При этом стоит помнить, что в долгосрочной перспективе костыли могут теряться, а при расширении продукта ломаться. Если есть возможность, пишите универсальный код, если нет, то протестируйте, отладьте костыль, объясните в группе ваше решение.
Велосипед
Уникальные коды хороши на собеседовании при устройстве на работу, когда вы хотите показать, что вы гений программирования. На работе при четко поставленной задаче и сроках ее реализации — это впустую потраченное время и логическая бомба в продукте. Нельзя позволить, чтобы ваши треугольные колеса подорвали бэкэнд, а затраченное время сорвало релиз продукта. Поэтому обязательно проверяйте, существует ли готовое решение для подобной задачи. Используйте мануалы и библиотеки.
Неоправданный рефакторинг
Желание получить идеальный код может привести в замкнутый круг непрерывных улучшений фрагмента кода и топтанию на одном месте. Вы тратите 80% ресурсов, чтобы код стал более понятным, и при этом получаете 20% результата (закон Парето). По итогу продукт сдан после дедлайна. Вряд ли после этого вам начальство скажет спасибо за изящно написанный код.
Поэтому определите для себя лимит времени на рефакторинг, после которого вы можете сказать, что сделали все как можно лучше, и заняться дальнейшей разработкой продукта. Если соблазн велик, пообещайте себе, что когда вновь столкнетесь с этим кодом, вы найдете более эффективное решение для его оптимизации.
Все вышеперечисленные привычки связаны с техническим написанием кода, но кроме этого существуют паттерны, которые формируют образ жизни и мешают вашему развитию.
Нежелание следовать трендам
Информационные технологии — одна из стремительно развивающихся отраслей экономики. В этой отрасли регулярно появляются новые решения, фреймворки, инструменты, технологии, позволяющие более эффективно создавать программные продукты. Поэтому, если вы не следите за трендами, не изучаете новые решения и методы, очень скоро ваша востребованность на рынке как программиста сведется к нулю. Ведь не зря компании ценят специалистов, которые непрерывно обучаются.
Поэтому важно быть в курсе всех трендов, для этого постоянно изучайте сайты по своей специальности, блоги и литературу по программированию, посещайте конференции и другие тематические мероприятия, обсуждайте решение новых задач с коллегами и единомышленниками, выступайте со своими решениями на митапах.
Продумывать весь процесс разработки
Попытки все просчитать от начала и до конца приводят к тому, что в голове как бы все складывается в логическую цепочку, а на практике рассыпается как карточный домик. В результате время потеряно, работа не сделана.
Поэтому действовать лучше всего небольшими итерациями. Разбивайте сложную задачу на мелкие подзадачи. Продумал одну подзадачу, реализовал ее в коде, понравилось, оставил, не понравилось, ищите другое решение.
Использовать только одно решение
Пытаться улучшить код, даже если видишь, что он нерабочий — значит тратить огромное количество времени и энергии впустую. Настойчивость замечательное качество, но в данном случае речь идет об упрямстве и отсутствии гибкости. С каждой попыткой улучшить нерабочий код все тяжелее будет отказаться от желания решить эту задачу. В результате — несоблюдение дедлайна, негативные эмоции и подведенная команда. Во избежание данной ситуации запускайте сразу несколько вариантов решений.
Обучаться без практики
Некоторые программисты настолько любят учиться, что забывают, для чего они это делают. Они бездумно впитывают все доступные знания: ходят на курсы и читают блоги, сайты, литературу по своей профессиональной деятельности, при этом не растут как специалисты. Их голова наполнена бесполезной теорией, которую они не умеют применять на практике. В результате задачи они решают по старинке и показывают низкую результативность в команде.
Способность усваивать новую информацию у человека ограничена, поэтому целесообразно изучать лишь те области, которые вы можете использовать для решения текущих задач, либо тех, которые появятся в перспективе. Любое полученное знание необходимо использовать на практике.
Нежелание разбираться в основах
Незнание алгоритмов и структур данных не позволит эффективно пользоваться готовыми решениями и улучшать свой код. Осведомленность о наличии различных базовых алгоритмов, понимание их работы, позволит видеть сильные и слабые стороны своих решений, а также ускорят работу над кодом.
Немаловажным качеством хорошего программиста является возможность правильно выбирать структуры данных – это обеспечит быстродействие продукта.
Неготовность работать в команде
Есть отдельная категория программистов, которые считают себя гениями, никому не доверяют и стараются все сделать самостоятельно. При этом закрыть все задачи проекта он не в состоянии и работа над проектом идет медленно, а зачастую и со срывом сроков. В результате такой человек не растет как специалист, поскольку его нельзя заменить, ведь никто не знает специфику продукта.
Поэтому важно поддерживать отношения с коллегами, несмотря на издержки работы в команде, это делает работу над проектом более эффективной и рост по карьерной лестнице более легким.
Выбирайте то, что полезно
Вы можете заявить, что эти привычки никак не мешают вам эффективно программировать и расти в карьере и зарплате. Но задайте себе вопрос, помогают ли они вам, делают чище код или дают возможность развиваться? Скорее всего, нет. Вы можете выбирать, на что вам тратить свою энергию: на вредные привычки, которые тормозят ваш рост и ухудшают качество продукта, или полезные действия, которые помогают вам в повышении уровня профессионализма и способствуют вашему развитию.
Комментарии
Бла-бла-бла... Советы без примеров -- это ... Не могу даже подобрать эпитет.
Очень умилил совет не тратить время на нерабочий код, ибо дедлайн.
А совет строить дом мелкими порциями и смотреть, что получается, -- вообще шедеврально!
Воистину самоё лёгкое в жизни -- дать совет и помочиться в душе.
Оценку за опус не ставлю.
М-м-да. "Глубокомысленный" материал.