PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Mutualisation de code
Mutualisation de code
Iniciado por Julien, jul., 18 2024 4:28 PM - 10 respostas
Membro registado
13 mensagems
Publicado em julho, 18 2024 - 4:28 PM
Bonjour à tous,

Je souhaiterai avoir vos retours d'expériences au niveau mutualisation de code.

Je souhaiterai créer des modules utilisables dans différents projets et je me demandais quelle était la meilleure option entre l'utilisation de composants externes ou le partage de collections de procédures ou/ou de classes entre plusieurs projets.
Il y a peut être aussi d'autres solutions.

Je voudrai aussi savoir si ces 2 méthodes étaient compatible avec l'utilisation de GIT et le travail à plusieurs développeurs sur les différents projets.

Un exemple concret : Je veux harmoniser l'écriture de log et mettre a disposition de plusieurs projets une méthode d'écriture de log.

Merci d'avance pour vos réponses.

Julien
Membro registado
2.646 mensagems
Popularité : +222 (260 votes)
Publicado em julho, 18 2024 - 4:32 PM
Bonjour,

Perso je passerai par des classes.

--
Cordialement,

Philippe SAINT-BERTIN
Membro registado
13 mensagems
Publicado em julho, 22 2024 - 5:43 PM
Merci pour la réponse.

J'ai créé une classe mais je ne peux pas la partager entre plusieurs projets car la gestion des partages semble se faire depuis le GDS.
Et tant donné que nous sommes sous GIT je penses que la seule solution sera de créer un composant avec ma classe.

Julien
Membro registado
48 mensagems
Publicado em julho, 23 2024 - 11:01 AM
Yop,

Tu parles d'un composant externe ?

Je maintiens un gros projet qu'on aimerait basculer sous git et justement on a le soucis sur les fichiers partagés dont les composants externe.
Le projet de l'exécutable utilise 66 composants externes et sur le gds il était simple d'avoir le wdi et le wdk partagé entre les projets.

Et là j'analyse l'utilisation de git mais pour ces composants partagés c'est la galère.
J'imagine faire un repo où je publie les composants et intégrer ce repo en sous répertoire des projets avec submodule puis dans le projet récupérer les composants dans ce sous répertoire.
Mais ça devient une vrai usine à gaz entre les 67 repos de chaque projet (monolithique interdit sous wd ...) + le repo de publication des composants + le repo des ressources externes ... j'ai fortement l'impression qu'on va se retrouver avec des soucis de synchro et que ça va créer énormément de problème.

Vous voyez une meilleure solution pour gérer cette sorte de solution via git ?
Entre nous que ça soit une classe ou un composant externe le problème est identique, plus de partage donc il faut les placer à un endroit accessible aux projets qui l'utilisent.
Mensagem modificada, julho, 23 2024 - 11:07 AM
Membro registado
2.646 mensagems
Popularité : +222 (260 votes)
Publicado em julho, 23 2024 - 4:57 PM
Ne pas utiliser git. Windev n'est pas pensé à la base pour utiliser git. C'est une surcouche qui est venue par la suite.

--
Cordialement,

Philippe SAINT-BERTIN
Membro registado
13 mensagems
Publicado em julho, 23 2024 - 5:34 PM
Effectivement je me pose la question au niveau de GIT.
Dans notre cas c'est un nouveau projet pour lequel nous souhaitions utiliser GIT afin d'uniformiser la gestion de nos sources.

Julien
Membro registado
48 mensagems
Publicado em julho, 23 2024 - 5:43 PM
De mon côté c'est une étude des possibilités en vue de centraliser les sources sur azure devops.
Ce qui permettrait une meilleure gestion comme la possibilité de controler les archivage avec un vérificateur, webhook sur archivage, ... plein de petites choses que le gds ne gère pas.

@Philippe SB
Il me faut plus d'arguments ... car en partant là dessus on va me répondre que quand le projet a commencé le gds n'existait pas non plus :D
Mensagem modificada, julho, 23 2024 - 5:49 PM
Membro registado
2.646 mensagems
Popularité : +222 (260 votes)
Publicado em julho, 23 2024 - 9:39 PM
@djeman
Je n'ai pas d'arguments à te donner. PC Soft a rajouté la possibilité d'utiliser git alors que le langage est propriétaire et fermé. Tu ne peux pas partager tes sources parce que ce n'est pas prévu pour.

