Merhaba sevgili ebergi okuyucuları! Bu ay sizlere Backbone.js'den bahsedeceğim. Kendileri bir Javascript kütüphanesidir ve eğer web sayfaları kodluyorsanız ve Javascript tarafındaki düzensizlikten yakınıyorsanız size ilaç gibi gelecektir.

Bir web uygulaması geliştirirken Model-Görünüm-Denetleyici(MVC: Model-View-Controller) yapısını sunucu tarafında kullanarak ve istemci tarafında da bol bol JQuery kullanarak çeşitli uygulamalar oluşturabiliyorduk. Fakat aynı koda uzun süre sonra geri döndüğümüzde veya bizim kodumuzu bir başkası geliştirmeye devam edeceği zaman işler sarpa sarıyordu. Bunun temel sebebi de istemci tarafındaki Javascript kodunun tabiri caizse tam bir çorba halinde olmasıydı.

İşte Backbone'nun çıkış noktası istemci tarafında da bir MVC düzeni içerisinde ilerlemek ve kodun büyüklüğü veya geliştirici sayısı ne olursa olsun o kodun sürekliliğini ve üstünde çalışılabilirliğini sağlamaktır. Burada şunu vurgulamakta fayda var: Backbone.js bu konudaki tek kütüphane değil. "Angular.js" ve "Ember.js" gibi aynı amaca yönelik ortaya çıkan ve bu soruna farklı şekillerde çözüm bulan kütüphaneler de var. Bu yazıda Backbone'u tercih etmemin sebebi ise kendisinin yüksek miktarda veri ve bu veriyle yapılan yüksek miktarda işlemin altından kolaylıkla kalkabiliyor olmasıdır. Zorlukların altından kolayca kalkabilen bir kütüphane olan Backbone'un tek olumsuz yanı ise tüm işlevlerin el yordamıyla yapılmasının gerekliliği. Kısacası her türlü bağlantıyı, datayı, kontrolleri baştan yazmak durumundasınız. Bu her ne kadar yüksek miktarda kontrol verse de Backbone ile yazdığınız kodun, diğer kütüphaneler kullanılarak yazılan koda göre daha uzun olacağı anlamına geliyor.

İstemci tarafındaki bir MVC yapısından bahsettiğimizde Model olarak o an uygulama içerisindeki belirli veriyi, Görünüm(view) olarak kullanıcının etkileşim halinde olduğu kullanıcı arayüzünü ve Denetleyici(Controller) olarak da kullanıcının tıklama, dolaşma gibi eylemlerine yönelik belirli fonksiyonları anlayabiliriz. Backbone.js'deki en güzel özelliklerden biri modellerde en ufak bir değişiklik olması durumunda kullanıcı arayüzünün otomatik olarak kendisini değişikliğe uygun şekilde yenilemesidir.

Backbone'un en iyi yazılarak öğrenileceğini düşündüğüm için kesinlikle -en az- bir örnek uygulama yazmanız gerektiğini düşünüyorum. Bu konuda daha fazla bilgi edinmek isteyen okuyucularımız Addy Osmani'nin halen geliştirmekte olduğu açık kaynak bir Backbone kitabını sizlerle paylaşayım. Kitap Markdown dili ile yazılmış ve kitabı derlerseniz .pdf .epub ve .mobi uzantılı olarak elde etmeniz de mümkün. Bu kitabı okumanızı şiddetle öneriyorum.

Daha fazla örnek kod parçaları göstermek yerine örnek bir projeyi sizlerle paylaşmayı uygun buldum. Backbone kullanılarak yapılmış bir sitenin mimarisinin nasıl olduğunu, bağlantılar ve verinin nasıl oluşturulup gerçeklendiğini (render) kolaylıkla görebilirsiniz. Sorularınızı hot-line@cclub.metu.edu.tr adresine yollayabilirsiniz. Önümüzdeki sayılarda görüşmek üzere!

Daha Fazla Bilgi İçin: