Framework Nedir, Ne İşe Yarar? En Yaygın Frameworkler

26 Eylül 2024

11 dk Okuma

Framework nedir? Bu yazıda framework ne demek ve bu ifadenin hangi teknolojileri ifade ettiği konusunda bilgi sahibi olacağız. Tarihsel olarak incelediğimizde World Wide Web’in tanıtıldığı zamanlarda üzerinde değişiklik yapabilmek için kodu yazan kişinin kendisine ihtiyaç duyuluyordu. 1993 yılında dinamikliği sağlamak amacıyla Common Gate İnterface standardı ortaya atıldı. Bu standard dinamik web sayfalarında kullanıcı girdilerini yansıtabiliyordu fakat performans anlamında olumsuz etkileri vardı. Sunucu yükünü arttırdığı gözlemlendi. 1995 yılına gelindiğinde ise PHP gibi tam entegre sunucu/dil geliştirme ortamları tanıtıldı. 1990’lı yılların sonunda ise Full-Stack frameworkler ortaya çıkmaya başladı.

Framework Nedir?

Framework nedir ne işe yarar? Framework kelimesi türkçeye çerçeve olarak çevrilebilir. Yazılımdaki işlevi kodları üzerine yerleştirebileceğiniz bir iskelet olmaktır. Her framework bir programlama dili ile ilişkilendirir ve o dilde kod yazmayı daha kolay hale getirir. Frameworkler sayesinde her web projesinde yer alan başlangıç adımlarını defalarca tekrar etmeye gerek kalmadan geçebilirsiniz. Framework yazılarak oluşturulan kodlar bir çerçeve kapsamında belirli standartlara bağlı kalırlar. Frameworkler deneyimli yazılım mühendisleri tarafından geliştirildiğinden dolayı henüz başlangıç seviyesindeki yazılımcılar için kullanımları son derece avantajlı olur.

Frameworkler Ne İşe Yarar?

Frameworkler ne işe yarar? Bu soruya cevap vermeden önce bu kelimenin türkçedeki karşılığını tekrar hatırlamamız gerekir. Peki Framework ne demek? Bu ifade türkçeye “Çerçeve” şeklinde çevrilir. Frameworkler önceden oluşturulmuş hazır yapılar olarak düşünülebilir. Framework kullanırken önceden oluşturulmuş bir iskelete gerekli parçalar yerleştirilir. Bu süreç içinde sağladığı en büyük kolaylık iskeleti oluşturmaya gerek olmamasıdır. Projenin geliştiricisi dışındaki kişiler bile bu durum sayesinde işlemlerin hangi klasörler altında gerçekleştiğini kolaylıkla anlayabilir. Kullanılacak kod parçalarının nerede yer alması gerektiği zaten belirlidir. Frameworkler tekrarlayan kodları da ortadan kaldırırlar. Bu durum performansı iyi yönde etkilerken kişinin verimliliğini de arttırır. Karmaşık uygulamaları daha kısa sürede yapmak mümkün hale gelir.

Framework Neden Kullanılmalıdır?

Frameworkleri neden kullanmamız gerektiğini anlamak için framework ne işe yarar sorusunun cevaplarına bakmamız gerekir. Frameworkler geliştiricilerin basit sorunlarını ortadan kaldırmaya çalışır. Bir projeye başlarken sıfırdan inşa etmek yerine halihazırda var olan bir yapı üzerinden ilerlenmesini mümkün kılar. Bu durum sonuç görmeyi hızlandırır. Bir proje üzerinde daha efektif bir şekilde ilerlemek istiyorsanız framework kullanmalısınız. Form doğrulamak gibi belli başlı işler framework kullanılarak daha efektif şekilde yapılabilir. Buna ek olarak kişiyi temiz kod yazmak için teşvik eder. Sektördeki best practicesleri içinde bulundurur. Buna bağlı olarak geliştirici kod yazarken framework kullanması sayesinde daha sağlam ilerleyebilir.

Framework Nasıl Çalışır?

Şimdi frameworklerin nasıl çalıştıklarını daha detaylı bir biçimde inceleyelim. Frameworkler aslında birkaç ana bileşenin bir araya gelmesiyle oluşur. Bu bileşenlerden ilki kütüphanelerdir. Kütüphaneler yazılım geliştirme süreçlerinde sık kullanılan fonksiyonları içlerinde barındırırlar. Bu fonksiyonlar veri tabanı erişimi, arayüz bileşenleri ve güvenlik protokolleri olarak çeşitlendirilebilir. Frameworklerin ikinci ana bileşeni de API’lerdir. API’ler frameworkün sunduğu verilerin kullanılmasını sağlarlar. Önceden tanımlı şablonlar da frameworklerin bir başka ana bileşenidir. Görev tekrarlarını azaltmak ve verimliliği artırmak için üretilmişlerdir. Bu ana bileşenler ile birlikte çekirdek bileşenler eklenti ve modüller framework yapısını oluşturur. Artık yapıyı kavradığımız göre çalışma prensiplerine geçebiliriz. Frameworkler 5 temel prensip dahilinde çalışır. Bu prensipler tersine kontrol, konfigürasyon üzerinden varsayılanlar, modülerlik ve yeniden kullanılabilirlik, bağlam yönetimi ve soyutlamadır. Tersine kontrol yazılım geliştirmede sıklıkla gözlemlediğimiz bir prensiptir. Yazılımcı çağırılması gereken fonksiyonları frameworkün belirli noktalarına bildirir. Sonrasında kontrolün asıl sahibi olan framework gerekli olduğunda yazılan bu fonksiyonları çağırır ve tersine kontrol işlemiş olur. Konfigürasyon üzerine varsayılanlarda ise minimum konfigürasyon ile işleri halletmek ana fikirdir. Yazılımcı sadece gerekli durumlar için konfigürasyon yapar ve bu durum geliştirme sürecini hızlandırır. Modülerlik ve yeniden kullanılabilirlik prensibinde ise amaç yeniden kullanılabilir küçük yapılar oluşturmaktır. Frameworkler bağlam yönetimi prensibinde geliştirilen projede ne tür işlemler yapılması gerektiğini belirler. Beşinci ve son prensip olan soyutlama kısmında ise frameworkler karmaşıklığı ortadan kaldırırlar. Altyapı detaylarını gizleyerek geliştiricinin uygulama mantığına odaklanmasına yardımcı olurlar.

En Popüler Frameworkler Hangileridir?

En popüler frameworkler zaman içinde değişim gösterir. Yıllara göre bazı framework teknolojileri popülerlik kazanırken bazıları popülerliklerini kaybeder. Frameworklerin popülerleşmesi ile doğrudan alakalı olan birkaç özellik vardır. Yeni teknolojilere uyum özelliği şüphesiz tercih edilme oranını arttırır. Buna ek olarak sektörün talep ettiği ihtiyaçları karşılayan frameworkler karşıladıkları ihtiyaçlardan dolayı daha fazla tercih edilirler. Uygun frameworkü seçerken geliştiricilerin aradığı bazı özellikler topluluk desteği, kolay kullanım, performans, esneklik ve güvenliktir. Bu özellikler karşılamaya başlayan ya da karşılamaya devam eden frameworkler en çok tercih edilen frameworkler listesinde yer alır. Şimdi popüler inceleyelim. Frontend tarafına bakıldığında 2024 yılında en popüler frameworkler listesinde birinci sırada React yer alır. Özünde bir kütüphane olsa da yoğun olarak kullanılması ve bazı geliştiriciler tarafından kütüphane olarak kabul edilmemesi nedeniyle framework başlığı altında yer alıyor. Listenin geri kalanı Vue, Svelte, Angular, Solid ve Ember.js şeklinde devam ediyor. Listede yer alan frameworkler JavaScript frameworkleri olarak da adlandırılabilir. 2024 yılında en çok kullanılan Backend frameworklerine gelindiğinde ise bir numarada ASP.NET Core yer alır. Sonrasında liste Django, Laravel, Ruby on Rails, Express.js ve CakePHP olarak devam eder. Yazının devamında bu frameworklerin bir kısmın daha yakından tanıyacağız.

1.React

React 2013 yılında Facebook tarafından geliştirilmiş bir kütüphanedir. Geliştirildiği günden bu yana popülerleşmeye devam etmektedir. 2011 yılında John Walke React’ın temellerini atarken amacı DOM manipülasyonunu daha verimli bir hale getirmekti. Sonrasında React News Feed üzerinde kullanılmaya başlandı. Bu durum kütüphanenin gelişmesine olanak tanıdı. 2013 yılında ise Facebook açık kaynak olarak React’ın dağıtımını yaptı. Bu olay geliştiriciler arasında ses getirdi ve React o zamandan bu zamana gelişmeye devam etti. Frontend geliştirmede kullanılan React ile bileşen tabanlı UI’lar oluşturulabiliyor. Web alanıyla ilgilenen kişilerin mutlaka bilmesi gereken bir kütüphane olan React hem Frontend geliştirmede hem de FullStack geliştirmede kullanılabilir. Bu alanla ilgilenen kişiler full stack developer eğitimi konularında React’a mutlaka yer vermelidir.

2. Vue

Vue açık kaynak kodlu bir Js çerçevesidir. Genellikle tek sayfa uygulamaları oluşturmak için tercih edilir. Öğrenilmesi kolay bir yapısı vardır. Sektöre yeni giren yazılımcılar için kullanılması avantajlıdır. Vue.js küçük boyutludur bu durum onu performans bakımından iyi bir noktaya taşır. Esnek bir yapıya sahiptir ve projelere dahil edilmesi görece kolaydır. Bileşen tabanlı mimarisi geliştiricilerin işlerini kolaylaştırmaktadır. Performansı arttırmak adına Virtual DOM kullanır. Vue.js ekosistemine geliğimizde ise Nuxt.js ve Vue CLI gibi araçlar bizi karşılar. Vue.js CMS sistemlerinde, E-ticaret sitelerinde, sosyal medya platformlarında ve interaktif dashboardlarda kullanılabilir. Yazılım nasıl öğrenilir şeklinde araştırmalar yapan ve Web alanında ilerlemeyi düşünen kişiler için framework konusunda Vue iyi bir seçim olabilir.

3. Svelte

Svelte modern web uygulamaları geliştirmek için kullanılan bir başka frameworktür. 2016 yılında Rich Harris tarafında geliştirilmiştir. Svelte’in özelliği diğer frameworklerden farklı olarak bileşenleri çalıştırmadan önce derleme yapmasıdır. Bu durum tarayıcı yükünü azaltır. Hızlı ve hafif uygulamalar yapmak için mükemmeldir. Diğer özelliklerine gelecek olursak Svelte’in derleyici tabanlı bir yapısı vardır. İçinde barındırdığı bileşenleri derleme aşamasında Js’e dönüştürür. Yani çalıştırma esnasında framework yüklemesi yapılmasını gerektirmez. Paket boyutları küçülür. Reaktif veri bağlama sistemini kullanır. Reaktif veri bağlama sistemi veride yapılan değişiklikleri anında kullanıcı ara yüzüne yansıtır. Uygulama içindeki durumlar Svelt Stores içinde yönetilebilir. Söz dizimi basittir ve öğrenmesi kolaydır.

4. Angular

Angular 2010 yılında Google tarafından piyasaya sürülen bir frameworktür. Angular büyük ve karmaşık projeler için idealdir. TypeScript kullanır. Anguların TypeScript kullanması büyük projelerde ortaya çıkabilecek sorunların bir kısmını önler. Uygulamanın hatasız bir şekilde gelişmesine katkıda bulunur. Modüler bir yapısı vardır. Organize edilebilir. İki yönlü veri bağlama özelliği sayesinde herhangi bir tarafta yapılan değişiklik anında iletilir. Sanal DOM’u kullanmaz. Sanal DOM yerine gerçek DOM’u kullanır ve bu sayede optimize bir performans çıkarır. Angular Ionic gibi frameworklerle ortak çalışarak hibrit mobil uygulamalar geliştirebilir. Bu uygulamalar hem İOS işletim sisteminde hem de Android’de çalışır.

5. Django

Django, Python kullanan bir frameworktür. 2005 yılında Lawrence Journal-World’de çalışan programcılar tarafından geliştirilmiştir. Amacı temiz ve hızlı geliştirme yapmaktır. Karmaşık uygulamaları hızlı bir şekilde oluşturmaya ve yönetmeye olanak tanır. Açık kaynak olarak yayınlanmıştır. Python topluluğu tarafından günümüzde yaygın bir şekilde kullanılır. Şimdi Django’nun özelliklerine daha yakından bakalım. Django MTV mimarisini kullanır. Bu mimari iş süreçlerinin otomasyonu için oluşturulmuştur. Model, template ve view üzerinde çalışırken okunabilirlik ve ölçülebilirlik sağlar. Geliştirme sürecinde otomatik bir yönetim paneli sunar. Bu panelle veri yönetiminde kullanılabilecek bir arayüz oluşturulur. Kendi içinde dahili güvenlik özellikleri barındırır. ORM sistemi ile geliştiricilerin Python nesneleri oluşturmalarına olanak tanır. Veri tabanı işlemlerini basitleştirir.

6. Laravel

Laravel, 2011 yılında Taylor Otwell tarafından geliştirilen bir frameworktür. PHP dilinde yazılmıştır. Açık kaynak kodludur. PHP frameworkleri arasında son derece popülerdir. MVC mimarisini kullanır. Bu mimari sayesinde Laravel’de yazılan kodlar sürdürülebilir ve modülerdir. Laravel’de veritabanı işlemleri görece daha basittir. ORM sistemlerinden biri olan Eloquet’i kullanır. Blade şablon motoruyla PHP kodlarını HTML ile birleştirir. Bu birleşim temiz şablonlar oluşturmayı sağlar. Artisan CLI ile geliştirme sürecindeki birtakım işlemleri otomatikleştirir. Veri tabanı işlemleri ve proje yönetimi bu işlemlere örnek olarak gösterilebilir. İş kuyrukları sayesinde işleme kapasitesini arttırır. Güvenlik kısmında CSRF koruması ve SQL enjeksiyonu önleme Laravel’in sağladığı güvenlik önlemlerinin yalnızca bir kısmıdır. Laravel E-ticaret siteleri, blog platformları, sosyal ağlar, kurumsal uygulamalar ve API geliştirme gibi alanlarda kullanılabilir.

Framework Kullanmanın Avantajları Nelerdir?

Yazının bu kısmında da frameworklerin avantajlarını inceleyelim. Frameworklerin en büyük avantajlarından biri hızlı geliştirmeye olanak tanımalarıdır. Önceden yazılmış modüller sayesinde geliştirme yapan kişiler projelerine bir adım önde başlarlar. Frameworkler bir klavuz gibi geliştirme yapan kişilerin Web standartlarını takip etmesine katkıda bulunurlar. Sık karşılaşılan güvenlik açıklarına karşı belli bir oranda güvenlidirler. Bu avantajların yanında topluluk desteği, hata yapma olasılığının düşürülmesi ve bakım kolaylığı gibi özellikleri de vardır. Bu nedenle yazılım eğitim programları içeriklerinde frameworklerin üzerinde durulur. Yeni yazılımcı adaylarının bu avantajlardan yararlanarak eğitim sürecinde ilerlemesi kolaylaşacaktır.

Framework Kullanmanın Dezavantajları Nelerdir?

Frameworklerin avantajlarından sonra şimdi de dezavantajlarından bahsedelim. Öğrenme süreçleri kimi zaman zorlayıcıdır. Trendlerin değişmesiyle beraber önceden zaman harcanılarak öğrenilmiş frameworklere gerek kalmayabilir. Genel bir optimizasyon yapıldığı için kimi zaman frameworkler performans açısından tatmin edici sonuçlar vermeyebilir. Bunun yanında framework belirlenmiş bir yapı sunduğu için bazı durumlarda kısıtlayıcı olabilirler.

Kaynakça Codecademy. (2021, Eylül 23). What is a framework? Codecademy. https://www.codecademy.com/resources/blog/what-is-a-framework/ Wikipedia. (2024, Haziran 25). Web framework. Wikipedia. https://en.wikipedia.org/wiki/Web_framework Yakar,U. (2021, Aralık 21). Framework nedir, ne işe yarar? Webtekno. https://www.webtekno.com/framework-nedir-ne-ise-yarar-h117776.html App Academy. (2024, Ocak 22). 8 most popular web programming frameworks. App Academy. https://www.appacademy.io/blog/8-most-popular-web-programming-frameworks Bhatt,T. (2024, Nisan 25). Best front-end frameworks. London App Development. https://londonappdevelopment.co.uk/blog/best-front-end-frameworks Gadhavi,M. (2024, Haziran 17). Best backend frameworks. Radixweb. https://radixweb.com/blog/best-backend-frameworks