Framework Nedir?

Framework Nedir?

Framework, yazılım geliştirme süreçlerini hızlandırmak, standartlaştırmak ve daha verimli hale getirmek amacıyla kullanılan bir yapıdır. Bir framework, yazılım geliştiricilerinin belirli görevleri gerçekleştirmek için kullanabileceği hazır araçlar, kütüphaneler, kurallar ve standartlar ihtiva eder. Framework’ler, belirli bir programlama dili yada teknoloji yığını üstünde inşa edilir ve geliştiricilere çoğu zaman temel yapı taşları sunar.

Framework, yazılım geliştiricilerin kullandığı evvelde hazırlanmış kütüphanelerin bunluduğu ve bunlara yenilerini ekleyebileceği yapıların adıdır. Gelişmiş frameworklerde biçim kontrolü, veri tabanı bağlantısı, kullanıcı giriş çıkış, mail atma, tema motoru benzer biçimde kütüphaneler mevcuttur.

Frameworkler ek olarak MVC (Model, View, Controller) benzer biçimde bölümlerden oluşarak projenizin daha okunabilir düzenlenebilir olmasını sağlamaktadır.

Meydana getirilen projelerin çoğunda aradan belirli bir süre geçtikten sonrasında düzenlemek zorlaşır. Hem kodların artması hem de yazılan kodun unutulması revize sürecini uzatmakta. Bu yapılar Modelde veritabanı işlemlerini, Controllerda genel mekaniği, Viewda ise görünüm kodu ihtiva ettiği için müdahale edilmesi ihtiyaç duyulan yer tam olarak bulanabilmektedir. Aşağıda Laravel için örnek MVC yapısını görebilirsiniz.

finding-laravel-from-a-lost-advanced-beginner-of-java-15-638_w515.jpg

Yaygın frameworkler nedir?

Eğer yazılım diliniz PHP ise, çok çok fazla seçeneğiniz var anlamına gelir. Bunlardan bazıları Laravel, Symfony, Zend, CodeIgniter, Smarty, CakePHP ve Yii.. Aşağıda bunlara ek olarak örnek durumunda bir sıralama yaptık. Bu bir tek birkaç örnektir ve framework’ler her geçen gün gelişmeye devam etmektedir. İşinize en uygun olanını seçerken projenizin gereksinimlerini ve dil tercihlerinizi dikkate almanız önemlidir.

Web Geliştirme Framework’leri:

  1. Django (Python): Python tabanlı bir web framework’üdür ve süratli bir halde güvenlikli ve ölçeklenebilir web uygulamaları oluşturmanıza destek verir.

  2. Ruby on Rails (Ruby): Ruby ile yazılmış olan Ruby on Rails, süratli geliştirme ve kolaylık sağlar. MVC (Model-View-Controller) mimarisi kullanır.

  3. Express.js (Node.js): Node.js için minimal ve esnek bir web uygulama framework’üdür. JavaScript ile çalışır ve bilhassa API geliştirmeye uygun bir yapıya haizdir.

  4. Angular (JavaScript/TypeScript): Google tarafınca geliştirilen Angular, büyük seviyede kullanıcı arayüzü yapmaya odaklanır ve SPA (Single Page Application) geliştirmek için yaygın olarak kullanılır.

  5. React (JavaScript/TypeScript): Feysbuk tarafınca geliştirilen React, kullanıcı arayüzü geliştirmek için kullanılır ve çoğu zaman öteki framework’lerle (mesela, Redux ile) bir arada kullanılır.

