Grzegorz Witek, Marcin Stecki - Rails from scratch (AKAI)

1,335 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,335
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • -- będęmówić o konwencji – jest bardzosilna-- podobne do django, kohana (php) dużozaciąga z railsów-- w tymrokuwydanowersje 3
  • - model odpowiadazawyciągnięciedanych z bazy- controller zaobsłużeniezapytania (requestu) który do serwerawysyłaprzeglądarka- widokodpowiadazatreśćodpowiedzijaką w przeglądarcezobaczyużytkownik - jest karmionydanymi z kontroleraktóryuzyskał je korzystając z modeli
  • - modeledefinujemy  w katalogu app models- konwencjazakładażenazwamodelu jest nazwąpojedynczą od nazwytabeli- AR (bibliotekasłużąca do komunikacji z baządanych) udostępniaróżnemetody do wyciągania z niejdanych
  • - zapisujemy w app/controllers/- klasadziedziczypogemieActionControllerktóry ma w sobiezapisanącałąobsługę - Podstawowemetody w klasiekontrolleraodpowiadaodpowiednimakcjom (GET, POST, PUT, DELETE)
  • - wzorzec rest zakładażewszystko co chcemyzrobićnastronieinternetowejmożnazamknąć w jego 4 metodach. - nadobrąsprawęciężkocośinnegorobić w internecie- jaktłumaczmykolejnemetody- jak to wygląda w praktyce- wspomnieć o crud
  • - crud to z kolei wszystko co można zrobić z zasobem użytkownika- akcja create musi mieć wcześniej formularz (akcja new)tak samo update ma wcześniej edit
  • - widok jest bezpośredniospięty z akcjąkontrolerai ma takąsamąnazwę- widokisiedzą w katalogu app/views i w podkatalogachodpowiadającymnazwomkontrolerów- piszemy je w ERBie- mająswojehelpery  (link_toimage_tag, helperytypu _path, helpery do formularzyetc)-  mogąbyćróżne - niemusibyć to html, możemynapisać xml, csv, json co namsiępodoba. 
  • - silna konwencja wymaga starań- przy programowaniu w rubym i w railsach dobrze jest stosować się do paru reguł tworzenia dobrego kodu- testy - trzeba pisać do wszystkiego. Railsy udostępniają mocno rozbudowane klasy do testów, można też skorzystać z narzędzi. Kazdy kod powinen mieć pokrycie w testach.- testy to osobnym rodzial- KISS - nie kombinuj za dużo. Jeśli metoda ma głębokość 2/3 ifów to najprawdopodbniejpowinienes ją podzielić na dwiekiss oznacza teżDRY i DRO - nie powtarzaj siebie, nie powtarzaj innych - sprawdź czy ktoś juz nie zajmował się tym problemem
  • - aby nie powtarzać się nazwajem w rubym mamy gemy - blblioteki- rubygems - hosting gemów, mocno używany- dodanie nowego gemu zamykającego w sobie jakąś funkcjonalność jest banalnie proste - szukanie 'nazwa problemu' z dopiskiem 'gem' bardzo często może dać nam rozwiązanie.- przykładowe problemy rozwiązywalne w mniej niż 10 linii kodu dzięki gemom: - pełna obsługa bazy danych (activerecord to też gem) - pełna rejestracja i autentykacja użytkownika - upload plików (npużykownik ma swój awatar_ - paginowanie rekordów (podział na strony) - integracja z facebookiem - zaawansownewyszukwianie
  • - konkretny przykład gemukaminari- rozwiązuje on problem paginowania rekordów- zakładając że mamy wiele produktów bla bla bla- paramspage to numerek strony
  • - paroma linijkami możemy załatwić użytkownikowi obsługe jego awatara - możemy również określić style na ktore ten obrazek awatara zostanie przetworzony- aby zrobić upload starczy dodać jedno pole do formularza
  • - bundler służy do zarządzania bibliotekami potrzebnymi w projekcie- określamy tylko nazwy jakie potrzebujemy- bundleinstall i mamy wszystko z rubygems.org- bundleupdate i mamy nowsze wersje-- możemy też na stałe określić jaką wersje chcemy w bundlerze
  • Grzegorz Witek, Marcin Stecki - Rails from scratch (AKAI)

    1. 1. Ruby and Rails<br />From the very beginning<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    2. 2. Who are we<br />Students of computer science<br />Developers at Netguru<br />1.5 and 3 years in Ruby on Rails<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    3. 3. Agenda<br />Ruby – language of your dreams<br />Ruby on Rails – basics of the framework<br />Gems – how to easily extend RoR<br />Community – you’ll like it!<br />Information about next meetings<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    4. 4. Ruby<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    5. 5. Ruby<br />Created in 1995 by Yukihiro “Matz” Matsumoto<br />Inspired by Perl, Smalltalk, Eiffel<br />Dynamic language<br />Duck typing<br />Object-Oriented, supports functional programming<br />Garbage collector<br />Latest stable version: 1.9.2 (2010)<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    6. 6. Language features<br />Very simple syntax<br />Extending classes<br />Blocks (nameless functions)<br />Lambda expressions<br />Closures<br />NilObject pattern<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    7. 7. Language features<br />Rich standard library<br />Modules and mixins over interfaces<br />Metaprogramming<br />Good for creating DSLs<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    8. 8. Ruby on Rails<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    9. 9. MVC<br />M – model – data<br />V – view – presentation<br />C – controller - action<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    10. 10. Model (ActiveRecord basics)<br />Model user.rb<br />Example operations<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    11. 11. Controller (CRUD and ActionController)<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    12. 12. Controller (REST)<br />REST pattern: GET, POST, PUT, DELETE<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    13. 13. Controller (CRUD again)<br />Create, Update, Destroy – users controller<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    14. 14. View (ActionView & ERB)<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    15. 15. Golden rules<br />CoC<br />Write tests<br />KISS<br />DRY / DRO<br />Source: Internet<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    16. 16. Gems<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    17. 17. Gems - Kaminari<br />https://github.com/amatsuda/kaminari<br />Source: asciicasts.com<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    18. 18. Gems - Paperclip<br />https://github.com/thoughbot/paperclip<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    19. 19. Gems - Bundler<br />https://github.com/carlhuda/bundler<br />bundle install<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    20. 20. Community<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />found: somewhere in the Internet<br />
    21. 21. Ruby/RoR community<br />Vary of Ruby implementations (Jruby, IronRuby, MRI, MacRuby, Rubinius)<br />Gems for everything<br />MIT license<br />Git as SCM<br />Heroku – the easiest app deployment ever<br />http://github.com - everything is there<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    22. 22. Deploying app to Heroku<br />Create:<br />herokucreate my_new_fancy_application<br />Deploy<br />git push heroku master<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    23. 23. Resources<br />http://rubyonrails.org<br />http://apidock.com<br />http://railsforzombies.org<br />http://railscasts.com<br />http://github.com<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    24. 24. Resources<br />http://rubular.com<br />http://tryruby.org<br />http://forum.rubyonrails.pl<br />http://devguru.pl<br />http://github.com/netguru/ourway<br />http://github.com/prug<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    25. 25. If you want books<br />Look out! All books about Rails in polish are out-of date!<br />“The Rails 3 way” by Obie Fernandez<br />“Crafting Rails applications” by Jose Valim<br />“Rails test prescriptions” by Noel Rappin<br />“Programming Ruby” by Chad Fowler, Dave Thomas, Andy Hunt<br />“The Ruby way” by Hal Fulton<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    26. 26. Next meetings<br />2 another meetings<br />We’ll write social web application with basic functionality<br />Limit up to 30 people<br />Possibility to become part of Netguru<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />
    27. 27. Thanks for your attention<br />Don’t hesitate to ask questions!<br />Marcin Stecki, Grzegorz Witek, Krzysztof Jabłoński<br />

    ×