Statická analýza kódu pro R

Defenzivní programování v R

Dr. Colin Gillespie

Jumping Rivers

Balíček lintr

  • lintr je R balíček pro statickou analýzu kódu
    • Kontroluje dodržování
      • daného stylu
      • syntaktických chyb
      • možných sémantických problémů

Podobně jako fungují kontroly pravopisu

Defenzivní programování v R

Použití lintr

Použití lintr

  • Kód uložíme do souboru
  • Soubor předáme funkci lint()
Defenzivní programování v R

Lintr v akci

Předpokládejme následující kód

my_bad<-function(x, y) {
  x+y
}

uložený v souboru code.R.

  • Spuštění lintr::lint("code.R") odhalí dva problémy
Defenzivní programování v R

Problém 1

my_bad<-function(x,y) {
  x+y
}
r[[1]]
tmp.R:1:7: style: Put spaces around all infix operators.
my_bad<-function(x,y) {
     ~^~~
my_bad <- function()
Defenzivní programování v R

Problém 2

my_bad<-function(x,y) {
  x+y
}
r[[3]]
tmp.R:2:4: style: Put spaces around all infix operators.
  x+y
  ~^~
 x + y
Defenzivní programování v R

Lintr v praxi

Defenzivní programování v R

Preparing Video For Download...