Berk Akademi
Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

Dillere göre değişken isimlendirme kuralları ve örnekler

dillere-gore-degisken-isimlendirme-kurallari
Bu yazıda neler var?
  1. camelCase, snake_case, PascalCase ve kebab-case farkı nedir?
  2. Python, Java, C#, JavaScript ve C++ hangi stili kullanır?
  3. Boolean, koleksiyon ve sabit adları nasıl seçilir?
  4. Aynı kullanıcı bilgisi dört dilde nasıl adlandırılır?
  5. Bir projede isimlendirme standardı nasıl korunur?
  6. Sık Sorulan Sorular

Dillere göre değişken isimlendirme kuralları değişse de temel ayrım nettir: camelCase, snake_case, PascalCase ve kebab-case aynı kelimeleri farklı büyük harf ve ayraç düzenleriyle yazar. Python, Java, C#, JavaScript, TypeScript ve C++ arasında seçim yaparken dilin tanımlayıcı kurallarını ve projenin kodlama standardını birlikte değerlendirmek gerekir.

Aynı kavram userAge, user_age veya UserAge biçimlerinde yazılabilir. Ancak user-age biçimi, kod içinde değişken adı olarak çoğu zaman geçerli değildir; bu nedenle dosya, URL ve değişken adlandırma kurallarını birbirine karıştırmamak gerekir.

camelCase, snake_case, PascalCase ve kebab-case farkı nedir?

Bu stiller arasındaki fark, kelimelerin nasıl ayrıldığı ve hangi harflerin büyük yazıldığıdır:

  • camelCase: İlk kelime küçük harfle başlar, sonraki kelimelerin ilk harfi büyük yazılır. Örnek: userAge
  • PascalCase: Her kelimenin ilk harfi büyük yazılır. Örnek: UserAge
  • snake_case: Kelimeler alt çizgiyle ayrılır ve genellikle küçük harf kullanılır. Örnek: user_age
  • kebab-case: Kelimeler kısa çizgiyle ayrılır. Örnek: user-age

camelCase ve PascalCase kelimeleri doğrudan birleştirir. snake_case okunabilirliği alt çizgiyle artırır. kebab-case ise kelimeleri kısa çizgiyle ayırır, fakat kısa çizgi birçok programlama dilinde çıkarma işleci olarak yorumlanır.

Python, Java, C#, JavaScript, TypeScript ve C++ sözdizimlerinde kısa çizgi, değişken tanımlayıcısının parçası olarak kullanılamaz. Örneğin user-age ifadesi, bir değişken adı yerine user ile age arasında çıkarma işlemi gibi okunur. Değişken tanımlama sırasında da sözdizimi hatasına yol açar. Bu yüzden dosya veya URL adında user-age kullanılması, kod içinde aynı adın değişken olarak kullanılabileceği anlamına gelmez.

Python, Java, C#, JavaScript ve C++ hangi stili kullanır?

Python, Java, C#, JavaScript ve C++ hangi stili kullanır?

Aşağıdaki tablo, yaygın dil ve proje kılavuzlarındaki temel yaklaşımı özetler. Sabit adlandırması bazı dillerde güçlü bir gelenek olarak kullanılır, bazı dillerde ise seçilen proje standardına göre değişebilir.

Dil Değişken Sınıf Sabit
Python snake_case PascalCase, diğer adıyla CapWords UPPER_CASE_WITH_UNDERSCORES
Java camelCase PascalCase UPPER_CASE_WITH_UNDERSCORES
C# Lokal değişken ve parametrelerde camelCase Sınıflar ve public üyelerde PascalCase Microsoft kılavuzunda PascalCase; proje kuralı farklı olabilir
JavaScript / TypeScript Değişken ve fonksiyonlarda camelCase Sınıf ve bileşenlerde PascalCase Global sabitlerde CONSTANT_CASE; yerel sabitlerde lowerCamelCase kullanılabilir
C++ Proje kılavuzuna göre snake_case veya camelCase Genellikle PascalCase Proje kılavuzuna bağlı; Google yaklaşımında kName biçimi görülür

