Arduino и Raspberry Pi Новичок? Вот как написать чистый код

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

Написание чистого кода легче сказать, чем сделать.

Являетесь ли вы Arduino

тинкер, или вы строите Raspberry Pi

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

Быть последовательным

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

и переменные

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

Итак, какое соглашение об именах вы должны использовать?

Что ж, если вы пишете Python для Raspberry Pi, ответ ясен. Стандарт PEP-8 (барометр для хорошего, чистого кода Python) говорит, что имена переменных должны быть в нижнем регистре, с каждым словом, разделенным подчеркиванием. Например: gpio_input и влажность_сенсора_читания.

cleancode-Arduino

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

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

Напишите значимые комментарии

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

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

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

// update reading

Рассмотрите возможность написания:

// Update the number of times the laser beam has been broken, before tweeting it out

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

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

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

Упростите свой код

Когда вы учитесь развиваться в первый раз

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

Такие вещи, как троичные операторы, которые позволяют вам сжать логику «оператора if», такого как этот:


int x = 5;
if ( x < 10) {
y = 1;
{ else {
y = 0;
}

В одну строку, вот так:

int x = 5;
int y = (x < 10) ? 1 : 0;
printf("%i\n", y);

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

Руководство по стилю Arduino также рекомендует избегать указателей, операторов #define и типов данных, отличных от стандартных: логическое значение, тип char, байт, int, unsigned int, long, unsigned long, float, double, string, array и void. Вам следует избегать типов данных, таких как uint8_t, так как они используются реже, не описаны в документации и не слишком кратки.

Сделайте отступ и воспользуйтесь преимуществом пробела

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

cleancode-питон

На Arduino ничто не мешает вам писать неструктурированный, сжатый код. Это, в конечном счете, трудно читать и трудно поддерживать.

Но ничто не мешает вам лучше структурировать ваш код.

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

или Python. Эта статья от OpenSourceHacker более подробно объясняет, почему следует избегать клавиши табуляции.

cleancode-вкладка

Я обычно использую четыре пробела для каждого отступа, но общее число зависит от вас. Пока вы последовательны.

Однако вы можете настроить IDE и текстовый редактор так, чтобы каждая вкладка рассматривалась как определенное количество пробелов, что позволяет использовать клавишу табуляции без риска возникновения проблем. Если вы используете Sublime Text 2, ознакомьтесь с их официальной документацией. Если вы используете Vim, просто отредактируйте ваш файл .vimrc с этими строками. Редактор Arduino автоматически сделает это за вас и вставляет два пробела при каждом нажатии клавиши Tab.

Затем вам просто нужно знать, где сделать отступ для вашего кода. Как хорошее практическое правило, вы всегда должны делать отступ после каждого объявления функции и после каждого if, else, для, while, switch и case.

Многие редакторы имеют возможность делать отступы целым блокам кода одновременно. Если вы используете Sublime Text 2, вы можете настроить комбинацию горячих клавиш или нажатий клавиш. В противном случае вы можете использовать комбинацию по умолчанию, которая (в OS X) Cmd + [. В редакторе Arduino вы можете автоматически исправить отступы вашего файла, нажав Ctrl + T, в Windows и Linux, и Cmd + T, на OS X.

Это полностью зависит от вашего редактора, так что читайте руководство!

Не повторяй себя

Одна из важнейших мантр хорошей разработки программного обеспечения не повторяйся, который часто сокращается до DRY.

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

Лучший способ сохранить СУХОЙ заключается в свободном и щедром использовании функций - заключении повторяющейся задачи в блок кода, который вы можете вызывать снова и снова, - и обеспечении того, чтобы каждая из них была четкой и хорошо написанной.

cleancode сухой

Хорошая функция коротка; Руководство PEP-8 мало говорит о длине функций, но «Чистый код: Справочник по гибкому программному мастерству» Боба Мартина (настоятельно рекомендуется) гласит, что «функции вряд ли когда-либо будут иметь длину 20 строк». Желательно, чтобы они были даже короче.

Функции также должны делать только одно. Нужна функция, которая делает две вещи? Напишите две функции.

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

Быть явным

Еще одна важная мантра разработки программного обеспечения «Явное лучше, чем неявное». Это означает, что ваш код должен в значительной степени кричать, что он делает на первый взгляд. Руководство по стилю Arduino говорит, что подобной вещи следует избегать:

if(buttonPressed){
doSomething();
}

Скорее, вы должны сделать очевидным, что происходит. Вместо этого напишите что-то вроде этого:

if (buttonPressed == True){
doSomething();
}

Выйти и код (хорошо)

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

На эту тему есть много отличных материалов для чтения. Хорошей отправной точкой являются учебник по Arduino и руководства по стилю API, а также стандарт PEP-8, если вы создаете приложения Python для Raspberry Pi. Если вы используете другой язык (например, Javascript на доске Tessel

), проверьте Google для официального руководства по стилю.

Если вы ищете более академическое чтение по этому вопросу, ознакомьтесь с «Чистым кодом: Справочник по мастерству гибкого программного обеспечения» Боба Мартина. Я упоминал об этом ранее в этой статье, и это очень рекомендуется. Хотя он использует Java для иллюстрации концепций, многие идеи могут быть переданы на другие языки, такие как Python и C для Arduino.

Есть также несколько блестящих постов в Интернете, которые иллюстрируют, как написать хороший, наглядный, чистый код. Я рекомендую вам прочитать «Чистый высококачественный код: руководство о том, как стать лучшим программистом», написанное Арашом Араби для butterfly.com.au, и «Основы написания чистого кода» Криса Рейнольдса, написанное для webdevstudios. ком.

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

,

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

Есть ли у вас какие-либо советы по написанию чистого кода? Я что-то пропустил? Скажи мне! Оставьте мне комментарий ниже, и дайте мне знать.

Фото: Сухая кровать (Premasagar), Little TAB Key (Кай Хендри), 2015 (Wikilogia)

Ссылка на основную публикацию
Adblock
detector