Ruby In Enterprise Development

1,509 views

Published on

published by Ye Zheng, consultant of ThoughtWorks

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,509
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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!

×