2011-01-27 6 views
0

Je prévois d'écrire un programme, mais je suis coincé dans une énigme. Je ne veux pas commencer à écrire quelque chose et ensuite réécrire tout quand je découvre que mon programme n'est pas extensible. L'autre problème, c'est que je n'ai pas assez de connaissances en programmation pour savoir où commencer à concevoir mon programme afin qu'il soit extensible. J'ai fait quelques lectures sur les DLL (ou le chargement différé pour unix), le chargement dynamique, le chargement/le chargement de la bibliothèque d'exécution, etc. mais je n'arrive toujours pas à comprendre ce que je dois faire. Je vais donner un exemple d'exemple de programme, et si quelqu'un pouvait me guider dans la bonne direction pour apprendre quoi faire pour que mon plus gros programme puisse commencer, je serai extrêmement reconnaissant! Supposons que je crée un programme de console 'iAmDog' dans lequel vous pouvez taper des commandes, et le chien réagira en conséquence à la sortie de la console. Maintenant supposons quand je crée ce programme, le chien a seulement 1 commande, «aboyer» qui produit le «toit de toit» de sortie! Comment pourrais-je écrire ce programme de sorte que pendant que l'utilisateur exécute toujours le programme, je peux éditer une bibliothèque, ou coder quelque part ailleurs, pour ajouter une commande «assis» au répertoire des chiens.Apprentissage - Extensibilité: chargement dynamique et autres mises à jour logicielles non recompilées

Encore une fois, idéalement, mon plan est d'avoir sans temps d'arrêt ou aussi peu de temps d'arrêt que possible, tout en étant capable de coder les mises à jour de la fonctionnalité du programme en cours d'exécution.

Merci d'avoir lu!

Russell alias SgtPooki

+0

Une raison particulière pour laquelle il doit être non-recompiler et pas simplement non-compiler? (I.e. Ruby) – Robert

+0

Je demandais principalement sur le C++, j'aurais dû le préciser, mais j'espérais apprendre à le faire en C++ basé sur la façon dont les autres langages le font si rien ne venait à propos de C++. J'aime C++ =) – SgtPooki

+0

Et après avoir appris plus au sujet de MySQL depuis l'affichage de ceci, je réalise que je devrais pouvoir accomplir quelque chose aussi simple que la commande et la production. Le programme vérifie alors les commandes dans la base de données au lieu de les avoir codées en dur ... mais cela le laisse très limité à juste [cout << getOutPutFor (userCommand); ] ou quelque chose de similaire .. – SgtPooki

Répondre

1

Utilisez-vous .NET? Alors MEF, Managed Extensibility Framework, est probablement bien adapté pour vous.

Il existe un podcast on Hanselminutes about MEF. Vous trouvez un mp3 ainsi qu'une transcription PDF, qui vous permet de rechercher le spectacle. Ils discutent même la possibilité de regarder continuellement un dossier pour les mises à jour, pour réaliser ce que vous descripbe, bien qu'ils découragent de faire ceci.

+0

Je prévoyais d'utiliser C++ mais je pensais qu'il y avait peut-être une façon générale de faire cela pour toutes les langues, même si elles sont trop longues pour certains. Pourquoi n'est-il pas recommandé de faire cela? – SgtPooki

+0

@SgtPooki. Je ne me souviens pas vraiment pourquoi, mais je me souviens que cela a été discuté. Jetez un oeil dans le spectacle. – Marcel

Questions connexes