Framework
- Türkçe karşılığı
- çatı, yazılım çatısı
- Okunuşu
- freymvörk
Günlük kullanımda iki ad da yaygın.
Kısaca
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 nedir?
Framework, web uygulaması, mobil uygulama ya da API gibi belirli bir tür yazılımı geliştirmek için hazır bir iskelet sunar. İstekleri yönlendirmek (routing), sayfaları oluşturmak ya da bir veritabanıyla konuşmak gibi yaygın ve tekrarlayan işleri üstlenir; kendi kodunuzun nereye gitmesi gerektiğini de belirler. Böylece ekipler, ürünlerini benzersiz kılan özelliklere odaklanabilir.
Framework'ün ardındaki temel fikir kontrolün tersine çevrilmesidir (inversion of control). Bir 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: uygulamayı o çalıştırır ve bir sayfa yüklendiğinde ya da bir istek geldiğinde olduğu gibi belirli noktalarda sizin kodunuzu çağırır.
Ev yapmak, farkı anlatmak için yararlı bir benzetmedir. Kütüphane, ihtiyacınız olan aletleri seçtiğiniz bir hırdavatçıya benzer; framework ise sizin tamamlayıp döşediğiniz, duvarları ve çatısı hazır bir yapı iskeleti gibidir. Bilinen örnekler arasında sunucu tarafı geliştirme için Django, Ruby on Rails ve Spring; web uygulamaları geliştirmek için Angular ve Next.js bulunur.
Framework'ler geliştirmeyi hızlandırır ve tutarlı bir yapıyı teşvik eder, ancak bazı ödünleri de vardır. Kurallarını öğrenmeniz, onların yöntemini izlemeniz ve sürüm yükseltmelerini takip etmeniz gerekir. Bazı araçlar sınırı bulanıklaştırır: React kendini kütüphane olarak tanımlar, yine de birçok geliştirici ona gevşek biçimde framework der.
Önemli noktalar
- Framework bir uygulamanın yapısını sağlar; ayrıntıları siz doldurursunuz.
- Kontrolün tersine çevrilmesi: kodunuzu framework çağırır, tersi olmaz.
- Yönlendirme, arayüzü oluşturma ve veri erişimi gibi yaygın işleri üstlenir.
- Ödünler arasında öğrenme eğrisi ve işleri kendi yönteminizle yapma özgürlüğünün azalması vardır.
Örnek
// You register handlers; the framework decides when to call them
import express from "express";
const app = express();
// Called by the framework whenever a GET /hello request arrives
app.get("/hello", (req, res) => {
res.json({ message: "Hello, world!" }); // your own logic
});
app.listen(3000); // the framework now runs the serverSık sorulan sorular
Framework ile kütüphane arasındaki fark nedir?
Kütüphanede onu ne zaman çağıracağınıza sizin kodunuz karar verir. Framework'te ise akışı framework kontrol eder ve kodunuzu belirli noktalarda çağırır; buna kontrolün tersine çevrilmesi denir.
React bir framework müdür, kütüphane mi?
React kendini kullanıcı arayüzleri oluşturmak için bir kütüphane olarak tanımlar; çünkü bileşenleri oluşturmaya odaklanır, yönlendirme ve veri çekme gibi konuları diğer araçlara bırakır. Next.js gibi framework'ler, eksiksiz bir uygulama yapısı sunmak için React üzerine kurulur.
Web sitesi yapmak için framework'e ihtiyacım var mı?
Hayır. Yalın HTML, CSS ve JavaScript ile bir web sitesi yapabilirsiniz. Framework'ler, proje büyüdükçe değerli hâle gelir; çünkü yapı sağlar ve yaygın sorunları sizin için çözer.
Sık karşılaştırılanlar
İlgili sayfalar
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
- MVCYazılım Mimarisi, s. 26MVC, uygulamayı veri ve mantık için Model, gösterim için View ve kullanıcı girdisini yöneten Controller olmak üzere üçe ayıran bir mimari desendir.
- SPAWeb Geliştirme, s. 42SPA, tek bir HTML sayfası yükleyip içeriği JavaScript ile güncelleyen ve görünümler arası geçişte sayfayı yeniden yüklemeyen web uygulamasıdır.
- SSRWeb Geliştirme, s. 44SSR, sunucunun her istekte bir sayfanın tam HTML'ini oluşturduğu ve böylece kullanıcıların ile arama motorlarının hazır içeriği hemen aldığı tekniktir.
- Tasarım DeseniYazılım Mimarisi, s. 42Tasarım deseni, yazılım tasarımında sık görülen bir soruna kanıtlanmış, yeniden kullanılabilir çözümdür; hazır kod değil, genel bir şablon olarak anlatılır.
- 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.
- KütüphaneProgramlamanın Temelleri, s. 35Kü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.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin