Я планирую написать программу, но я застрял в головоломке. Я не хочу начинать что-то писать, а потом переписывать все это, когда узнаю, что моя программа не расширяема. Другая проблема: у меня недостаточно знаний по программированию, чтобы знать, с чего начать разработку моей программы, чтобы она была расширяемой.Обучение - расширяемость: динамическая загрузка и любые другие обновления без повторной компиляции
Я проделал некоторое чтение в DLL (или задержку загрузки для unix), динамическую загрузку, загрузку/загрузку библиотеки времени выполнения и т. Д., Но я до сих пор не могу понять, что мне нужно сделать. Я приведу примерный пример программы, и если кто-то сможет привести меня в правильном направлении, чтобы узнать, что моя большая программа может начаться, я буду очень благодарен!
Предположим, я создаю консольную программу «iAmDog», где вы можете вводить команды, и собака будет соответствующим образом отвечать на вывод на консоль. Теперь давайте предположим, что когда я создаю эту программу, у собаки только 1 команда, «кора», которая производит выходную «крышу крыши!». Как бы я начал писать эту программу, так что пока пользователь все еще запускает программу, я могу редактировать библиотеку или код в другом месте, чтобы добавить команду «сидеть» в репертуар собак.
Опять же, в идеале, мой план состоит в том, чтобы иметь без простоя или как можно меньше времени на простоя, при этом можно обновлять код до функциональности всегда запущенной программы.
Благодарим за понимание!
Рассел ака SgtPooki
Любые конкретные причины, по которым он не должен перекомпилироваться, а не просто компилироваться? (I.e. Ruby) – Robert
Я в основном спрашивал о C++, думаю, я должен был указать это, но я надеялся узнать, как это сделать на C++, основываясь на том, как это делают другие языки, если ничего не произошло о C++. Мне нравится C++ =) – SgtPooki
И после того, как я узнал больше о MySQL с момента публикации этого сообщения, я понимаю, что должен сделать что-то простое, как command & output. Затем программа будет проверять команды в базе данных вместо того, чтобы их жестко закодировала .. но это оставило бы ее очень ограниченным только [cout << getOutPutFor (userCommand); ] или что-то подобное .. – SgtPooki