Ana içeriğe geç

Yan yana

KütüphanevsFramework

Kütüphane (library) ile framework arasındaki fark nedir?

Güncellendi 2 dk okuma6 fark

Kısaca

Kütüphane, gerektiğinde çağırdığınız koddur; framework ise uygulamanın yapısını kurar ve kodunuzu kendisi çağırır. Kütüphaneyi siz, framework sizi çağırır.

Kütüphane

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.

Kütüphane sayfasını oku

Framework

Framework, 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.

Framework sayfasını oku

Kütüphane ve Framework karşılaştırması

ÖzellikKütüphaneFramework
Kontrol kimdeKodunuz kütüphaneyi çağırırFramework kodunuzu çağırır
YapıUygulamanın yapısını siz tasarlarsınızFramework belirler
KapsamGenellikle odaklı tek bir işBütün bir uygulama iskeleti
DeğiştirmekGenellikle kolayGenellikle zor; kod onun etrafında kurulur
Öğrenme eğrisiYalnızca kullandığınız fonksiyonları öğrenirsinizKurallarını ve yaşam döngüsünü öğrenirsiniz
ÖrneklerLodash, Axios, NumPy, ReactDjango, Spring, Angular, Next.js, Rails

Fark, açıklamalı

İkisi de başkası tarafından yazılmış yeniden kullanılabilir kodlardır; bu yüzden fark boyut ya da kalite değil, kontroldür. Kütüphanede yönetim programınızdadır: formatDate() ya da axios.get() çağrısını ne zaman yapacağına o karar verir, bir sonuç alır ve devam eder. Framework'te ise yönetim framework'tedir: uygulamayı başlatır, isteği ya da ekranı ele alır ve sizin yazdığınız fonksiyonları ve sınıfları kendi tanımladığı noktalarda çağırır.

Bu tersine dönüşe kontrolün tersine çevrilmesi (inversion of control) denir. Django ya da Spring gibi bir web framework'ü her HTTP isteğini alır, yönlendirir ve sizin view'inizi ya da controller'ınızı çağırır. Jest gibi bir test framework'ü test fonksiyonlarınızı bulup çalıştırır. Siz framework'ün bıraktığı boşlukları, dosyaların nereye konacağına ve şeylerin nasıl adlandırılacağına dair kurallarını izleyerek doldurursunuz.

Bu ödünleşim projeleri şekillendirir. Framework'ler yapı, mantıklı varsayılanlar ve çok sayıda yerleşik işlev sunar; böylece ekipler hızlı ilerler ve kod projeler arasında benzer görünür, ama sonradan değiştirmeleri zordur. Kütüphaneleri eklemek, değiştirmek ya da birleştirmek kolaydır, ama genel yapıyı kendiniz tasarlarsınız.

Sık yapılan bir yanlış, büyük olan her şeyin framework olduğunu düşünmektir. React kendini kullanıcı arayüzleri kurmaya yarayan bir kütüphane olarak tanımlar, çünkü onu nereye render edeceğinize sizin kodunuz karar verir; React üzerine kurulmuş Next.js ise yönlendirmeyi, render etmeyi ve derlemeyi denetlediği için bir framework'tür. Birçok araç da ikisinin arasında bir yerde durur.

Hangisini kullanmalısınız?

Kütüphane şu durumlarda doğru seçim:

  • Tarihler, HTTP ya da grafikler gibi belirli tek bir yeteneğe ihtiyacınız var.
  • Uygulamanızın yapısı üzerindeki kontrolü korumak istiyorsunuz.
  • Aracı sonradan başka biriyle değiştirmeniz gerekebilir.

Framework şu durumlarda doğru seçim:

  • Bütün bir uygulama geliştiriyorsunuz ve kanıtlanmış bir yapı istiyorsunuz.
  • Ekibiniz ortak kurallardan ve yerleşik özelliklerden fayda görüyor.
  • Hızlı başlamak tam esneklikten daha önemli.

Sık sorulan sorular

React bir kütüphane mi, framework mü?

React kendini kullanıcı arayüzleri için bir kütüphane olarak tanımlar. Bileşenleri ve render etmeyi üstlenir; yönlendirme ve veri yükleme ise başka kütüphanelerden ya da Next.js gibi onun üzerine kurulmuş framework'lerden gelir.

Kontrolün tersine çevrilmesi (inversion of control) nedir?

Programın akışını bir framework'ün denetlediği ve sizin kodunuzun framework'ü çağırması yerine framework'ün sizin sağladığınız kodu çağırdığı bir tasarımdır. Framework'leri kütüphanelerden ayıran temel şey budur.

Bir proje hem kütüphane hem framework kullanabilir mi?

Evet, neredeyse her proje kullanır. Tipik bir uygulama tek bir framework üzerinde çalışır ve içinde belirli işler için birçok kütüphane kullanır.

Daha fazla

Ayarlar