Этот контрольный список поможет вам написать чистый и простой в управлении код Python.

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

Затем я обнаружил криптонит специалиста по данным.

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

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

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

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

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

1. Соответствует ли ваш синтаксис соглашениям Python?

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

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

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

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

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

В дополнение к правильному синтаксису и соглашениям Python вы должны убедиться, что используете уже существующие библиотеки. Такие библиотеки, как NumPy, Pandas, Matplotlib, TensorFlow, Seaborn, SciPy, Scikit-Learn и другие, отлажены и готовы к работе. Кроме того, они становятся стандартом, по которому работают многие компании, а это означает, что ваша команда получит большую выгоду, если вы начнете использовать предпочитаемые ими библиотеки.

2. Хорошо ли разработан код?

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

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

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

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

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

3. Читается ли ваш код?

Ваш код хорошо организован?

Ясно и лаконично?

Имеются ли переменные и функции осмысленные и соответствующие руководству по стилю имена?

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

Python печально известен тем, что дает своим пользователям гибкость для написания спагетти-кода, который практически не имеет ясности, краткости или организации.

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

Руководство по стилю — ваш лучший друг. Используйте его и время от времени освежайте в памяти его содержимое.



4. Написали ли вы документацию по коду?

Ваша документация по коду должна состоять из двух частей:

  1. Комментарии внутри кода с использованием правильных соглашений о комментариях Python.
  2. Вспомогательная документация, которая уточняет комментарии.

Каждый новый коммит кода должен включать как минимум эти три типа комментариев:

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

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

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


5. Оптимизирован ли ваш код для производственной среды?

Специалисты по обработке и анализу данных все больше несут ответственность за подготовку своего кода.

Это означает, что вам нужно задать себе эти вопросы, прежде чем вы зафиксируете свой код:

  1. Масштабируется ли ваш код в соответствии с его потребностями?
  2. Содержит ли ваш код профилировщики для создания отчетов?
  3. Был ли ваш код оптимизирован для работы с максимальной эффективностью?

На все эти вопросы можно ответить, помни несколько принципов Python:

  • Используйте профилировщик, который предоставляет постоянный поток статистики и информации о сбоях кода и производительности кода — это избавит вас от догадок при определении того, был ли ваш код оптимизирован.
  • Сохраняйте свой код легким, назначая и объявляя только те переменные и функции, которые необходимы для работы вашего кода — злоупотребление переменными и функциями требует ненужных ресурсов памяти и ЦП.
  • По возможности избегайте циклов, чтобы снизить нагрузку на серверы.
  • Напишите эффективный код, используя альтернативные функции, обеспечивающие повышенную производительность, такие как xrange() и join() , избегая глобальных переменных, не забывая использовать множественное присваивание, а также используя множества и объединения.

6. Ты все упростил, глупец?

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

Однако вы открываете себя миру боли, когда приходит время отладки и рефакторинга вашего кода.

Ключевым моментом здесь является запоминание старой аббревиатуры, с которой вы, вероятно, жили, когда только учились программировать:

Keep Яt Sпросто S глупо.

Эта аббревиатура — отличное напоминание о том, что каким бы впечатляющим ни было ваше однострочное решение для прогнозирования фондового рынка, это не самое простое и практичное решение.

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

7. Хорошо ли написано ваше сообщение о коммите?

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

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

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

Хитрость заключается в том, чтобы задать себе эти два вопроса перед отправкой коммита:

  1. Сможете ли вы понять сообщение коммита на следующий день после длинных выходных вдали от работы?
  2. Соответствует ли ваше сообщение коммита стандарту формата?

Это все, что нужно для написания хороших сообщений коммитов!

Совет для профессионалов. Используйте формат сообщения о фиксации, который позволит вам мгновенно понять, что включает в себя фиксация. Например, используйте префиксную метку или эмодзи (используя gitmoji) для представления типа фиксации, например:

  • [FEATURE] или ✨Этот коммит добавляет новую функцию в код.
  • [ОШИБКА] или 🐛 Этот коммит уведомляет об ошибке или исправляет ее.

Основные выводы

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

Подпишитесь, чтобы получать мои истории прямо на ваш почтовый ящик: Story Subscription

Пожалуйста, станьте участником, чтобы получить неограниченный доступ к Medium по моей реферальной ссылке (я буду получать небольшую комиссию без дополнительных затрат для вас): Medium Membership

Поддержите мое письмо, пожертвовав средства на создание большего количества историй, подобных этой: Пожертвовать