Sposób na MVC we frontendzie na przykładzie Backbone.js i Underscore.js © 2011 - Rafał "RaVbaker" Piekarski
koordynator zespołu frontendu w Nokaut.pl programista PHP, Ruby, JavaScript i MySQL "w branży" od 7 lat @ravbaker github:  ravbaker Kim jestem?
A wy? dla początkujących:  http://j.mp/podstawyJS   dla bardziej zaawansowanych:  http://j.mp/learnAdvancedJS
node.js
Rails: mówisz JS myślisz: Prototype myślisz: Prototype ale...
jQuery najpopularniejsza bibilioteka do javascriptu
Ale napotykamy problemy... jak iterować po kolekcjach? jak mapować tablice na inne obiekty? jak sprawdzać czy kolekcja ma oczekiwaną wartość? jak wyciągać tablicę unikalnych obiektów? for(var i in items){  if(items.hasOwnProperty(i)) {  var item = items[i]; …  } }
Odpowiedzą jest Underscore.js Narzędzie nierozszerzające działania języka - wszystko dostępne, podobnie jak jQuery, przez jeden obiekt: _ (znak podkreślenia - stąd nazwa) Pozwala w naprawdę łatwy sposób manipulować kolekcjami, obiektami i funkcjami w javascripcie Bardzo mała biblioteka:  ściągnij stąd!  -  http://j.mp/un derscorejs
Odpowiedzi na problemy z wykorzystaniem  underscore.js underscore.js _.each({one : 1, two : 2, three : 3}, function(num, key{ alert(num); }); => alerts each number in turn… _.map([1, 2, 3], function(num){ return num * 3; }); => [3, 6, 9] _.include([1, 2, 3], 3); => true _.uniq([1, 2, 1, 3, 1, 4]); => [1, 2, 3, 4]
jest tego więcej...
Model-View-Controller Model View Controller
Model-View-Controller w Ruby on Rails Model View Controller Klasy i metody w Ruby pliki HTML ORM dla bazy danych
Model-View-Controller w Backbone.js Model View Controller funkcje w JS fragmenty HTMLa reprezentujące modele obiekty  z serwera Events zmiany w modelach odświeżają widoki Collection grupy modeli
Czas na praktykę... spróbuj sam!  -  http://j.mp/ backbonejs
Pytania?
Dziękuję za uwagę. kod źródłowy z prezentacji:  http://j.mp/backbone_notepad_example_rails

Mvc frontend-trug-02-2011

  • 1.
    Sposób na MVCwe frontendzie na przykładzie Backbone.js i Underscore.js © 2011 - Rafał "RaVbaker" Piekarski
  • 2.
    koordynator zespołu frontenduw Nokaut.pl programista PHP, Ruby, JavaScript i MySQL "w branży" od 7 lat @ravbaker github: ravbaker Kim jestem?
  • 3.
    A wy? dlapoczątkujących: http://j.mp/podstawyJS dla bardziej zaawansowanych: http://j.mp/learnAdvancedJS
  • 4.
  • 5.
    Rails: mówisz JSmyślisz: Prototype myślisz: Prototype ale...
  • 6.
  • 7.
    Ale napotykamy problemy...jak iterować po kolekcjach? jak mapować tablice na inne obiekty? jak sprawdzać czy kolekcja ma oczekiwaną wartość? jak wyciągać tablicę unikalnych obiektów? for(var i in items){ if(items.hasOwnProperty(i)) { var item = items[i]; … } }
  • 8.
    Odpowiedzą jest Underscore.jsNarzędzie nierozszerzające działania języka - wszystko dostępne, podobnie jak jQuery, przez jeden obiekt: _ (znak podkreślenia - stąd nazwa) Pozwala w naprawdę łatwy sposób manipulować kolekcjami, obiektami i funkcjami w javascripcie Bardzo mała biblioteka: ściągnij stąd! - http://j.mp/un derscorejs
  • 9.
    Odpowiedzi na problemyz wykorzystaniem underscore.js underscore.js _.each({one : 1, two : 2, three : 3}, function(num, key{ alert(num); }); => alerts each number in turn… _.map([1, 2, 3], function(num){ return num * 3; }); => [3, 6, 9] _.include([1, 2, 3], 3); => true _.uniq([1, 2, 1, 3, 1, 4]); => [1, 2, 3, 4]
  • 10.
  • 11.
  • 12.
    Model-View-Controller w Rubyon Rails Model View Controller Klasy i metody w Ruby pliki HTML ORM dla bazy danych
  • 13.
    Model-View-Controller w Backbone.jsModel View Controller funkcje w JS fragmenty HTMLa reprezentujące modele obiekty z serwera Events zmiany w modelach odświeżają widoki Collection grupy modeli
  • 14.
    Czas na praktykę...spróbuj sam! - http://j.mp/ backbonejs
  • 15.
  • 16.
    Dziękuję za uwagę.kod źródłowy z prezentacji: http://j.mp/backbone_notepad_example_rails

Editor's Notes

  • #4 Niech podniosą rękę Ci z was, którzy używają Prototype. A teraz jQuery. Zaglądał ktoś z was w kod tych bibliotek? [ Rozumieliście go? ;> ]
  • #8 oczywiście Prototype.js je rozwiązał. :)
  • #9 zaraz będzie kilka przykładów...
  • #12 ok. opanowalismy podstawy obiektów z rubiego w Javascripcie… teraz spróbujemy przenieść koncept MVC na grunt javascriptu.
  • #13 a teraz w prosty sposób przenosimy wzorzec na to co jest w RoR
  • #14 natomiast w Backbone.js to wygląda trochę inaczej… Bo przecież jesteśmy po stronie przeglądarki :) ale to nie wszystko!