Framework Nedir ? Kütüphane(Library) Nedir ? Aralarındaki Fark Nedir ?
Yazılım sektöründe yeni bir şeyler öğrenirken “Yüzmeyi bilmeden okyanusa atlamak.” görüşü sık karşılaşılan bir görüş. Ben de yeni teknolojiler öğrenirken kendimi o teknolojinin derin sularına bırakıyorum ve yüzmeyi suda öğrenmeyi seviyorum açıkçası. Fakat bu durum bazen kullandığımız yöntemlerin, terimlerin vb. yapıların anlamını bilmeden ilerlememize yol açabiliyor. Bu yazımda benim de ilk başlarda acaba aralarındaki fark nedir diye düşündüğüm iki yapıyı ve bunların farklarını anlatmaya çalışacağım.
Framework Nedir ?
Öncelikle bir yazılım geliştiricisi olarak bir sorunun Google aramasına bakmayı kendime görev bilirim :). Google’a “Framework Nedir ?” diye arattığımızda çıkan Vikipedia yazısı yukarıdaki resimde mevcut Fakat ben özetleyecek olursam; Kelime anlamı çerçeve, çatı gibi anlamlara gelen bu yazılım yapısı; kullanıcıların üstüne yeni şeyler ekleyebileceği ve özelleştirebileceği yapılardır. Framework’ler yazılım dünyasında sıkça kullanılan yapılardır. Çünkü bu yapılar, yazılım geliştiricisinin yazacağı alanda temeli atılmış yani iskeleti oluşturmuş yazılımlardır. Hal böyle olunca Framework’ler yazılımcının hızını arttırır, onları her projede yapması gereken bazı temel atma işlemlerinden kurtarır. Framework’lerin her projede atılması gereken temeli atması, yazılım geliştiricilerin temel atma sırasında gözden kaçırabileceği güvenlik açıklarını da azaltır. Angular, React, .NET ve Laravel yapıları Framework’lere örnektir.
Kütüphane(Library) Nedir ?
Yeni bir soru yeni bir Google araması demektir. Görselde soldaki fotoğraf Google’a “What is library ?” yazdığınızda çıkan Vikipedi sonucu sağdaki ise Google’a “What is library in programing” yazdığımızda aldığımız cevap. Bu noktada şunu bilmeliyiz ki bazı sözcükler “Bilgisayar Bilimi” ve gündelik hayatta farklı kullanılabilir ve bu sizi bazı aramalarda yanıltabilir :). Google aramamızı da yaptığımıza göre neymiş bu Library ? Kütüphaneler daha önceden yazılmış ve belirli amaca hizmet eden kodlardır. Bu kodlar; fonksiyonlar, sınıflar veya nesnelerden oluşabilir. Kütüphanelerde yazılım dünyasında sıklıkla kullanılır çünkü yazılım geliştiricisinin hızını arttırır ve onu tekrar tekrar yazması gereken kodlardan kurtarır. OpenCV, Selenium ve jQuery yazılım kütüphanelerine örnek gösterilebilir.
Peki Aralarındaki Fark Ne ?
Yukarıda da bahsettiğimiz gibi iki yapı da yazılım geliştiricileri için oldukça önemli ve çokça kullanılıyor. Peki ya aralarındaki fark ne ? Aralarındaki farkı benzetmeler üzerinden ve olayı yazılımdan biraz ayırarak inceleyelim. Word üzerinden bir deney raporu yazacağımızı düşünelim. Bu deney raporunu boş bir belge üzerinden oluşturabiliriz veya hazır olarak bize sunulan bir Word şablonu üzerinden gidebiliriz. Word şablonu kullanırsak yazımızı şablon üzerine yazmamız ve şablonun oluşturduğu düzeni kullanmamız gerekiyor. Raporumuzu şablon üzerinden doldurmaya devam ediyoruz ama deney hakkında oluşturduğumuz bir grafiği eklememiz gerekiyor. Grafik resmini oluşturacak hazır bir siteye gittik ve resmi oluşturduk. Artık Word’de şablonumuzun desteklediği yere resmimizi ekleyebiliriz. Bu yöntemleri kullanarak bir rapor hazırlamış olduk. Şimdi hemen toparlıyoruz anlamadıysanız endişelenmeyin. Biz Word şablonu kullandık çünkü bu şablon bizi çeşitli temel atmalardan ve fazladan yazı yazmaktan kurtardı. Önemli bir nokta daha biz şablonunu üzerine yazı yazdık yazımıza şablonu eklemedik. Bu özelliklerden dolayı Word şablonunu bu örnekte Framework’e benzetebiliriz. Diğer taraftan grafik resmini de bir kütüphaneye benzetebiliriz. İstediğimiz alana grafik resmini ekledik. Burada ise biz zaten yazımızı yazıyorduk grafik resmini yazımıza ekledik ve yine şablonda olduğu gibi bizim işimizi kolaylaştırdı.
Kısacası eğer Framework kullanıyorsak biz Framework içine kod yazarız. Eğer Kütüphane (library) kullanıyorsak ise biz kütüphaneyi kodumuza dahil ederiz.
print(“Merhaba Medium”)
Sizlere Medium’daki ilk yazımı yazma heyecanımı paylaşmak istiyorum. Sizlerden gelecek yorum ve eleştirileri bekliyorum :) .
Son
Bu yazımda sizlere benim de ilk başlarda farklarını kavrayamadığım Framework ile Library arasındaki farkı/farkları anlatmaya çalıştım.
Daha çok yazıda görüşmek dileğiyle kod ile kalın.
LinkedIn Hesabım : https://www.linkedin.com/in/murat-y%C4%B1lmaz-b027981a7/