Yazılım öğrenirken karşımıza yine yabancı terimlerden biri çıkıyor. Framework’ü açıklamadan önce Türkçe’ye “yazılım iskeleti” olarak çevirelim. Framewrok dediğimiz bu yapıyı; yazılım geliştiricileri tarafından kullanılıyor ve daha önce hazırlanmış olan kütüphanelerin yer aldığı, bu kütüphanelere yenilerini eklemenin mümkün olduğu sistem olarak tanımlayabiliriz.
Yazılım iskeletleri (framework), deneyimli yazılım uzmanları tarafından geliştirilen ve test edilen programlar olduğu için hem verimli, hem de sağlamdır. Ancak bunu library dediğimiz kütüphane terimi ile karıştırmamalıyız, çünkü kütüphaneyi kullandığınız durumlarda yönetimden kendimiz sorumlu oluruz. Fakat framework kullandığımızda akışa dair tüm kontrol framework’ün elindedir.
Framework’lerin temel geliştirilme prensibi; zamandan tasarruf sağlamak ya da kısayollar oluşturmaktır. Framework kullanmadan bir web sitesi tasarlayamaz mıyım? Diye soracak olursanız, elbette tasarlayabilirsiniz. Ancak framework’ler hem çalışmayı daha basit hale getiren kodlar sunar, hem de değiştirme ve entegre etme gibi aktivitelere olanak tanır.
Yazılım iskeletlerinin bize sağladığı pek çok avantaj vardır. Bunların başında kodların daha güvenilir olduğunu söyleyebiliriz. Oluşturacağımız programı daha profesyonel şekilde hazırlamamızı sağlar. Hata oranını düşürerek, kod geliştirmelerini daha tutarlı hale getirir. Gelişmiş teknolojiler üzerinde de çalışmayı daha basit kılar. Yazılım oluştururken mevcut framework’leri kullanabilir veya açık kaynaklı olanlara katkı sunabiliriz. Hem daha işlevseldir, hem de devamlı olarak gelişen, dinamik bir yapıdır. Yazılım ile ilgilenen kişilerin kullandığı diğer uygulamalara göre kodları test etmek ve hataları tespit etmek, ayırmak daha kolaydır, hatta koda sahip olmayan geliştiriciler bile bu işlemi kolayca yapabilir. Ayrıca en can alıcı noktalarından biri büyük ölçüde zaman tasarrufu sağlamasıdır.
Çeşitli sistemlerde framework’ler şu şekildedir:
• Java: Spring, Apache Click, Oracle ADF
• Javascript: Angular, JQuery, Backbone.js, Meteor JS, Express JS, React, Vue
• Php: Symfony, Codelgniter, Zend framework, CakePHP, Laravel
Eğer bir uygulama üzerinde çalışıyor ya da uygulamanızı geliştirmeye çalışıyorsanız; framework’leri kullanmadan önce bir programlama dilinin gereksinimlerini öğrenerek kodlama yeteneğinizi geliştirmek büyük ölçüde yarar sağlayacaktır. Eğer bu işi uzman olarak yapmıyorsanız da framework’ü oluşturan temel kodları kavramak oldukça önemlidir. Bu durum, karmaşayı engelleyerek işinizi çok daha basit ve anlaşılması kolay bir hale getirecektir.