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?

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?

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 |
is_active = True |
| Java | boolean flag = true; |
boolean isActive = true; |
| C# | bool flag = true; |
bool isActive = true; |
| JavaScript | const flag = true; |
const isActive = true; |
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.
- İsim sözdizimi: Kullandığın dilin ve projenin belirlediği
snake_case,camelCaseveyaPascalCasebiçimine uy. - Anlam açıklığı: Değişkenin neyi tuttuğu, mümkünse adına bakıldığında anlaşılmalı.
- Kapsam: Geniş kapsamlı değerlerde açıklayıcı adlar kullan; çok dar döngülerdeki geçici adları gereksiz yere uzatma.
- Proje standardı: Boolean, koleksiyon ve sabit adları için ekipte belirlenen kuralları yazılı hâle getir.
- 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.
- Ö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. - 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.
- 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.
- 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.
- Denetlenebilen kuralları otomatikleştir. Örneğin TypeScript’te
typescript-eslintaracınınnaming-conventionkuralı, 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.