Переключение на Главную Страницу Страницы: [1] 2 3 ... 7 ОтправитьПечать
Очень популярная тема (более 25 ответов) Набросок ТЗ по qt1L. Первые шаги. (число прочтений - 51216 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Набросок ТЗ по qt1L. Первые шаги.
15. Января 2008 :: 11:41
Печать  
Выкладываю наброски. Пишу как могу, прошу не бить ногами.
ТЗ пока не закончено, но может кого заинтересует.

убил ТЗ и приложения. Будет распространяться при помощи мыла.
« Последняя редакция: 24. Января 2008 :: 09:25 - trdm »  
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #1 - 16. Января 2008 :: 05:09
Печать  
Читал.

С метаданными я б делал не так.

Мой вариат:
1. Все метаданные - пользовательские классы (классы написаные в конфигураторе на встроенном языке)
соответственно каждый класс должен реализовывать метод хранения, изменения, модификации структуры , отображению данных, добавление форм, тестирование данных....
таким образом кому какие метаданные нужны тот такие и рисует + разработка классов и метаданных - фактически одно и тоже.
2. Все классы (метаданные) хранятся в БД вместе с данными
« Последняя редакция: 16. Января 2008 :: 07:21 - Nick »  
Наверх
ICQ  
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #2 - 16. Января 2008 :: 07:13
Печать  
Nick - т.е. тебе ближе вариант 2С?
Согласен, неплохое решение, кстати, в той же Аксапте кажется так реализовано.
но это сложнее для разработки. поэтому начать надо с простого, потом уже усложнять.

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

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #3 - 16. Января 2008 :: 07:31
Печать  
Phoenix писал(а) 16. Января 2008 :: 07:13:
Nick - т.е. тебе ближе вариант 2С?
Согласен, неплохое решение, кстати, в той же Аксапте кажется так реализовано.
но это сложнее для разработки. поэтому начать надо с простого, потом уже усложнять.

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


по поводу модулей, прав, форм и описаний согласен - т.е одна таблица под тексты модулей, 2 -я под формы, 3-я под описания. Хотя про формы нужно думать в зависимости что из себя представляют формы.

по поводу все виды метаданных в одной таблицы - так я тоже самое имел ввиду:
класс метаданные от него наследуем все остальные классы, соответственно описания - ссылки на наследников и на таблицы с данными наследников хранятся в таблицы данных класса "Метаданные" и так далее

Про реквизиты не понял Печаль - для всех методанных одна таблица реквизитов?
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #4 - 16. Января 2008 :: 07:42
Печать  

Цитата:
но это сложнее для разработки.


чем?
  
Наверх
ICQ  
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #5 - 16. Января 2008 :: 07:49
Печать  
Цитата:
по поводу модулей, прав, форм и описаний согласен - т.е одна таблица под тексты модулей, 2 -я под формы, 3-я под описания. Хотя про формы нужно думать в зависимости что из себя представляют формы.

по поводу все виды метаданных в одной таблицы - так я тоже самое имел ввиду:
класс метаданные от него наследуем все остальные классы, соответственно описания - ссылки на наследников и на таблицы с данными наследников хранятся в таблицы данных класса "Метаданные" и так далее

Про реквизиты не понял Печаль - для всех методанных одна таблица реквизитов?


насчет модулей не совсем так.

Таблица - BlobData
используется для хранения модулей, форм, описаний, печатных форм и прочей подобной информации
Поля:
ID - (INT) - Уникальный идентификатор записи
Identifire - (text) - Наименование объекта
IsMain - (INT) - Признак главной формы
TypeID  - (INT) - Тип данных владелец
KindID - (INT) - Вид метаданных
SubKindID - (INT) - Владелец внтуренний (например форма владелец текущего модуля)
ValueType - (INT) - Тип информации, 0-Форма. 1 - модуль, 2 - таблица. 3 модуль объекта, 4 - описание ...
Value - (blob) - Значение
DateTimeLastUpdate - (datetime) - Дата время последней модификации объекта

Таблица - Атрибуты (Details)
Используется для хранения списка реквизитов
Поля:
ID (INTEGER) - Уникальный номер реквизита
Identifire text NOT null - Наименование реквизита
TypeID INT - ИД типа данных
KindID INT - Ид вида метаданных
Position INT, - Номер позиции у владельца
Synonyme text - Представление
AviliableOn INT - Доступен у... Только для справочников: 0 - везде, 1 - для элемента, 2 - для группы
ValueTypeKind Text - Тип+Вид значения реквизита
IsComposite INT - Признак составного реквизита, используется когда реквизит может принимать значение разных типов, видом метаданных
Len INT - Длина, для чисел и строк
Exactness INT - Точность, для чисел
Positive INT - Признак только положительного значения
Obligatory INT - Признак обязательного реквизита
Indexed INT - Признак индексации значения
IsTable INT - Признак того, что это Табличная часть документа
ParentTable INT - Ид табличной части документа

Таблица - Метаданные (Metadata)
таблица для хранения видов метаданых
Поля:
ID INTEGER PRIMARY KEY - Ид метаданного
TypeID INT - Тип метаданного
ParentID INT - владелец, предок
Identifire Text - Идентификатор
Synonyme Text - Синоним
State INT - Состояние, скорее всего будет в виде
Params Text - Параметры, уникальны для каждого типа данных, разделябтся <|>
Comments Text - Комментарий
DateTimeLastUpdate Text - Дата время последней модификации

вот так примерно.

наследование от базового класса и создание типов метаданных на уровне конфига - гуд, но мне кажется сложно, и так или иначе достаточно базовых классов объектов которые есть в той же 1С для большинства задач.
мое видение системы - задача максимум - среда быстрой разработки бизнес-приложений. задача минимум - фреймворк (набор классов) для разработки на том же C++(QT).
информация о метаданных в подобном виде в любом случае будет удобна и нужна.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #6 - 16. Января 2008 :: 08:02
Печать  
по таблицам принципиально согласен

Цитата:
наследование от базового класса и создание типов метаданных на уровне конфига - гуд, но мне кажется сложно


Чем это сложнее чем если реализовывать на уровне движка платформы?
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #7 - 16. Января 2008 :: 08:18
Печать  
Nick писал(а) 16. Января 2008 :: 05:09:
Читал.
С метаданными я б делал не так.
Мой вариат:
1. Все метаданные - пользовательские классы (классы написаные в конфигураторе на встроенном языке)
соответственно каждый класс должен реализовывать метод хранения, изменения, модификации структуры , отображению данных, добавление форм, тестирование данных....
таким образом кому какие метаданные нужны тот такие и рисует + разработка классов и метаданных - фактически одно и тоже.
2. Все классы (метаданные) хранятся в БД вместе с данными

Для всего перечисленного тебе хватит VBScript+WEB+SQL-сервера.
Ты фактически описал вебориентированную среду разработки.
ПС. Такое не планируется. И вообще кончайте холивар разводить. Проблема того не стотит.
  
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #8 - 16. Января 2008 :: 08:23
Печать  
продумать виртуальную машину. например ты сможешь это реализовать?
например я, не уверен, что смогу.
и это не будет решать задачу минимум.

а мы тута и не начинали воевать, стены пока стоят Улыбка)))
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #9 - 16. Января 2008 :: 09:06
Печать  
На счет метаданных в 1 таблице поддерживаю.


