Ember.js açık kaynak kodlu, ücretsiz, kullanıcı taraflı (client-side) web uygulamaları geliştirmeyi sağlayan bir JavaScript framework’üdür. Ember.js ile veri yönetimi ve uygulama akışları gibi bir framework’ten beklenebilecek her şeyi yapabilirsiniz.
Ember.js ilk sürümü 2011 Aralık’ında, SproutCore MVC Framework olarak Yehuda Katz tarafından yayımlanmıştır. Ember.js’in ilk stabil sürümü (2.10.0) ise 28 Kasım 2016’da yayımlanmıştır.
Framework’ün en çok tercih edilme sebeplerinden bir tanesi ise Single-page Application (SPA) özelliğidir. Bu sayede sayfa yenilemeden kullanıcı isteklerini karşılayabilirsiniz.
Felsefesi ve Tasarımı
Ember.js başlangıçta bir kaç anahtar fikir üzerinde tasarlanmıştır;
İddialı web uygulamalarına odaklanma:
MVC’deki view(görünüm)’e odaklanan bir çok JavaScript Framework’ünün aksine, Ember kullanıcı taraflı uygulama sorunlarına tümden çözüm bulmak için yola çıkmıştır.
Kurulumdan başlayarak verimlilik:
Ember, eksiksiz bir geliştirme yığını sağlamak için birlikte çalışan bir dizi aracın bir bileşenidir. Bu araçların amacı geliştiriciyi hemen üretken kılmaktır. Örneğin Ember CLI standart bir uygulama yapısı sağlar ve iş hattı oluşturur. Aynı zamanda eklenebilir (plug-in) bir mimariye sahiptir ve 3500'den fazla eklenti ile hem geliştirilebilinir hem de genişleyebilir.
Durgunluk olmadan stabilite:
Bu geriye dönük uyumluluğun önemli olduğu ve Ember’in geliştilmesi ve evrimleşmesi devam ederken bile sürdürülebileceği fikridir.
Geleceğin web standlarını öngörme:
Ember, JavaScript ve web üzerinde Promise, Web Components ve ES6 Syntax de dahil olmak üzere birçok standartın ilk uygulayıcısı ve öncüsü oldu. (Yehuda Katz, TC39 isimli gelecekteki JavaScript sürümlerinden sorumlu olan komitenin bir üyesidir.)
Aynı Ruby on Rails gibi Ember’da CoC (Convention over Configuration) ve DRY (Don’t Repeat Yourself) prensiplerini takip eder. Oldukça esnek inşa edilmiş kararlı bir Framework olarak tanımlayabiliriz.
Temel Kavramlar
Ember.js’e başlarken anlamınız gereken bir kaç temel kavram bulunmaktadır;
Template’ler:
Template’ler, Handlebars dili ile yazılan kullanıcı arayüzleridir. Düz HTML’e ek olarak, Template’ler {{ title }} veya {{ author }} gibi ifadeler içerebilir. Bu ifadeler Controller’dan alınan bilgileri HTML içerisinde göstermek için kullanılır.
Component’ler:
Bileşenler, kullanıcı arayüzlerinin Ember'da organize edilmesinin birincil yoludur. İki bölümden oluşurlar: bir şablon ve JavaScript'in içinde, bileşenin davranışını tanımlayan bir kaynak dosya.
Controller’lar:
Controller’lar, Component’lere çok benzerler; Ember'in gelecekteki sürümlerinde, Controller’lar tamamen Component’lerle değiştirilecektir. Şu anda, Component’ler Route edilemezler, ancak bu değiştiğinde, tüm Controller’ları Component’lerle değiştirmeniz önerilecektir.
Model’lar:
Model’lar veri kaydetme veya alma işlemlerinde kullanılır. Modeller, tarayıcının yerel depolama alanı gibi başka bir yere kaydedilecek şekilde yapılandırılabilse de, Model’lar genellikle bir sunucuya bilgi verir.
Route’lar:
Route’lar Controller ve Template’i yüklerler. Route’lar ayrıca Controller’ın Template aracılığı ile sunacağı bilgiyi yüklemek için bir veya daha fazla Model’ı çağırabilirler.
Router:
Router, URL’leri haritalandırmak için kullanılır. Kullanıcı isteklerini gerekli Route’lara yönlendirilmesini sağlar.
Sonuç olarak Ember.js, bir çok dev tarafından kullanılan, kulanışlılığı ve üretkenliği arttırmak için, geliştirici ve kullanıcı dostu bir JavaScript framework’üdür.