|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Есть такая задумка. Разработать оболочку в которую на принцыпах плагинов можно внедрять любую начинку. Одна из обязательных баз - база справочников (АДРЕСА и КЛИЕНТЫ и пр.служебные таблицы). А затем добавляем любую функциональность. Каждый модуль (плагин) самостоятелен в пределах своей задачи (грубо говоря отделная программа работающая в общей среде). Это позволит постепенно перевести все самостоятельные задачи (разные программы) к единообразию, не прерывая работу организации. Нашел разработчика, который вроде правильно понимает мою идею, но пока таких проектов не выполнял. Интересует может кто сталкивался с подобной задачей, какие подводные камни ждут впереди, и может подобный вопрос подымался на форуме? (инструментарий: Delphi+MS SQL Server) >< и Вам туда же >< ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 17:08 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 17:16 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Ворчункакие подводные камни ждут впереди, и может подобный вопрос подымался на форуме? Подводные камни примерно такие: долго-долго разрабатывать Единый Универсальный Интерфес Реализующий Любую Функциональность. А потом окажется что реальная задача не "натягивается" на ваш engine Вообще, подобного рода начинания - одно из любимейших развлечений программистов. Задача руководителя проекта их отлавливать и душить на корню. Извините что так резко, но наболело. Постоянно вижу такие идеи, постоянно. PS: здравое зерно тут есть, но задач где это реально нужно _очень_ мало, да и то, в них это требуется в минимальном обьеме ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 17:26 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
AviantЕдиный Универсальный Интерфес Реализующий Любую Функциональность == среда программирования + среда исполнения + библиотеки. Пришли к тому, от чего пытаемся уйти. Знакомый круг... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 17:38 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Плохая у вас задумка. Потратите время, много времени, потом окажется, что чего-то нет, что-то не так, что-то совсем нельзя. Так что присоединюсь к общему мнению : М.Голованов среда программирования + среда исполнения + библиотеки Это ваш выход в светлое будущее :) -- Tygra's -- ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 17:46 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
М.Голованов AviantЕдиный Универсальный Интерфес Реализующий Любую Функциональность == среда программирования + среда исполнения + библиотеки. Пришли к тому, от чего пытаемся уйти. Знакомый круг... Полностью солидарен. У нас к примеру так и есть - есть общая для всех проектов платформа под сервер и тесно интегрированная платформа под клиентскую часть. На их базе быстро разрабатываются проекты или новые модули к проектам. Вся синхронизация общих частей кода БД между проектами, а так же установленных у клиентов проектов, идет через собственную самописную систему синхронизации версий схем БД и файлов клиентской части через веб-сервисы. В принципе с учетом наработок любой проект поднимается на ура, тут важнее ТЗ и взаимосвязи существующих и новых модулей системы - здесь нам сервер позволяет проводить гибкую политику от ведения модулей в единой БД (с разделением по овнерам) и разделенных БД, связанных репликацией, в зависимости от поставленной задачи. Таким образом имея на руках проверенный временем сервер, ПО для построения клиентской части и собственные повторно используемые библиотеки, проверенные временем как раз имеем единый универсальный интерфейс, позволяющий максимально быстро реализовывать задачи, сосредотачиваясь исключительно только на бизнес-логике и особенностях построения удобного интерфейса под конкретные проекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 17:47 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
ВорчунНашел разработчика, который вроде правильно понимает мою идею, но пока таких проектов не выполнял. Интересует может кто сталкивался с подобной задачей, какие подводные камни ждут впереди? У меня есть опыт удачной реализации подобной идеи. Метрика удачности - моими разработками пользуются до сих пор, через несколько лет после того, как я ушел из этой фирмы, в том числе в новых проектах. С моей точки зрения, основной и гигантский подводный камень этого подхода - мало кто способен хорошо решить такую задачу (давайте считать, что я сделал себе комплимент). При этом те, кто способны, как правило уже заняты более непосредственно денежными задачами. Разработка технологии и инструментов программирования - задача, существенно отличающаяся от разработки прикладных решений. Тот, кто делает это, должен одновременно: а) Быть хорошим постановщиком, проектировщиком б) Быть хорошим разработчиком в) Иметь высокую технологическую культуру. Фактически это намного более сложная задача, чем обычная разработка сравнимого объема, и обычная технология вида "вы подумали, объяснили мысль, обычный программист детализировал и сделал" приводит к недостаточно хорошему результату. Хочется пожелать Вам удачи, но объективно говоря более вероятно, что результат пополнит ряды кривых велосипедов. Как минимум надо понимать следующее. У Вас уже есть хороший универсальный инструмент, подходящий для решения ваших задач. Вы можете доработать его для того, чтобы лучше (меньшими усилиями) решать некоторые более типовые для вашего случая задачи. Но! Эта доработка, эта технология, не должна мешать универсальности инструмента, не должна делать решение нетиповой задачи более сложным. Иначе этот инструмент просуществует ровно до первого столкновения с реальностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 18:22 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
ВорчунИнтересует может кто сталкивался с подобной задачей, какие подводные камни ждут впереди много человеко-лет разработки, если можно это назвать подводным камнем. И еще, прежде чем разрабатывать интерфейсы для построения систем, нужно на себе испытать внедрение таких систем в разных областях и не раз, чтобы понимать какие задачи вообще возникают. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 18:45 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
softwarerУ меня есть опыт удачной реализации подобной идеи. Метрика удачности - моими разработками пользуются до сих пор, через несколько лет после того, как я ушел из этой фирмы, в том числе в новых проектах. <skipped> Как минимум надо понимать следующее. У Вас уже есть хороший универсальный инструмент, подходящий для решения ваших задач. Вы можете доработать его для того, чтобы лучше (меньшими усилиями) решать некоторые более типовые для вашего случая задачи. Но! Эта доработка, эта технология, не должна мешать универсальности инструмента, не должна делать решение нетиповой задачи более сложным. Иначе этот инструмент просуществует ровно до первого столкновения с реальностью. Вы хорошо сказали. Более того, я почти согласен с вашим критерием "удачности". Попробую обьяснить почему "почти" Дело в том, что у меня у самого есть успешно реализованый подобный механизм и им тоже пользуются уже несколько лет, после моего ухода из компании :) Но. Спрашивая сейчас самого себя, а стоило ли тратить на него силы и средства, я не могу (сам себе) однозначно ответить "да, стоило." Т.е. сейчас разработка есть и она хороша постольку, поскольку ей пользуются. Но мне кажется, что я мог потратить свое время в той компании с бОльшей пользей. Например не была реализована значительная часть функциональности в результате чего был потерян важный клиент. Я мог бы это сделать, но я писал engine. Так что я бы избегал излишнего упрощения при оценке необходимости подобной разработки (смотрите! в фирме NN такое есть и им давно пользуются) И уж точно не доверял бы подобные вещи человеку без опыта построения аналогичных систем, это уже к автору топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 18:52 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Сорри, что пропал, рабочий день короткий, а дома Интренета нет. Наверное выбрал неудачное название. Мне нужна софтина универсальная не для всех, а именно для моих задач (вернее моих клиентов), которые я отлично знаю, и которые много-много лет уже работают. Сначала на dBase, теперь на MS SQL. Но они все какие-то разношерстые, написаны разными людьми, когда просто была необходимость срочно уйти от ДОСа. Попробуйте под Win2K или WinXP поработать с ДОС-программами и поймете почему надо было уходить :(. Плюс, вернее минус - все программы используют к примеру СВОЮ таблицу АДРЕС. Соответственно в каждой БД дублированные данные (и ошибки в каждой тоже свои). Вот и хочется разработать оболочку с едиными справочниками, ну и соответственно интерфейс всех программ однообразить. А принцип плагинов нужен, чтоб переписывать программы можно было постепенно, не спеша. Но поскольку я пока с плагинами не сталкивался вот и опасаюсь неизвестного. Мож идея имеет какое потенциальное ограничение? не очевидное мне умозаключительно. tygraПлохая у вас задумка. Потратите время, много времени, потом окажется, что чего-то нет, что-то не так, что-то совсем нельзя. Вот этого и опасаюсь. Мож в новом свете есть поправки к Вашим высказываниям? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 09:11 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Более правильный путь - спроектировать универсальную базу, залить туда все данные, а уж к к универсальной базе можно написать обычный интерфейс. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 09:30 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
sergey888Более правильный путь - спроектировать универсальную базу, залить туда все данные, а уж к к универсальной базе можно написать обычный интерфейс. Ну, универсальную базу может врядли, а вот база хранящая общие данные для разных программ (адреса, клиенты, пользователи, исполнители, ...) очень нужна. Отдельная. Чтоб возможные неудачные разработки других программ не могли ее испортить. Обычный интерфейс мне кажется здесь не подойдет. Как я понимаю - обычный, это когда для добавление дополнительной функциональности (к примеру, в организации решили компьютеризировать работу канцелярии - по сути небольшая отдельная программка) придется заново перелопачивать программу. Значит есть вероятность появления новых ошибок в отлаженной и проверенной программе. Я же хочу, чтоб добавление новых программ (модулей) никак не затрагивало ядра. К примеру как встраиваются переводчики в текстовые редакторы (Pragma, Stylus). Только еще проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 09:55 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
ASCRUSПолностью солидарен. В свою очередь, полностью солидарен. Так и надо жить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 10:21 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
ВорчунЯ же хочу, чтоб добавление новых программ (модулей) никак не затрагивало ядра. Когда сосздадите такое ядро, которое будет способно обеспечивать работу любой новой функциональности, сообщите пож-та. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 10:25 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Aviant Единый Универсальный Интерфес Реализующий Любую Функциональность. А потом окажется что реальная задача не "натягивается" на ваш engine Должна быть иерархия инструментария: 1. базовые средства (языки, системы программирования и разработки) 2. универсальные модули (написаны на 1) (ведение справочников, генераторы экранных форм, генераторы отчетов. стандартные функции и процедуры и т.д.) 3. проблемно-ориентированные модули (разработаны на 2+1) (решение типовых прикладных задач) Конкретная система разрабатывается (по убыванию приоритета): 3 - используются готовые решения + 2 - настраиваются универсальные модули + 2+1 - разрабатываются дополнителные алгоритмы и полностью оригинальные модули При таком подходе ЛЮБАЯ задача "натягивается" на ваш engine ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 10:29 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Автору: Вполне посильная задача. Как Вы заметили, многие уже проделывали эту работу. Более того ! Это, ИМХО единственно правильный путь для работы в отрасли учётных (не только торгово-бухгалтерских) систем широкого назначения. Неуспехи в этой области говорят лишь о неподготовленности команд к такой работе, отсутствию реально конструктивных и живучих идей. Чего греха таить, многие разработчики имеют очень поверхностное представление о будущей области применения системы. 80% возможностей среды разработки и СУБД не используются, зато потом раздаются возгласы "Это ацтой ! Тупик !". А ЧТО НЕ ТУПИК ? SAP ? NAVISION/AXAPTA ? 1C ? На каждый из этих пунктов можно найти аргумент "Это ацтой !". И причём справедливый аргумент ! Времена студенческих самописок из 10-20 таблиц уходят в прошлое. Пришли времена РАЗРАБОТЧИКОВ, а не кодеров. Как Вы возможно заметили у меня тоже есть подобная наработка :) Ушло менее 1 чел/года (70% готовности). Очень проста в освоении и легко отчуждаема. Может являться надстройкой над любой другой системой (СУБД MSSQL) Инструментарий тождественен Вашему :) Респект to ASCRUS, softwarer, iscrafm ! Пессимизма остальных не разделяю. Хотя без знаний и опыта соваться в это рискованно. Возможно это и есть источник пессимизма ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 10:47 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
IMHO лично я в техническом плане никаких проблем решения задачи не вижу, разве что лично считаю MSSQL не самым подходящим сервером для такой задачи, по причине его одноплатформенности и недоразвитости TSQL, что приведет к тому, что какая то часть логики, да окажется на клиенте или теперь новомодных хранимых процедурах C#. Я лично вижу проблемы в другом - это в разработке методологии подходов проектирования такого класса задачи, где необходимо все до мелочей продумать, задать самому себе множество вопросов и найти множество правильных ответов, не противоречащих друг другу в различных аспектах. К примеру - как в БД правильно организовать взаимосвязи обьектов различных модулей, какое архитектурное решение принять для случаев, когда новый присоединяемый модуль имеет дополнительные расширения информации на существующую в других модулях, на которые он ссылается. Ну и т.д. - только начать копать для себя ТЗ, как думаю вопросов будет много много страниц. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 11:01 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
sergey888 Когда сосздадите такое ядро, которое будет способно обеспечивать работу любой новой функциональности, сообщите пож-та. Не хотелось особо углубляться, но придется. Все намного проще (на первый взгляд). "Ядро" - это всего лишь форма с некоторыми общими пунктами меню, на которой по принципу MDI-интерфейса открываются все программы (модули). Для запуска конкретной программы есть всплывающая панель (навигатор), "меню" которого формируется при запуске ядра и зависит от того какие модули находятся в папке Plugins и прав пользователя. А вся функциональность каждой отдельно взятой программки реализована в конкретном модуле. Т.е. когда я хочу добавить новую "программу" в этот комплекс, я в папку Plugins добавляю независимую от других программ dll-ку и все. Никто никому не мешает и т.п. Я вот только не знаю насколько полноценны возможности dll-к. Программы достаточно просты. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 11:16 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Ворчун, все о чем Вы пишите делается в ISCRA, она именно по таким принципам и построена, сплошные плагины: 1. "Я же хочу, чтоб добавление новых программ (модулей) никак не затрагивало ядра." 2. "принцип плагинов нужен, чтоб переписывать программы можно было постепенно, не спеша." Хотите потратить 30 человеко-лет собственных + кучу денег на оплату сторонних компонент? Уверяю Вас, сделать взаимодействие иногда вроде бы даже несовместимых вещей задача не тривиальная. Задумка у Вас правильная, но если нет опыта таких разработок - лучше не начинайте, возьмите полностью готовое. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 11:26 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
LSVАвтору: Вполне посильная задача. Как Вы заметили, многие уже проделывали эту работу. Как Вы возможно заметили у меня тоже есть подобная наработка :) Ушло менее 1 чел/года (70% готовности). Очень проста в освоении и легко отчуждаема. Может являться надстройкой над любой другой системой (СУБД MSSQL) Инструментарий тождественен Вашему :) Хотя без знаний и опыта соваться в это рискованно. Возможно это и есть источник пессимизма ? Полюбопытствовал Вашими темами (Вызов ф-ции из DLL в главной форме приложения). Выходит не зря меня мучают сомнения. Не все так гладко на практике. Разработчик прислал первые наброски. dll-ки подгружаются. В пределах модуля выполняются несложные задачи - подключение к тестовой БД и отображение информации. Посмотрим как пойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 11:26 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Что-то получается, что автор и остальные говорят малость о разном. Или все о разном ;) Я отвечал (и не только я) подозревая, что вы хотите что-то такое, такое универсальное и готовое, которое потом не требует программирования а просто настраивается каким-то образом для показа и изменения данных. Т.е. берется эта вещь, коннектится к любой БД, вы где-то чего-то настраиваете и получаете самогенерирующийся интерфейс к этой БД. Но оказывается, что вам то нужно не это. Вам нужно просто возможность динамически подключаемых модулей системы. которые все-равно разрабатываются, а не настраиваются. Ну это реализовано много где. Я лично делаю все в одном ехе, который сам по себе включает все, что есть. Но я не вижу тут каких-то особых проблем. Собственно, к самой по себе разработке это имеет посредственное отношение - один раз делается механизм подключения модулей, все остальное как всегда. -- Tygra's -- ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 11:36 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
LSVА ЧТО НЕ ТУПИК ? SAP ? NAVISION/AXAPTA ? 1C ? Их тоже, как и Ворчуна, мучили подобные вопросы. Поэтому в основе тот же "универсальный" интерфейс, разной степени универсальности , качества и объема загружаемых модулей. Всегда удивляло умение людей делать кучу ненужных вещей, чтобы получать 4ГБ (!!!!) инсталляции. Респект! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 11:41 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
Ну и еще авторОбычный интерфейс мне кажется здесь не подойдет. Как я понимаю - обычный, это когда для добавление дополнительной функциональности (к примеру, в организации решили компьютеризировать работу канцелярии - по сути небольшая отдельная программка) придется заново перелопачивать программу. С чего бы вам перелопачивать программу? Вы добавляете туда новый функционал - и все, остально не трогаете. авторЗначит есть вероятность появления новых ошибок в отлаженной и проверенной программе. Только в той части, которую вы меняли. Какая разница, как вы загрузили изменеия, хоть сразу, хоть модулем, если в них ошибка, то они ни там ни там не будут работать, но в любом случае остальную функциональность не затронут. авторЯ же хочу, чтоб добавление новых программ (модулей) никак не затрагивало ядра. К примеру как встраиваются переводчики в текстовые редакторы (Pragma, Stylus). Только еще проще. А смысл то в чем? Что такое "ядро"? Получается, что ничего - нет ядра, есть оболочка, которая загружает разные dll. И все. автор"принцип плагинов нужен, чтоб переписывать программы можно было постепенно, не спеша." Почему вы так думаете? Переписывайте неспеша без плагинов, что вам мешает? Я так думаю, вы что-то немного не понимаете. То, что вы предлагаете, никак не влияет на вашу цель:Это позволит постепенно перевести все самостоятельные задачи (разные программы) к единообразию, не прерывая работу организации. Постепенно можно перевести даже при разработке одной большой общей программы. Ваши предложения этому никак не поспособствуют. Ну только усложнят жизнь в несколько раз :)) -- Tygra's -- ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 11:44 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
sergey888Когда сосздадите такое ядро, которое будет способно обеспечивать работу любой новой функциональности, сообщите пож-та. Здесь его можно скачать (11МБ) , или почитать о нем (pdf, 1.8МБ) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 11:50 |
|
Разработка универсального интерфейса
|
|||
---|---|---|---|
#18+
iscrafmХотите потратить 30 человеко-лет собственных + кучу денег на оплату сторонних компонент? Уверяю Вас, сделать взаимодействие иногда вроде бы даже несовместимых вещей задача не тривиальная. Задумка у Вас правильная, но если нет опыта таких разработок - лучше не начинайте, возьмите полностью готовое. Возможно по Московским меркам правильнее купить готовое. Но у нас ситуация другая. Да и не интересно мне предлагать такое. Я 10 лет зря что ли боролся с этими программами. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2006, 12:04 |
|
|
start [/forum/topic.php?fid=33&msg=33618092&tid=1549393]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 236ms |
total: | 506ms |
0 / 0 |