R kodunda değişkenleri ve fonksiyonları adlandırmak için hangi kuralları tercih ediyorsunuz?
Anlayabildiğim kadarıyla, hepsi kakofonik bir uyum içinde bir arada var olan birkaç farklı gelenek var:
1. Nokta ayırıcısının kullanımı, örn.
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Artıları: R topluluğunda tarihsel önceliğe sahiptir, R çekirdeğinde yaygın olarak görülür ve Google'ın R Stil Kılavuzu tarafından tavsiye edilir .
Eksileri: Nesne yönelimli çağrışımlara sahip Rife ve R yeni başlayanlar için kafa karıştırıcı
2. Alt çizgi kullanımı
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Artıları: Birçok programlama dilinde ortak bir kural; Hadley Wickham's Style Guide tarafından tercih edilir ve ggplot2 ve plyr paketlerinde kullanılır.
Eksileri: Tarihsel olarak R programcıları tarafından kullanılmaz; Emacs-Speaks-Statistics'deki ("ess-toggle-undercore" ile değiştirilebilir) "<-" operatörüne sinir bozucu bir şekilde eşlenmiştir.
3. Karışık büyük harf kullanımı (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Artıları: Çeşitli dil topluluklarında geniş çapta benimsenmiş gibi görünüyor.
Eksileri: Yakın zamanda bir emsali var, ancak tarihsel olarak kullanılmıyor (R tabanında veya belgelerinde).
Son olarak, yeterince kafa karıştırıcı değilmiş gibi, Google Stil Kılavuzunun değişkenler için nokta gösterimini, ancak işlevler için karışık büyük harf kullanımını savunduğunu belirtmeliyim.
R paketlerinde tutarlı stil eksikliği, birçok düzeyde sorunludur. Bir geliştirici bakış açısından, başkalarının kodunun bakımını ve genişletilmesini zorlaştırır (özellikle stilinin kendi tarzınızla tutarsız olduğu durumlarda). Bir R kullanıcısı bakış açısından, tutarsız sözdizimi, bir kavramın ifade edilme yollarını çarparak R'nin öğrenme eğrisini dikleştirir (örneğin, tarih döküm fonksiyonu asDate (), as.date () veya as_date () mi? Hayır, as. Date ()).
ImfDataTransformed
veya doğal genişletilmiş sürüm IMFDataTransformed
tercih ettiğim TOGGLEcamelCase kadar kolay okunamıyor: IMFdataTransformed
...
alllowercase
değişken adları ve düz-den denklemin çok kısa isimlerin bol (x
,y
vb.)