JavaScript ve TypeScript için tabloyu tek ve evrensel bir kural gibi düşünme. Seçilen stil rehberi, biçimlendirici ve mevcut kod tabanı belirleyicidir. C++ tarafında da proje farkı daha belirgin olabilir. Örneğin Google C++ Style Guide değişkenlerde snake_case kullanırken LLVM kılavuzu camel case temelli bir yaklaşım tarif eder.

Altı dilde kısa çalışan örnekler

Python

user_age = 16
print(user_age)

Beklenen çıktı: 16

Java

class Main {
  public static void main(String[] args) { int userAge = 16; System.out.println(userAge); }
}

Beklenen çıktı: 16

C#

using System;
class Program { static void Main() { int userAge = 16; Console.WriteLine(userAge); } }

Beklenen çıktı: 16

JavaScript

const userAge = 16;
console.log(userAge);

Beklenen çıktı: 16

TypeScript

const userAge: number = 16;
console.log(userAge);

Beklenen çıktı: 16

C++

#include <iostream>
int main() { int user_age = 16; std::cout << user_age; }

Beklenen çıktı: 16

Boolean, koleksiyon ve sabit adları nasıl seçilir?

Boolean, koleksiyon ve sabit adları nasıl seçilir?

Değişken adı, yalnızca veri türünü değil, değerin programdaki rolünü de anlatmalıdır. x, data veya flag gibi adlar kısa örneklerde kullanılabilir; ancak kapsam büyüdüğünde anlamı belirsizleşebilir. registered_users, has_permission ve MAX_LOGIN_ATTEMPTS gibi adlar, kodu okuyan kişinin değeri daha kolay anlamasına yardımcı olur. Gereksiz kısaltmalar yerine tam ve açıklayıcı kelimeler seçmek, farklı dillerdeki yaygın kodlama kılavuzlarıyla da uyumludur.

Boolean değişkenlerde öneki anlamına göre seçebilirsin. is bir durum belirtir, has sahiplik veya varlık bildirir, can ise yetenek ya da izin anlamı taşır. Bu nedenle is_active, has_permission ve can_edit birbirinden farklı anlamlar taşır. Olumlu ifadeler, koşulları okurken daha anlaşılır olabilir.

Koleksiyon adlarında çoğul ifadeler veya içeriği belirten adlar kullan: users, active_users, pending_orders gibi. Sadece items ya da list demek yerine koleksiyonda ne bulunduğunu belirtmek daha açıklayıcıdır. Tekrarlanan ve anlamı olmayan sayılar için de 3 gibi sihirli değerler yerine amacını anlatan bir sabit tanımlayabilirsin. Python ve Java'da büyük harfli alt çizgili biçim, C#'ta ise PascalCase sabit adları yaygın kılavuzlarla uyumludur. JavaScript'te kullanılan biçim, çoğunlukla projenin kendi standardıyla belirlenir.

Dil Zayıf seçim Daha açıklayıcı seçim
Python flag = True
items = ["Ada"]
n = 3
is_active = True
registered_users = ["Ada"]
MAX_LOGIN_ATTEMPTS = 3
Java boolean flag = true;
String[] items = {"Ada"};
static final int n = 3;
boolean isActive = true;
String[] registeredUsers = {"Ada"};
static final int MAX_LOGIN_ATTEMPTS = 3;
C# bool flag = true;
string[] items = { "Ada" };
const int n = 3;
bool isActive = true;
string[] registeredUsers = { "Ada" };
const int MaxLoginAttempts = 3;
JavaScript const flag = true;
const items = ["Ada"];
const n = 3;
const isActive = true;
const registeredUsers = ["Ada"];
const MAX_LOGIN_ATTEMPTS = 3;