Si tu veux tout de même utiliser git, libre à toi. Tu poses une problématique, je t'apporte une réponse. Je ne suis pas là pour te faire l'article. L'outil ne répond pas à tes besoins, trouve le bon outil.

A toi de trouver tes arguments pour vendre ton concept à ta direction. Si tu n'en as pas je n'y peux rien.

--
Cordialement,

Philippe SAINT-BERTIN
Membro registado
48 mensagems
Publicado em julho, 24 2024 - 5:10 PM
Yop,

Avant de critiquer les nouvelles fonctionnalités je les essaye, pcsoft ne vend pas git comme un ajout fait à l'arrache inutilisable sur de gros projets.

Puis je vais être franc, si un de mes devs m'envoient balader en me disant "c'est pas fait pour" je lui demande immédiatement pourquoi.
C'est pas du tout une réponse ce que t'as fait, c'est un avis personnel non justifié n'apportant rien à la discussion et qui ne résout pas la problématique mais tente de la contourner.

Le but de mon passage sur le forum était pour finir mon analyse de venir les retours d'expérience sur git et quand je suis tombé sur ce sujet c'était l’occasion de poser directement la question.
La conclusion est que dans l'état c'est inutilisable et je ferais la liste des problématiques ce qui devrait facilement calmer les personnes ayant lu la propagande pcsoft décrivant un fonctionnement au top presque identique au gds.

Cordialement :)
Membro registado
2.646 mensagems
Popularité : +222 (260 votes)
Publicado em julho, 25 2024 - 8:24 AM
De nombreuses personnes ont essayé git avec Windev. Beaucoup sont revenus en arrière, d'autres ont persévérés. Exemples:
https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/267959-synchroniser-sur-git-projet-existant-268007/read.awp…
https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/267628-github-267655/read.awp…

Comme de nombreuses choses sous Windev, ce n'est pas au départ prévu pour et ils créent une surcouche pour suivre le mouvement. Ca a été le cas avec la POO, qui a mis bien du temps à être utilisable correctement. On n 'en est pas encore au niveau des autres langages mais ça va dans le bon sens.

Pour git c'est pareil, ils ont sorti la liaison à git un peu comme ça parce que certaines personnes l'ont demandé. Puis au fil des versions ils vont rajouter des fonctionnalités. Mais parfois ça peut prendre 10 ans... :p (eh oui, il va falloir créer 930 nouveautés pour la prochaine version !!!)

En résumé, si le partage de composants n'existe pas en git, ben il n'existe pas, et plutôt que de se mettre une épine dans le pied il vaut mieux ne rien faire.

J'ai subi cette problématique lorsque HF est sorti en client/serveur, c'était en version 10. Ils avaient annoncé une base d'une robustesse à toute épreuve. Je suis passé dessus en me disant que ça allait être top. Au final je n'ai eu que des soucis mais comme j'avais migré les clients là dessus, j'ai dû attendre que ça se stabilise et ça a duré... Depuis j'ai quitté HFSQL pour d'autres SGBD et j'en suis ravi.

Après pour des projets simples, peut-être que ça fonctionne, il faudrait essayer.

--
Cordialement,

Philippe SAINT-BERTIN
Mensagem modificada, julho, 25 2024 - 8:25 AM
Membro registado
48 mensagems
Publicado em julho, 25 2024 - 9:02 PM
Oui j'ai un peu lu tous les retours, tout le monde a eu les mêmes problèmes.

Un des pires serait la fusion d'interface ingérable car en bloc binaire/base64.
Le second l'obligation d'abandonner le repo monolithique du gds pour passer à un repo par projet, quand on a 150 projets comportant un paquet de composants externes utilisés par des dizaines d'exécutables ça force à faire une architecture extrêmement complexe.
En 3ème je dirais le peu d'interaction git/windev, ils ont ajouté 6 ou 7 boutons dans le ruban pour les opérations basiques mais rien d'autre n'est géré.

Je vais finir mon test, j'essayerais de venir confirmer tous les points.
J'ai déjà créé un repo windev comportant 5 submodules contenant 3 composants externes, un exécutable et un répertoire pour le partage de composants.
Avec ça je devrais pouvoir tester les fonctionnalités basiques création de branches et fusion de branche en dev collaboratif avec un fonctionnement par branche de features qu'on merge dans la master en fin de dev ... je sais que ça va coincer mais je veux le voir :p

Merci pour la réponse détaillée.
Je te rejoins sur les autres points avec pcsoft faut pas être trop pressé, la mode de la centralisation devops devra surement attendre pour la partie windev :D