Question

Je travaille sur un système assez volumineux développé par un autre programmeur qui ne travaille plus ici.

Et puisque je suis le tueur en série maniaque qui le maintient et sait où il habite.

Mais les choses amusantes mises à part, le système est un peu développé en tant que système de classe et un peu non. J'ai déjà configuré une version pour développeur et je peux en déployer de nouvelles versions assez rapidement.

  1. Avez-vous des conseils concernant le passage partiel à un nouveau modèle (je ne peux pas effectuer une transition complète, mais ne prenez pas le temps)
  2. Recommandez-vous des noms de classe que je peux laisser dans le système (sans que cela ne ressemble à un hack) mais ne contrediront pas les noms de classe actuels (utilisateur, données, journalisation, etc.)

Merci.

Était-ce utile?

La solution

Astuce # 0) Le code existant est-il vraiment vraiment mauvais ou ne correspond-il pas à vos préférences personnelles? Si c'est l'ancien, continuez à lire cette liste. Si c'est le dernier cas, prenez quelques respirations profondes et passez au moins un mois ou deux à apprendre à connaître les choses avant de décider que vous devez recommencer.

Astuce # 1) Lorsque vous codez, corrigez-le si quelque chose ne va pas. Cela prendra plus de temps, mais vous obtiendrez éventuellement des gains de productivité à mesure que le système sera plus "réparé". Si vous n'avez vraiment pas le temps de le réparer, faites-vous une faveur et ajoutez un commentaire comme celui-ci: // TODO: chose à faire ainsi x Plus tard, lorsque vous en aurez le temps, recherchez simplement le code & Quot; dans votre code; TODO: & Quot; pour obtenir une liste de choses que vous devez faire. Vous pouvez également leur donner des niveaux, comme & "TODO-High &", & "TODO-Medium &", & "TODO-Low &". Si vous utilisez Eclipse ou Zend Studio for Eclipse comme éditeur / IDE, vous pouvez le configurer pour rechercher automatiquement & Amp; les marquer pour vous, dans Préférences - > Tasks.

Conseil n ° 2) Si vous souhaitez (éventuellement) passer à MVC, vous devez absolument séparer HTML de la logique. Cela signifie utiliser des modèles. Cette tâche peut prendre beaucoup de temps, mais une fois cela fait, le reste de votre transition sera beaucoup plus facile.

Conseil n ° 3) Essayez d’établir des conventions. Exemple: Controller & Amp; Les noms de vue doivent correspondre à l'URL et habiter dans des répertoires correspondant à l'URL. URL à éditer Lieu 1234: / places / edit / 1234 Fichier de contrôleur: /htdocs/sitename/controllers/placesController.php Fichier de modèle: /htdocs/sitename/views/places/edit.tpl

Conseil n ° 4) Lisez les didacticiels de mise en route des principaux frameworks: Zend, CakePHP, CodeIgniter / Kohana, Symfony. Voyez si l'un vous semble plus beau qu'un autre. Demandez-vous pourquoi vous l'aimez. Cela fonctionnera-t-il pour vous ou avez-vous besoin de lancer votre propre cadre (douteux). Si possible, utilisez un framework existant. Des centaines, voire des milliers de personnes ont déjà testé des bugs et vous économiserez du temps! J'aime Zend Framework moi-même, et c'est particulièrement utile pour les & "; Projets de transition &"; comme le vôtre, parce que vous pouvez le prendre ou le laisser pièce par pièce. Je veux dire, vous pouvez choisir d'utiliser UNIQUEMENT l'objet View de Zend, ou SEULEMENT d'utiliser son objet DbTable. Vous êtes libre de laisser autant de choses que vous le souhaitez. Cela signifie que vous pouvez passer progressivement à un Zend-World à votre rythme. EZ-Components fonctionne de la même manière.

Astuce # 5) Enveloppez les classes que vous utilisez en les développant. Par exemple, j'utilise Zend_Acl, mais utilise en fait ma propre classe Acl qui étend Zend_Acl. Cela a deux implications principales: a) Je peux échanger Zend_Acl contre autre chose sans changer de code, parce que tout se réfère à l'ancien 'Acl' b) Je peux modifier le fonctionnement de Zend_Acl pour répondre à mes besoins spécifiques, car je peux remplacer les méthodes de mon choix dans ma classe 'Acl'.

Conseil n ° 6) Essayez d’obtenir l’adhésion de la direction. Expliquez-leur que le refactoring leur fera réellement économiser de l'argent, car cela augmentera la cohérence & Amp; la compréhensibilité du code, ce qui contribue à réduire le nombre de défauts ET facilite leur recherche & amp; correctif.

Conseil n ° 7) Essayez de lire des livres sur le sujet, tels que " Refactoring: amélioration de la conception du code existant " par Martin Fowler

Autres conseils

zend a une belle convention de nommage: http://framework.zend.com/manual/en/ coding-standard.naming-conventions.html

Ils ont ajouté le préfixe Zend_ à toutes leurs classes, ce qui leur évite les conflits avec les classes tierces.

À mon avis, tout projet de grande envergure doit mettre en œuvre une convention de dénomination similaire, du moins pour les classes principales.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top