Share This
Связаться со мной
Крути в низ
Categories
//5 ошибок, снижающих продуктивность Python-разработчика

5 ошибок, снижающих продуктивность Python-разработчика

15.07.2021Category : Python

Перевод статьи «Productive Python development: How to tackle 5 common issues».

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

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

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

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

5 oshibok snizhajushhih produktivnost python razrabotchika 4356601 - 5 ошибок, снижающих продуктивность Python-разработчика

1. Перестаньте делать то, что за вас может сделать компилятор

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

По какой-то причине (возможно, в силу динамической природы Python или “скриптового” статуса, который когда-то за ним закрепился) не часто встретишь разработчика, использующего статический анализатор кода или линтер.

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

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

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

Совет. Используйте статические анализаторы кода, такие как Pyflakes.

2. Избегайте излишнего обсуждения стиля кода

В вашей команде есть процедура код-ревью? Отлично! Но будьте внимательны: неопытные ревьюеры часто совершают ошибку, чересчур заостряя внимание на том, что можно доверить автоматическим инструментам. Я имею в виду вопросы к стилистике кода.

Вместо обсуждения более важных вопросов команда начинает обсуждать пропущенные пробелы и то, что имена классов написаны не в camel case. Все это — напрасная потеря времени, которой можно избежать. Для этого нужно пользоваться стандартами (например, PEP 8 или Google’s Python Style Guide), а также автоматизированными инструментами, которые будут проверять стиль на соответствие данным стандартам.

Я рекомендую следовать стандарту PEP 8 в комбинации с Pycodestyle или flake8. Это поможет избежать споров о стиле (по большей части) и позволит вашей команде сфокусироваться на действительно важных вещах.

Совет. Выберите себе стандарт стиля кода (например, PEP 8) и обеспечьте его принудительное применение при помощи специальных инструментов.

3. Не теряйте концентрацию

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

Что касается разработчиков, ожидание, пока инструменты выполнят свою работу, — часть рабочей рутины. Мы постоянно в ожидании установки какого-то модуля или окончания тестирования. Разумеется, мы не бросаем работу после нескольких секунд (минут) “простоя”, в конце концов, это ее часть.

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

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

Предположим, нам регулярно приходится ждать окончания выполнения какой-то задачи, и эта задержка составляет 1 секунду на 10 секунд работы. Сложив все задержки, нетрудно подсчитать, что за неделю мы теряем приблизительно полдня продуктивной работы, 2 дня за месяц и целый месяц за год.

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

Совет. Инструменты должны быть быстрыми и удобными. Отдавайте предпочтение простоте.

5 oshibok snizhajushhih produktivnost python razrabotchika 2145988 - 5 ошибок, снижающих продуктивность Python-разработчика

4. Работайте в среде разработки, которая вам нравится

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

Какой инструмент приходит вам в голову первым, когда речь идет о разработке? Для меня это мой редактор кода (IDE). Может, для кого-то куда важнее почтовое приложение или мессенджер для общения с командой, но надеюсь, что большую часть своего дня вы все же занимаетесь кодом. А значит, имеет смысл уделить самое пристальное внимание выбору среды разработки. Ваша продуктивность зависит от этого.

Для Python-разработчиков есть много разных редакторов и IDE, например Vim, Emacs, PyCharm, Wing IDE, Atom, Eclipse PyDev, Sublime Text.

Я потратил много времени на выбор и настройку среды разработки. Перепробовав некоторое количество IDE, я остановился на Sublime Text. Мне по душе его скорость, простота и надежность.

Вы можете выбрать IDE на свой вкус и под свои специальные нужды. Просто попробуйте несколько, и какая-нибудь наверняка вам понравится.

Совет. Найдите свой редактор кода и настройте его по своему вкусу.

5. Не экономьте на том, что действительно важно

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

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

Лицензия стоила $70. Вообще мне нравятся бережливые люди, но это было просто смешно! В попытке сэкономить на критически важном инструменте этот разработчик тратил намного больше $70 за счет ежедневной потери продуктивности из-за назойливого сообщения.

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

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

Совет. Инвестируйте в инструменты, которые сделают вас счастливее и эффективнее.

С чего мне начать?

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

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

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

Хорошая среда разработки делает вас увереннее и продуктивнее. Когда вы чувствуете себя как дома, разработка на Python становится еще приятнее.

  • 3 views
  • 0 Comment

Leave a Reply

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close