SlideShare a Scribd company logo
1 of 26
Neden Backbone.js’ten
AngularJS’e geçtik?
Ömer Büyükoğlu
Web Team Lead
Twitter: Buyomer
GitHub: Buyomer
2014
vs
vs
Sebepler:
• Uygulamanın okunulabilir ve geliştirilebilir olmasını
sağlamak.
• Single Page Application (SPA) geliştirerek duyarlı ve hızlı
bir uygulama geliştirmek.
• Test edilebilir kod yazmak.
MVW*’a Gecis
*Model View Whatever
vs
Uygulamanın okunulabilir ve geliştirilebilir olmasını sağlamak.
vs
Uygulamanın okunulabilir ve geliştirilebilir olmasını sağlamak.
vs
Uygulamanın okunulabilir ve geliştirilebilir olmasını sağlamak.
Single Page Application (SPA) geliştirerek duyarlı ve hızlı bir
uygulama geliştirmek.
Web SunucuKullanıcı
URL ile sunucuya istek
Web sayfası & tüm kütüphaneWeb sayfası & tüm kütüphane
http://www
vs
Geleneksel Web Siteleri
Single Page Application (SPA) geliştirerek duyarlı ve hızlı bir
uygulama geliştirmek.
Web SunucuKullanıcı
Web sayfası & tüm kütüphane
Sayfada bir linke tıklanırsa
Web sayfası & tüm kütüphane
http://www
vs
Geleneksel Web Siteleri
Single Page Application (SPA) geliştirerek duyarlı ve hızlı bir
uygulama geliştirmek.
vs
API
Single Page Application (SPA) geliştirerek duyarlı ve hızlı bir
uygulama geliştirmek.
Web SunucuKullanıcı
URL ile sunucuya istek
Web sayfası & tüm kütüphane
http://www
vs
Single Page Application
Single Page Application (SPA) geliştirerek duyarlı ve hızlı bir
uygulama geliştirmek.
Web SunucuKullanıcı
Sayfada bir linke tıklanırsa
Sadece Data
http://www
vs
Single Page Application
Test edilebilir kod yazmak.
vs
Test yazmak neden önemlidir?
• Daha iyi kod yazmanızı sağlar.
• Hata oluştuğunda geri dönüp problemi tespit etmeyi
kolaylaştırır.
• Projenin kalitesini arttırır.
• Deployment süreçlerini hızlandırır.
Hangi tarafı seçmeliyiz?
vs
Öğrenme ve Adaptasyon Süreci
vs
Boyut
Taban 6.4kb 81kb
Şablon
*Prodüksiyon versiyonları
4.9kb (underscore.js) Dahili
Data Adapter 32kb (jQuery) Dahili
Destek 17kb (json2.js) -
Toplam 60.3kb 81kb
*
Topluluk ve Trendler
Routers
var App = Backbone.Router.extend({
routes: {
“home": "home",
“search/:query": "search"
},
home: function() {
this.changeView(new App.views.Home());
},
changeView = function(view) {
if ((currentView) != null) {
currentView.remove();
}
this.currentView = view;
$("#container").html(this.currentView.el);
};
});
Routers
var App = angular.module()
.config(function($routeProvider) {
$routeProvider
.when('/', {
controller:'homeCtrl',
templateUrl:'home.html'
})
.when('/user/:userId', {
controller:'profileCtrl',
templateUrl:'profile.html'
})
})
});
Models
var App.models.User = Backbone.Model.extend({
urlRoot : '/user'
});
App.User = {}
$resource(‘/api/user/:id’, {id: ‘user_id’})
$http.get(“/api/user”, {id: ‘user_id’})
Views/Controllers
var App.views.Alertbox = Backbone.View.extend({
template: _.template(‘alertbox’),
events = {
'click a.alert_button’: 'alertbox',
};
alertbox = function() {
alert(“Hello World!”);
};
});
Views/Controllers
alertbox.html
App.controller('alertCtrl', ['$scope', function($scope) {
$scope.alertbox = function() {
alert(‘Hello World!’)
});
}]);
<div ng-controller=“alertCtrl”>
<a id=“alert button” ng-click=“alertbox()”>Uyari</div>
</div>
<input type=“text” ng-focus=“alertbox()”/>
Views/Controllers
<div class=“username”>
<span> <%= username %> </span>
</div>
<div class=“username”>
<span> {{usermane}} </span>
</div>
Sonuç?
Sonuç?
+ Ozgur birakmasi
+ Basit
- Ozgur birakmasi
- Ogrenme
- Takim halinde calismak zor
- jQuery Kutuphaneleri
+ Kurallari var
+ Takim halinde calismak
+ Direktif Kutuphaneleri
+ Framework
- Library
Why you don’t use AngularJS?
2014
Teşekkürler
Ömer Büyükoğlu
Web Team Lead
Twitter: Buyomer
GitHub: Buyomer
SlideShare: Buyomer

