ruby in enterprise development
DESCRIPTION
published by Ye Zheng, consultant of ThoughtWorksTRANSCRIPT
© ThoughtWorks 2008
ThoughtWorks
• Enterprise Development Experience• Ruby/Rails Development Experience• Agile Methodology
© ThoughtWorks 2008
Agenda
• Language/Framework in Enterprise Development• Ruby in Enterprise Development• Last Mile in Enterprise Development
© ThoughtWorks 2008
Language in Software Development
© ThoughtWorks 2008
class Userinclude Permission set_super_role Role::GlobalAssurance deny :add_comment, Role::DepartmentHead...grant :manage_groups,
Role::GlobalAssurance...
end
© ThoughtWorks 2008
Framework in Software Development
© ThoughtWorks 2008
Convention Over Configuration
MVCTest
Automation
…
Directory Structure
© ThoughtWorks 2008
Enterprise Development
© ThoughtWorks 2008
Polyglot Programming (I)
© ThoughtWorks 2008
Polyglot Programming (II)
© ThoughtWorks 2008
Ruby as a …
• Development Language• Glue Language• Language for Legacy System• …
© ThoughtWorks 2008
Java EE Server
Ruby App Ruby App
Ruby App Ruby App
Ruby App
…
© ThoughtWorks 2008
Legacy System Case
New Ruby Application
SearchAsset
Management3rd Party
Components
Legacy Application Procedure
Legacy Database
© ThoughtWorks 2008
Last Mile in Enterprise Development
• People• Automation• Design for Automated Testing of Nonfunctional Requirements• Decouple Design from Production Environment• …
© ThoughtWorks 2008
Automationnamespace :svn do task :add do sh %(svn st | grep "^?" | awk -F " " '{printf "\\"%s\\"\\n", $2}' | xargs -r svn add) end
task :commit do sh %(svn stat --ignore-externals) require 'readline' comment = Readline.readline("[Comment]: ") sh %(svn ci -m "#{comment}") end
task :up do sh %(svn up}) endend
task :commit => %w(svn:up default svn:add svn:commit)
© ThoughtWorks 2008
User Acceptance Test Environment
© ThoughtWorks 2008
Enjoy Programming!