startup on rails

68
startup on rails

Upload: carlos-alan

Post on 17-Jul-2015

106 views

Category:

Technology


1 download

TRANSCRIPT

startup on rails!

O ministério da saúde adverte:

Todas as opiniões expressadas pelo palestrante que irão passar aqui pelo palco, são baseadas apenas em suas próprias experiências. Não estou aqui para falar mal de outras linguagens/frameworks. Desculpem qualquer coisa desde já. <3

http://www.codeivate.com/users/carlosalan86

name carlosalan86!

o que é uma startup?!

ruby on rails?!

quem usa?!

GIT/GITHUB

AWS-S3 API

Backend

Front

Postgres

Paperclip

Paranoia

Mandril

Newrelic Route 53

Mailcatcher

Capistrano

Digital Ocean Pusherwoos

Airbrake

Trello

Asset Sync

Paper Trail

Devise

migrations

caso de uso!

back-end!

versionamento!

4.2

$ rails new agendakids!

estrutura de arquivos!

agendakids/config/database.yml =>

banco de dados!

configurando rotas!

$ rails generate scaffold HighScore game:string score:integer!

RESTful!

$ gem install!

-  devise!-  aws-sdk!-  paperclip!-  asset_sync!-  pundit!-  paranoia!-  mandrill-api!

-  paper_trail!-  simple_form!-  enumerize!-  capistrano!-  mailcatcher!-  airbrake!-  newrelic_rpm!

$ rails generate devise:install!$ rails generate devise user!

$ rake db:migrate!

Active Record!

$ classroom = Classroom.all => SELECT "classrooms".* FROM "classrooms" $ classroom = Classroom.last => SELECT "classrooms".* FROM "classrooms" ORDER BY "classrooms"."id" DESC LIMIT 1 $ classrooms = Classroom.where(id: [20,25]) => SELECT "classrooms".* FROM "classrooms" WHERE "classrooms"."id" IN (20, 25) $ student = Classroom.last.students.last.name => "Ensino Fundamental I"

$ handouts = Handout.joins(classrooms: [ students: [ responsibles: [:profile, :preference] ] ] ).where(handouts: { id: 200 }, responsibles: { confirmed_at: nil })

=> SELECT "handouts".* FROM "handouts" INNER JOIN "classrooms_handouts" ON "classrooms_handouts"."handout_id" = "handouts"."id" INNER JOIN "classrooms" ON "classrooms"."id" = "classrooms_handouts"."classroom_id" INNER JOIN "students" ON "students"."classroom_id" = "classrooms"."id" INNER JOIN "responsibles_students" ON "responsibles_students"."student_id" = "students"."id" INNER JOIN "responsibles" ON "responsibles"."id" = "responsibles_students"."responsible_id" INNER JOIN "responsible_profiles" ON "responsible_profiles"."responsible_id" = "responsibles"."id" INNER JOIN "responsible_preferences" ON "responsible_preferences"."responsible_id" = "responsibles"."id" WHERE "handouts"."id" = 200 AND "responsibles"."confirmed_at" IS NULL

9.1

Banco de Dados!

-  devise -  aws-sdk -  paperclip -  asset_sync -  pundit -  paranoia -  mandrill-api

-  paper_trail -  simple_form -  enumerize -  capistrano -  mailcatcher -  airbrake -  newrelic_rpm

-  devise -  aws-sdk -  paperclip -  enumerize -  pundit -  paranoia -  mandrill-api

-  paper_trail -  simple_form -  asset_sync -  capistrano -  mailcatcher -  airbrake -  newrelic_rpm

agendakids/app/models/student_profile.rb

-  devise -  aws-sdk -  paperclip -  asset_sync -  pundit -  paranoia -  mandrill-api

-  paper_trail -  simple_form -  enumerize -  capistrano -  mailcatcher -  airbrake -  newrelic_rpm

-  devise -  aws-sdk -  paperclip -  asset_sync -  pundit -  paranoia -  mandrill-api

-  paper_trail -  simple_form -  enumerize -  capistrano -  mailcatcher -  airbrake -  newrelic_rpm

-  devise -  aws-sdk -  paperclip -  asset_sync -  pundit -  paranoia -  mandrill-api

-  paper_trail -  simple_form -  enumerize -  capistrano -  mailcatcher -  airbrake -  newrelic_rpm

$ classroom = Classroom.all.count => SELECT COUNT(*) FROM "classrooms" WHERE "classrooms"."deleted_at" IS NULL => 170 $ classroom = Classroom.deleted.all.count => SELECT COUNT(*) FROM "classrooms" WHERE ("classrooms"."deleted_at" IS NOT NULL) => 30

-  devise -  aws-sdk -  paperclip -  asset_sync -  pundit -  paranoia -  mandrill-api

-  paper_trail -  simple_form -  enumerize -  capistrano -  mailcatcher -  airbrake -  newrelic_rpm

agendakids/config/initializers/action_mailer.rb

-  devise -  aws-sdk -  paperclip -  asset_sync -  pundit -  paranoia -  mandrill-api

-  paper_trail -  simple_form -  enumerize -  capistrano -  mailcatcher -  airbrake -  newrelic_rpm

-  devise -  aws-sdk -  paperclip -  asset_sync -  pundit -  paranoia -  mandrill-api

-  paper_trail -  simple_form -  enumerize -  capistrano -  mailcatcher -  airbrake -  newrelic_rpm

Tratamento de Erros

-  Listas: -  Ideias -  Backlog -  Bug -  In Progress -  Waiting Test -  Ready For Production -  Done

gerenciamento de tarefas!

/app/models/concerns/push.rb

DEV => DEV!

Perguntas?!