R:Оформление кода — различия между версиями
м (+Категория:R; +Категория:Оптимизация кода using HotCat) |
м |
||
Строка 1: | Строка 1: | ||
{{CC-BY-4.0|author=автором Артём Клевцов}} | {{CC-BY-4.0|author=автором Артём Клевцов}} | ||
+ | |||
+ | При совместной работе группы людей над одним проектом часто возникает необходимость в неких общих правилах оформления кода. Целью принятия и использования таких правил является упрощение восприятия программного кода человеком, минимизация нагрузки на память и зрение при чтении его чтении. | ||
+ | |||
+ | К сожалению, для языка R нет чётких правил оформления кода. В качестве источников таких правил обычно используется исходный код ядра R, в котором, правда, наблюдается весьма разнородные варианты оформления. Дополнительными источниками являются стандарты оформления кода, заимствованные из других языков программирования. | ||
+ | |||
+ | Одним из общих правил является необходимость придерживаться одного стиля в рамках одного проекта всего проекта. | ||
+ | |||
+ | == Названия файлов == | ||
+ | |||
+ | Общим требования к именованию файлов является написания расширений файла, включающего принадлежность к языку программирования R с большой буквы. Обратим внимание, что все UNIX-like операционные системы чувствительны к регистру в названиях файлов. Например: {{Inline-code|pulse-analyse.R, report.Rmw, presentation.Rmd|lang="bash"}}. Бинарный формат хранения данных имеет расширение {{Inline-code|.RData|lang="bash"}}. | ||
+ | |||
+ | Имена файлов содержат символы в нижнем регистре. | ||
+ | |||
+ | Для замены пробелов в названиях файлов обычно используются дефисы или нижние подчёркивания. | ||
+ | |||
+ | == Названия функций и переменных == | ||
+ | |||
+ | Существуют различные подходы | ||
+ | |||
+ | == Присвоение == | ||
+ | |||
+ | Для присвоения используется «<-» или «->», но не «=», который используется только для указания значения аргументов функций. | ||
+ | |||
+ | == Отступы == | ||
+ | |||
+ | Для отступов могут использоваться как пробелы, так и табуляция. Важно, чтобы отступы были везде одинаковыми, т.е. только пробелы или только табуляция. В [http://cran.r-project.org/doc/manuals/R-ints.html#R-coding-standards R coding standards] рекомендуется использовать 4 пробела для кода и 2 пробела для документации. | ||
+ | |||
+ | == Расстановка пробелов == | ||
+ | |||
+ | Пробелы ставятся '''до''' и '''после''' математических символов и бинарных или логических операторов: | ||
+ | * математические символы: «=», «+», «-», «*», «/»; | ||
+ | * операторы присвоения: «<-», «->» | ||
+ | * бинарные операторы: «%in%», «%%», «%/%»; | ||
+ | * логические операторы: «==», «!=», «&», «|», «<», «>», «<=», «>=». | ||
+ | |||
+ | Пробелы также ставятся '''после''' запятых. | ||
+ | |||
+ | Пробел ставятся '''после''' таких выражений как: {{Inline-code|if|lang="rsplus"}}, {{Inline-code|for|lang="rsplus"}}, {{Inline-code|while|lang="rsplus"}}. | ||
+ | |||
+ | Пробелы ставятся '''перед''' открывающейся фигурной скобкой - «{». | ||
+ | |||
+ | Пробел '''не''' ставится при объявлении или вызове функции: {{Inline-code|mean(x)|lang="rsplus"}}. | ||
+ | |||
+ | Пробелы также '''не''' ставятся между круглыми скобками: | ||
+ | |||
+ | <syntaxhighlight lang="rsplus"> | ||
+ | if ( (x == 1) & (y == 2) ) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Более корректно: | ||
+ | |||
+ | <syntaxhighlight lang="rsplus"> | ||
+ | if ((x == 1) & (y == 2)) | ||
+ | </syntaxhighlight> | ||
=== Ссылки === | === Ссылки === |
Версия 06:13, 1 февраля 2014
|
Материал «R:Оформление кода», созданный автором Артём Клевцов, публикуется на условиях лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная. | |
|
При совместной работе группы людей над одним проектом часто возникает необходимость в неких общих правилах оформления кода. Целью принятия и использования таких правил является упрощение восприятия программного кода человеком, минимизация нагрузки на память и зрение при чтении его чтении.
К сожалению, для языка R нет чётких правил оформления кода. В качестве источников таких правил обычно используется исходный код ядра R, в котором, правда, наблюдается весьма разнородные варианты оформления. Дополнительными источниками являются стандарты оформления кода, заимствованные из других языков программирования.
Одним из общих правил является необходимость придерживаться одного стиля в рамках одного проекта всего проекта.
Содержание
Названия файлов
Общим требования к именованию файлов является написания расширений файла, включающего принадлежность к языку программирования R с большой буквы. Обратим внимание, что все UNIX-like операционные системы чувствительны к регистру в названиях файлов. Например: Шаблон:Inline-code. Бинарный формат хранения данных имеет расширение Шаблон:Inline-code.
Имена файлов содержат символы в нижнем регистре.
Для замены пробелов в названиях файлов обычно используются дефисы или нижние подчёркивания.
Названия функций и переменных
Существуют различные подходы
Присвоение
Для присвоения используется «<-» или «->», но не «=», который используется только для указания значения аргументов функций.
Отступы
Для отступов могут использоваться как пробелы, так и табуляция. Важно, чтобы отступы были везде одинаковыми, т.е. только пробелы или только табуляция. В R coding standards рекомендуется использовать 4 пробела для кода и 2 пробела для документации.
Расстановка пробелов
Пробелы ставятся до и после математических символов и бинарных или логических операторов:
- математические символы: «=», «+», «-», «*», «/»;
- операторы присвоения: «<-», «->»
- бинарные операторы: «%in%», «%%», «%/%»;
- логические операторы: «==», «!=», «&», «|», «<», «>», «<=», «>=».
Пробелы также ставятся после запятых.
Пробел ставятся после таких выражений как: Шаблон:Inline-code, Шаблон:Inline-code, Шаблон:Inline-code.
Пробелы ставятся перед открывающейся фигурной скобкой - «{».
Пробел не ставится при объявлении или вызове функции: Шаблон:Inline-code.
Пробелы также не ставятся между круглыми скобками:
<syntaxhighlight lang="rsplus"> if ( (x == 1) & (y == 2) ) </syntaxhighlight>
Более корректно:
<syntaxhighlight lang="rsplus"> if ((x == 1) & (y == 2)) </syntaxhighlight>
Ссылки
- R Style. An Rchaeological Commentary - http://cran.r-project.org/web/packages/rockchalk/vignettes/Rstyle.pdf
- Google's R Style Guide - http://google-styleguide.googlecode.com/svn/trunk/Rguide.xml
- Style guide - http://adv-r.had.co.nz/Style.html
- The State of Naming Conventions in R - http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Baaaath.pdf
- R Coding Conventions (RCC) - http://www.aroma-project.org/developers/RCC