Модераторы: Се ля ви
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поддержка модулей программы, реализация features за счёт модулей 
:(
    Опции темы
UniBomb
Дата 19.10.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Добрый день. Я не знаю как это правильно называется, посему попробую описать своими словами  smile  Из-за это я не знаю как правильно назвать тему, но если в процессе я это узнаю, то отредактирую заголовок.

Итак, я хочу написать некую IDE, в которой всё будет построено на модулях. Например у нас есть некий главный модуль (dll), который обеспечивает основную необходимую функциональность - это обеспечение расширяемости (себя любимого), это обеспечение инструментов для построения визуальных компонентов IDE, etc.

Дальше, за счёт механизма расширений, я хочу реализовать все основные элементы IDE - будь то текстовый редактор (например на основе Scintilla), окошки типа "watch", поддержку работы с различными компиляторами (например семейства GCC, а точнее портов для avr, arm и т.д.) GUI для дебаггера и т.д.


Первый и единственный пример подобного рода модулей, который мне приходит в голову - это сервер apache. Не совсем в тему, но очень близко.


Соответственно вопросы - какие есть подводные камни у такого подхода? Верно ли это решение идеологически? Какие есть стандартные механизмы поддержки модулей? 

Это сообщение отредактировал(а) UniBomb - 19.10.2009, 11:56
PM MAIL ICQ Skype   Вверх
skyboy
Дата 19.10.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



Цитата(UniBomb @  19.10.2009,  09:49 Найти цитируемый пост)
Первый и единственный пример подобного рода модулей, который мне приходит в голову - это сервер apache. 

total commander - 4 рода различных плагинов.
пока что неясно, что ты называешь "таким подходом". расширение функциональности за счет плагинов? да, довольно распространенное решение.
"подводные камни"? когда переносишь функционал в сторонние модули надо быть готовым, что модули могут оказаться некачественными. потому желательно проверять данные, пришедшие из модулей.
ну, и если плохо продумаешь интерфейс - обратно пути не будет. проблема обратной совместимости с уже существующими модулями будет перевешивать желание "поломать и переделать заново". потому-то делать систему "полностью модульной" с самого начала разработки - усложнять себе жизнь. во-первых, надо продумать все нюансы, что практически нереально. а во-вторых, выпуск первой рабочей версии продукта оттянется надолго.

PM MAIL   Вверх
UniBomb
Дата 19.10.2009, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Цитата(skyboy @  19.10.2009,  12:16 Найти цитируемый пост)
пока что неясно, что ты называешь "таким подходом"

Я имею в виду то, что само по себе приложение - это грубо говоря путая форма и одна dll, в которой только и есть, что механизм саморасширения. Зато всё остальное реализовано в виде расширений. Так например мы написали расширение, которое использует тестовый редактор на основе Scintilla и у нашей пустой формы теперь есть куда вводить код. Далее мы хотим подключить компилятор - мы пишем отдельный модуль, который будет обеспечивать всю рутинную работу с компилятором (создание мейкфала, вызов соответсвующих утилит с соответсвующими параметрами и т.д.). И т.д. до обрастания этой нашей пустой формы всем необходимым функционалом. Т.е. иными словами за счёт модулей я хочу не расширять существующий функционал, а создавать его по мере необходимости.

И да - где я говорил "мы" я имею в виду "я", просто легче думать более абстрактно  smile 


Цитата(skyboy @  19.10.2009,  12:16 Найти цитируемый пост)
плохо продумаешь интерфейс

Вот тут у меня самая большая сложность. Я не то, что не знаю как лучше проектировать такой интерфейс - я вообще не знаю как это делается. Посему прошу совета - с чего начать? Какие есть стандартные решения и есть ли вообще?


Цитата(skyboy @  19.10.2009,  12:16 Найти цитируемый пост)
потому-то делать систему "полностью модульной" с самого начала разработки - усложнять себе жизнь

Захотелось именно таких сложностей, т.к. я никуда не тороплюсь и делать хочу сначала для себя  smile
PM MAIL ICQ Skype   Вверх
Lazin
Дата 5.11.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 1
Всего: 154



я тут подумал, и решил, что тебе не нужно писать свою IDE, вместо этого тебе нужно использовать Visual Studio 2008 Shell или eclipse в качестве платформы, конечно, придется разобраться с тем, как это работает, поэтому в начале будет сложнее
может быть даже не стоит так делать, а вместо этого разобраться, как использовать в студии альтернативный toolchain, вместо стандартного майкрософтовского, скорее всего для этого то-же потребуется писать свое расширение для студии

Добавлено через 1 минуту и 55 секунд
http://msdn.microsoft.com/en-us/vsx2008/pr...s/bb933751.aspx
PM MAIL Skype GTalk   Вверх
UniBomb
Дата 5.11.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Цитата(Lazin @  5.11.2009,  13:56 Найти цитируемый пост)
eclipse

Не хочу  smile 


Цитата(Lazin @  5.11.2009,  13:56 Найти цитируемый пост)
Visual Studio 2008 Shell

Не знал о таком))) Интересный вариант, но если честно меня что-то смущает. Правда что именно - непонятно. А вот как насчёт стоимости средств разработки? Смогу ли я использовать экспресс версию студии (для работы с VS Shell)? Можно ли в получившуюся оболочку добавлять такие графические штуки, как например симулятор дисплея?
PM MAIL ICQ Skype   Вверх
Lazin
Дата 5.11.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 1
Всего: 154



Цитата(UniBomb @  5.11.2009,  13:37 Найти цитируемый пост)
Смогу ли я использовать экспресс версию студии (для работы с VS Shell)?

VS Shell runtime бесплатна, это просто голая VS 2008 Express Edition
для разработки нельзя использовать VS EE, можно только VS SE и выше
Цитата(UniBomb @  5.11.2009,  13:37 Найти цитируемый пост)
Можно ли в получившуюся оболочку добавлять такие графические штуки, как например симулятор дисплея?
конечно можно, вопрос в том, насколько это сложно сделать
PM MAIL Skype GTalk   Вверх
UniBomb
Дата 5.11.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Цитата(Lazin @  5.11.2009,  15:05 Найти цитируемый пост)
для разработки нельзя использовать VS EE, можно только VS SE и выше

Вот из-за этого отпадает и этот вариант. Ну нет у меня VS SE и покупать его не хочу  smile  Для себя же делаю... А использовать крякнутую VS SE как то не кошерно  smile 
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.