More Related Content

What's hot

React Bootcamp Day 1 - Yunus Demirpolat
React Bootcamp Day 1 - Yunus DemirpolatReact Bootcamp Day 1 - Yunus Demirpolat
React Bootcamp Day 1 - Yunus Demirpolat
kloia
 

What's hot (20)

Swagger
SwaggerSwagger
Swagger
 
ASP.Net MVC ile Web Uygulamaları -16(JQuery)
ASP.Net MVC ile Web Uygulamaları -16(JQuery)ASP.Net MVC ile Web Uygulamaları -16(JQuery)
ASP.Net MVC ile Web Uygulamaları -16(JQuery)
 
JavaScript ile Taş Kırmak
JavaScript ile Taş KırmakJavaScript ile Taş Kırmak
JavaScript ile Taş Kırmak
 
Modern Web Uygulama Geliştirme
Modern Web Uygulama GeliştirmeModern Web Uygulama Geliştirme
Modern Web Uygulama Geliştirme
 
ASPNET Web API
ASPNET Web APIASPNET Web API
ASPNET Web API
 
Asp.Net Web User Control
Asp.Net Web User ControlAsp.Net Web User Control
Asp.Net Web User Control
 
jQuery ile ASP.NET Uygulamaları Geliştirme
jQuery ile ASP.NET Uygulamaları GeliştirmejQuery ile ASP.NET Uygulamaları Geliştirme
jQuery ile ASP.NET Uygulamaları Geliştirme
 
mvc
mvcmvc
mvc
 
ASP.Net MVC ile Web Uygulamaları -14(Spark ViewEngine)
ASP.Net MVC ile Web Uygulamaları -14(Spark ViewEngine)ASP.Net MVC ile Web Uygulamaları -14(Spark ViewEngine)
ASP.Net MVC ile Web Uygulamaları -14(Spark ViewEngine)
 
Yazılımcılar için iis 7 ve IIS 7.5 yenilikleri ve kolaylıkları
Yazılımcılar için iis 7 ve IIS 7.5 yenilikleri ve kolaylıklarıYazılımcılar için iis 7 ve IIS 7.5 yenilikleri ve kolaylıkları
Yazılımcılar için iis 7 ve IIS 7.5 yenilikleri ve kolaylıkları
 
ASP.Net MVC ile Web Uygulamaları -12(Test Drive Developmet)
ASP.Net MVC ile Web Uygulamaları -12(Test Drive Developmet)ASP.Net MVC ile Web Uygulamaları -12(Test Drive Developmet)
ASP.Net MVC ile Web Uygulamaları -12(Test Drive Developmet)
 
IstanbulPHP meetup sunum
IstanbulPHP meetup sunumIstanbulPHP meetup sunum
IstanbulPHP meetup sunum
 
TensorflowJS - Devnot Summit 2019
TensorflowJS - Devnot Summit 2019TensorflowJS - Devnot Summit 2019
TensorflowJS - Devnot Summit 2019
 
WordPress ile buyuk olcekli siteler
WordPress ile buyuk olcekli sitelerWordPress ile buyuk olcekli siteler
WordPress ile buyuk olcekli siteler
 
Asp.NET Web Parts
Asp.NET Web PartsAsp.NET Web Parts
Asp.NET Web Parts
 
Gradle ile Proje Insası
Gradle ile Proje InsasıGradle ile Proje Insası
Gradle ile Proje Insası
 
React Bootcamp Day 1 - Yunus Demirpolat
React Bootcamp Day 1 - Yunus DemirpolatReact Bootcamp Day 1 - Yunus Demirpolat
React Bootcamp Day 1 - Yunus Demirpolat
 
