Successfully reported this slideshow.
#parisrb
Comment reprendre                un (gros) projet                 Ruby on RailsYann Klis, Novelys#parisrb, 06/02/2012, @la...
• Yann Klis• Fondateur de Novelys (Strasbourg)• Forte expertise sur la technologie Ruby/Rails• Depuis septembre 2005• Four...
Analyse                         audit du code source (NDA)                                   pourquoi ?                   ...
Hypothèsesde départ             Pas vraiment accès à lancienne équipe             Client dans de mauvaises dispositions   ...
Aspects psychologiqueset méthodologie         ”Ajouter une fonctionnalité prend beaucoup de temps”                        ...
Gestion de dépendancesavec bundler                        écrire un fichier Gemfile       cf http://gembundler.com/rails23.h...
Changer de plugins/gemsl’écosystème de gems évolue lui aussi         file_column → acts_as_attachment → paperclip (carrierw...
Mettre à jour Railsuse your version control system            git co -b upgrade_rails && rm -rf * && rails new .          ...
Stratégierécupération «par appartement»                                    rm -rf *                                       ...
Mauvaise/nouvelle architecturede la base de données                    erreur mineure? → migration           erreur majeur...
ETLavec rake                                        customers                             customers                       ...
Reprise fullstackbase de données, serveur web, etc                       Mise en place capistrano       Mise en place chaî...
Questionsqui restent en suspens                          Faut-il mettre à jour Rails ?                          Faut-il me...
Questions ?http://twitter.com/yannski http://blog.strasslab.net yann.klis@novelys.com
Prochain SlideShare
Chargement dans…5
×

Comment reprendre un (gros) projet Ruby on Rails

1 263 vues

Publié le

Comment reprendre un (gros) projet Ruby on Rails

Conférence donnée le 6 février 2012 durant le meetup #parisrb

Publié dans : Technologie
  • Soyez le premier à commenter

Comment reprendre un (gros) projet Ruby on Rails

  1. 1. #parisrb
  2. 2. Comment reprendre un (gros) projet Ruby on RailsYann Klis, Novelys#parisrb, 06/02/2012, @lacantine
  3. 3. • Yann Klis• Fondateur de Novelys (Strasbourg)• Forte expertise sur la technologie Ruby/Rails• Depuis septembre 2005• Fournit des startups, des collectivités, des PME• Ruby/Rails/AWS/MySQL/Sphinx/MongoDB
  4. 4. Analyse audit du code source (NDA) pourquoi ? schéma de la bdd ? dump de la bdd ? suite de tests ? documentation ? version de rails ? version des gems ? hébergement ? accès à la plateforme de prod ? rake statsÉvidemment, c’est la version de l’histoire du côté du client …
  5. 5. Hypothèsesde départ Pas vraiment accès à lancienne équipe Client dans de mauvaises dispositions Version ancienne de Rails Pas vraiment de tests Pas vraiment de doc Budget serré ...
  6. 6. Aspects psychologiqueset méthodologie ”Ajouter une fonctionnalité prend beaucoup de temps” ”Lenteur” ”Beaucoup de bugs” ↓ Repartir dune base saine et moderne Ne plus rajouter de nouvelles features pendant 1 à 2 mois ↓ Rajout de fonctionnalités devient moins coûteuxLe vrai boulot va être de regagner la confiance du client
  7. 7. Gestion de dépendancesavec bundler écrire un fichier Gemfile cf http://gembundler.com/rails23.html pour la mise en place ls -l vendor/plugins cat config/environment.rb Attention si modifs directement dans vendor/plugins !
  8. 8. Changer de plugins/gemsl’écosystème de gems évolue lui aussi file_column → acts_as_attachment → paperclip (carrierwave) acts_as_authenticated → authlogic → devise acts_as_taggable → acts_as_taggable_on → acts_as_taggable_on_steroids acts_as_tree → awesome_nested_set (nested_set) Ajustements nécessaires dans la base de données, voir point suivant
  9. 9. Mettre à jour Railsuse your version control system git co -b upgrade_rails && rm -rf * && rails new . rjs / rhtml routes.rb named_scope / scope syntaxe ActiveRecord Mettre à jour Rails au moins en 2.3.11 ruby script/plugin install git://github.com/rails/rails_upgrade.git
  10. 10. Stratégierécupération «par appartement» rm -rf * ↓ git diff/checkout pour chaque modèle/répertoire Sans doute que la couche d’authentification sera la première à devoir être migrée
  11. 11. Mauvaise/nouvelle architecturede la base de données erreur mineure? → migration erreur majeure? → ETL (Extract Transform Load)
  12. 12. ETLavec rake customers customers - name - name -… -… - address_country_1 rake db:backup - address_country_2 - address_country_3 addresses - customer_id etl:extract:all - country db:drop db:create db:migrate etl:load:all customers.csv addresses.csv https://gist.github.com/1746376
  13. 13. Reprise fullstackbase de données, serveur web, etc Mise en place capistrano Mise en place chaîne de production (staging, production) Mise en place nouvel hébergement
  14. 14. Questionsqui restent en suspens Faut-il mettre à jour Rails ? Faut-il mettre à jour Ruby ? Faut-il introduire des tests ? Faut-il mettre à jour le code front-end ? Rails au moins en 2.3.11 pour préparer migration 3.x Mise à jour ruby 1.9.x == galère avec encoding
  15. 15. Questions ?http://twitter.com/yannski http://blog.strasslab.net yann.klis@novelys.com

×