2009-11-15 4 views
0

Dans la plupart des cas, il est préférable de refactoriser que de réécrire une base de code complète. Nous avons une situation assez intéressante. Dans notre application, la couche de gestion est plutôt bonne. Avec des tests unitaires, la séparation des préoccupations, etc. Il y a quelques problèmes, mais cela peut être refactorisé.Réécriture ou réécriture de la couche d'interface utilisateur depuis Scratch

Toutefois, la couche d'interface utilisateur est obsolète. C'est ASP.NET + de l'AJAX, mais nous voulons migrer vers une application AJAX pure (ExtJS + REST). L'application est assez grande et a environ 100 écrans séparés. Que conseilleriez-vous?

Répondre

1

Je connais très bien votre application Michael. J'ai également été dans cette situation exacte deux fois au cours des dernières années. Il y a un avantage ENORMOUS dans la réécriture à partir de zéro. Vous ne pouvez pas améliorer progressivement où vous êtes. Voir ceci de Kathy Sierra.

Incremental vs Revolutionary

mordre la balle et refonte à partir du sol. Vous avez l'occasion de faire exploser la concurrence, mais cela ne se produira jamais avec des améliorations progressives.

+1

Année, à droite. Les développeurs de Netscape avaient probablement le même dessin sur leur tableau blanc –

+0

J'adore le graphisme mais je ne suis pas sûr que la réponse s'applique dans tous les cas. Si l'OP utilise une architecture en couches, la couche UI/Présentation peut être remplacée sans modifications significatives des autres couches. – TrueWill

+0

Aucune réponse ne s'applique dans tous les cas. Cependant, selon mon expérience, une bonne réécriture dans n'importe quelle application SaaS a d'énormes avantages et doit être faite une fois tous les 2 à 5 ans. –

0

Je ne vois pas de perspective d'une réponse vraiment utile, générique. En toute liberté, je serais d'accord avec Glen et je ferais tout ce qu'il pouvait. Cependant, les réalités commerciales peuvent empêcher cela, si l'application est suffisamment importante, l'investissement initial peut être trop important. Ensuite, la question est de savoir si vous pouvez éventuellement arriver à l'endroit où vous devez être en augmentations. Par exemple, supposons que votre application suit un modèle commun, il existe des écrans de sélection où les éléments à travailler sont sélectionnés par un utilisateur et ils mènent à des écrans de saisie de données. Ensuite, pouvez-vous retravailler l'écran de sélection avec de belles choses ajax mais conserver les écrans de saisie de données. Adressez-vous à ceux de l'itération suivante.