Question

Je prends un cours de programmation intermédiaire qui met l'accent sur l'utilisation des invariants. Je ne les ai jamais utilisé auparavant et ils semblent prendre plus de temps pour créer. Est-ce que l'industrie du génie logiciel insistent sur l'utilisation des invariants?

Était-ce utile?

La solution

Cela dépend de qui vous demandez - j'utiliser simplement parce qu'il invariants rend la vie plus facile. L'apprentissage est comme apprendre invariants-frappe aveugle. Chaque fois que vous utilisez un invariant, vous en savez plus au sujet de votre code. Si vous insérez l'invariant comme commentaire dans votre boucle, il aide le lecteur beaucoup. Je dirais que l'utilisation et la création fait invariants la maintenance du code source beaucoup moins cher, et vous permet de créer des algorithmes beaucoup plus sophistiqués, qui sont encore maintenable.

Et contrairement à la POO, je ne l'ai jamais connu quelqu'un perdre leur temps en utilisant invariants.

Autres conseils

Je ne pense pas très invariants - pas autant que pré / post-conditions. Je pense probablement à plus invariants, pour être honnête.

Une chose à penser est immuabilité - si vous utilisez un langage OO, mais assurez-types immuable où vous pouvez, vous n'avez pas besoin de vous soucier autant invariants: si l'état est valide pour commencer, il sera rester valide.

Cela ressemble à votre cours peut être trop mettre l'accent un peu invariants ... mais cela dépend de ce que vous faites. Ils sont plus appropriés dans certaines situations que d'autres. Peut-être votre professeur est juste un grand fan d'entre eux avec beaucoup d'expérience dans les domaines où ils sont vraiment utiles.

Une fois que vous apprendrez ce que sont et ce invariants qu'ils signifient, il a tendance à changer la façon dont vous raisonnez sur le code. Je veux dire, j'écris très rarement explicites invariants. Mais j'ai souvent une image dans mon esprit de l'invariant dans le code que je vous écris. Cela vous conduit à écrire du code qui est beaucoup plus simple. Dans la plupart des cas, vous finissez avec le code qui est si simple que vous n'avez pas besoin d'écrire un commentaire explicite sur l'invariant. Pourtant, les gens qui ne savent pas écrire du code qui invariants est beaucoup plus compliqué:)

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