#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 205 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
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 205
Sur SlideShare
0
Issues des intégrations
0
Intégrations
134
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 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

    ×