0Pricing
R Academy · Ders

Açıklamalar, Stil ve Okunabilirlik

tidyverse stil kılavuzunu izleyerek temiz ve belgelenmiş R kodu yazın.

Açıklamalar, Stil ve Okunabilirlik, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.

# ile Tek Satırlık Açıklamalar

R'de # karakteri bir açıklama başlatır. # karakterinden satırın sonuna kadar olan her şey yorumlayıcı tarafından yok sayılır. Açıklamalar insanlar içindir; yalnızca ne yapıldığını değil, neden yapıldığını açıklayın.

# This is a comment — R ignores it completely
x <- 42   # inline comment after code

# Bad comment (states the obvious):
y <- y + 1   # add 1 to y

# Good comment (explains intent):
y <- y + 1   # shift index to 1-based for output display

cat('x =', x)

------ ile Bölüm Başlıkları

Yaygın olarak benimsenen bir R kuralı, açıklama metninin ardından en az dört tire, eşittir işareti veya diyez işareti ekleyerek bölüm başlıkları oluşturmaktır. RStudio bunları tanır ve kolay gezinme için belge ana hatlarına ekler.

# Data Loading -------------------------------------------------------

# This section loads raw CSV files from the data/ folder

# Data Cleaning =======================================================

# Remove duplicates and fix missing values

# Modeling ############################################################

# Fit linear model and evaluate

cat('Section headers improve navigation')

snake_case Adlandırma Kuralı

tidyverse stil kılavuzu, tüm nesne adları için snake_case kullanımını önerir: alt çizgilerle ayrılmış küçük harfli sözcükler. Tutarlılık için noktalardan (diğer dillerde yöntem çağrılarını andırır) ve camelCase kullanımından kaçının.

# Good: snake_case
user_age <- 25
monthly_revenue <- 15000
calculate_mean <- function(x) mean(x)

# Avoid: dots in names (looks like OOP method calls)
user.age <- 25       # confusing

# Avoid: camelCase (inconsistent with tidyverse)
userAge <- 25

# Avoid: ALL_CAPS (reserved for true constants by convention)
MAX_RETRIES <- 3     # acceptable for config constants only

cat('snake_case wins')

İşleçlerin Çevresinde Boşluklar

Atama ve karşılaştırma işleçlerinin çevresine her zaman boşluk koyun. Bu, okunabilirliği büyük ölçüde artırır. Tek istisna, = işaretinin bağımsız değişken adlarını bağladığı işlev bağımsız değişkeni listelerinin içidir.

# Good: spaces around <- and operators
x <- 10
y <- x + 5
result <- x * y - 2
is_valid <- x > 0 & y < 100

# Bad: cramped
x<-10
y<-x+5

# Function arguments: = without extra spaces is fine
mean(x = c(1, 2, 3), na.rm = TRUE)

# Comparison operators also need spaces
if (x > 0) cat('positive')
if (x >= 0 & y <= 100) cat('in range')

Atama için = Değil <- Kullanın

R, üst düzeyde atama için = kullanımına izin verse de toplulukta yerleşmiş güçlü kural, nesne ataması için <- kullanmak ve = işaretini yalnızca işlev bağımsız değişkeni değerlerine ayırmaktır. Bu ayrım, kodu ilk bakışta okumayı çok kolaylaştırır.

# Correct: <- for assignment
name <- 'Alice'
score <- 95.5
results <- c(1, 2, 3)

# Correct: = inside function calls
round(3.14159, digits = 2)
read.csv('data.csv', header = TRUE, sep = ',')

# Avoid: = for top-level assignment
# name = 'Alice'   <- works but not idiomatic

cat('Assignment convention:', name, score)

80 Karakterlik Satır Sınırı

Satırları 80 karakterin altında tutmak, kodun bölünmüş bölmeli düzenleyicilerde, yazdırılmış sayfalarda ve kod inceleme araçlarında okunabilir olmasını sağlar. RStudio'da Araçlar → Genel Seçenekler → Kod → Görüntüle yoluyla 80. sütunda kenar boşluğu kılavuzunu görüntüleyebilirsiniz.

# Bad: one very long line (hard to read)
result <- some_function(argument_one = 'value', argument_two = 100, argument_three = TRUE, argument_four = 'long_string')

# Good: break at commas, indent continuation
result <- some_function(
  argument_one   = 'value',
  argument_two   = 100,
  argument_three = TRUE,
  argument_four  = 'long_string'
)

cat('Readable at 80 chars')

Noktalı Virgül Kullanmayın

JavaScript veya C'nin aksine R, ifadelerin sonunda noktalı virgül kullanılmasını gerektirmez. Noktalı virgüller tek satıra birden fazla ifade yazmak için kullanılabilir; ancak stil kılavuzu şunu söyler: satır başına bir ifade, noktalı virgül yok.

# Bad: semicolons and multiple statements per line
x <- 1; y <- 2; z <- x + y

# Good: one statement per line
x <- 1
y <- 2
z <- x + y

# The semicolon form is only acceptable in very short
# interactive throwaway code, never in scripts
cat('z =', z)

Okunabilir Değişken Adları

Aşırı uzun olmadan açıklayıcı adlar seçin. İyi bir kural şudur: Altı ay sonra bir değişken adını anlamak için bir saniyeden uzun düşünmeniz gerekiyorsa ad çok kısa veya çok anlaşılmazdır.