JavaScript örneğindeki MAX_LOGIN_ATTEMPTS biçimi, dilin zorunlu sözdizimi değil, bu örnekte seçilen proje standardıdır. JavaScript tanımlayıcılarında geçerli karakter kuralları bulunur; büyük harf, küçük harf veya kelime ayırma biçimi ise ekip kararına bırakılabilir.

  1. İsim sözdizimi: Kullandığın dilin ve projenin belirlediği snake_case, camelCase veya PascalCase biçimine uy.
  2. Anlam açıklığı: Değişkenin neyi tuttuğu, mümkünse adına bakıldığında anlaşılmalı.
  3. Kapsam: Geniş kapsamlı değerlerde açıklayıcı adlar kullan; çok dar döngülerdeki geçici adları gereksiz yere uzatma.
  4. Proje standardı: Boolean, koleksiyon ve sabit adları için ekipte belirlenen kuralları yazılı hâle getir.
  5. Tutarlılık: Aynı kavram için dosyanın farklı yerlerinde farklı adlar kullanma.

Aynı kullanıcı bilgisi dört dilde nasıl adlandırılır?

Aynı kullanıcı bilgisi farklı dillerde aynı anlamı taşıyabilir, ancak kelimelerin yazım biçimi değişir. Python örneğinde user_age ve is_active, diğer üç örnekte ise userAge ve isActive kullanılır. Bu karşılaştırma, veri değişmeden yalnızca isimlendirme stilinin nasıl değiştiğini gösterir.

Farklı dillerdeki isimlendirme kararlarını küçük alıştırmalarla pekiştirmek için ücretsiz yazılım bilgi testleri içindeki sorulardan yararlanabilirsin. Her soruda yalnızca doğru yazımı değil, seçtiğin adın anlamını da kontrol et.

Python

user_age = 16
is_active = True

print(f"Yaş: {user_age}, Aktif: {is_active}")

Beklenen çıktı: Yaş: 16, Aktif: True

Açıklama: Python'da değişken adları için kelimeleri alt çizgiyle ayıran snake_case biçimi kullanılır. is_ öneki, değişkenin bir durum bildirdiğini açıkça gösterir.

Java

public class UserInfo {
    public static void main(String[] args) {
        int userAge = 16;
        boolean isActive = true;

        System.out.println("Yaş: " + userAge + ", Aktif: " + isActive);
    }
}

Beklenen çıktı: Yaş: 16, Aktif: true

Açıklama: Java'da birden fazla kelimeden oluşan değişken adlarında camelCase kullanılır. userAge ve isActive bu biçime uyar; boolean ise Java'nın mantıksal veri türüdür.

C#

using System;

class UserInfo
{
    static void Main()
    {
        int userAge = 16;
        bool isActive = true;

        Console.WriteLine($"Yaş: {userAge}, Aktif: {isActive}");
    }
}

Beklenen çıktı: Yaş: 16, Aktif: True

Açıklama: C# kodlama kurallarında yerel değişkenler ve metot parametreleri için camelCase kullanılır. Bu nedenle userAge ve isActive yerel değişkenler için uygun bir seçimdir.

JavaScript

const userAge = 16;
const isActive = true;

console.log("Yaş: " + userAge + ", Aktif: " + isActive);

Beklenen çıktı: Yaş: 16, Aktif: true

Açıklama: JavaScript'te userAge ve isActive gibi camelCase adlar kullanılabilir. Buradaki const bildirimi, değişken bağının yeniden atanmayacağını belirtir; adlandırma biçimi ise proje standardına göre seçilir.

C++ için: Aynı bilgileri C++ içinde adlandırırken önce projenin mevcut standardına, biçimlendirici ayarlarına ve kod inceleme kurallarına bakılır. C++ tarafında kapsamı geniş adların daha açıklayıcı, yalnızca yerel kullanımda kalan adların ise gerektiğinde daha kısa seçilmesi, tek bir evrensel yazım biçimi aramaktan daha işlevsel olabilir.

Bir projede isimlendirme standardı nasıl korunur?

