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



Egitimlerle ilgili bilgi almak ve diger tum sorulariniz icin bize ulasin!

İlgili Eğitimler

Secure Coding in PHP

Bu eğitimde, uygulamalarını Internet üzerinden yapılan güncel saldırılara karşı dayanıklı hale getir...

  • Classroom
  • Virtual Classroom
  • Online

3 Gün

Web Development Fundamentals - PHP

This two-day course is designed to follow on from the “Programming Foundations” course, which would...

  • Classroom
  • Virtual Classroom
  • Online

2 Gün

Combined Java, Php and Web Application Security

Tecrübeli programcılar bile, geliştirme platformları tarafından sunulan çeşitli güvenlik hizmetlerin...

  • Classroom
  • Virtual Classroom
  • Online

4 Gün

NIST Security Framework Foundation

This theory based course provides a foundation awareness of the five functional pillars (Identify,...

  • Classroom
  • Virtual Classroom
  • Online

2 Gün

Developing Applications and Restful Services with PHP

This five-day advanced-level course is designed to follow on from the “Web Development Fundamentals...

  • Classroom
  • Virtual Classroom
  • Online

5 Gün

System Engineering (SE) Fundamentals and Architecture Frameworks

Katılımcılara sistem mühendisliği disiplini kazandırma ve bu disiplinin prensiplerini daha iyi anlam...

  • Classroom
  • Virtual Classroom
  • Online

3 Gün

RED HAT NEDİR? RED HAT HAKKINDA TÜM MERAK EDİLENLER II 

DEEP LEARNING & MACHINE LEARNING

SİBER GÜVENLİKTE KARİYER

YAPAY ZEKÂ VE TÜRLERİ

MULTI-CLOUD: EFSANELER VE GERÇEKLER

RED HAT HAKKINDA TÜM MERAK EDİLENLER

YENİ ZELANDA DDOS SALDIRISI