# Too cryptic:
d <- read.csv('data.csv')
tmp <- d[d$v1 > 0, ]
r <- lm(v2 ~ v1, data = tmp)

# Good names:
sales_data    <- read.csv('data.csv')
positive_rows <- sales_data[sales_data$revenue > 0, ]
revenue_model <- lm(profit ~ revenue, data = positive_rows)

# Avoid abbreviations that are not universally understood:
# n_obs is fine (number of observations)
# nrv is not (nobody knows what this is)

cat('Names tell the story')

Süslü Ayraçlar ve Girintileme

tidyverse stil kılavuzu şunu belirtir: açılış ayracı { aynı satırda, kapanış ayracı } kendi satırında olmalıdır. Girinti için sekme yerine 2 boşluk kullanın. Tutarlı girintileme, iç içe mantığı okumak için kritik öneme sahiptir.

# Good style: brace on same line, 2-space indent
if (x > 0) {
  cat('positive\n')
} else {
  cat('non-positive\n')
}

# Good function definition:
calculate_bmi <- function(weight_kg, height_m) {
  bmi <- weight_kg / height_m^2
  round(bmi, 1)
}

cat('BMI:', calculate_bmi(70, 1.75))

Köşeli Ayraçların ve Virgüllerin İçinde Boşluk

Her virgülden sonra (İngilizce yazımda olduğu gibi) bir boşluk bırakın; ancak virgülden önce veya köşeli ayraçların hemen içinde boşluk bırakmayın. Bu, matematiksel gösterimi yansıtır ve dizinlemeyi okumayı kolaylaştırır.

# Good: space after comma, not before
x <- c(1, 2, 3, 4, 5)
m <- matrix(1:9, nrow = 3, ncol = 3)

# Subsetting: no space before [ or inside []
first_row <- m[1, ]      # good
value     <- m[2, 3]    # good

# Bad:
# c(1,2,3)     <- no space after comma
# m[ 1, ]      <- space after [
# m[1 , ]      <- space before comma

cat('Spacing is consistent')

styler ve lintr Kullanımı

R'de stil kurallarını otomatikleştiren iki araç vardır. styler, kodunuzu tidyverse stil kılavuzuna uyacak şekilde yeniden biçimlendirir. lintr, kodunuzu çalıştırmadan stil ve olası hatalar açısından statik olarak denetler. Her ikisi de RStudio ile bütünleşir.

# styler: reformat a file automatically
# install.packages('styler')
# styler::style_file('my_script.R')

# styler: reformat the whole project
# styler::style_dir('R/')

# lintr: check for style and potential bugs
# install.packages('lintr')
# lintr::lint('my_script.R')

# lintr reports issues like:
#   line 10: [object_name_linter] Variable 'myVar' should use snake_case
#   line 15: [spaces_around_ops_linter] No space before '<-'

cat('Style tools: styler + lintr')

Hızlı Kontrol

tidyverse stil kılavuzuna göre aşağıdakilerden hangisi R'de bir atama ifadesi yazmanın doğru yoludur?

Stil ve Okunabilirlik — Temel Çıkarımlar

İyi biçimlendirilmiş R kodu profesyonel, sürdürülebilir ve iş birliğine uygundur:

  • Açıklamalar için # kullanın; yalnızca ne yapıldığını değil, neden yapıldığını açıklayın
  • Gezinme için ------ veya ====== ile bölüm başlıkları kullanın
  • Tüm nesne ve işlev adlarında snake_case kullanın
  • <-, +, == vb. işleçlerin çevresinde boşluk bırakın
  • Atama için <-, yalnızca işlev bağımsız değişkenlerinde = kullanın
  • Satır başına en fazla 80 karakter kullanın; uzun çağrıları satırlara bölün
  • Noktalı virgül kullanmayın; satır başına bir ifade yazın
  • 2 boşluk girinti kullanın, açılış { ayracını aynı satıra koyun
  • Otomatik biçimlendirme için styler, sorunları algılamak için lintr kullanın
# Putting it all together:

# Calculate summary statistics ----------------------------------------
calculate_summary <- function(values, remove_na = TRUE) {
  cleaned <- values[!is.na(values)]
  list(
    mean   = mean(cleaned),
    median = median(cleaned),
    sd     = sd(cleaned)
  )
}

test_scores <- c(85, 90, NA, 78, 92, 88)
stats <- calculate_summary(test_scores)
cat('Mean:', stats$mean, '\n')
cat('SD:  ', stats$sd)

Sıkça Sorulan Sorular

“Açıklamalar, Stil ve Okunabilirlik” dersi ücretsiz mi?

Evet — “Açıklamalar, Stil ve Okunabilirlik” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.

“Açıklamalar, Stil ve Okunabilirlik” dersinde ne öğreneceğim?

tidyverse stil kılavuzunu izleyerek temiz ve belgelenmiş R kodu yazın. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

R Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Açıklamalar, Stil ve Okunabilirlik” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu R Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Betikleri Yüklemek için source() Kullanımı
  2. Açıklamalar, Stil ve Okunabilirlik
  3. Çalışma Dizinleri ve Dosya Yolları
  4. R Projeleri ve Çalışma Alanı Yönetimi
← R Academy Sayfasına Dön