Gene ister istemez başlıkta İngilizce kelime sokuşturdum. Boğaziçi tarzancasını çok sevdiğimden değil (sıklıkla konuşurum, o ayrı) bir sürü kelimenin kabul görmüş Türkçesinin olmamasından. “Wrapper”, “şeker kağıdı” gibi bir şey, ne demeli, “sargı”, “sarıcı”, “paket”, “kabuk”… Yani bir şeyin etrafını tamamen kaplayan ince şeye deniyor…
Yazılımda ne demek? Diyelim bir kütüphane kullanıyorsunuz. Kendi kodunuzdan, direkt o kodu çağırmak yerine, araya delegasyondan çok fazla bir şey yapmayan bir katman yazıyorsunuz. İlgili kütüphaneyi de, bunun üzerinden kullanıyorsunuz.
Güzel de, neden?
Kullandığınız kütüphanelerin çoğu, genel amaçlar için yazılmıştır. Dolayısıyla, arayüzleri oldukça ayrıntılı, uzun konfigürasyonlu falan olabilir. Sizin kullanacağınızdan çok daha fazla fonksiyonalite içerebilir. Siz, araya yazacağınız katman ile, bu ayrıntı ve komplike kısmı kendi kodunuzun geri kalanından saklayıp, sanki o kütüphane tam olarak sizin amaçlarınıza hizmet etmek için yazılmış gibi bir arayüz yaratırsınız.
İkinci sebep de şudur: Eğer kütüphaneyi bir gün değiştirmeye kalkarsanız (bu sandığınızdan çok daha sık yaşanan bir durumdur — versiyon değişikliği bile dert olabilir) ve eğer arada bir katman yoksa, o kütüphane fonksiyonlarının kendi kodunuza ne kadar derinlemesine sızmış olduğuna fena halde şaşırabilirsiniz. Halbuki, arada bir katman varsa (kabuk demek geldi içimden, ama onu “shell” eşdeğeri olarak kullanıyoruz) sadece o kısımda kullanım şeklini değiştirince, her şey çözümlüş olur…
Yani, şeker ve kağıdı benzetmesiyle özetlersek…
- Kağıt, şekerin size olduğu gibi değil, görünmesini istediğiniz gibi görünmesini sağlar.
- Kağıt, şekerin olur olmaz yerlerinize yapışmasını engeller!
İşte, o yüzden “wrapper” yazmayı severim…
ilker Aksu der ki
Koza desek?
Yaşar Safkan der ki
Koza güzel. Mantıklı, anlamı da veriyor. Başka bir terim olarak kullanıldığından da haberim yok.
Yazıyı “koza” kullanarak güncellesem iyi olacak sanırım.