Я в сетях:

Облако тегов


Вопросы, которые должен задать себе каждый программист

Вопросы, которые должен задать себе каждый программист

Вернуться на главную

by root posted 30.10.2013 1005

Раздел: Жизнь программиста Теги: код, оптимизация, поддержка

После разработки нужно подумать и ответить для себя на следующие вопросы:

  • Как долго теперь у меня займёт переписывание и исправление?

  • Как мой код повлияет на работу сервера, когда он там окажется?

  • Как и насколько изменится использование ЦПУ/памяти/диска/сети?

  • Смогут ли другие понять этот код?

  • Достаточно ли прост мой код, чтобы другие смогли в него вникнуть и расширить?

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

Существуют также "ловушки", в которые очень часто попадаются еще неопытные программисты, да и опытные тоже:

 

  • Искажение в свою пользу — если всё хорошо — значит, это я так постарался. Если плохо — значит, накосячил кто-то другой.

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

  • Ретроспективное искажения — (говорят, это самое изученное явление в современной психологии) если произошло что-то неприятное (серьёзный баг, например), человек говорит «Я так и знал!». Люди склонны оценивать события прошлого проще, чем они были на самом деле. Если вы слышите «… они должны были...» или «… как они этого не учли, это же очевидно!», знайте — это ретроспективное искажение.

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

  • Ошибка планирования — этот проект займёт у меня не больше недели!

 

Не забываем также заповеди безличного программирования:

 

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

  • Твой код — это не ты. Весь смысл проверок — в поиске недочётов. И когда их найдут, не принимай это близко к сердцу.

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

  • Не переписывай код без обсуждения. Между исправлением кода и его переписыванием лежит тонкая грань. Пойми разницу, не меняй всё самостоятельно, добивайся изменений в рамках анализа кода.

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

  • Всё течёт, всё меняется. Будь открытым для изменений, принимай их с улыбкой. Воспринимай каждое изменение в требованиях, смену платформы или инструмента не как существенное неудобство, с которым нужно бороться, а как новое испытание.

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

  • Борись за то, во что веришь, но достойно принимай поражение. Пойми, иногда твои идеалы могут быть отвергнуты. Даже если ты прав, не пытайся отомстить и не говори «Я вас предупреждал». Не делай уже мёртвую идею своим лозунгом.

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

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

И никогда не забывайте поговорку: "Ничего не бывает таким вечным, как временное". Всегда делайте код совершенным, а если сомневаетесь, "перекопайте" интернет, обратитесь за помощью к коллеге, сообществу. Коддинг должен быть идеальным, ибо, делая его совершенным, вы совершенствуете себя как специалиста и аса своего дела.

Оригинал 

 

comments powered by Disqus