Так для информации к размышлению:
в Cache при объявлении класса можно указать какие реквизиты хранятся в базе данных, какие есть индексы по этим реквизитам. Есть, правда, ограничения и по подобным классам (какие точно не помню).
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #10 - 16. Января 2008 :: 09:45
Печать  
Цитата:
Для всего перечисленного тебе хватит VBScript+WEB+SQL-сервера.
Ты фактически описал вебориентированную среду разработки.
ПС. Такое не планируется. И вообще кончайте холивар разводить. Проблема того не стотит.

А в чем преимущество того что планируется перед 1С7.7?
За счет чего ты хочешь сделать продукт популярным?

а что VBScript+SQL - кроссплатформенный? А редактор отчетов какой Подмигивание
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #11 - 16. Января 2008 :: 10:03
Печать  
Phoenix писал(а) 16. Января 2008 :: 07:13:
Nick - т.е. тебе ближе вариант 2С?

Используя не самодельный модуль работы с БД, а интегрируя готовый кирпичик (согласно #0), *что мешает* нам интегрировать его не напрямую и жестко, а через некий интерфейс? Пусть этот плагин так на всегда и останется единственным, но пусть это будет *опция* а не данность?

Интегрируя движок языка и реализуя виртуальную машину, *что не дает нам* сделать это не намертво, а придумать интерфейс, и воткнуть в него этот плагин?

Это дополнительная работа. Да.
Но прикиньте, какого объема ожидается проектик? Не шибко меньше 7.7. При этом, мы сидим не в одном офисе, как авторы 7.7, а раскиданы по городам и странам. Поиск багов и отладка должны быть проще при модульной структуре, особенно если сделать переключение интерфейсов в отладочный режим, так ведь?

Чем вариант 2С плох?
Чем вариант "всё в одном и намертво" хорош?
  
Наверх
ICQ  
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #12 - 16. Января 2008 :: 10:04
Печать  
плюсы на мой взгляд:
- кроссплатформенность
- большая гибкость
- большая прозрачность поведения платформы

Цитата:
Используя не самодельный модуль работы с БД, а интегрируя готовый кирпичик (согласно #0), *что мешает* нам интегрировать его не напрямую и жестко, а через некий интерфейс? Пусть этот плагин так на всегда и останется единственным, но пусть это будет *опция* а не данность?

Интегрируя движок языка и реализуя виртуальную машину, *что не дает нам* сделать это не намертво, а придумать интерфейс, и воткнуть в него этот плагин?

Это дополнительная работа. Да.
Но прикиньте, какого объема ожидается проектик? Не шибко меньше 7.7. При этом, мы сидим не в одном офисе, как авторы 7.7, а раскиданы по городам и странам. Поиск багов и отладка должны быть проще при модульной структуре, особенно если сделать переключение интерфейсов в отладочный режим, так ведь? 

Чем вариант 2С плох?
Чем вариант "всё в одном и намертво" хорош?

думаю механизм плагинов по любому бы пришлось писать. поэтому вполне можно сделать так:
сначала реализовать базовые типы аналогичные 1С жестко.
при этом в движок встроить поддержку плагинов и описанное выше на уровне плагинов.
2С кроссплатформенное решение?
жестко - быстрей разработка платформы и получение результата. думаю не стоит сразу ставить мегазадачи. все надо делать постепенно.
  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #13 - 16. Января 2008 :: 10:09
Печать  
dnp писал(а) 16. Января 2008 :: 10:03:
Phoenix писал(а) 16. Января 2008 :: 07:13:
Nick - т.е. тебе ближе вариант 2С?

Используя не самодельный модуль работы с БД, а интегрируя готовый кирпичик (согласно #0), *что мешает* нам интегрировать его не напрямую и жестко, а через некий интерфейс? Пусть этот плагин так на всегда и останется единственным, но пусть это будет *опция* а не данность?

Интегрируя движок языка и реализуя виртуальную машину, *что не дает нам* сделать это не намертво, а придумать интерфейс, и воткнуть в него этот плагин?

Это дополнительная работа. Да.
Но прикиньте, какого объема ожидается проектик? Не шибко меньше 7.7. При этом, мы сидим не в одном офисе, как авторы 7.7, а раскиданы по городам и странам. Поиск багов и отладка должны быть проще при модульной структуре, особенно если сделать переключение интерфейсов в отладочный режим, так ведь?

Чем вариант 2С плох?
Чем вариант "всё в одном и намертво" хорош?


Не понял  Печаль, пожалуйста по пунктам Улыбка
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Набросок ТЗ по qt1L. Первые шаги.
Ответ #14 - 16. Января 2008 :: 10:20
Печать  
Nick писал(а) 16. Января 2008 :: 10:09:
Не понял  Печаль, пожалуйста по пунктам Улыбка

Просто я апологет 2С Улыбка
А чего тут по пунктам? Просто я выхватил из контекста пару наиболее, на мой взгляд, ярких примера плюсов модульности, и попытался на этой основе устроить агитацию)))

Phoenix писал(а) 16. Января 2008 :: 10:04:
думаю механизм плагинов по любому бы пришлось писать. поэтому вполне можно сделать так:
сначала реализовать базовые типы аналогичные 1С жестко.

2С кроссплатформенное решение?

жестко - быстрей разработка платформы и получение результата. думаю не стоит сразу ставить мегазадачи. все надо делать постепенно.


1 - то есть потом интерфейс прикручивать? это значит, что и придумывать его мы будем после? возникнут идеологические несовместимости?
2 - она не кроссплатформенна, но не по причине плохой идеи. Просто MFC (говорят).
3 - согласен. согласен. согласен.

В общем, видимо начало должно быть жестким, но проектировать его хорошо бы с учетом перехода на плагины.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 7
ОтправитьПечать