Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby on Rails - Wprowadzenie

ernest
March 15, 2012

Ruby on Rails - Wprowadzenie

Prezentacja z wykładu wprowadzającego do technologii Ruby on Rails

ernest

March 15, 2012
Tweet

More Decks by ernest

Other Decks in Education

Transcript

  1. O mnie • Ernest Bursa (swistaczek @github) • Studiuje dziennie

    informatykę (IV semestr) • Pracuję jako programista Ruby on Rails • http://ernest.bzdury.pl Ernest Bursa środa, 14 marca 2012
  2. Biblioteki 96 standardowych bibliotek 1200 bibliotek dostępnych w Ruby Application

    Archive 35 583 publcznie dostępnych gemów (via rubygems.org) Ruby numerem 2 wśród projektów opensource na GitHub.com Ernest Bursa środa, 14 marca 2012
  3. Wsparcie W 100% udokumentowany rdzeń Silnie udokumentowane standardowe biblioteki Ogromna

    ilość materiałów w internecie pokrywających różne poziomy wtajemniczenia. Społeczność Ernest Bursa środa, 14 marca 2012
  4. Składnia • Deklaracje • zm_lokalna = • @obiekt = •

    $zmienna_globalna = • Bloki: • do...end lub {} • Wykonywalny kod zapisywany w #{...} np. #{1+2} Ernest Bursa środa, 14 marca 2012
  5. Hello world :) • Ruby: • puts „hello world” •

    Java • trzyBardzoDlugieLinnie.mozeZadziala... • Lisp • ((o(((b)))(c))) Ernest Bursa środa, 14 marca 2012
  6. Język obiektowy • Dosłownie wszystko jest obiektem ;)! • Łańcuchy

    znaków, liczby, bloki kodu Ernest Bursa środa, 14 marca 2012
  7. Małpie łatanie Monkey patching • Dodawanie, edycja dowolnej klasy w

    dowolnym czasie (nawet klas bazowych) • Przeładowanie operatorów • Dodawanie operacji artytmetycznych Ernest Bursa środa, 14 marca 2012
  8. Pętle • while... ... end • until ... ... end

    • each do ... end Ernest Bursa środa, 14 marca 2012
  9. Bloki • Każda metoda może przyjmować blok • Blok można

    wykorzystać od razu albo zachować do późniejszego użycia Ernest Bursa środa, 14 marca 2012
  10. Po co bloki? • Bloki pozwalają reagować Twojemu programowi na

    wejście użytkownika • Bloki są idealne dla transakcji Ernest Bursa środa, 14 marca 2012
  11. „Duck Typing” • Rozpoznawanie typów na podstawie ich zachowania, a

    nie deklaracji Ernest Bursa środa, 14 marca 2012
  12. 96 standardowych bibliotek m.in.: CSV XML YAML EMAIL FTP WEB

    XML- RPC THREA DS MATH Ernest Bursa środa, 14 marca 2012
  13. Nie mało ofert pracy :) Pracodawcy coraz mocniej interesują się

    technologią Ruby on Rails Ernest Bursa środa, 14 marca 2012
  14. Model View / Widok Controller / Kontroler Logika biznesowa Warstwa

    prezentacyjna Obsługuje żądania użytkownika Ernest Bursa środa, 14 marca 2012
  15. Środowisko pracy • Linux/Mac/Windows • RVM (Ruby Version Manager) •

    Ruby on Rails • Edytor tekstowy (np. vim) • Pozytywne nastawienie :) Ernest Bursa środa, 14 marca 2012
  16. (Ruby on) Rails 1. Instalacja biblioteki rails 2. Wygenerowanie szkieletu

    projektu - nazwa kodowa „atena’ Ernest Bursa środa, 14 marca 2012
  17. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) Ernest Bursa środa, 14 marca 2012
  18. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika Ernest Bursa środa, 14 marca 2012
  19. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków Ernest Bursa środa, 14 marca 2012
  20. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków wysyłanie listeli nadawanie poczty email Ernest Bursa środa, 14 marca 2012
  21. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków wysyłanie listeli nadawanie poczty email modele logika aplikacji Ernest Bursa środa, 14 marca 2012
  22. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków wysyłanie listeli nadawanie poczty email modele logika aplikacji widoki warstwa prezentacji Ernest Bursa środa, 14 marca 2012
  23. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków wysyłanie listeli nadawanie poczty email modele logika aplikacji widoki warstwa prezentacji plik tras warstwa routingu Ernest Bursa środa, 14 marca 2012
  24. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków wysyłanie listeli nadawanie poczty email modele logika aplikacji widoki warstwa prezentacji plik tras warstwa routingu ustawienia baz danych Ernest Bursa środa, 14 marca 2012
  25. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków wysyłanie listeli nadawanie poczty email modele logika aplikacji widoki warstwa prezentacji plik tras warstwa routingu ustawienia baz danych pliki języków i18n Ernest Bursa środa, 14 marca 2012
  26. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków wysyłanie listeli nadawanie poczty email modele logika aplikacji widoki warstwa prezentacji plik tras warstwa routingu ustawienia baz danych pliki języków i18n ustawienia poszczególnych środowisk Ernest Bursa środa, 14 marca 2012
  27. Rails - struktura katalogów pliki serwisu javascript (js, coffescript...) style

    (css, scss, less...) kontrolery obsługa danych od użytkownika metody pomocnicze dla widoków wysyłanie listeli nadawanie poczty email modele logika aplikacji widoki warstwa prezentacji plik tras warstwa routingu ustawienia baz danych pliki języków i18n ustawienia poszczególnych środowisk migracje baz danych Ernest Bursa środa, 14 marca 2012
  28. MVC • Aplikacja będzie zbudowana wg. architektury MVC Model View

    / Widok Controller / Kontroler kontrolery modele widoki Ernest Bursa środa, 14 marca 2012
  29. Prototypowanie „Scaffolding” - budowanie rusztowania • „Czego spodziewam się od

    mojego programu?” • Przyjaznego zarządzania dużą kolekcją zdjęć Ernest Bursa środa, 14 marca 2012
  30. Prototypowanie „Scaffolding” - budowanie rusztowania • „Jakie dane powinna przechowywać

    aplikacja?” • Zdjęcia • Opisy zdjęć • Adresy do zdjęć Ernest Bursa środa, 14 marca 2012
  31. Prototypowanie „Scaffolding” - budowanie rusztowania • Podsumowanie aplikacji: • Galeria

    zdjęć z opisami • Zdjęcie (picture) • Opis zdjęcia (description) • URL zdjęcia (picture_url) Ernest Bursa środa, 14 marca 2012
  32. Prototypowanie „Scaffolding” - budowanie rusztowania • Podsumowanie aplikacji: • Galeria

    zdjęć z opisami • Zdjęcie (picture) • Opis zdjęcia (description) • URL zdjęcia (picture_url) :string, :text, :integer,:float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean http://api.rubyonrails.org/classes/ActiveRecord/Migration.html Ernest Bursa środa, 14 marca 2012
  33. Prototypowanie „Scaffolding” - budowanie rusztowania • Podsumowanie aplikacji: • Galeria

    zdjęć z opisami • Zdjęcie (picture) • Opis zdjęcia (description) • URL zdjęcia (picture_url) aplikacja :string, :text, :integer,:float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean http://api.rubyonrails.org/classes/ActiveRecord/Migration.html Ernest Bursa środa, 14 marca 2012
  34. Prototypowanie „Scaffolding” - budowanie rusztowania • Podsumowanie aplikacji: • Galeria

    zdjęć z opisami • Zdjęcie (picture) • Opis zdjęcia (description) • URL zdjęcia (picture_url) aplikacja model :string, :text, :integer,:float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean http://api.rubyonrails.org/classes/ActiveRecord/Migration.html Ernest Bursa środa, 14 marca 2012
  35. Prototypowanie „Scaffolding” - budowanie rusztowania • Podsumowanie aplikacji: • Galeria

    zdjęć z opisami • Zdjęcie (picture) • Opis zdjęcia (description) • URL zdjęcia (picture_url) aplikacja model atrybuty :string, :text, :integer,:float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean http://api.rubyonrails.org/classes/ActiveRecord/Migration.html Ernest Bursa środa, 14 marca 2012
  36. Prototypowanie „Scaffolding” - budowanie rusztowania • Podsumowanie aplikacji: • Galeria

    zdjęć z opisami • Zdjęcie (picture) • Opis zdjęcia (description) • URL zdjęcia (picture_url) aplikacja model atrybuty typ danych: :text :string, :text, :integer,:float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean http://api.rubyonrails.org/classes/ActiveRecord/Migration.html Ernest Bursa środa, 14 marca 2012
  37. Prototypowanie „Scaffolding” - budowanie rusztowania • Podsumowanie aplikacji: • Galeria

    zdjęć z opisami • Zdjęcie (picture) • Opis zdjęcia (description) • URL zdjęcia (picture_url) aplikacja model atrybuty typ danych: :text typ danych: :string :string, :text, :integer,:float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean http://api.rubyonrails.org/classes/ActiveRecord/Migration.html Ernest Bursa środa, 14 marca 2012
  38. Prototypowanie „Scaffolding” - budowanie rusztowania • Model: Picture • description:text

    • picture_url:string model Ernest Bursa środa, 14 marca 2012
  39. Prototypowanie „Scaffolding” - budowanie rusztowania • Model: Picture • description:text

    • picture_url:string model typ danych: :text Ernest Bursa środa, 14 marca 2012
  40. Prototypowanie „Scaffolding” - budowanie rusztowania • Model: Picture • description:text

    • picture_url:string model typ danych: :text typ danych: :string Ernest Bursa środa, 14 marca 2012
  41. Prototypowanie „Scaffolding” - budowanie rusztowania • rails generate scaffold Picture

    description:text picture_url:string Ernest Bursa środa, 14 marca 2012
  42. Routing Rodzaj zapytania Ścieżka Akcja Wykorzystanie GET /photos index wyświetlanie

    wszystkich zdjęć GET /photos/new new zwraca formularz do dodawania zdjęcia POST /photos create tworzy nowe zdjęcie GET /photos/:id show zwraca stronę z konkretnym zdjęciem GET /photos/:id/edit edit zwraca stronę edycji zdjęcia PUT /photos/:id update aktualizuje zdjęcie DELETE /photos/:id destroy kasuje zdjęcie Ernest Bursa środa, 14 marca 2012
  43. Routing Rodzaj zapytania Ścieżka Akcja Wykorzystanie GET /photos index wyświetlanie

    wszystkich zdjęć GET /photos/new new zwraca formularz do dodawania zdjęcia POST /photos create tworzy nowe zdjęcie GET /photos/:id show zwraca stronę z konkretnym zdjęciem GET /photos/:id/edit edit zwraca stronę edycji zdjęcia PUT /photos/:id update aktualizuje zdjęcie DELETE /photos/:id destroy kasuje zdjęcie środa, 14 marca 2012
  44. Serwer aplikacji • Aby uruchomić serwer aplikacji w trybie programisty

    (developer env) na porcie 3001: • rails s -p 3001 Ernest Bursa środa, 14 marca 2012
  45. git init . ; git add . ; git commit

    -am ‚Pierwszy Commit’ środa, 14 marca 2012
  46. git remote add origin ... ; git push -u origin

    master środa, 14 marca 2012