Le fractionnement d’une application potentiellement monolithique en plusieurs applications plus petites aide-t-il à prévenir les bugs
Les choses sont rarement aussi simples en réalité.
La scission n’aide en aucun cas à prévenir ces insectes. Il peut parfois être utile de trouver les bogues plus rapidement. Une application composée de petits composants isolés peut autoriser des tests plus individuels (type d'unité) pour ces composants, ce qui peut parfois faciliter l'identification de la cause de certains bogues et leur permettre ainsi de les résoudre plus rapidement.
cependant,
même une application qui semble être monolithique de l'extérieur peut consister en de nombreux composants testables par unité à l'intérieur, de sorte que les tests unitaires ne sont pas nécessairement plus difficiles pour une application monolithique.
Comme Ewan l'a déjà mentionné, l'interaction de plusieurs composants introduit des risques et des bogues supplémentaires. Et le débogage d’un système d’application avec une communication complexe entre processus peut être beaucoup plus difficile que de déboguer une application à processus unique
Cela dépend également de la capacité d'une application plus grande à se scinder en composants, de l'étendue des interfaces entre les composants et de la manière dont ces interfaces sont utilisées.
En bref, il s’agit souvent d’un compromis, et de toutes les réponses «oui» ou «non» sont correctes en général.
pourquoi les programmes ont-ils tendance à être monolithiques
Est-ce qu'ils? Regardez autour de vous, il y a des millions d'applications Web dans le monde qui ne me paraissent pas très monolithiques, bien au contraire. Il existe également de nombreux programmes disponibles qui fournissent un modèle de plugin (autant que je sache, le logiciel Maya que vous avez mentionné).
ne seraient-ils pas plus faciles à maintenir
"Une maintenance plus aisée" vient souvent ici du fait que différentes parties d’une application peuvent être développées plus facilement par différentes équipes, ce qui permet une charge de travail mieux répartie, des équipes spécialisées mieux ciblées, etc.
If the animation and modelling capabilities were split into their own separate application and developed separately, with files being passed between them, would they not be easier to maintain?
Ne mélangez pas plus facilement les extensions avec plus de facilité pour maintenir un module - en soi - n’est pas exempt de complications ou de conceptions douteuses. Maya peut être l'enfer sur terre à maintenir alors que ses plugins ne le sont pas. Ou vice versa.