Question

Je travaille dans un groupe qui fait un grand mélange de développement de la recherche et le code complet de l'expédition.

La moitié du temps je développe des processus qui fonctionnent sur notre système en temps réel (quelque part entre-temps réel hard et soft en temps réel, moyen en temps réel?)

L'autre moitié j'écrire ou d'optimiser les processus pour nos chercheurs qui ne se soucient pas nécessairement sur le code du tout.

Je travaille actuellement sur un processus que je dois bifurquer en deux branches différentes.

Il existe une version de recherche pour un groupe, et une version de production qui devra parfois être fusionné avec le code de recherche pour obtenir le dernier et le plus grand dans la production.

Pour tester ces processus dont vous avez besoin pour configurer un environnement de test semi-complexe qui envoie les données que nous analysons le processus au bon moment (système en temps réel).

Je pensais à ce que je pouvais faire le:

  1. Idée
  2. Mettre en œuvre
  3. test
  4. GOTO # 1

Cycle aussi facile, rapide et sans douleur que possible pour mes collègues.

Une idée que j'avais été d'intégrer un langage de script dans ces processus à long en cours d'exécution. Alors que les Courons de processus qu'ils pourraient modifier l'algorithme réel et ses paramètres.

la chauve-souris, je regardais intégrer:

  • Lua (utile guider)
  • Python (utile guider)

Ces deux semblent faisables et pourraient effectivement résoudre complètement le problème donné.

Toute autre brillante idée est là-bas?

recompilation après un changement de ligne 1-2, redéployant à l'environnement de test et de redémarrer juste suce.

Le système est assez complexe et la moitié décemment, espérons-je.

Était-ce utile?

La solution

Si vous pouvez changer assez du programme par le biais d'un script pour être utile, sans recompilation complète, peut-être vous devriez penser à casser le système en plus petites parties. Vous pourriez avoir un « serveur » qui gère etc de chargement de données, puis le code client qui fait le traitement proprement dit. Chaque fois que le système charge de nouvelles données, il pourrait vérifier et voir si le code client a été recompilé et ensuite l'utiliser si tel est le cas.

Je pense qu'il y aurait deux avantages ici, dont la plus grande serait que tout le système serait beaucoup moins complexe. Maintenant, vous travaillez dans une langue au lieu de deux. Il y a moins de chance que les gens peuvent gâcher les choses lors du passage de mode python ou Lua c ++ mode dans leur tête. En intégrant une autre langue dans le système que vous avez aussi le risque de devenir dépendant. Si vous utilisez python ou lua pour Tweek le programme, ces langues deviennent soit une dépendance quand il devient le temps de déployer, ou si vous devez sauvegarder les choses à C ++. Si vous choisissez de choses port à C ++ theres une autre chance pour les bugs aux cultures pendant l'interrupteur.

Autres conseils

Embedding Lua est beaucoup plus facile que d'intégrer Python.

  • Lua a été conçu dès le départ pour être intégrés; Le plongeabilité Python a été greffée après le fait.

  • Lua est d'environ 20x plus petit et plus simple que Python.

Vous ne dites pas beaucoup au sujet de votre processus de construction, mais la construction et les tests peuvent être considérablement simplifiées en utilisant une version très puissante de faire. J'utilise mk , mais vous probablement encore mieux d'investir le temps de maîtriser Glenn Fowler nmake , qui peut ajouter des dépendances à la volée et d'éliminer la nécessité pour une étape de configuration séparée. Je ne recommande pas habituellement nmake car il est un peu compliqué, mais il est très clair que Fowler et son groupe ont construit des solutions de nmake pour beaucoup de mise à l'échelle et les problèmes de portabilité. Pour votre situation particulière, il peut être vaut la peine de le maîtriser.

Je ne sais pas, je comprends votre système, mais si la construction et le déploiement est trop compliqué, vous pourriez peut-être automatiser? Si le déploiement est entièrement automatique, cela réglerait le problème?

Je ne comprends pas comment un langage de script résoudrait le problème? Si vous changez votre algorithme, vous devez toujours redémarrer le calcul depuis le début, non?

On dirait un peu comme ce que vous avez besoin est CruiseControl ou quelque chose de semblable; chaque fois hyou toucher au code de base, il reconstitue et des tests de rediffusions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top