Title: Ruby
1Ruby Ruby on Rails trainingday three Ruby
on Rails _at_ RBC Dexia Investor Services
- RBC Dexia Investor Services
2_at_ RBC Dexia Investor Services
- Ruby on Rails has been used since September,
2006 - By the Tactical Development team (formerly
IT2ndLvl) - By the Data WareHouse team
- By the IT Web team
- RBC Dexia Investor Services use of Ruby on
Rails - The technology and the tools
- The methods
- The teams
3_at_ RBC Dexia Investor Services
- The technology
- We use given versions of Ruby and Ruby on Rails
- We use a given database engine
- We use plug-ins
- We created /lib/rdis
- We use some advanced techniques (presenters)
- We have our own interpretation of DEV / TEST /
PROD
4Why Ruby on Rails ?
4
5Why Ruby on Rails ?
- Ruby on Rails is been used, at RBC Dexia
Investor Services, - since September, 2006
- It has been chosen because
- It provides a simple and powerful open source web
framework - It reduces time for programming
- Its world-wide community
- It emphasizes convention over configuration
- It provides a standard architecture
- Ruby is a powerful object oriented programming
language - Developers can make plugins to extend the
existing packages
6Why Ruby on Rails ?
Business needs
Attributes
Development patterns
Core architecture
- Very highly critical
- All data sources
- Strong link with other systems
- Deployment slow
7Technology tools
7
8Technology Ruby
- Ruby 1.8.4-p20
- ruby 1.8.4 (2006-04-14) i386-mswin32
9Technology Ruby gems
- Standard gems
- fastercsv (1.2.0)
- parseexcel (0.5.2)
- pdf-writer (1.1.3)
- color-tools (1.3.0) (dependency)
- transaction-simple (1.3.0) (dependency)
- ruby-net-ldap (0.0.4)
- rubywmq (0.3.0)
- rubyzip (0.9.1)
- spreadsheet-excel (0.3.5)
10Technology Ruby on Rails
- Ruby on Rails 1.1.6
- actionmailer (1.2.5)
- actionpack (1.12.5)
- actionwebservice (1.1.6)
- activerecord (1.14.4)
- activesupport (1.3.1)
- rails (1.1.6)
- rake (0.7.1)
11Technology Ruby on Rails plug-ins
- Standard plug-ins
- acts_as_authenticated
- authorization
- calendar_date_select
- deprecated
12Technology database
- The databases used are Oracle ones
- Version 8
- Version 9
- Version 10
- A patched Ruby OCI connector handles the
connection - ruby-oci8 (0.1.16)
13Tools application template
- rails ltappgt creates an empty Rails application
- All RDIS Ruby on Rails applications share
- A layout (pages, images, styles)
- Standard plug-ins
- Configuration (log level, password hiding, )
- Functionalities (RPI, authentication system,
error management, ) -
- An application template includes all these
- It is available in the CVS
14Tools RadRails
- The standard IDE is RadRails
- Its Eclipse
- Its bundled with the Ruby Development Tools
plug-in - Its bundled with the RadRails plug-in
15Tools /lib/rdis
- /lib/rdis hosts security fixes and shared
extensions - To the Ruby language (CGISession, )
- To the Ruby on Rails framework (error management,
) - It also contains application-specific extensions
- To the Ruby language (Fixnum, String, Array, )
- To the Ruby on Rails framework (pagination, )
- These are automatically loaded at startup
16Methods
16
17Methods source versioning
- Ruby on Rails applications are stored in a CVS
server - Tags conform to the CMMi recommendation
18Methods database environments
- Rails relies on development, test and production
- environments
- Two test schemas are defined for Rails
applications - One for the users tests
- One for the developers unit tests
- The three main environments are attached to the
project - The unit tests one is attributed to a given
developer - It must be cleared when switching from projects
to others
19Methods database environments
TEST (USER)
PROD
DEV
TEST (UNIT)
20Methods development best practices
- While working, developers often raise problems
- They also solve them
- The Tactical Development team set up meetings
- To review which problems the developers
encountered - To find solutions to these problems
- To propose new common developments
21Methods four-eyes peer review
- Four-eyes peer review is the review process of
your code - At least once in the development of your
application, ask - one of your team mates to make a review
- It increases the quality of your application
- Other people are eager to notice whats wrong in
your code - It leverages the skills of the whole team
- Its the opportunity to learn or review Ruby
techniques
22Methods documentation
- Theres a lot of documentation, online
- The Tactical Development team selects and gathers
them - They are accessible in the teams eRoom
- Theres a lot of documentation, written
- The four-eyes peer review process is documented
- The use of the controller and model templates is
documented - The creation of a Rails-compliant database is
documented -
- Document the software and techniques you use!
23Methods TDD
- TDD stands for Test-Driven Development
- Its another way to think the development
process - You write your test code first
- You write your application code then
- When your code passes the tests, the jobs done
- Relying on TDD ensure you to have test code
- Youre highly encouraged to use TDD
24Teams
24
25Teams who use Ruby on Rails?
- The Tactical Development team does it leads
- The development practices
- The tools used
- Other teams (you!) use it or start using it
- Applications have been developed for several
domains - Tax
- Employee share plan
- For the IT teams
26Teams who deploy applications?
- The Service Integration team does it handles
- Applications test releases
- 2nd level applications production releases
incidents correction - The Service Management team does it handles
- 1st level applications production releases
incidents correction
27Teams who bring help and advises?
- The Service Architecture team does it handles
- Applications architecture issues and validation
requests - Ruby Rails evolutions
28Back to our application
28
29RBC Dexia application template
- Use our template to re-create our application
- A COMPLETER
30_END_
30