İsimlendirme standardını korumak için sözdizimi, kapsam, mevcut rehber, tutarlılık ve otomatik denetim sırasını izleyebilirsin. Yeni bir biçim seçmeden önce mevcut düzeni incele. Python’un PEP 8 rehberi de proje içi tutarlılığa öncelik verir.

  1. Önce sözdizimini kontrol et. Adın izin verilen karakterlerden oluştuğunu ve değişken adı olarak kullanılması yasaklanmış bir sözcük olmadığını doğrula. Örneğin JavaScript’te class, değişken adı olarak kullanılamaz; bu bir stil tercihi değildir.
  2. Kapsamı ve görünürlüğü değerlendir. Kısa bir döngüdeki sayaç ile başka modüllerin kullandığı bir alanı aynı ölçütle değerlendirme. Adın kullanıldığı kapsam genişledikçe anlamını belirginleştir. Dışarıdan kullanılan adları değiştirirken bunlara bağımlı kodu da kontrol et.
  3. Projenin rehberine ve mevcut koduna bak. Benzer görevdeki değişkenlerin nasıl adlandırıldığını incele. Yazılı rehber ile uygulama çelişiyorsa ekipçe hangi yaklaşımın sürdürüleceğini netleştir; kendi dosyana ayrı bir standart getirme.
  4. Biçim kadar anlamı da tutarlı tut. Aynı kavram için farklı dosyalarda farklı sözcükler seçmekten kaçın. Kısaltmaları, boolean öneklerini ve ölçüm birimlerini örneklerle yazılı hâle getir. Kod incelemesinde yalnız harf düzenini değil, adın anlattığı şeyi de değerlendir.
  5. Denetlenebilen kuralları otomatikleştir. Örneğin TypeScript’te typescript-eslint aracının naming-convention kuralı, değişkenler ve sınıf üyeleri gibi farklı tanımlayıcı gruplarına ayrı biçim kuralları uygulamayı destekler. Projenin kararını araç ayarına aktarırken hangi adların denetlendiğini kontrol et.

C++ ve JavaScript/TypeScript projelerinde stil, proje rehberine ve araç yapılandırmasına göre değişebilir. Bir araçtaki varsayılan tercihi dilin zorunlu kuralı olarak yorumlama; mevcut kodla uyumu gözet.

Örneğin rehberine “Süre adları birimi belirtir” maddesini ekleyebilirsin. Python’da bu karar şöyle görünür:

timeout_seconds = 5
timeout_milliseconds = timeout_seconds * 1000

print(timeout_milliseconds)

Beklenen çıktı:

5000

İki ad da snake_case biçimindedir; seconds ve milliseconds ise farklı birimleri açıklar. İsimlendirme kontrolünde hem biçimi hem de bu anlam ayrımını değerlendir.

Sık Sorulan Sorular

Boolean değişkenlerde is ve has önekleri nasıl seçilir?

Bir durumu anlatırken is, bir şeyin varlığını veya sahipliğini anlatırken has kullanabilirsin: isActive aktif olmayı, hasPermission izin sahibi olmayı anlatır. Önce değişkenin yanıtladığı evet-hayır sorusunu kur. Projen snake_case kullanıyorsa aynı anlamları is_active ve has_permission biçiminde yaz.

Koleksiyon isimleri tekil mi yoksa çoğul mu yazılmalı?

Birden fazla öğeyi temsil eden koleksiyon için çoğul adı tercih edebilirsin: users koleksiyonu, user tek öğeyi anlatsın. Öğelerin sayısını tutan değişkene ise userCount gibi ayrı bir ad ver. Seçimini koleksiyonun o anda kaç öğe içerdiğine değil, temsil ettiği yapıya göre yap.

C++ için snake_case mi yoksa camelCase mi seçilmeli?

Mevcut projede kullanılan biçimi tercih et. Yeni projede ekip rehberini, birlikte çalışılan kütüphaneleri ve denetim ayarlarını değerlendirerek seçim yap. Aynı görevdeki değişkenleri gerekçesiz biçimde farklı stillerde adlandırma; her iki seçenek için de anlamlı sözcükler ve okunabilirlik ölçütünü koru.

İyi bir isimlendirme düzeninde amaç, kodu okuyan kişinin aynı kavramı her yerde tanıyabilmesidir. Seçtiğin adları bu ölçütle değerlendir.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara