Question

voulez-vous Refactor votre application que vous allez ou se concentrer sur l'achèvement de l'application en premier? Refactoring signifie progrès de l'application de l'application va ralentir.

Fin de l'application signifie que vous obtenez un peut-être très difficile de maintenir l'application plus tard?

L'application est un projet personnel. Je ne sais pas vraiment comment répondre « Ce qui motive la fonctionnalité et le design », mais je suppose que c'est de résoudre l'inefficacité dans le logiciel en cours là-bas. J'aime un minimum facile à utiliser un logiciel aussi. Donc, je retire quelques fonctionnalités et ajouter un peu que je me sens aiderai.

Était-ce utile?

La solution

le faire fonctionner. Alors faites vite. Enfin, le rendre beau.

Si vous avez une bonne séparation entre votre code (présentation, affaires, et des couches de données) en utilisant des interfaces, et ce n'est pas une conception monolithique, refactorisation alors ne devrait pas être difficile.

Si vous avez que beaucoup de difficulté refactoring, qui est probablement une odeur de code - je vous suggère de regarder

Autres conseils

Je pense que le point essentiel est de maintenir des interfaces propres . Vous pouvez toujours refactor ou même le module rewrite / classe / whatever mises en œuvre par la suite, tant que les couches de communication entre eux sont sains d'esprit. Passez un peu de temps à trouver ce qui est facile à changer plus tard, et ce n'est pas. Faire ce dernier droit.

Ceci est conforme à l'esprit de TDD. Pour écrire de bons tests, vous avez besoin d'une bonne interface pour effectuer le test. Comment il est en désordre dans les coulisses du moment n'est pas si important que cela, parce que vous pouvez l'améliorer plus tard.

Je refactoriser toujours que je vais, en particulier en utilisant TDD.

  1. passer les tests

  2. Effectuer les tests passent

  3. Refactor

Cela vous aidera à avoir moins de bugs et un meilleur code pour le produit fini. Il permettra également de vous moins de code à maintenir lorsque vous avez terminé.

Refactor tôt et souvent! Le temps que vous « Enregistrer » ne pas le faire est passé plusieurs fois en essayant de pirater la fonction suivante et la recherche de bogues dans le code trop complexe ou chaotique.

refactorisation est comme ramasser votre chambre.

Si vous gardez les choses en ordre, vous avez une surcharge linéaire, proportionnelle à la quantité de travail productif que vous faites sur le code, O (n) en algorithmologist termes. En supposant que vous passez 10% de votre temps refactoring (ou garder votre propre chambre), que 10% est une donnée, et il reste constant au fil du temps.

Par contre, si vous jetez vos vêtements sales dans un coin, et continuer à le faire, la quantité de temps que vous allez passer ramasser votre chambre augmente à mesure que le désordre devient plus complexe. Si l'on suppose que chaque pièce de linge sale contribue de façon exponentielle au temps de nettoyage requis, vous êtes maintenant dans une situation O (e n ).

Quiconque a jamais creusa dans le concept de complexité algorithmique observer qu'il ya un point de rupture, même quelque part, qui est, il y a une quantité optimal de linge sale Accumuler; combien cela dépend des facteurs constants qui sont mis au rebut en notation grand-O. Un autre facteur est la valeur de votre travail au fil du temps: si votre travail est beaucoup vaut la peine d'un moment, mais pas cher la semaine prochaine (c.-à-date limite est fixée ce vendredi pour ce projet et trois autres, mais après cela, vous serez la plupart du temps de repos ), l'équation pourrait se transformer en faveur de ne pas refactoring.

Et puis il y a la complexité de masse critique. À un certain moment, le désordre ( « mess critique », si vous voulez) est tellement mauvais qu'il semble plus facile de brûler juste en bas de la pièce entière et acheter de nouveaux vêtements. En réalité, il est généralement pas, mais il semble de cette façon, et les effets psychologiques, il sera dix fois plus difficile à aborder la chose.

Et évidemment, si vous entrez dans un projet qui est un gâchis multiplier redondant géant déjà, vous avez le choix limité.

TL; DR: En cas de doute, refactoring. Vous devriez avoir des preuves vraiment bien avant de décider de ne pas.

Si vous avez la chance d'ajouter des fonctionnalités ou des bugs d'écrasement pour obtenir votre satisfaction ventes / client où vous pensez qu'il devrait être, faites-le. Une fois il y a moins de demandes nouvelles, vous pouvez équilibrer avec refactoring. À un certain moment, vous devez vous assurer que vous écrivez les gens veulent de code. Toutes choses étant égales par ailleurs, je préfère jeter à 100 heures de Code de 1000. Ce qui est ce que vous allez faire si personne ne veut.

dépend vraiment de l'endroit où vous êtes à!

D'autres choses à penser:

Comment êtes-vous certain, vous avez vraiment le droit de conception fonctionnelle? Pourriez-vous finir par re-conception de nouveau après vous obtenez des commentaires des utilisateurs?

Je préfère que la libération rewrite. Optimize après vous êtes sûr que vous avez clouée la conception fonctionnelle.

Tant que vous êtes vous vous pouvez respecter les délais que vous pouvez factoriser tout ce que vous voulez. Cependant, même s'il y a un peu d'incertitude mieux coller avec le développement et peut être refactor que l'étape supplémentaire modeste.

Si la mauvaise conception que vous voulez refactor vous fait vraiment mal, tu ferais mieux de le réparer maintenant que de créer plus de code qui en dépend. Refactoring plus tard serait plus difficile et plus cher; les chances sont que vous ne serez pas en mesure de le faire plus.

D'autre part, si votre seul problème est la laideur, vous pouvez compléter votre logiciel d'abord, parce que presque beats quoi que ce soit faire avancer les choses .

Refonte sera très important que vous travaillez sur de remplir votre demande.

+ VES

  1. Clear Flow: Refonte donnera la clarté du code parce que parfois si le code est peu structuré, comprendre le flux du code après une période de temps deviendrait difficile et refactorisation de code pourrait devenir une tâche ardue et des bugs pourrait vous présenter.

  2. Améliorer les performances:. Une bonne refactoring de l'application va certainement contribuer à l'amélioration les performances des applications

  3. Maintenance:. Last but not least, il serait plus facile de maintenir sur le long terme

séro-

  1. temps: Il serait beaucoup plus de temps à chaque étape de vos progrès. Donc, il pourrait y avoir un retard dans l'achèvement.

Bottom Line

En fonction du type de projet, vous pouvez Prioriser sur la qualité du code ou l'achèvement selon réclame la situation actuelle.

Sur la base de mon expérience personnelle, je vais habituellement terminer les applications d'abord avec la condition qu'il y ait un délai pour atteindre. une fois que vous avez terminé, vous pouvez refactoriser.

Terminer et refactoriser. Mais s'il n'y a pas de délai pour être pressé ou laps de temps, je suggère refactoring ce serait bien.

scroll top