Soit from module import function
être appelé le style de codage FMIF.
Soit import module
être appelé le style de codage IM.
Soit from package import module
être appelé le style de codage FPIM.
Pourquoi IM+FPIM est-il considéré comme un meilleur style de codage que FMIF ? (Voir ce poste pour l'inspiration de cette question).
Voici quelques critères qui me conduisent à préférer le FMIF à l'IM :
- La brièveté du code : Cela me permet d'utiliser des noms de fonctions plus courts et donc de respecter la convention des 80 colonnes par ligne.
- Lisibilité :
chisquare(...)
semble plus lisible quescipy.stats.stats.chisquare(...)
. Bien qu'il s'agisse d'un critère subjectif, je pense que la plupart des gens seraient d'accord. - Facilité de réorientation : Si j'utilise FMIF et que, pour une raison quelconque, je souhaite par la suite rediriger python vers la définition de
function
dealt_module
au lieu demodule
Je dois changer une seule ligne :from alt_module import function
. Si je devais utiliser la MI, je devrais modifier de nombreuses lignes de code.
Je sais que le MIFP annule en partie les deux premiers points, mais qu'en est-il du troisième ?
Je suis intéressé par toutes les raisons pour lesquelles IM+FPIM peut être meilleur que FMIF, mais en particulier, j'aimerais avoir des précisions sur les points suivants mentionné ici :
Les avantages pour la GI :
- la facilité d'utilisation de la simulation et de l'injection dans les tests. (Je ne suis pas très familier avec le mocking, même si j'ai récemment appris ce que ce terme signifie. Pouvez-vous montrer un code qui démontre en quoi IM est meilleur que FMIF ici) ?
- la possibilité pour un module d'évoluer de manière flexible en redéfinissant certaines entrées. (Je dois avoir mal compris quelque chose, car cela semble être un avantage de FMIF par rapport à IM. Voir ma troisième raison en faveur de FMIF ci-dessus).
- un comportement prévisible et contrôlable sur la sérialisation et la récupération de vos données. (Je ne comprends vraiment pas comment le choix de IM ou FMIF affecte cette question. Veuillez élaborer).
- Je comprends que le FMIF "pollue mon espace de noms", mais au-delà de cette expression à consonance négative, je ne vois pas en quoi cela nuit au code de manière concrète.
PS. En écrivant cette question, j'ai reçu un avertissement indiquant que la question semble subjective et qu'elle risque d'être fermée. Ne la fermez pas, s'il vous plaît. Je ne cherche pas à obtenir une opinion subjective, mais plutôt des situations de codage concrètes dans lesquelles IM+FPIM est manifestement meilleur que FMIF.
Merci beaucoup.