110 likes | 201 Views
Partners Research Tech Lunch. Oct 27, 2011. Ultra-quick Ruby Overview. Perl, Smalltalk, Lisp Object-oriented Dynamically-typed “Duck Typing” - capability, not type Message passing vs function calls Open Classes Concise, clear, expressive. Ultra-quick Rails Overview. MVC ActiveRecord
E N D
Partners Research Tech Lunch Oct 27, 2011
Ultra-quick Ruby Overview • Perl, Smalltalk, Lisp • Object-oriented • Dynamically-typed • “Duck Typing” - capability, not type • Message passing vs function calls • Open Classes • Concise, clear, expressive
Ultra-quick Rails Overview • MVC • ActiveRecord • Migrations • Templates / Controllers • Routing • Rack • Convention over Configuration
Why Ruby (and why not) • Good • Meta-programming • Lambdas / closures; DSLs • Gems • “Many come to Ruby because of Rails, but they stay for Ruby” • Bad • CPU-bound • Concurrency etc
Why Rails • Mature, stable • Velocity: prototyping, fast iteration • Building, consuming APIs • Deployment ease • Free! • Bad • Legacy DBs • Stored Procedures; Oracle
Other Ruby Implementations • JRuby • Rubinius • IronRuby, MacRuby
Our Toolkit • Where’s the IDE? • Jquery • MySQL / SQLite • Redis • Pivotal Tracker • VMs – Fedora, MySQL 5.1
Our Toolkit Cont’d • Git • Fast, decentralized VCS • Cheap easy branching • Smart merge tools • Github • Repo hosting, Collaboration • Code review • Dotfiles • Examples
Our Toolkit, Cont’d • RVM • Per-project rubies • Gemsets • Capistrano • Scriptable deployment • Multi-target, multi-environment • Rake
Testing • Cultural, pervasive • TDD – object behavior • BDD – system behavior • RSpec • Capybara • Javascript problems (Selenium, headless browser) • Development vs Design • CI
Projects • clinicaltrials.dfhcc.harvard.edu • Protocol activation