sarakha63 a écrit : ↑17 août 2017, 20:51
Ben mon retour n'apportera rien de plus que ce que j'ai dis avant.
Utiliser une lib toutes faites ne veut pas dire la coller au milieu d'un environnement sans se poser de questions.
...
Non je t'assure thanaus lorsque tu développes pour un environnement multicomposant comme une domotique et qui plus est quand ça va être utilisé par des utilisateurs finaux il faut pas se contenter de se reposer sur une lib toutes faites.
Une lib toutes faites c'est bien l'adapter et faire en sorte qu'elle s'intègre bien dans l'environnement cible c'est mieux.
D'autant plus quand ton plugin arrive alors que ya déjà 3 plugins existants qui eux fonctionnement très bien sans de marcher dessus.
Bonjour, je me permet juste de donner un avis en tant que professionnel du développement. Je suis tout à fait d'accord avec ce que dis sarakha63.
Je vais généraliser pour faire simple. Une librairie issue d'un constructeur permet d'utiliser en général 2 élément fondamentaux. (lorsque c'est bien fait xD:) :
- Des interfaces : En langages non développeur, on peux dire que ce sont des "points d'entrées" permettant d'appeler des fonctions.
- Des implémentations : C'est ce que font les fonctions.
Normalement (et là encore, lorsque c'est bien fait), une API doit proposer une architecture (plus ou moins) similaire afin de permettre d'utiliser les points d'entrées (interfaces) communes, tout en laissant 2 choix :
- Utiliser les implémentations originales du produit, adaptées au produit dans son environnement initial.
- Utiliser des implémentations "maison" adaptées à l'environnement spécifique.
Sans pour autant connaître les adaptations effectuées par les équipes Jeedom, il se peux qu'il ai du faire face à cette problématique => créer un "adapter" afin de permettre le bon fonctionnement.
Après il est tout a fait possible d'utiliser (via les interfaces), des implémentations native en mixant avec des implémentations spécifiques. Dans beaucoup de cas, il n'est pas nécessaire de faire du from scratch. De plus si la lib est dans un langage permettant le polymorphisme (comme PHP 7, Java, C#), il est même possible d'étendre la fonction principale en ajoutant des subtilité.
Cordialement