Ember.js 2011 yılında Yehude Katz ve Tom Dale tarafından geliştirilmiş, açık kaynak olan bir Javascript framework’üdür. Genellikle istemci taraflı büyük web uygulamalar yaratma konusunda isminden söz ettirmektedir. Diğer Javascript framework’lerine göre daha organize olmuş, planlı kod yazma imkanı tanımaktadır.
Resmi web sayfası Ember’i bu şekilde tanımlamaktadır:
Modern web uygulamaları oluşturmak için üretken, zor şartlar altında da test edilmiş bir JavaScript framework’ü. Herhangi bir cihazda çalışan zengin kullanıcı arayüzleri oluşturmak için ihtiyacınız olan her şeyi içerir.
İçindekiler
Framework Nedir?
Bir projede, proje için gerekli yapıların bir arada toplanmış halde geliştiriciye sunulmuş pakete framework diyebiliriz. Çatı olarak çevireceğimiz framework yapısını inşaat halindeki bir eve benzetebiliriz. Bir uygulama geliştirmek istiyorsunuz ve seçtiğiniz framework’ler size bazı yapılar sunuyor. Bu süreçte seçilebilecek tam paket ya da sadece gerekli unsurları barındıran ve birçok çeşitliliğe sahip olan framework’ler mevcut. Projenin büyüklüğü, neler içereceği, ekibin kaç kişi olacağı gibi birçok etken framework seçimini etkiliyor. Web, mobil, veri bilimi gibi birçok alanda o alana özel tasarlanmış framework görmek mümkün. Ember.js ise web framework’ü kategorisinde yer almaktadır.
Javascript Nedir?
Javascript interaktif web sayfaları yaratmak amaçlı ortaya çıkmış bir programlama dilidir. Form doldurmak, hareketli görsel ögelerin olması gibi bir web sayfasını güzelleştiren ve etkin hale getiren bir yapıya sahiptir. Başlangıcı 1995 ortalarına dayanan ve de zaman ilerledikçe gelişimini büyük hızda sürdüren Javascript için birçok framework ortaya çıkmıştır. Kullanma amacına göre geliştiriciler React, Angular, Vue, Backbone, Ember gibi birçok framework içerisinden tercihini yapmaktadır.
Ember.js Tarihçesi
jQuery, Ruby on Rails ve SproutCore ekiplerinin üyesi Yehuda Katz, Ember.js’i yaratan isim. Ona bu konuda en büyük desteği veren bir diğer isim ise Tom Dale. Bu iki kişi önderliğindeki ekip, Aralık 2011 yılında SproutCore 2.0’ın adını değiştirerek Ember.js olarak yayınlamışlardır. Bunun nedeni SproutCore 1.0 ile isim benzerliğinden dolayı karışıklığa sebep vermek istememelidir.
Bir ana şirketin desteğine sahip olan AngularJS (Google) ve React (Facebook) gibi diğer framework’lerin aksine, Ember.js çeşitli sponsorlara sahiptir. Bunlar arasında, başlıca kullanıcıları olan Yahoo!, LinkedIn ve Bustle bulunmaktadır.
Tom Dale’in katıldığı bir etkinlikte sorulan sorular doğrultusunda logonun neden hamster seçildiğine de cevap buluyoruz.
Asıl soru şu, neden bir hamster DEĞİL? Go’nun bir gopher logosu vardır ve tüylü hayvan maskotları olan başkaları da vardır. Yani Ember’ın bir hamsteri var. Bir logo için tasarımcılara gittiğimizde herkesin aklında ilk çağrışım yapan hamster oldu ayrıca. Bu nedenle birkaç tasarım içinden seçtiğimiz, gözlüklü hamster oldu.
Ember.js Nedir?
Ember.js açık kaynak olan, MVVM yapısına sahip bir Javascript framework’üdür. Kapsamlı, geniş Single Page Application yaratmak konusunda kullanılmasıyla bilinir. Web uygulamaları yanında mobil ve masaüstü geliştirmeyi de sağlar.
MVVM (model view viewmodel)
Uygulama içerisinde yapıları birbirinden ayıran bir sisteme sahiptir. 2005 yılında tanıtımı yapılan MVVM’ye birçok framework içinde rastlamaktayız.
Kısaca yapısı:
Model: Veri ile ilgili sorumlu olan yapıdır. Veri tabanından ya da ilgili yerlerden çekilen verinin kullanılması, tutarlılığı gibi işlemler yer almaktadır.
View: Kullanıcın etkileşime geçtiği arayüz dediğimiz yapıdır. Görsel yapının tutulduğu, tasarımı içeren kısımdır.
ViewModel: ViewModel ise model ve view arasında köprü görevini gören yapıdır. Arayüz ve model arasındaki tüm etkileşimler bu yapıda gerçekleşmektedir.
Bu üçlü yapı sayesinde kodlarda yapılan değişiklik birbirini etkilemez ve daha sağlam bir şekilde uygulama yaşamını sürdürür.
Single Page Application
Tek Sayfa Uygulamaları olarak çevireceğimiz SPA, sayfa yenilenmeden veri akışının sağlandığı yeni model web uygulamalarıdır. Görsel olarak mobil bir uygulama kullanıyormuş hissi uyandırır. Bu açıdan kullanıcılar tarafından daha tercih edilir bir hale gelmiştir. Aynı zamanda veri akışı daha hızlı sağlandığı için daha hızlı bir performans sağlamaktadır. Öte yandan tek bir link üzerinden çalıştığından indeksleme konusunda arama motorlarında geriye düşmektedir.
Ember’in geliştiricileri Ruby on Rails kullanıcıları olduğu için, RoR ve Ember oldukça benzer yapılara sahiptir. Eğer Rails kullandıysanız, Ember’ı da sevebilirsiniz.
Rails hakkında bilgi sahibi değilseniz, Ruby on Rails Nedir? yazımızı okuyabilirsiniz.
Yeniden kullanılabilir ve desteklenebilir parçalardan oluşan bir kod yapısına sahiptir. Böylece tekrara düşmez ve de bazı yapıları birçok uygulamanız kullanma fırsatı sunar. Bir açılış sayfasını birden fazla uygulamada kullanabilirsiniz mesela.
URL’ler için yönlendirme işleyicileri, çok çeşitli olası uygulama durumlarını görebilir.
Ember.js Kullanan Büyük Şirketler
Netflix
Apple
Square
Intercom
Heroku