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

Como o Rails melhorou o desenvolvimento web

Como o Rails melhorou o desenvolvimento web

Apresentado no Café com Dev em Londrina dia 27/06/2014 por Thiago Borges.

Thiago Borges

June 27, 2014
Tweet

More Decks by Thiago Borges

Other Decks in Programming

Transcript

  1. O que é Ruby on Rails? • Rails para os

    mais íntimos • Ruby é a linguagem de programação, assim como Python, C++, etc.. • Rails é um dos frameworks para desenvolvimento web em Ruby
  2. Setup padrão • git clone [email protected]:thiagogabriel/projeto.git projeto • bundle install

    # Instala as dependências • bundle exec rake db:setup # Cria os bancos e executa o seeds.rb • rails server
  3. Convenção sobre configuração • Nomeclatura • View com _ antes

    do nome é partial. _form.html.erb • Template com o mesmo nome da action no controller • Relacionamento • user_id, configuration_id
  4. RESTful • Tratar Usuários, Posts, Sessions como recursos (resources) •

    Podem ser "criados", "lidos", "editados" e "deletados" (CRUD) usando as requisições HTTP: POST, GET, PATCH, e DELETE. • Não existe dúvida onde o código deve estar
  5. Erro 500 • Poupe o usuário das mensagens de erro

    • O usuário leigo não vai entender nada • Pode conter informação sensível • Ninguém precisa ver seu código :)
  6. Terminal para agilizar • rails new nome-do-app • rails generate

    controller welcome index • rails generate model Article title:string text:text • Modo apelão: rails generate scaffold Article title:string text:text
  7. Migração de banco de dados • $ rails generate migration

    AddTitleBodyToPost title:string body:text published:boolean
  8. Facilidades do Ruby no Rails • Sintaxe • Expressividade •

    DSL - Domain Specific Language • Monkey Patching • Datas: 2.days.ago, 3.years.from_now, etc
  9. Asset pipeline • Pré processamento de SASS, CoffeeScript e HTML

    • Minifica e junta os arquivos • Fingerprint no nome do arquivo para cache no browser
  10. Gems (bibliotecas) • Qual gem devo usar para resolver tal

    problema?
 https://www.ruby-toolbox.com/ • Gems populares • Rspec - testes • Devise - autenticação • Cancan - autorização • Nokogiri - parsear HTML e XML
  11. O repositório • Criado em 2009 • Qualquer um pode

    publicar a qualquer hora • Open source https://github.com/rubygems/ rubygems.org