Mobil Uygulama Framework’leri:

  1. React Native (JavaScript/TypeScript): React tabanlı bir framework olan React Native, hem iOS hem de Android için tek bir kod tabanı kullanarak mobil uygulamalar geliştirmenize olanak tanır.

  2. Flutter (Dart): Google tarafınca geliştirilen Flutter, iOS, Android ve web için uygulamalar oluşturmak için kullanılır. Dart programlama dilini kullanır.

  3. Xamarin (C#): Microsoft tarafınca desteklenen Xamarin, C# ile mobil uygulamalar geliştirmenize olanak sağlar ve iOS, Android ve Windows için uygulamalar oluşturabilirsiniz.

Oyun Geliştirme Framework’leri:

  1. Unity (C#): Unity, 2D ve 3D oyunlar geliştirmek için kullanılan fazlaca popüler bir oyun geliştirme platformu ve framework’üdür.

  2. Unreal Engine (C++): Unreal Engine, yüksek kaliteli 2D ve 3D oyunlar geliştirmek için kullanılan bir öteki kuvvetli oyun motoru ve framework’üdür.

Veritabanı ve ORM Framework’leri:

  1. Hibernate (Java): Java dilinde veritabanı işlemlerini kolaylaştıran bir ORM framework’üdür.

  2. Entity Framework (C#): .NET platformu için bir ORM framework’ü olan Entity Framework, veritabanı işlemlerini basitleştirir.

Avantajları

Frameworkler temel yapıları en fazlaca kullanılan kütüphaneleri ve modülleri barındırır. Hiçbir framework ana yapısında gelişmiş yapıları içermez. Bunun yerine genişletmek kanalıyla projenize uydurulur. Mesela giriş yaparken genel olarak eposta değişkeni ile giriş yapılır. Siz eğer kullanıcı adı ile giriş yapmak istiyorsanız bir tek o fonksiyonu değiştirerek projenizi yazmaya devam edebilirsiniz. Framework kullanmak size bu bağlamda hız katar. Veri tabanı bağlantıları, güvenlik sorunları yada yetkilendirme benzer biçimde en temel bölümleri yazmanıza gerek kalmamıştır. Frameworkün ya içinde vardır yada fazlaca kolay bir halde dahil edilebilir. Bu sayede tam olarak bitirilmesi 2 ayı bulacak projeler kimi zaman 2-3 hafta da bitebilmektedir. Öteki bir kazancı ise belli standartları olduğundan bu standartlarda geliştirilen projeye yeni ekip arkadaşları kolaylıkla entegre olabilir. Bu benzer biçimde faydalara karşın kısıtlanmış ve bazı kriterlerinizde mesele yaşıyorsanız framework kullanmayabilirsiniz.

Avantajları özetlersek:

  • Hız ve Verimlilik: Hazır araçlar ve kütüphaneler geliştirme sürecini hızlandırır ve daha verimli yapar.
  • Standartlaştırma: Framework’ler, belirli bir yapıyı takip eden bir takım standart sunar, bu da daha tutarlı ve okunaklı kodlar oluşturmanızı sağlar.
  • Hata Azaltma: Framework’ler, güvenlik açıklarını ve hataları azaltmaya destek olabilir.
  • Topluluk Desteği: Popüler framework’ler çoğu zaman büyük bir geliştirici topluluğu tarafınca desteklenir ve dökümantasyon ve yardım kaynaklarına erişim sağlar.

Sadece framework’ler hem de belirli kurallar ve sınırlamalar getirebilir, öğrenme eğrisi olabilir ve projenizin gereksinimlerine muhteşem şekilde uymayabilirler. Bu yüzden, bir framework seçerken dikkatli bir değerlendirme yapmak ve projenizin gereksinimlerine en uygun olanı seçmek önemlidir.

Framework enerjisini nereden alıyor?

Günümüzde bir fazlaca framework opensource olarak geliştirilmekte. Bu da en küçük güvenlik sorununda güncellenmesi anlamına gelir. Ek olarak kendi projelerinde framework kullanan insanoğlu düzelttikleri hataları geliştirdikleri yeni özellikleri framework yapımcılarına bildirerek gelişmesini sağlamaktadırlar. Ek olarak composer ile fazlaca sayıda paket birbiri ile uyum içinde iş yapmaktadır.

Yorum yapın