FRAMEWORKLER NEDİR VE NE İŞE YARAR?

FRAMEWORKLER NEDİR VE NE İŞE YARAR?

Bir yazılımcı olarak,  projelerinizde size yardımcı olmak için tasarlanmış araçlar olduğunda sıfırdan başlamak zorunda kalmazsınız. Framework, program geliştiriciler tarafından oluşturulan, belirli uygulamalara yönelik (örnek: Python ile her türlü proje gerçekleştirilebilirken, Django frameworkü web uygulamaları geliştirmeye yöneliktir.) daha önceden test edilen ve optimize edilen, kütüphanelerden ve fonksiyonlardan oluşan yapıların adıdır.

Neden sıfırdan bir proje yazmak yerine frameworklerden faydalanırız?

Frameworkler, bizden önce gelenlerin sıkı çalışmalarından yararlanmamıza izin veriyor. Onların seçtikleri mimariyi beğenmeyebiliriz ve uygulama detayları üzerinde tartışabiliriz, ancak şikayetlerimizi bastırmak ve süreç içinde gerçekleşen optimizasyona güvenip çok büyük orandaki zaman kazancını göz önüne almamız gerekiyor. Yeni bir programa dili ile bir proje yaptığınızı hayal edin, Java veya PHP için mevcut olan tüm kodu yeniden yazmanız yıllar alabilir. 

Bir dilin mimarisini bilmek, sözdizimini bilmekten çok daha önemlidir. Programlamaya başlayan insanların çoğu sözdizimi üstüne 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 gücünden, frameworklerin işlevlerinden nasıl yararlanılacağını bulmanız programlama kabiliyetiniz için çok daha faydalı olacaktır. Çünkü günümüzde otomasyon programlama kalitesini büyük ölçüde hallediyor. Kodda sonuca ifade etmeyen değersiz ifadeler bırakırsanız endişelenmeyin. Derleyici (compiler) ölü kodu çıkaracaktır. İşaretçileri (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 geçirildiğini bulacaktır. Daha sonra html verisi veya bir veri tabanından döndürülmesi gereken verileri sorunlu bir şekilde getirecektir. Ardından bu verileri düzeltip geri göndermemiz gerekecektir.

Ancak bir web hizmeti yazmak için örneğin Laravel Framework kullanıyorsanız aşağıdakileri okuyan bir yöntem yaratacaksınız:

@ app.route ('/')        def hello_world ():      return render_template ('hello_world.html') 

Ve framework, bağlantı noktası açma / 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 görevleri yerine getiren bir yapıdır, böylece karmaşık uygulamalar bunun üzerine basit bir şekilde yazılabilir.

Peki Libraries ile Frameworks'ün farkı nedir?

Bir library ile framework arasındaki fark, frameworkün kodu çağırmasıdır. Bunun karşısında kod, yazılım kitaplığını çağırır. Bunu bir örnekle anlayalım:

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 uçtur. Laravel gibi bir PHP frameworkü kullandığınızda ise ilişki tersine döner 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 bölümlerden oluşarak projenizin daha okunabilir düzenlenebilir olmasını kapsamlı bir şekilde sağlarken sizi bazı noktalarda da başka bir programla diliymiş gibi kısıtlarlar.


Efe ŞABANOĞLU
Boğaziçi Üniversitesi Bilgisayar Mühendisliği Öğrencisi

 




Eğitimlerle ilgili bilgi almak ve diğer tüm sorularınız için bize ulaşın!

İlgili Eğitimler

Son Blog Yazılarımız

Yakın tarihte açılacak eğitimler

Sitemizi kullanarak çerezlere (cookie) izin vermektesiniz. Detaylı bilgi için Çerez Politika'mızı inceleyebilirsiniz.