Присоединяйтесь к совместному созданию программы!
Отдалённо это будет напоминать язык программирования, или точнее макросы в Word и Excel.
Смысл такой.
Представим себе некоторый текстовый редактор. Разработчик программы хочет, чтобы она не оставалась монолитной, и пользователь мог бы, к примеру, добавить в неё новую функцию. Тогда он создаёт в нашей проге специальный файл, после чего он может назначить этот файл в качестве реакции на нажатие какой-либо кнопки.
Таким образом придётся создать сразу две части этого приложения: программа для создания таких файлов и ActiveX DLL-ку, которая эти файлы будет выполнять.
Поскольку маловероятно, что мы можем предугадать всё, что потребуется конечному пользователю, то неплохо было бы сделать возможность расширения программы.
Моё решение этой проблемы такое.
Вся программа состоит из нескольких DLL библиотек.
В главной библиотеке определяются все общие классы, которые могут быть использованы другими частями программы.
Вот они:
Класс Document. В нём содержатся все объекты. Он как раз и представляет собой эту новую функция, которая добавляется к текстовому редактору. У этого класса есть свойства Objects(список всех объектов, которые содержатся в Document) и Value(значение, которое возвращается Document) и методы Run(вызывает стартовый оператор) и Save(сохранение)
Класс Object. От этого класса наследуются Document, Value и Operator. Он может быть сохранён и загружен из файла методами Load, Save.
Класс Value. Имеет свойство Value, которое возвращает определённое значение. От этого класса унаследованы классы, которые реализуют функции, например функция sin может быть представлена классом, у которого есть свойство Angle(угол) и переопределённое свойство Value, которое возвращает синус этого угла.
Класс Operator. В нём определённое действие. Это аналог процедуры в языках программирования. Метод Run запускает оператор на выполнение.
Я искренне надеюсь, что найдутся программисты-энтузиасты, которые захотят ко мне присоединиться.
:)
мой адрес [email]gerich_home@mail.ru[/email]
Если я не online, то пишите на mail
во-вторых, не вчитывался в реализацию, но сама идея утопична. Все твои расширения подобным образом подразумевают только слабую функциональной связь с расширяемой программой (пользоваетль ведь не знает о архитектуре программы, для него она "черный ящик", ну можно сделать приспособу которая пыль с него будет сдувать, но не более), что слабо актуально при сегодняшнем большем выборе прикладного ПО.
Цитата:
и пользователь мог бы, к примеру, добавить в неё новую функцию.
идея "open source" тебе ни о чем не говорит?
И не обязательно делать прогу на эту тему, присылайте свои предложения.
А насчёт "флудить" - а как тогда по-другому народ набирать?
Ну не знаю, конечно, но мне кажется, что разработчику легче написать SDK и потом все, кто захочет, смогут писать плагины. А ещё не стоит забывать о скриптах, макросах и т.д. и т.п.. Но, всё равно, если есть уже хоть какие-то разработки, выкладывай...
А я есть профессиональные программисты, поэтому мне, как и многим, решающим реальные задачи, это не интертесно. И еще, я так понял, что опыта ты собираещься набираться, за чужой счет? То есть энтузиасты напишут, а ты научишься. А самому? А? Без "костылей"?
Цитата: Tever
2 gerich_home
А я есть профессиональные программисты, поэтому мне, как и многим, решающим реальные задачи, это не интертесно. И еще, я так понял, что опыта ты собираещься набираться, за чужой счет? То есть энтузиасты напишут, а ты научишься. А самому? А? Без "костылей"?
А я есть профессиональные программисты, поэтому мне, как и многим, решающим реальные задачи, это не интертесно. И еще, я так понял, что опыта ты собираещься набираться, за чужой счет? То есть энтузиасты напишут, а ты научишься. А самому? А? Без "костылей"?
Совершенно верно сказал. По своему опыту знаю, что набивание "костылей" приносит куда более весомый результат, чем тупое вчитывание в код. Хотя, если ничего не получается (может не теми средствами пробовали?), то вчитывание в чужой код может и внести некоторые ясности.
Желаю удачи в разработке :)