Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ruby In Enterprise Development


Published on

published by Ye Zheng, consultant of ThoughtWorks

Published in: Technology
  • Login to see the comments

Ruby In Enterprise Development

  1. 1. Ruby/Rails in Enterprise Development Ye Zheng [email_address]
  2. 2. ThoughtWorks <ul><li>Enterprise Development Experience </li></ul><ul><li>Ruby/Rails Development Experience </li></ul><ul><li>Agile Methodology </li></ul>
  3. 3. Agenda <ul><li>Language/Framework in Enterprise Development </li></ul><ul><li>Ruby in Enterprise Development </li></ul><ul><li>Last Mile in Enterprise Development </li></ul>
  4. 4. Language in Software Development
  5. 5. <ul><ul><ul><li>class User </li></ul></ul></ul><ul><ul><ul><ul><li>include Permission </li></ul></ul></ul></ul><ul><ul><ul><ul><li>set_super_role Role::GlobalAssurance </li></ul></ul></ul></ul><ul><ul><ul><ul><li>deny :add_comment, Role::DepartmentHead </li></ul></ul></ul></ul><ul><ul><ul><ul><li>... </li></ul></ul></ul></ul><ul><ul><ul><ul><li>grant :manage_groups, Role::GlobalAssurance </li></ul></ul></ul></ul><ul><ul><ul><ul><li>... </li></ul></ul></ul></ul><ul><ul><ul><li>end </li></ul></ul></ul>
  6. 6. Framework in Software Development
  7. 7. Convention Over Configuration MVC Test Automation … Directory Structure
  8. 8. Enterprise Development
  9. 9. Polyglot Programming (I)
  10. 10. Polyglot Programming (II)
  11. 11. Ruby as a … <ul><li>Development Language </li></ul><ul><li>Glue Language </li></ul><ul><li>Language for Legacy System </li></ul><ul><li>… </li></ul>
  12. 12. Java EE Server Ruby App Ruby App Ruby App Ruby App Ruby App …
  13. 13. Legacy System Case New Ruby Application Search Asset Management 3 rd Party Components Legacy Application Procedure Legacy Database
  14. 14. Last Mile in Enterprise Development <ul><li>People </li></ul><ul><li>Automation </li></ul><ul><li>Design for Automated Testing of Nonfunctional Requirements </li></ul><ul><li>Decouple Design from Production Environment </li></ul><ul><li>… </li></ul>
  15. 15. Automation <ul><li>namespace :svn do </li></ul><ul><li>task :add do </li></ul><ul><li>sh %(svn st | grep &quot;^?&quot; | awk -F &quot; &quot; '{printf &quot;amp;quot;%samp;quot;&quot;, $2}' | xargs -r svn add) </li></ul><ul><li>end </li></ul><ul><li>task :commit do </li></ul><ul><li>sh %(svn stat --ignore-externals) </li></ul><ul><li>require 'readline' </li></ul><ul><li>comment = Readline.readline(&quot;[Comment]: &quot;) </li></ul><ul><li>sh %(svn ci -m &quot;#{comment}&quot;) </li></ul><ul><li>end </li></ul><ul><li>task :up do </li></ul><ul><li>sh %(svn up}) </li></ul><ul><li>end </li></ul><ul><li>end </li></ul><ul><li>task :commit => %w(svn:up default svn:add svn:commit) </li></ul>
  16. 16. User Acceptance Test Environment
  17. 17. Enjoy Programming!