Objective-C’de Instance
ve Parameter
Değerlerini Adlandırma: En İyi Uygulamalar
Geliştiriciler Objective-C dünyasına girdiklerinde sıkça karşılaştıkları sorulardan biri şudur: Örnek ve parametre değerlerinizi nasıl adlandırırsınız? Bu sadece bir stil tercihi değildir; doğru adlandırma, kod okunabilirliğini ve sürdürülebilirliğini büyük ölçüde artırabilir, özellikle de gelecekte kodunuzu okuyacak veya üzerinde çalışacak olan kişiler için.
Bu blog yazısında, örnek değişkenleriniz ve fonksiyon parametreleriniz için etkili adlandırma kurallarını keşfedeceğiz, en iyi uygulamaları paylaşacağız ve bu noktaları açıklamak için örnekler sunacağız.
Adlandırma Kurallarının Önemi
İyi adlandırma kuralları:
- Okunabilirliği Geliştirir: Açık isimler kodu kendiliğinden açıklayıcı hale getirir.
- Gölgeleme Sorunlarını Önler: Fonksiyon içindeki değişken adı çatışmalarını en aza indirmek kafa karışıklığını azaltır.
- İşbirliğini Kolaylaştırır: Diğer geliştiriciler kodunuzu kolayca anlayabilir.
Uzun süreli bir C/C++ geçmişinden gelen bir Objective-C yeni geliştirici iseniz, adlandırma kurallarının biraz farklı olduğunu görebilirsiniz. Bunun ayrıntılarına bakalım.
Örnek Değişkenleri Adlandırma
Yaygın Uygulamalar
Çoğu Cocoa projesi, örnek değişkenlerini adlandırmak için belirli kurallar uygular:
- Alt Çizgi Ön Eki Kullanın: Örnek değişkenlerine alt çizgi (_) ile başlamak yaygındır. Bu, bunları yerel değişkenlerden ve parametrelerden ayırır.
- IBOutlet’lar için Ön Eki Kullanmayın: IBOutlet örnek değişkenleri için, standart hiçbir ön ek kullanılmaz. Bu, Interface Builder bağlantılarıyla ilgili karmaşaları önler.
IBOutlet’lar için Hiç Ön Eki Olmamasının Nedeni
Bir nib dosyası yüklendiğinde, bağlı bir outlet için bir setter metodunuz varsa, o setter çağrılır. Eğer IBOutlet değişkenlerinin başında bir alt çizgi (_myField gibi) kullanıyorsanız, uygun bir şekilde ayarlanmaları mümkün olmayacaktır çünkü beklenen setter metodu standart olmayan bir adlandırma kuralını takip etmelidir (set_myField: gibi), bu da kafa karışıklığına yol açabilir.
Özellikleri Kullanma
Özellikler ve Örnek Değişkenleri Arasındaki Farkı Anlamak
Özelliklere erişim ile örnek değişkenlerine erişimi ayırt etmek önemlidir:
- Özellik erişimi mesaj göndermeyi kullanır:
self.myProp
ile bir özelliğe eriştiğinizde, direkt bir örnek değişkenine erişmiyor, bir mesaj gönderiyorsunuz. - Doğrudan erişim farklı bir sözdizimi gerektirir: Bir örnek değişkenine
self
referansı ile doğrudan erişmeniz gerektiğinde,self
‘i bir işaretçi olarak değerlendirin (örneğinself->_myProp
gibi).
Örnek Değişkenlerini Ne Zaman Kullanmalısınız
İyi bir kural, örnek değişkenlerini yalnızca doğrudan manipüle etmek için kullanmaktır:
- Başlatıcılar: Bir nesne kurulumunda.
- Dealloc metotları: Belleği düzgün bir şekilde temizlemek için.
- Getter ve setter’lar: Özellik uygulaması sırasında.
Macar Notasyonundan Kaçınma
Macar notasyonu (örneğin, türleri belirtmek için değişken isimlerine ön ek eklemek), Cocoa programlamasında genellikle hoş karşılanmaz. Kodunuzun eski görünmesine neden olabilir veya diğer geliştiriciler arasında şüphe uyandırabilir. Bunun yerine, değişken isimlerinizde netlik ve sadelik tercih edin.
Son Düşünceler
Özetle, Objective-C’de örnek ve parametre değerlerinizi adlandırırken:
- Belirlenen kurallara uyun: Örnek değişkenleri için alt çizgi ön eki kullanın, ancak IBOutlet’lar için kullanmayın.
- Özellikleri dikkatlice kullanın: Özelliklere erişim ile örnek değişkenleri arasındaki farkı anlayın.
- Kafa karıştıran notasyonlardan kaçının: Macar veya diğer keyfi ön eklerden uzak durun.
Değişken adlandırma stratejinizi bu kurallarla hizalayarak, yalnızca kodunuzun okunabilirliğini artırmakla kalmayacak, aynı zamanda gelecekte projeniz üzerinde çalışacak diğer geliştiriciler için daha işbirlikçi bir ortam yaratacaksınız.
Örnek Uygulama
İşte bu kuralları kullanarak Objective-C sınıflarınızın nasıl görünebileceğine dair pratik bir örnek:
// EmployeeWindowController.h
#import <AppKit/NSWindowController.h>
@interface EmployeeWindowController : NSWindowController {
@private
// Bu pencerenin sunmakta olduğu model nesnesi
Employee *_employee;
// Pencere içindeki görsellere bağlı outlet
IBOutlet NSTextField *nameField;
IBOutlet NSTextField *titleField;
}
- (id)initWithEmployee:(Employee *)employee;
@property(readwrite, retain) Employee *employee;
@end
Bu uygulama, netliği sağlar ve kodunuzda potansiyel tuzaklardan kaçınmanıza yardımcı olur.
Bu yönergeleri takip ederek, kod kalitenizi ve işbirliği potansiyelinizi artıracak olan Objective-C adlandırma kurallarını ustalaşma yolunda ilerliyorsunuz.