K{}DAMAN

Etiketler


Son Yazılar


K{}DAMAN

Yazılım projenizi geliştirirken daha önce çözülmüş kodlama sorunlarına neden zaman harcıyorsunuz?


Modüller7

Gerekli kütüphaneleri otomatik yüklemek

Problem: Birden fazla bileşen içeren büyük bir kütüphane yazdınız. Kullanıcıların kütüphanenin bir kısmını kullanmak için tüm kütüphaneyi belleğe yüklemek zorunda kalmayacakları şekilde bölmek istiyorsunuz. Ancak kullanıcıların kullanmayı planladıkları kütüphaneleri açıkça belirtmesini istemiyorsunuz. Çözüm: Büyük kütüphaneyi birden çok [...]

Melih KocatürkMelih Kocatürk

Nesneleri modüller ile genişletmek

Problem: Bir modülden (veya modüllerden) örnek metodları belirli nesnelere eklemek istiyorsunuz. Modülü nesnenin sınıfına karıştırmak (mixin) istemiyorsunuz, çünkü bazı nesnelerin özel yeteneklere sahip olmasını istiyorsunuz. Çözüm: Object#extend metodunu kullanın. Örneğin Person sınıfımız olduğunu varsayalım:

Melih KocatürkMelih Kocatürk

Modüller ile çalışmak

Ruby’de modülleri kullanmanın iki temel nedeni vardır. Birincisi sadece isim alanı (namespace) yönetimidir; sabitleri ve metodları modüller halinde saklarsak daha az isim çarpışması olur. Bu şekilde saklanan bir metod, bir sınıf metoduna benzer şekilde modül adı ile çağrılır. File.ctime ve FileTest.exist gibi çağrıları görürsek, bu [...]

Melih KocatürkMelih Kocatürk

Mixin ile çoklu kalıtım

Problem: İki veya daha fazla kaynaktan gelen bir sınıf oluşturmak istiyorsunuz, ancak Ruby çoklu kalıtımı desteklemiyor. Çözüm: Taggable adında, etiketleri nesnelerle ilişkilendiren bir sınıf oluşturduğunuzu varsayalım. Taggable sınıfından türetilen her sınıf etiketlenebilir.

Melih KocatürkMelih Kocatürk