Google Research продемонстрировала программное обеспечение, которое будет проверять и переформатировать код R в соответствии с руководством по стилю Google R.
Этот проект обсуждался в докладе Энди Чена из Google Research на конференции пользователей R в этом году в Лос-Анджелесе.
R быстро становится основным языком для статистики и обработки данных в целом, и к нему нужно относиться серьезно, поскольку он часто используется для создания больших систем пользователями, которые в основном не являются программистами. В других языках есть программы «lint», предназначенные для удаления раздражающего «пуха», который затемняет смысл и ухудшает код — так почему бы не R?
Выступление Чена показало, как RLint был разработан Google для проверки и переформатирования кода R, предупреждения о нарушениях и, возможно, изменения макета для создания совместимого кода.
Элементы кода, на которые смотрит RLint, включают правильный интервал, выравнивание строк внутри скобок и другие нарушения стиля. Чен говорит, что RLint автоматически используется в Google как часть процесса экспертной оценки кода R.
Необходимость согласованного макета и формата кодирования в Google становится очевидной, если вы рассмотрите статистику, которую приводит Чен, утверждая, что в Google около 40 процентов файлов R модифицируются более чем одним программистом.
У Google есть руководство по стилю R, в котором указаны рекомендации по именованию идентификаторов; макет программы с точки зрения отступов и интервалов; как комментировать программу и как комментировать функции. Мера успеха, согласно руководству, заключается в том, что любой программист должен уметь мгновенно понимать структуру любого кода.
RLint был разработан на Python с целью минимизации накладных расходов на следование руководству по стилю. При использовании в Google все нарушения кода руководства по стилю отмечаются инструментом проверки кода, и нарушения должны быть исправлены до отправки кода.
Чен говорит, что Google поощряет авторов пакетов CRAN и других программистов R использовать этот инструмент. Он управляется из командной строки и работает в Linux, Unix, Mac или Windows.