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 становится еще приятнее.

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

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

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

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