2009-03-20 6 views
2

Je travaille avec une API tierce distribuée sous forme de code source. C'est génial parce que je peux réparer les choses moi-même, mais je reçois aussi beaucoup de mises à jour de la 3ème partie.Gestion des modifications de code à partir d'une API tierce

J'ai mon propre référentiel svn pour ma base de code qui inclut ma version de l'API. Je reçois les mises à jour officielles de l'API en consultant une version du référentiel svn de la tierce partie.

La fusion des modifications est un processus douloureux. Y a-t-il une meilleure manière de faire cela? Serait-ce plus facile avec un système de contrôle de source distribué?

Répondre

3

Le problème est que vous vous connectez à l'API. Trouvez un moyen d'étendre l'API plutôt que de la modifier, si vous le pouvez. Placez-le dans un module séparé ou dans une autre sortie de compilation (fichier .JAR, .DLL, .SO). Essayez de vous découpler.

Si vous ne pouvez pas faire cela, vous êtes plutôt confronté à une fusion à chaque sortie.

Bien sûr, si l'API est open source, vous pouvez envisager soumettre vos modifications ...

1

Je ne pense pas que les systèmes de contrôle distribués version aideront beaucoup dans votre scénario car il vous semble aurez être celui qui fait la fusion avec votre propre dépôt. Si la nature de la fusion est l'API et le code qui dépend de cette API, rien ne peut vous aider beaucoup.

1

Résumé de l'API de votre code. Il existe de nombreux modèles de conception que vous pouvez utiliser (façade, proxy, etc.) pour vous aider à garder votre code à l'abri des changements dans l'API. Si l'API change, modifiez le code qui interagit avec elle au lieu de l'API elle-même. Vous devrez toujours apporter des modifications à votre code chaque fois qu'ils mettent à jour leur code, mais au moins, il sera minime et isolé à un seul endroit.

Questions connexes