Kütüphane
- İngilizcesi
- Library
- Türkçe karşılığı
- kitaplık
- Okunuşu
- laybrıri
Günlük kullanımda iki ad da yaygın.
Kısaca
Kütüphane, bir programın sık yapılan işleri o kodu kendisi yazmadan yapmak için çağırdığı, fonksiyon ve sınıf gibi hazır kodlardan oluşan bir koleksiyondur.
Programlamada kütüphane (library) nedir?
Kütüphaneler, birçok programın ihtiyaç duyduğu çözümleri paketler. Kendi tarih işleme kodunuzu yazmak yerine bir tarih kütüphanesini çağırırsınız; grafikleri sıfırdan kurmak yerine bir grafik kütüphanesi kullanırsınız. Her dil ayrıca string'ler, koleksiyonlar, dosyalar ve ağ gibi temelleri içeren bir standart kütüphaneyle gelir; npm, pip ve Cargo gibi paket yöneticileri de yüz binlerce üçüncü taraf kütüphane ekler.
Bir kütüphane kullanırken kontrol sizin kodunuzdadır: format(date) ya da axios.get(url) çağrısını ne zaman yapacağına o karar verir; kütüphane işini yapar ve geri döner. Framework'ten klasik farkı budur; framework genel yapıyı sağlar ve kodunuzu doğru anlarda kendisi çağırır. Bu şöyle özetlenir: kütüphaneyi siz çağırırsınız, framework sizi çağırır.
Bir kütüphane kullanmak bir bağımlılık (dependency) üstlenmek demektir. Onun hataları, güvenlik açıkları, lisansı ve gelecekteki bakımı kısmen sizin de derdiniz olur; eklediğiniz her kütüphane kendi kütüphanelerini de beraberinde getirebilir. Popüler, iyi bakılan ve sürümleri net olan kütüphaneler daha güvenli bir seçimdir; lockfile'lar da tam sürümleri tekrarlanabilir tutar.
Sık yapılan bir yanlış, React'in bir framework olduğunu düşünmektir. React kendini kullanıcı arayüzleri kurmaya yarayan bir kütüphane olarak tanımlar: bileşenleri ve render etmeyi üstlenir; yönlendirme, veri yükleme ve derleme ise başka kütüphanelere ya da onun üzerine kurulmuş Next.js gibi framework'lere bırakılır.
Önemli noktalar
- Kütüphane, programınızın sık yapılan işler için çağırdığı yeniden kullanılabilir koddur.
- Her dilin bir standart kütüphanesi vardır; paket yöneticileri üçüncü taraf olanları ekler.
- Kütüphaneyi siz çağırırsınız; framework ise sizin kodunuzu çağırır.
- Her kütüphane, kendi hataları, lisansı ve bakımı olan bir bağımlılıktır.
- React bir UI kütüphanesidir; Next.js onun üzerine kurulmuş bir framework'tür.
Örnek
# Standard library: ships with Python
import json
from datetime import date
print(json.dumps({"today": date.today().isoformat()}))
# Third-party library: installed with pip install requests
import requests
response = requests.get("https://api.github.com/repos/python/cpython")
print(response.json()["stargazers_count"])
# Your code decides when to call the library, then carries on.Sık sorulan sorular
Kütüphane ile framework arasındaki fark nedir?
Kütüphanede kontrol sizin kodunuzdadır ve bir şeye ihtiyaç duyduğunda kütüphaneyi çağırır. Framework'te ise kontrol framework'tedir: yapıyı o belirler ve sizin kodunuzu o çağırır. Buna kontrolün tersine çevrilmesi (inversion of control) denir.
Standart kütüphane nedir?
Bir programlama diliyle birlikte gelen; metin, matematik, dosyalar, tarihler ve ağ gibi sık ihtiyaçları karşılayan kütüphanedir. Python'un "pilleri dahil" (batteries included) standart kütüphanesi özellikle büyük olmasıyla bilinir.
Kütüphane ile paket arasındaki fark nedir?
Paket, bir paket yöneticisinin kurduğu, adı, sürümü ve meta verisi olan birimdir. Genellikle bir kütüphane içerir, ama araçlar ya da başka dosyalar da içerebilir.
Sık karşılaştırılanlar
İlgili sayfalar
- FrameworkProgramlamanın Temelleri, s. 22Framework, bir uygulamanın yapısını sağlayan, yeniden kullanılabilir kod, araç ve kural temelidir; geliştiriciler yalnızca kendi mantıklarını doldurur.
- Paket YöneticisiProgramlamanın Temelleri, s. 43Paket yöneticisi, yazılım paketlerini ve onların bağımlılıklarını kuran, güncelleyen ve kaldıran, sürümleri otomatik olarak çözen bir araçtır.
- SDKProgramlamanın Temelleri, s. 48SDK (yazılım geliştirme kiti), belirli bir platform veya servis için geliştirme yapmaya yarayan araç, kütüphane, dokümantasyon ve örneklerden oluşan pakettir.
- APIBackend ve API'ler, s. 2API, bir yazılımın başka bir yazılımdan veri ya da işlem talep etmesini sağlayan, belgelenmiş ve öngörülebilir kurallar bütünüdür.
- npmWeb Geliştirme, s. 33npm, Node.js'in varsayılan paket yöneticisi ve dünyanın en büyük yazılım deposudur; bir projenin bağımlılıklarını indirir ve sürümlerini takip eder.
- Semantic VersioningSürüm Kontrolü, s. 35Semantic versioning, her bölümün bir sürümün uyumluluğu bozduğunu, özellik eklediğini ya da hata düzelttiğini belirttiği MAJOR.MINOR.PATCH şemasıdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin