Framework Nedir? sorusunun yanıtını; neredeyse tm web sitelerinde, uygulamalarda, uzantılarda, programlarda ve diğer bilgisayar sistemlerindeki srelerin arkasında yer alan mekanizma olduğu iin bilmemiz gerekir.
Sağlam ve gvenli yapılar stne kod yazmanızı sağlayan frameworkler, tm tekrarlı, rutin işlemlerin ve otomatik olarak yapılan uygulamaların kolay ve hızlı bir şeklide geliştirilmesini sağlar.
rneğin, Spring (Java) veya Symfony (PHP) kullanırken, geliştiricilerin, frameworkn mevcut bileşenleri nedeniyle verilerini nasıl saklayacaklarını ve kimlik doğrulamasını nasıl organize edeceklerini dşnmelerine gerek kalmaz.
Birok frameworkn benzer olma nedeni, başarının taklitiler yaratmasıdır. Framework geliştiricileri, diğerlerinin en iyi fikirlerine kendi kodlarında yer verir. En popler ereveleri hem ok iyi hem de ok benzer yapan mkemmelliğin sebebi budur.
Framework kullanımı, işin karmaşıklığına ve kapsamına bağlı olduğundan inşa etmek istediğiniz şeye ok benzer bir şey inşa edildiyse, onun frameworkn kullanmak da alternatif olabilir.
Framework, yazılım geliştirme srelerini 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 grevleri gerekleştirmek iin kullanabileceği hazır aralar, ktphaneler, kurallar ve standartlar ierir. Framework'ler, belirli bir programlama dili veya teknoloji yığını zerinde inşa edilir ve geliştiricilere genellikle temel yapı taşları sunar.
Framework, yazılım geliştiricilerin kullandığı nceden hazırlanmış ktphanelerin bunluduğu ve bunlara yenilerini ekleyebileceği yapıların adıdır. Gelişmiş frameworklerde form kontrol, veri tabanı bağlantısı, kullanıcı giriş ıkış, mail atma, tema motoru gibi ktphaneler mevcuttur.
Yapılan projelerin oğunda aradan belirli bir zaman getikten sonra dzenlemek zorlaşır. Hem kodların artması hem de yazılan kodun unutulması revize srecini uzatmakta. Bu yapılar Modelde veritabanı işlemlerini, Controllerda genel mekaniği, Viewda ise grnm kodu ierdiği iin mdahale edilmesi gereken yer tam olarak bulanabilmektedir. Aşağıda Laravel iin rnek MVC yapısını grebilirsiniz.
Eğer yazılım diliniz PHP ise, olduka fazla seeneğiniz var demektir. Bunlardan bazıları Laravel, Symfony, Zend, CodeIgniter, Smarty, CakePHP ve Yii.. Aşağıda bunlara ek olarak rnek niteliğinde bir sıralama yaptık. Bu sadece birka rnektir ve framework'ler her geen gn gelişmeye devam etmektedir. İşinize en uygun olanını seerken projenizin gereksinimlerini ve dil tercihlerinizi dikkate almanız nemlidir.
Angular (JavaScript/TypeScript): Google tarafından geliştirilen Angular, byk lde kullanıcı arayz oluşturmaya odaklanır ve SPA (Single Page Application) geliştirmek iin yaygın olarak kullanılır.
React (JavaScript/TypeScript): Facebook tarafından geliştirilen React, kullanıcı arayz geliştirmek iin kullanılır ve genellikle diğer framework'lerle (rneğin, Redux ile) bir arada kullanılır.
React Native (JavaScript/TypeScript): React tabanlı bir framework olan React Native, hem iOS hem de Android iin tek bir kod tabanı kullanarak mobil uygulamalar geliştirmenize olanak tanır.
Frameworkler temel yapıları en ok kullanılan ktphaneleri ve modlleri barındırır. Hi bir framework ana yapısında gelişmiş yapıları iermez. Bunun yerine genişletmek yoluyla projenize uydurulur. rneğin giriş yaparken genel olarak eposta değişkeni ile giriş yapılır. Siz eğer kullanıcı adı ile giriş yapmak istiyorsanız sadece o fonksiyonu değiştirerek projenizi yazmaya devam edebilirsiniz. Framework kullanmak size bu bağlamda hız katar. Veri tabanı bağlantıları, gvenlik sorunları veya yetkilendirme gibi en temel blmleri yazmanıza gerek yoktur. Frameworkn ya iinde vardır yada ok kolay bir şekilde dahil edilebilir. Bu sayede tam olarak bitirilmesi 2 ayı bulacak projeler bazen 2-3 hafta da bitebilmektedir. Diğer bir kazancı ise belli standartları olduğu iin bu standartlarda geliştirilen projeye yeni takım arkadaşları kolaylıkla entegre olabilir. Bu gibi faydalara rağmen kısıtlanmış ve bazı kriterlerinizde sorun yaşıyorsanız framework kullanmayabilirsiniz.
Ancak framework'ler aynı zamanda belirli kurallar ve sınırlamalar getirebilir, ğrenme eğrisi olabilir ve projenizin gereksinimlerine mkemmel şekilde uymayabilirler. Bu nedenle, bir framework seerken dikkatli bir değerlendirme yapmak ve projenizin ihtiyalarına en uygun olanı semek nemlidir.
Gnmzde bir ok framework opensource olarak geliştirilmekte. Bu da en ufak gvenlik sorununda gncellenmesi demektir. Ayrıca kendi projelerinde framework kullanan insanlar dzelttikleri hataları geliştirdikleri yeni zellikleri framework yapımcılarına bildirerek gelişmesini sağlamaktadırlar. Ayrıca composer ile ok sayıda paket birbiri ile uyum iinde alışmaktadır.
Bir yazılımcı olarak, projelerinizde size yardımcı olmak iin tasarlanmış aralar olduğunda sıfırdan başlamak zorunda kalmazsınız. Framework, program geliştiriciler tarafından oluşturulan, belirli uygulamalara ynelik (rnek: Python ile her trl proje gerekleştirilebilirken, Django framework web uygulamaları geliştirmeye yneliktir.) daha nceden test edilen ve optimize edilen, ktphanelerden ve fonksiyonlardan oluşan yapıların adıdır.
Frameworkler, bizden nce gelenlerin sıkı alışmalarından yararlanmamıza izin veriyor. Onların setikleri mimariyi beğenmeyebiliriz ve uygulama detayları zerinde tartışabiliriz, ancak şikayetlerimizi bastırmak ve sre iinde gerekleşen optimizasyona gvenip ok byk orandaki zaman kazancını gz nne almamız gerekiyor. Yeni bir programa dili ile bir proje yaptığınızı hayal edin, Java veya PHP iin mevcut olan tm kodu yeniden yazmanız yıllar alabilir.
Bir dilin mimarisini bilmek, szdizimini bilmekten ok daha nemlidir. Programlamaya başlayan insanların oğu szdizimi stne harcaması gereken zamandan ok daha fazlasını harcar. Java'nın nesnelerdeki statik alanları nasıl başlattığı konusunu ok iyi biliyor olabilirsiniz ancak JavaDB'nin veya başka bir kod yığınının gcnden, frameworklerin işlevlerinden nasıl yararlanılacağını bulmanız programlama kabiliyetiniz iin ok daha faydalı olacaktır. nk gnmzde otomasyon programlama kalitesini byk lde hallediyor. Kodda sonuca ifade etmeyen değersiz ifadeler bırakırsanız endişelenmeyin. Derleyici (compiler) l kodu ıkaracaktır. İşaretileri (pointer) asılı bırakırsanız, p toplayıcı (garbage collector) muhtemelen bunu zecektir.
Biraz daha detaylarla ilgilenecek olursak, diyelim ki sıfırdan bir internet sitesi hazırlamak istiyoruz. İlk olarak bilgisayarınızda iletişimi sağlayan bir portu oluşturan kodla başlayacaksınız. Bu port zerinden bir talep aldığında, talep edilen yolu ve hangi parametrelerin geirildiğini bulacaktır. Daha sonra html verisi veya bir veri tabanından dndrlmesi gereken verileri sorunlu bir şekilde getirecektir. Ardından bu verileri dzeltip geri gndermemiz gerekecektir.
Ve framework, bağlantı noktası ama / dinleme / http iletişimi / paket kodlama / html sayfası oluşturma veri tabanı ve bunun gibi konularla ilgilenecektir. Yani temel olarak burada kullandığımız framework, internet sitelerindeki temel grevleri yerine getiren bir yapıdır, bylece karmaşık uygulamalar bunun zerine basit bir şekilde yazılabilir.
curl, PHP'de bir librarydir. Curl işlevlerinden birini kullandığınızda, PHP kodu curl kitaplığındaki belirli işlevi ağırır. Kodunuz arayan, library ise aranan utur. Laravel gibi bir PHP framework kullandığınızda ise ilişki tersine dner ve bu nedenle framework, yazılan uygulama kodunu ağırır. Bu teknik olarak Kontrol Tersine evirme (IoC) olarak bilinir. Yani framework MVC (Model, View, Controller) gibi blmlerden oluşarak projenizin daha okunabilir dzenlenebilir olmasını kapsamlı bir şekilde sağlarken sizi bazı noktalarda da başka bir programla diliymiş gibi kısıtlarlar.
Bir uygulama ya da yazılım geliştirmek, işin uzmanları iin bile bir hayli zorlu bir sretir. Bu srete geliştiricileri en ok uğraştıran konu, oğu zaman işin iinden ıkılmaz detaylardır. İşte tam bu noktada devreye framework giriyor. Framework; uygulama ya da yazılım geliştirmek iin geliştirilmiş bir yazılımdır. Sunduğu ereve sayesinde geliştiricilerin işini byk oranda kolaylaştırır.
Farklı platformlar iin geliştirilen uygulama ve yazılımlar iin farklı framework yazılımları vardır. Geliştiricilerin bu tr bir ereve kullanması acemilik anlamına gelmez, aksine kk detaylarla uğraşmadan ok daha verimli alışmalarını ve ok daha işlevsel uygulamalar geliştirmelerini sağlar. Gelin framework nedir, ne işe yarar, trleri nelerdir gibi merak edilen soruları biraz daha yakından inceleyelim.
Dilimize ereve olarak evirebileceğimiz framework; yazılım ya da uygulama geliştirmek iin deneyimli mhendisler ve yazılımcılar tarafından geliştirilen, optimize edilen ve test edilerek kullanıma sunulan bir yazılımdır. Geliştiricilere ufak detaylarla uğraşmadan alanlarında ustalıklarını konuşturacakları bir ereve izdiği iin ok ynldr, gvenilirdir ve verimlidir.
Geliştiriciler, hangi alanda bir uygulama ya da yazılım geliştirdiklerine bağlı olarak farklı framework erevelerinden birini tercih edebilirler. Herhangi bir framework, geliştiricilere bazı temel dzenlemelerin olduğu bir alan sunar. Geliştirici, bu alan zerinde alışmaya başladığı iin işin en byk yknden daha başlamadan kurtulmuş olur.
Yaygın olarak kullanılan tm framework yazılımları, alanında deneyimi mhendis ve yazılımcılar tarafından geliştirilmiştir. Yayınlanan tm framework sistemleri farklı platform ve cihazlar iin optimize edilmiş, zel testlerden geirilmiş ve tasarım sreci en verimli hale getirilmiştir. Framework kullanmanın avantajlarından bazıları şu şekilde;
d3342ee215