Der R style guide von daqana ist online

Er ist eine Weiterentwicklung des tidyverse style guides (http://style.tidyverse.org/).

Was ist eigentlich ein style guide und wozu ist er gut?

Ein style guide – zu deutsch: Gestaltungsrichtlinie – gibt Programmierern Regeln vor, wie sie ihren Code gestalten sollen. Um zu funktionieren, muß der Code einer bestimmten Grammatik und Interpunktion folgen. Hierbei gibt es, wie auch in der normalen Sprache, gewisse Freiheiten.

In einem style guide werden Empfehlungen ausgesprochen, die diese Freiheiten mit dem Ziel der Vereinheitlichung einschränken. Teilweise sind die Empfehlungen für eine bestimmte Variante relativ willkürlich. Mitunter ist eine Variante aber in Bezug auf verschiedene Qualitätskriterien auch besser geeignet als eine andere. Diese Qualitätskriterien können etwa die Lesbarkeit und Verständlichkeit, aber auch die Leistungsfähigkeit (Schnelligkeit, Skalierbarkeit) des Codes betreffen.

Die Vorteile, die sich ergeben, wenn Programmierer einem gemeinsamen style guide folgen, sind also zum einen die Einhaltung von Qualitätsstandards, zum anderen ein einfaches Sich-zurecht-Finden im Code, auch wenn er von anderen oder gemeinsam geschrieben wird, und damit nicht zuletzt eine bessere Wartbarkeit und Erweiterbarkeit des Codes.

Warum wurde der tidyverse style guide als Vorlage benutzt und warum wurde er nicht 1:1 übernommen?

Das tidyverse umfaßt eine Menge Pakete, von denen viele es erleichtern, die Qualität der eigenen Analysen zu erhöhen, und die schnell sehr populär wurden. Grundlage für den tidyverse style guide ist neben dem „Google R style guide“ (https://google.github.io/styleguide/Rguide.xml) offensichtlich auch das ausgezeichnete Buch von Hadley Wickham zur Paketentwicklung („R packages“ http://r-pkgs.had.co.nz/).

Der tidyverse style guide umfaßt neben einem klassischen Kapitel zur Syntax auch Hinweise zur empfohlenen Praxis bei der Paketentwicklung. Diese breite Auffassung, wie auch die Expertise und die weite Verbreitung waren für uns die Gründe, den tidyverse style guide als Richtlinie für unsere tägliche Arbeit zu prüfen.

Tatsächlich stimmt der daqana style guide zu sehr großen Teilen mit dem tidyverse style guide überein. An einzelnen Stellen haben wir Erklärungen für bestimmte Entscheidungen hinzugefügt, insbesondere wo wir doch Änderungen vorgenommen haben. Dem Kapitel zur Pipe wurde ein Absatz vorangestellt, da ihre Nutzung eher kritisch gesehen wird. Ein kurzes Kapitel zu Unit Tests wurde eingefügt.

Der sichtbarste Unterschied ist, daß gute und schlechte Beispiele farblich hervorgehoben wurden, was unserer Auffassung nach die Nutzerfreundlichkeit erhöht. Wir haben uns außerdem bemüht, direkt an den entsprechenden Stellen Hinweise auf passende lintr-Funktionen (https://github.com/jimhester/lintr) anzugeben und stellen diese in der Datei daqana_linters.R zur Verfügung, so daß eine direkte Einbindung dieser linter im entsprechenden RStudio Add-In möglich ist.

Wir sehen den style guide nicht als abgeschlossenes Werk an, werden prüfen, wie er sich in unserem Alltag bewährt und planen für die Zukunft unter anderem eine Zusammenstellung von passenden styler-Funktionen  (https://github.com/r-lib/styler) analog zu den linters.

Hier ist also die erste Version des daqana R style guides. Viel Freude damit! https://www.daqana.org/dqstyle-r/