ASP.Net MVC ile Web Uygulamaları -8(NHibernate)
ASP.Net MVC ile Web Uygulamaları -8(NHibernate)ASP.Net MVC ile Web Uygulamaları -8(NHibernate)
ASP.Net MVC ile Web Uygulamaları -8(NHibernate)
 
ESOGU The Code Day Workshop
ESOGU The Code Day WorkshopESOGU The Code Day Workshop
ESOGU The Code Day Workshop
 
Php ile Büyük Proje Yapmak
Php ile Büyük Proje YapmakPhp ile Büyük Proje Yapmak
Php ile Büyük Proje Yapmak
 

Similar to Neden Backbone.js'ten AngularJS'e Geçtik?

Internet programcılığı-i
Internet programcılığı-iInternet programcılığı-i
Internet programcılığı-i
emre61
 
Sap2000 kursu-beykoz
Sap2000 kursu-beykozSap2000 kursu-beykoz
Sap2000 kursu-beykoz
sersld95
 
Sap2000 kursu-levent
Sap2000 kursu-leventSap2000 kursu-levent
Sap2000 kursu-levent
sersld95
 
Sap2000 kursu-gaziantep
Sap2000 kursu-gaziantepSap2000 kursu-gaziantep
Sap2000 kursu-gaziantep
sersld95
 
Sap2000 kursu-atasehir
Sap2000 kursu-atasehirSap2000 kursu-atasehir
Sap2000 kursu-atasehir
sersld95
 
Sap2000 kursu-avcilar
Sap2000 kursu-avcilarSap2000 kursu-avcilar
Sap2000 kursu-avcilar
sersld95
 
Java ee kursu-gaziantep
Java ee kursu-gaziantepJava ee kursu-gaziantep
Java ee kursu-gaziantep
sersld60
 
Java ee kursu-atasehir
Java ee kursu-atasehirJava ee kursu-atasehir
Java ee kursu-atasehir
sersld60
 
Java ee kursu-bagcilar
Java ee kursu-bagcilarJava ee kursu-bagcilar
Java ee kursu-bagcilar
sersld60
 

Similar to Neden Backbone.js'ten AngularJS'e Geçtik? (20)

Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web Programlama
 
Internet programcılığı-i
Internet programcılığı-iInternet programcılığı-i
Internet programcılığı-i
 
Sap2000 kursu-beykoz
Sap2000 kursu-beykozSap2000 kursu-beykoz
Sap2000 kursu-beykoz
 
Java Web Uygulama Geliştirme
Java Web Uygulama GeliştirmeJava Web Uygulama Geliştirme
Java Web Uygulama Geliştirme
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web Programlama
 
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye GirişPhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
 
Sap2000 kursu-levent
Sap2000 kursu-leventSap2000 kursu-levent
Sap2000 kursu-levent
 
Uni stay 2017-2018
Uni stay 2017-2018 Uni stay 2017-2018
Uni stay 2017-2018
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
 
Sap2000 kursu-gaziantep
Sap2000 kursu-gaziantepSap2000 kursu-gaziantep
Sap2000 kursu-gaziantep
 
Sap2000 kursu-atasehir
Sap2000 kursu-atasehirSap2000 kursu-atasehir
Sap2000 kursu-atasehir
 
Sap2000 kursu-avcilar
Sap2000 kursu-avcilarSap2000 kursu-avcilar
Sap2000 kursu-avcilar
 
sunu (Asp.net -1)
sunu (Asp.net -1)sunu (Asp.net -1)
sunu (Asp.net -1)
 
Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010
 
Java ee kursu-gaziantep
Java ee kursu-gaziantepJava ee kursu-gaziantep
Java ee kursu-gaziantep
 
Java ee kursu-atasehir
Java ee kursu-atasehirJava ee kursu-atasehir
Java ee kursu-atasehir
 
Mobile First Indexing
Mobile First Indexing Mobile First Indexing
Mobile First Indexing
 
JavaScript Sunumu
JavaScript SunumuJavaScript Sunumu
JavaScript Sunumu
 
Java ee kursu-bagcilar
Java ee kursu-bagcilarJava ee kursu-bagcilar
Java ee kursu-bagcilar
 
WP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiWP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin Geleceği
 

Neden Backbone.js'ten AngularJS'e Geçtik?