Je pense à Joel Spolsky de l'article à propos de ne jamais avoir à réécrire le code à partir de zéro. Pour résumer son argumentation: Le code n'est pas obtenir rouillé, et alors il ne peut pas regarder assez après de nombreuses versions de maintenance, si il fonctionne, il fonctionne. L'utilisateur final se complique pas attention à la manière assez le code est.
Vous pouvez lire l'article ici: des Choses que Vous Ne Devriez Jamais faire
J'ai récemment pris le contrôle d'un projet et à la recherche par le biais de leur code, c'est assez horrible. J'ai immédiatement pensé à des prototypes que j'avais construit avant, et déclare explicitement qu'il ne doit pas être utilisé pour n'importe quel environnement de production. Mais bien sûr, les gens n'écoutent pas.
Le code est construit comme un site web, n'a pas de séparation des préoccupations, pas de tests unitaires, et la duplication de code partout. Pas de couche de Données, pas de véritable logique d'entreprise, sauf si vous comptez un tas de classes dans App_Code.
J'ai fait la recommandation à l'enjeu titulaires, alors que nous devrions garder le code existant, et de faire des versions de correction de bogues et quelques petites versions de fonctions, nous devrions commencer à le réécrire immédiatement avec le Développement Piloté par les tests dans l'esprit et avec une claire séparation des préoccupations. Je pense d'aller le ASP.NET MVC route.
Mon seul souci est, bien entendu, la longueur de temps il pourrait prendre pour réécrire à partir de zéro. Il n'est pas entièrement compliqué, jolie course de l'usine de l'application web avec l'adhésion, etc..
N'avez-vous rencontré un problème similaire? Tout particulier étapes que vous avez pris?
Merci beaucoup!
Mise à JOUR:
Alors.. Ce qui fait que je finis par décider de le faire? J'ai pris Matt approche et a décidé de revoir de nombreux domaines.
- Depuis App_Code était d'obtenir de grande et donc le ralentissement de la construire temps, j'ai enlevé beaucoup de classes et converti en une Classe De la bibliothèque.
J'ai créé un très simple d'Accès aux Données Couche, qui contenait tous les ADO appels, et a créé un SqlHelper objet pour exécuter ces appels.
J'ai mis en place un nettoyeur de journalisation
la solution, qui est beaucoup plus concis.
Alors que je n'ai plus de travail sur ce projet [de financement, la politique, bla bla], je pense qu'il m'a donné un peu d'une grande perspicacité dans la façon dont le mauvais certains projets peuvent être écrites, et les étapes d'un développeur peut prendre pour rendre les choses beaucoup plus propre, lisible et juste à plat mieux avec de petits pas au fil du temps.
Merci encore à tous ceux qui ont commenté.