Оставьте свой контактный номер телефона и мы ответим на все вопросы!
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности.
ЛОВУШКИ ПРОГРАММИРОВАНИЯ:
ул. Нижний Вал 19е, 3 этаж, Киев

(063) 820-35-42
(095) 053-22-96
(067) 618-69-19

info@kit.center
КАК ПОНЯТЬ И НЕ ПОПАСТЬ ?
Попробуйте представить, что вас угораздило попасть в яму. Предположим, глубиной в несколько метров. Вы, наверняка, из нее сможете выбраться, если будете очень стараться, карабкаясь наверх. По этой же аналогии, можно наткнуться в «ловушку программирования». Но здесь все обстоит немного иначе. «Яма» будет глубиной приблизительно метров в 50, и, к тому же, накрыта бетонной крышкой. Представили? А теперь давайте разберемся, насколько долго вы пробудете в ней. Предположительно, до тех пор, пока кто-нибудь не вызволит вас из «плена». В программировании эти самые ловушки немного иного характера.

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

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


Ловушка 1. Оптимизация

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

Как понять, что вы в ловушке?

• стремление моментально писать быстрый и несложный код, который сам по себе не станет требовательным к ресурсам;
• желание «выжать» из кода все, нанося ущерб другим критериям;
• если вы свято верите, что любая оптимизация, проведенная заранее, была лишней; если постоянно откладываете ее на потом.

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


Ловушка 2. Излишняя сложность

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

• пишете универсальный фреймворк до воплощения базовых функциональных параметров;

• верите в то, что любая проблема решается методом использования паттерна.

Ловушка 3. Максимальная простота
Эта ошибка заключается в том, что программист стремится как можно больше все упростить. Знакомо? Новички в этой области зачастую создают код, который является невыразительным (его можно было бы переписать, с использованием встроенных языковых инструментов или каких либо библиотек/фреймворков, таким образом, пытаясь сделать его короче, эффективнее.

Как понять, что вы в ловушке? Здесь, зачастую, сложно определить. Ведь все зависит от языка программирования, задач, и многих иных понятий и факторов. Но определенные параметры выделить возможно, а именно:

• вы намеренно не замечаете того, что может явно улучшить ваш код.;

• убеждены в том, что возможности языка, которые не используются вами, и не нужны вовсе (да, есть и такие программисты).

Ловушка 4. Перфекционизм

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

Это о вас? Тогда старайтесь не впадать из крайности в крайность, а находить во всем баланс. Это и станет выходом.

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

Ловушка 5. Инструменты и технологический аспект

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

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

Ловушка 6. Вы трудоголик?

Да, программирование — это не легко. Но если человек стал на этот путь, он знал, на что идет. Если вы не можете остановиться в написании все новых и новых кодов, изобретении каких либо библиотек и прочего без особых на то причин; игнорируете автодополнение; убеждены в том, что отладчики и профилировщики не нужны, считайте себя именно трудоголиком (что тоже плохо в какой-то мере).

Что можно сделать?

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

• Попробуйте повысить свою продуктивность с помощью современных инструментов, но не зависьте от них.


Ловушка 7. Кроссплатформенность

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

Такие программисты в основном не любят любой код, который написан только для одной платформы.

В чем сложность? Здесь важно не связывать код с единственной платформой заведомо, а также быть готовыми к возможным изменениям части кода (если этого будет требовать ситуация) или же полностью переписать определенную версию заново для некоторых платформ/ОС.
Это лишь одни из основных ошибок, допускаемых программистами во время своей работы. Никогда не поздно учиться и совершенствоваться. Пишите код осознанно. А знание проблемы это уже половина ее решения. Поэтому, из всего можно сделать краткий вывод: все хорошо в меру.