8 советов по стилю кодирования для программирования на R
R - это язык программирования с открытым исходным кодом, который широко используется в качестве статистического программного обеспечения и инструмента анализа данных. R обычно поставляется с интерфейсом командной строки. R доступен на широко используемых платформах, таких как Windows, Linux и macOS. Кроме того, язык программирования R - это новейший передовой инструмент. Программная инженерия - это не только изучение языка и создание программного обеспечения. Ожидается, что вы, как инженер-программист или разработчик программного обеспечения, напишете хорошее программное обеспечение . О хорошем программном обеспечении можно судить, прочитав какой-нибудь фрагмент кода, написанный в проекте.
Если код легко понять и легко изменить, то это определенно хорошее программное обеспечение, и разработчики любят над этим работать. Для начинающего программиста на языке R будет хорошей идеей освоить передовой опыт программирования и начать его использовать. У Google и R-гуру Хэдли Уикхема есть отличные советы по руководству по стилю кодирования R. Список содержит то, что делать и чего не делать при программировании на R. Итак, в этой статье мы обсудим шесть советов по стилю кодирования, которые помогут вам стать лучше программистом на языке R.
1. Комментирование
Часто разработчики используют комментарии, чтобы указать цель строки в своем коде. Это правда, что комментарии действительно помогают объяснить код, что он делает, но они также требуют более тщательного обслуживания кода. Иногда это очень важно, например ... если вы имеете дело со сторонним API, где вам нужно объяснить какое-то поведение, можно использовать комментарии для объяснения кода, но не писать комментарии там, где это не нужно. Поэтому в программировании на R всегда начинайте комментировать строку с символа комментария # и одного пробела . Хэдли Уикхэм предлагает использовать оставшиеся закомментированные строки с помощью - и =, чтобы разбить файл на легко читаемые фрагменты. Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
р
# Read table ---------------------------------- # Read table ================================== |
2. Переуступка
R имеет необычный оператор присваивания «<-» вместо знака «=». Поэтому рекомендуется использовать знак «<-» вместо знака «=» . Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
р
# Good Practice x <- 10 |
Плохая практика:
р
# Bad Practice x = 10 |
3. Имена файлов
Имя файла должно быть значимым и заканчиваться на '.R' . Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
R
# Good Practice fit-models.R linear-regression.R |
Плохая практика:
р
# Bad Practice models.R stuff.R |
Если файлы необходимо запускать по порядку, поставьте перед ними номера, как показано ниже:
р
0-fit-models.R 1-linear-regression.R 2-neural-network.R |
4. Имена объектов
“There are only two hard things in Computer Science: cache invalidation and naming things.”
— Phil Karlton
Имена переменных и функций должны быть в нижнем регистре . Используйте знак подчеркивания «_» для разделения слов в имени. Как правило, имена переменных должны быть существительными, а имена функций - глаголами. Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
р
# Good Practice number_of_students get_price |
Плохая практика:
р
# Bad Practice GetPrice getprice |
5. Интервал
Поместите пробелы вокруг всех инфиксных операторов ( =, +, -, <- и т . Д.). То же правило реализуется при использовании = в вызовах функций. Всегда ставьте пробел после запятой и никогда раньше. Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
р
# Good Practice perimeter_of_rectangle = 2 (length + width), na.rm = TRUE ) |
Плохая практика:
р
# Bad Practice perimeter_of_rectangle= 2 (length+width),na.rm= TRUE ) |
Есть небольшое исключение из этого правила, например, в случае, если :, :: и ::: не нужны пробелы вокруг них. Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
р
# Good Practice x <- 1:20 value::real |
Плохая практика:
р
# Bad Practice x <- 1 : 20 value :: real |
Перед левыми скобками ставьте пробел, за исключением вызова функции. Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
р
# Good Practice if (yes) do (x) run (x, y) |
Плохая практика:
р
# Bad Practice if (yes) do (x) run (x, y) |
Не помещайте пробелы вокруг кода в круглые или квадратные скобки, кроме запятой. Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
р
# Good Practice student[1, ] |
Плохая практика:
р
# Bad Practice # Needs a space after the comma student[1,] # Put space after comma not before student[1 ,] |
6. Фигурные скобки
Открывающая фигурная скобка никогда не должна выходить на отдельную строку, и за ней всегда должна следовать новая строка. Закрывающая фигурная скобка всегда должна располагаться на отдельной строке, если за ней не следует else. Всегда заключайте код в фигурные скобки. Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
р
# Good Practice if (x > 0 && foo) { cat ( "X is positive" ) } if (x == 0) { log (a) } else { a ^ x } |
Плохая практика:
р
# Bad Practice if (x > 0 && foo) cat ( "X is positive" ) if (x == 0) { log (a) } else { a ^ x } |
Можно писать очень короткие операторы в одной строке, как показано ниже:
р
# Good Practice if (x > 0 && foo) cat ( "X is positive" ) |
7. Длина линии
Попробуйте ограничить код до 80 символов в строке. Это удобно разместить на печатной странице с помощью шрифта разумного размера.
8. Отступ
Делая отступ в коде, используйте два пробела . Никогда не используйте табуляции и не смешивайте табуляции и пробелы. Единственное исключение - если определение функции занимает несколько строк. В этом случае сделайте отступ во второй строке до начала определения. Пожалуйста, обратитесь к приведенному ниже фрагменту кода:
Хорошая практика:
р
# Good Practice function_name <- function (a = "a long argument" , b = "another argument" , c = "another long argument" ) { # As usual code is indented by two spaces } |