2017-05-19 2 views
1

Excuses si la question n'est pas trop bonne, ceci est mon premier message.Pourquoi une programmation défensive est-elle nécessaire si le code source est caché?

Je sais que dans Java la programmation défensive est une bonne chose à faire, car elle arrête les valeurs des variables qui sont changées si elles ne sont pas supposées l'être. Cependant, si un programme est compilé, est-ce nécessaire?

Un exemple de ce que je veux dire est la suivante:

Pour mon cursus universitaire, je devais créer un navigateur Web en utilisant Swing and AWT en Java. Ce navigateur a été créé uniquement par moi, et quand il a été soumis, j'ai dû envoyer un fichier JAR exécutable, et les fichiers .java (seulement pour qu'ils puissent être marqués, ils ne seront pas édités). De mon point de vue de la programmation, je savais que je ne ferais aucune des choses que la programmation défensive est censée empêcher. Le code source ne sera jamais non plus public ou édité (que ce soit publié ou non pour un usage public). Par conséquent, pourquoi la programmation défensive serait-elle nécessaire vu que vous ne pouvez pas obtenir le code source à partir d'un fichier exécutable? Je pense que je ne l'utiliserais que parce que ce sont les normes acceptées pour la programmation.

J'espère que je l'ai bien expliqué.

Merci.

+0

un JAR est réversible – Ollaw

+0

Mais ma question reste valable pour tout langage de programmation, pas seulement Java. Un fichier .exe aurait toujours le même point. – joshsp98

+0

https://en.wikipedia.org/wiki/Kerckhoffs%27s_principle – SLaks

Répondre

0

Question répondue brillamment par de nombreux commentaires. Mieux mis par un extrait d'un commentaire par @Carcigenicate

Une fois qu'il a été compilé, ce n'est pas vraiment un problème. C'est pour vous empêcher de jeter votre propre code source lorsque vous en oubliez certains aspects de la route.

SO ne me laissera pas marquer comme répondu pour le moment.