Framework Tanımı
Framework’ler, yazılımcılar için belli bir yapı ve kuralları önceden sunan iskeletlerdir. İçerisinde hazır fonksiyonlar, sınıflar, kütüphaneler ve yapılar barındırır.
Geliştiriciler herşeyi sıfırdan yapmak zorunda olmazlar, Framework’ün sunduğu altyapıyı kullanarak daha hızlı ve güvenli bir yazılım geliştirme sürecinden geçerler.
Framework ile Kütüphane Arasındaki Farklar
Bu iki kavram genelde karşılaştırılır. Temel fark kontrolün kimde olduğuyla ile ilgilidir.
- Framework: Geliştirici, framework’ün sunduğu kurallar çerçevesinde yazılımı inşa eder. Kontrol framework’tedir.
- Kütüphane: Geliştirici ihtiyaç duyduğunda çağırır ve kullanır. Kontrol geliştiricidedir.
Framework sizin kodunuzu çağırır, kütüphane ise sizin çağırdığınız bir araçtır.
Framework Kullanmanın Avantajları
- Zaman tasarrufu: CRUD işlemleri kullanıcı kimlik doğrulama gibi işler framework’lerde büyük ölçüde hazır gelir, bu sayede işinize özgü koda odaklanabilirsiniz.
- Güvenlik sağlar: CSRF, XSS, SQL injection gibi saldırılara karşı yerleşik koruma sunan framework’ler, doğru kullanıldığında projeyi dış tehditlere karşı güçlendirir.
- Topluluk ve ekosistem: Popüler framework’ler için bolca dökümantasyon, açık kaynak paket, Stack Overflow desteği ve öğretici kaynaklar bulunur.
- Kod standartı getirir: Geliştiricileri belirli bir dosya yapısına ve kod organizasyonuna zorlar. Bu sayede ekipte herkes aynı düzene göre çalışır. Kodun okunabilirliği ve bakımı kolaylaşır.
- Test edilebilirlik: MVC yapıları ve bağımlılık enjeksiyonu gibi teknikleri destekleyen framework’lerde birim test yapmak daha kolaydır.
- Yeniden kullanılabilirlik sağlar: Framework ile oluşturulan modüler yapı sayesinde kod tekrarını en aza indirgeyebilir, bileşenleri başka projelerde kullanabilirsiniz.
Popüler Framework Örnekleri
- Web Geliştirme
- React (Frontend – Javascript)
- Angular (Frontend – Typescript)
- Vue.js (Frontend – Javascript)
- ASP.NET Core (Backend – C#)
- Django (Backend – Python)
- Laravel (Backend – PHP)
- Mobil Geliştirme
- Flutter (Dart)
- React Native (Javascript)
- Xamarin (C#)
- Oyun Geliştirme
- Unity (C#)
- Unreal Engine (C++)