Je développe, en C++, un progiciel de conception assistée par ordinateur pour circuits imprimés et schémas (aka EDA CAD). Il utilise Lua pour certaines choses spécifiques, mais j'aimerais étendre le rôle de Lua pour qu'il implémente une grande partie de la logique de l'interface utilisateur. Je voudrais reconstruire les internes d'une manière qui permet aux gens de changer le comportement de l'interface utilisateur facilement en éditant le Lua, et aussi ajouter de nouvelles fonctionnalités. Le problème est, à court d'exposer une sorte d'API massive au code Lua, je ne peux pas penser à un bon moyen de le faire. Je soupçonne qu'une API massive, avec un appel de fonction pour tout ce que je peux penser est probablement un mauvais design. Comment puis-je concevoir un système permettant aux utilisateurs de réaliser des choses auxquelles je n'avais même pas pensé?Comment concevoir la structure d'un logiciel de CAO?
Y a-t-il un bon document ou un bon livre que je puisse lire, ou un forum où les gens parlent de ce genre de chose? J'ai cherché et réfléchi pendant plusieurs mois maintenant, et je ne suis toujours pas sûr de la réponse. Le projet s'appelle LiquidPCB.
Un grand merci
Hugo
Ma question est beaucoup moins sur Lua, et beaucoup plus sur la * structure de l'application *. Je pourrais utiliser Lua, ou Python, ou C++. La question est vraiment: "Quelle devrait être l'interface entre l'application et les plugins?" – Rocketmagnet