powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Качественная разработка приложений
77 сообщений из 77, показаны все 4 страниц
Качественная разработка приложений
    #34868567
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю куда написать видимо сюда. Пишу приложения, и вдруг ловлю себя на мысли что я делаю это не так! Пишу обычные клиентские приложения под БД на C#.NET 2.0. Ощущение что я это делаю не так. Вроде все как обычно создается MDI-приложение. Главное меню, огромное количество дочерних окон.В базе пишется огромное количество хранимых процедур,для вставки,изменения,просмотра записей.В проекте для большей скорости не используются DataSet'ы. Настройки программы сохраняются, в файлах, имеющих "свой" формат (не XML).
Почти вручную заполняется DataGridView. Вручную же и ловятся выделенные в нем записи для изменения. Для обработки хранимых процедур пишется огоромное количество монотонного кода, разница в нем только кол-во параметров и название процедур.

Ощущение что я код пишу как то по старым привычкам, что есть уже новый подход, и приложения пишутся намного быстрее или я не прав ?

http://webusblog.blogspot.com/
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34868743
sopromat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webusДля обработки хранимых процедур пишется огоромное количество монотонного кода, разница в нем только кол-во параметров и название процедур.Имхо, это причина Ваших ощущений.
В красиво спроектированной системе кол-во повторяющегося кода стремится к нулю.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34870723
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть хорошая книжка на эту тему "Архитектура корпоративных программных приложений" Мартин Фаулер.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34870734
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительЕсть хорошая книжка на эту тему "Архитектура корпоративных программных приложений" Мартин Фаулер.

как раз щас читаю :)
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34872024
jikez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажи пример того что делаешь?
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34872272
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webusОщущение что я код пишу как то по старым привычкам, что есть уже новый подход, и приложения пишутся намного быстрее или я не прав ?
Правы. И радует, что хоть кого-то еще посещают такие мысли.

Новый подход есть примерно с 1955-го года - называется "выделение стандартных подпрограмм". К настоящему времени он весьма и весьма развит.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34872954
Так_забежал_просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНовый подход есть примерно с 1955-го года - называется "выделение стандартных подпрограмм". К настоящему времени он весьма и весьма развит.
По моим ощущениям, его иногда не хватает... И приходится использовать кодогенерацию (в т.ч. "на лету") или макрогенерацию. Тоже, конечно, старо как мир. Но народ начал про это забывать, а сейчас это снова становится модно - на этом Rails выезжает. Количество кода может сократиться довольно существенно, но сам язык при этом опасный - при компиляции почти ничего не проверяется.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34873282
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>webus
> ... В проекте для большей скорости не используются DataSet'ы ...
После проверки ряда вариантов пришел к выводу, что имеет смысл использовать DataSet на клиенте. Только заполнять таблицу строками выборки так:
...
SqlConnect conn= new SqlConnect(...);
SqlCommand cmd= new SqlCommand("select ...")
SqlDtaReader rdr = null;
try {
conn.Open(); //-- откроем соединение
rdr=cmd.ExecuteReader();
while(rdr.Read()) {
//-- Из строки формируем объект
//-- Запись объекта в таблицу DataSet
Table[0].LoadDataRow(obj,true);
}
rdr.Close();
catch (SqlException se) { ... }
catch (Exception e) { ... }
finally {
if((rdr != null) && !rdr.IsCloseed) rdr.Close();
cmd.Dispose();
if(conn.State==ConnectionState.Open) conn.Close();
}
...
Нудно конечно.
Только надо помнить, что Dataset - почти база данных, но в оперативной памяти клиента. Поэтому - страничная подкачка.

> ... Почти вручную заполняется DataGridView ...
Имеет смысл связать его с таблицей DataSet (если он присутствует).

С уважением, Владимир.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34873431
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webusНе знаю куда написать видимо сюда. Пишу приложения, и вдруг ловлю себя на мысли что я делаю это не так! Пишу обычные клиентские приложения под БД на C#.NET 2.0. Ощущение что я это делаю не так. Вроде все как обычно создается MDI-приложение. Главное меню, огромное количество дочерних окон.В базе пишется огромное количество хранимых процедур,для вставки,изменения,просмотра записей.В проекте для большей скорости не используются DataSet'ы. Настройки программы сохраняются, в файлах, имеющих "свой" формат (не XML).
Почти вручную заполняется DataGridView. Вручную же и ловятся выделенные в нем записи для изменения. Для обработки хранимых процедур пишется огоромное количество монотонного кода, разница в нем только кол-во параметров и название процедур.

Ощущение что я код пишу как то по старым привычкам, что есть уже новый подход, и приложения пишутся намного быстрее или я не прав ?

http://webusblog.blogspot.com/

В NET есть генерики, а вот на уровне SQL серверов нет. И я бы сказал - не хватает.

Или приходится генерить налету sql код в клиентском приложении.

Или тупо и монотонно писать дикое количество созраненных процедур и функций с тупо и монотоноо повторяющимся кодом.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34875650
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>webus
> ... В проекте для большей скорости не используются DataSet'ы ...
После проверки ряда вариантов пришел к выводу, что имеет смысл использовать DataSet на клиенте. Только заполнять таблицу строками выборки так:
...
SqlConnect conn= new SqlConnect(...);
SqlCommand cmd= new SqlCommand("select ...")
SqlDtaReader rdr = null;
try {
conn.Open(); //-- откроем соединение
rdr=cmd.ExecuteReader();
while(rdr.Read()) {
//-- Из строки формируем объект
//-- Запись объекта в таблицу DataSet
Table[0].LoadDataRow(obj,true);
}
rdr.Close();
catch (SqlException se) { ... }
catch (Exception e) { ... }
finally {
if((rdr != null) && !rdr.IsCloseed) rdr.Close();
cmd.Dispose();
if(conn.State==ConnectionState.Open) conn.Close();
}
...
Нудно конечно.
Только надо помнить, что Dataset - почти база данных, но в оперативной памяти клиента. Поэтому - страничная подкачка.

> ... Почти вручную заполняется DataGridView ...
Имеет смысл связать его с таблицей DataSet (если он присутствует).

С уважением, Владимир.

То же самое делает Адаптер.Филл
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34876864
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog

Или приходится генерить налету sql код в клиентском приложении.



трындец sql серверу.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34877023
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik Alexsalog

Или приходится генерить налету sql код в клиентском приложении.



трындец sql серверу.

Почему? из за накладных расходов на компиляцию запроса на сервере?
В Оракле есть связанные переменные - да. Тут и Том Кайт советует и примеры дает - хотя в этой области я начинающий. В практической работе запрос все равно формируется как строка на клиентской стороне и отправляется посредством
Код: plaintext
CommandText = "...";

В MS SQL - если sql запрос посылается с клиентской стороны, то я вообще не знаю у него никаких возможностей "предкомпиляции".

А ради:
Код: plaintext
insert into sometable (f1,f2...) values(...) 
писать SP - ну не знаю....
Можно коенчно и на это идти - ради "оптимизации", но именно это и превращает разработку в тот монотонный и повторяющийся процесс о котором говорилось в начале.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34877118
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog Lepsikтрындец sql серверу.
Почему?
Забейте. Меня бы в принципе не огорчило, если бы sql серверу настал трындец, но я как-то долго выяснял этот вопрос с pkarklin-ым и Merle (одни из главным mssql-щиков здесь и на rsdn соответственно) и один из итоговых ответов был - MSSQL вполне нормально живет с клиентскими запросами, действуя примерно так же, как Oracle в режиме cursor_sharing=force.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34877453
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительЕсть хорошая книжка на эту тему "Архитектура корпоративных программных приложений" Мартин Фаулер. А еще он про рефакторинг написал.

Вместе эти книги образуют совершенно термоядерную смесь - гарантированно можно угробить любой проект, если немедленно бросаться реализовывать все что там написано.
webusОщущение что я код пишу как то по старым привычкам, что есть уже новый подход, и приложения пишутся намного быстрее или я не прав ? Намного быстрее они не пишутся, т.к. кодирование - это не самое главное.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34877494
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexsalogИли тупо и монотонно писать дикое количество созраненных процедур и функций с тупо и монотоноо повторяющимся кодом.
Есть прекрасные кодогенераторы(например,codesmith) c готовыми шаблонами для генерации процедур(впрочем, и любого кода).Затачиваешь их под себя, и весь гемморой сводиться к выбору имени таблицы.Никто не мешает подобным образом формировать весь необходимый винигрет:процедуры(запросы), классы для работы с БД(существуют шаблоны для многих ORM и DAL) и необходимые формы.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34877730
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kudinov
Вместе эти книги образуют совершенно термоядерную смесь - гарантированно можно угробить любой проект, если немедленно бросаться реализовывать все что там написано.

да уж.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34878073
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем бросаться?Многое из того, что там написано уже реализовано:CAB,SCSF,EntLib,Spring и тд.
Может быть взять это и заточить под себя? Пример - cabana .Более легкий вариант - самопальный CAB
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34878234
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webusНе знаю куда написать видимо сюда. Пишу приложения, и вдруг ловлю себя на мысли что я делаю это не так! Пишу обычные клиентские приложения под БД на C#.NET 2.0. Ощущение что я это делаю не так. Вроде все как обычно создается MDI-приложение. Главное меню, огромное количество дочерних окон.В базе пишется огромное количество хранимых процедур,для вставки,изменения,просмотра записей.В проекте для большей скорости не используются DataSet'ы. Настройки программы сохраняются, в файлах, имеющих "свой" формат (не XML).
Почти вручную заполняется DataGridView. Вручную же и ловятся выделенные в нем записи для изменения. Для обработки хранимых процедур пишется огоромное количество монотонного кода, разница в нем только кол-во параметров и название процедур.

Ощущение что я код пишу как то по старым привычкам, что есть уже новый подход, и приложения пишутся намного быстрее или я не прав ?

http://webusblog.blogspot.com/
Да нового подхода нет. Просто с ростом сложности и объёма проект перестаёт укладываться в голове и становится проще написать заново, чем искать уже написанное. Поэтому чтобы избавиться от монотонного кодирования - очень полезно проектировать до и документировать после. И ещё иметь хотя бы в голове представление о целях, которые преследует пользователь. Может, то что ему действительно нужно, можно реализовать по-другому, проще и быстрее, а то, что является лишним "бантиком" - просто выкинуть?
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34879462
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Сахават Юсифов
>То же самое делает Адаптер.Филл

Вы правы - da.Fill даст такой же результат.
Но:
1. Скорострельность.
2. Разработчик должен владеть несколькими методами работы с базой данных.
3. Длинный и нудный вариант дает возможность оперировать с каждой строкой выборки. Её можно сериализовать и отправить, к примеру в двоичный файл. Мы же помним, что DataSet располагается в оперативной памяти, а её объём межет быть не соизмерим с объёмом выборки. Посмотри не превзято на такой вариант - в прикладную систему по каким-то соображениям введен app-сервер (AS). Его реализацией может быть и такая - Web-service поверх host-а IIS (например). Клиент же - нормальное WinForm приложение.
AS располагается в локальной сети с сервером данных. Метод AS делает запрос к серверу данных и получает в ответ выборку, которую должен передать клиентскому приложению. Нужно ли AS использовать DataSet. Можно, но право не стоит. DataSet содержит избыточную информацию.
Я сериализую выборку по-строчно с записью в MemoryStream, результат сжимаю (zip) и шифрую. И вот этот результат передаю клиентскому приложению. И только здесь на клиенте, для графических компонентов отображения, записываю выборку в таблицу локального DataSet.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34879478
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Сахават Юсифов
>То же самое делает Адаптер.Филл

Вы правы - da.Fill даст такой же результат.
Но:
1. Скорострельность.
2. Разработчик должен владеть несколькими методами работы с базой данных.
3. Длинный и нудный вариант дает возможность оперировать с каждой строкой выборки. Её можно сериализовать и отправить, к примеру в двоичный файл. Мы же помним, что DataSet располагается в оперативной памяти, а её объём межет быть не соизмерим с объёмом выборки. Посмотри не превзято на такой вариант - в прикладную систему по каким-то соображениям введен app-сервер (AS). Его реализацией может быть и такая - Web-service поверх host-а IIS (например). Клиент же - нормальное WinForm приложение.
AS располагается в локальной сети с сервером данных. Метод AS делает запрос к серверу данных и получает в ответ выборку, которую должен передать клиентскому приложению. Нужно ли AS использовать DataSet. Можно, но право не стоит. DataSet содержит избыточную информацию.
Я сериализую выборку по-строчно с записью в MemoryStream, результат сжимаю (zip) и шифрую. И вот этот результат передаю клиентскому приложению. И только здесь на клиенте, для графических компонентов отображения, записываю выборку в таблицу локального DataSet.

С уважением, Владимир.

Владимир, это не АС, а какой-то приемопередатчик (это делают обычно, что бы обойтись НТТП только). Нормальный :) АС должен что-то кешировать, агрегировать, преобразовать и т.д., т.е. облеченный СУБД специализированный типа. Вот ту то и датасет и дататейбл и т.д. очень даже нужны.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34879479
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WCF очень даже.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34879827
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Сахават Юсифов
>Владимир, это не АС, а какой-то приемопередатчик. ...

Сахават, я не ставил цель расписать все возможные функции сервера приложения. То о чем говорю я, для некоторых - это "толстый" драйвер. Для меня это -удаленные вычисления. Из того списка, что Вы привели - функционально ближе всего преобразования.
Я привык оперировать не отдельным сервером приложений, а их пулом. Если текущий запрос выполняет СП(а), то далеко не факт что следующий запрос выполняться им, а не СП(?). Поэтому вопрос кеширования как бы повисает в воздухе (хотя и не отвергаю эту возможность - но кешировать придется на дополнительном общедоступном сервере). Агрегатирование можно делать и ХП на сервере данных, но если удобнее на СП, то почему нет.
Сахават, я совсем не против использования DataSet и DataTable и широко их применяю в программах представления инфориации клиенту. Но они содержат избыточную информацию (например - три почти одинаковые строки в DataTable) - что не очень здорово при обмене.
Но если приспичет - куда деваться.

Сейчас также пытаюсь перебраться на WCF. Пока со скрипом.

С уважением, Владимир
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34879850
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовНормальный :) АС должен что-то кешировать, агрегировать, преобразовать и т.д.
Ничего этого "Нормальный АС" делать не должен - он просто исполняет приложения - его клиент - простой терминал: экран + клава + мыша + эмулятор.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34881417
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод Сахават ЮсифовНормальный :) АС должен что-то кешировать, агрегировать, преобразовать и т.д.
Ничего этого "Нормальный АС" делать не должен - он просто исполняет приложения - его клиент - простой терминал: экран + клава + мыша + эмулятор.
Ну да. Я имел ввиду начинку, а Вы хость для начинки.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34881419
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов мод Сахават ЮсифовНормальный :) АС должен что-то кешировать, агрегировать, преобразовать и т.д.
Ничего этого "Нормальный АС" делать не должен - он просто исполняет приложения - его клиент - простой терминал: экран + клава + мыша + эмулятор.
Ну да. Я имел ввиду начинку, а Вы хость для начинки.
блин, как только появляется буква "т" в конце слова, так пальцы автомать ставят :) "ь". Что за фигня :(
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34882702
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>мод
>Ничего этого "Нормальный АС" делать не должен ...

Это скорее терминал-сервер.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34883824
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевЭто скорее терминал-сервер.
Он же АС. Пример - Oracle AS, его клиенты - просто терминалы.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34899771
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sopromat webusДля обработки хранимых процедур пишется огоромное количество монотонного кода, разница в нем только кол-во параметров и название процедур.Имхо, это причина Ваших ощущений.
В красиво спроектированной системе кол-во повторяющегося кода стремится к нулю.

Программист-ЛюбительЕсть хорошая книжка на эту тему "Архитектура корпоративных программных приложений" Мартин Фаулер.

Если представить что сейчас 50-ые годы и этот стон вопиющего в пустыне раздался не по поводу разработки "корпоративных" приложений, а по поводу вообще програмирования базовой логики типа циклов, переходов типа If, Switch а также блоков повтоярющегося кода, а все программируют блин в машиных кодах и на перфокартах, и тоже вот такой вот дядька спец своего времени по перфокартам говорит: оооо... есть хорошая книжка Марка Фалермана, называется: "Новейшие методы выкладывания перфокарт стопками".
Чесс слово тоже самое....
Я понимаю были времена машинных кодов, потом появился С, который являет собой тооненькую прослойку над машинными кодами, а затем революционный С++. Эти средства решили технологические проблемы того времени, когда программы писались годами коллективами специалистов и это было очень дорого удовольствие.
Но с тех пор (с 70-ых годов) ведь ничего НОВОГО создано не было. Java, Pascal, C# - суть упрощения языка С++, но принципиально нового ничего внесено не было.
Между тем, если разобраться язык С++(C#, pascal, Java, and a lot of frameworks), как инструмент программирования позволяет более ЛЕГКО, НЕПРОТИВОРЕЧИВО и удобно писать программы, облегчая ТОЛЬКО уровень описания процедур алгоритмов низкого уровня (базовая процедурная логика (переходы, циклы, вычисления).
Классы языка - еще один способ инкапсуляции ПРОЦЕДУР. Даже свойства - это процедуры (функции если угодно).
Однако до сих пор НИЧЕГО не создано для атоматизации следующего уровня, ради которого эти функции и прочая машинная логика объединяются - приложения как логически целостное, непротиворечивое и ЦЕЛЕСООБРАЗНОЕ творенип предназначеное для решения определенного круга задач.
Вот когда бужет такое средство, то и соответсвующие ощущения пропадут.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34914867
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Качественно разрабатывать можно быстро и медленно. Располагая вечностью, можно разрабатывать практически на любом средстве - начиная от машинных кодов – и, притом, очень качественно, исключая повторы, создавая стройную и красивую систему и т.п..
Практически для любого примера «ужасного кода» на любом языке можно привести контр аргументы в виде упоминания о «best practice» или начать говорить о разумном проектировании и неких принципах, которых должен придерживаться разработчик. Главным виновником, как правило, оказывается «человеческий фактор». По сути, решением проблемы качественной разработка приложений является призыв: «Хочешь качественной разработки – разрабатывай качественно. Никто тебе не мешает».

Однако, в любом труде хочется (приходится) иметь инструмент, который часть работы сделает за тебя или позволит серьезно уменьшить твои усилия.

В некотором приближении разработкой приложений можно считать ввод информации в систему о правилах обработки информации. Разработка программ – это процесс передачи оператором данных в систему о том, как, грубо говоря, должны оборачиваться в ней байты и биты в зависимости от возможных будущих воздействий на неё других людей или физических процессов.
Рассматривая процесс программирования в таком «ракурсе», можно вынести основные принципы сокращения усилий программиста: информация, вводимая в систему программистом (во время процесса программирования) должна быть необходимой и достаточной для её функционирования. Иными словами она не должна как минимум повторяться. А во-вторых, не должно происходить её потерь.

«Подразумевая» некий автоматизируемый «бизнес-процесс», программист вносит данные в систему («делает программу») на всех её уровнях:
1) Когда проектирует структуру БД
2) Когда проектирует интерфейс
3) Когда создает бизнес логику
4) Когда делает запросы для отчетов и сами формы отчетов

При этом, все эти слои объединяются только разумом (осознанным или неосознанным представлением), волей и ответственностью программиста, а также за счет «обратной связи» получаемой от пользователя или тестировщика в случае нелогичного поведения системы. И так - из совершенно независимо функционирующих программных сущностей создается согласованно действующая система. Как известно любому современному программисту, процесс этот долог, нуден и кропотлив.

Между тем, каждый из названных слоев повторяет, дублирует и частично перекрывает данные-основания любого другого слоя. В случае создания взаимных противоречий в функционировании слоев мы имеем случай потери информации вследствие её неопределенности, бесполезности и даже вредоносности. Так, например: при проектировании БД уже создается знание о системе, которое может быть использовано при проектировании интерфейса и бизнес логики. Бизнес логика оказывает влияние на, опять же, интерфейс и на систему отчетности и наоборот. И так далее.

Все современные Фреймворки, языки программирования категории ООП, а также языки запросов напоминают слепых кротов способных ощупать семантическое пространство приложения на расстоянии коротеньких лапок своих операторов. А лапки эти очень коротки. И только «сильная, уверенная и очень трудолюбивая рука» команды проектировщиков, постановщиков, тестировщиков и программистов способна провести этих «уродцев» сквозь сложноустроенное пространство семантики законченного приложения.
Принципиальным решением указанных проблем было бы создание инструмента разработчика, логически согласованно автоматизирующего создание отдельных компонентов системы, на основании общих метаданных, описываемых в терминах автоматизируемой предметной области.

Выше я сказал том, что знания, закладываемые в систему, взаимно перекрываются или оказывают взаимное влияние. Это взаимное влияние является системой семантических связей. Для задач различного класса структура и содержание семантических связей отличаются.
Мы можем спроектировать инструмент с неким предзаданным семантическим пространством, но он будет способен решать только узкий круг задач и только одним известным шаблонным способом.
Мы можем спроектировать инструмент с изменяемым (программируемым) семантическим пространством или, иначе говоря, с изменяемой моделью приложения. Такой инструмент, хотя и ограниченный предлагаемой «моделью моделей» обладал бы уже некой универсальностью и возможностью творить, а не кроить однообразные программки по шаблону.

Техническая реализация
Если кто-то согласен или кто-то понял сказанное….
Какие мысли есть по технической реализации??

Извиняюсь за многа букаф.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34914964
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogВсе современные Фреймворки, языки программирования категории ООП, а также языки запросов напоминают слепых кротов способных ощупать семантическое пространство приложения на расстоянии коротеньких лапок своих операторов. А лапки эти очень коротки. И только «сильная, уверенная и очень трудолюбивая рука» команды проектировщиков, постановщиков, тестировщиков и программистов способна провести этих «уродцев» сквозь сложноустроенное пространство семантики законченного приложения.

мощно задвинуто. :)
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34914967
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод
Пример - Oracle AS, его клиенты - просто терминалы.
сколько нового узнаешь, поразительно. Но немного не верно, клиенты ORACLE AS - мобильные телефоны.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34915479
Е.В.С.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
..... Опыта мало, возраста мало; желаний, энтузиазма и амбиций дохе.. много короче... сильно ногами не бейте если что не так... просто мысли вслух...
Alexsalog
Между тем, каждый из названных слоев повторяет, дублирует и частично перекрывает данные-основания любого другого слоя.
Не совсем понял, если не затруднит то в реальных/простых примерах по возможности..

AlexsalogБизнес логика оказывает влияние на, опять же, интерфейс и на систему отчетности и наоборот. И так далее.
От этого и никуда не денешься, какое то самообучение способам/методам/принципам воздействия интерфейса и на систему отчетности т.п. будет иметь место.

Alexsalog
... но он будет способен решать только узкий круг задач и только одним известным шаблонным способом.
Будут работать признанные большинством сообщества методы решения конкретных задач... Типовые примеры многим известны. Как возможное следствие -open source/GPL модули определенного рода/типа.

AlexsalogМы можем спроектировать инструмент с изменяемым (программируемым) семантическим пространством или, иначе говоря, с изменяемой моделью приложения. Такой инструмент, хотя и ограниченный предлагаемой «моделью моделей» обладал бы уже некой универсальностью и возможностью творить, а не кроить однообразные программки по шаблону.

Какие мысли есть по технической реализации??
Согласен, но программа никогда не сможет сделать того в чем до конца не разобрался разработчик.



P.S. я, можно сказать, новичок и на форуме и в разработке КИС, но меня пугает низкая интесивность осбсуждения такой горячей темы как эта. Неужели так мало людей интересуеются грамотным построением КИС? :(
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34915641
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уверен, что интересует многих.

Вот что делаем мы для снижения энтропии проекта.
Растущая команда в настоящий момент составом >10, но <15 человек разной квалификации.
Каждый, кто что-то написал/исправил публикует свои заметки в специальном общедоступном месте. Т.о быстрее можно локализовать свежевозникающие проблемы и избегать дублирования кода.
Выполнение некоторых вещей проверяется другими коллегами (известный принцип взаимного контроля).
Помогает.

На достигнутом не останавливаемся, постоянно думаем об улучшении процесса разработки.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34916174
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalmКаждый, кто что-то написал/исправил публикует свои заметки в специальном общедоступном месте. Т.о быстрее можно локализовать свежевозникающие проблемы и избегать дублирования кода.

Calm , если кто-то что-то исправил, то это уже не нужно больше исправлять.В этом ведь и смысл отсутствия дублирования кода, хорошо организованной модульной структуры. Код, отвечающий за определенный функционал размещен в строго определенном месте. Внесение изменений в него сразу же отражается везде, где этот код используется. Публиковать заметки нужно только для истории. Или Вы о чем-то другом?
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34916333
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Е.В.С...... Опыта мало, возраста мало; желаний, энтузиазма и амбиций дохе.. много короче... сильно ногами не бейте если что не так... просто мысли вслух...
Alexsalog
Между тем, каждый из названных слоев повторяет, дублирует и частично перекрывает данные-основания любого другого слоя.
Не совсем понял, если не затруднит то в реальных/простых примерах по возможности..

Например вам нужно сделать ввод документов типа счетов.
Вы представляете себе что это такое. Вы знаете, что у документа есть шапка и есть спецификация. в шапке такие то поля приотм некоторые являются ссылками на справочники.
В спецификации нечто подобное. Это назовем : данные-основания.

Теперь, вы делаете интерфейс. Как вы его делаете? Вы непременно будете учитывать в проектировании интерфейса подобноо отношение частей документа. Это окажет влияние на дизайн документа.
Далее вы проректируете базу данных. Опять же вы учитываете названные выше ОДНИ И ТЕ ЖЕ исходные данные, но только в применении к таблицам.
Далее вы пишете запросы, и опять в секции where вы заново указываете уже набившие оскомину отношения между данными но только в интепретации к SQL языку.
А есть еще справочники - и для них цикл разработки целиком повторяется. Все тоже самое повторенное несколько раз на разных уровнях и в разной форме.
Это и создает ощущение нудности и постоянный страх ошибки. Потому что например при написани SQL запроса ничего не стоит связать шапку документа с Id контрагента по полю предназначеному для связывания со спецификацией. И получить полную чушь. И СУБД это проглотит и не поперхнется.
Это я и назваю "слепотой" инструментов данных современному разработчику. Им (инструментам) своершенно плевать на законченность и логичность конечного приложния. Они на все согласны и им все равно что делать. Такая вот метафора.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34917768
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm Но немного не верно, клиенты ORACLE AS - мобильные телефоны.
В т.ч.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34918689
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВнесение изменений в него сразу же отражается везде, где этот код используется.
Во истину так.

авторИли Вы о чем-то другом?
Не всегда член команды на 100% уверен, что знает ВСЕ места, где юзается код, который он правит.
Как говорится, одно лечим, другое калечим.
Мы внедряем чужую систему с огромным количеством чужого кода, в которое добавлено некоторое количество своего кода. Иногда внесение изменений в свой код приводит к неожиданным последствиями. В этом случае важно быстро разобраться в чем проблема. А это легче понять, если знать кто и что делал в последние дни.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34918713
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Calm
я понял Вашу ситуацию.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34918771
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalmНе всегда член команды на 100% уверен, что знает ВСЕ места, где юзается код, который он правит. Как говорится, одно лечим, другое калечим.
Если для внесения исправлений в модуль X нужно знать, где и как этот модуль используется - значит, "что-то не в порядке" с общей архитектурой и принципами кодирования системы.

CalmВ этом случае важно быстро разобраться в чем проблема. А это легче понять, если знать кто и что делал в последние дни.
Это да. Правда, как мне кажется, для этого вполне хватит посмотреть в репозиторий VCS - информация будет более быстрой и более точной.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34918798
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog
Да вообщем-то многие делают так, чтобы 1. меньше писать, а больше настраивать 2. побольше работы по настройкам свалить на пользователей. 3. чтобы как можно больше делалось автоматически, без привлечение программистов и пользователей.

И подходов много. Понятно, что не имеется в наличии единого "правильного" решения. НО все - BPMS, системы докуменооборота, отчетные системы, системы на базе онтологий и т.п. все нацелены на это.
Только в чем вопрос ? Делает ли кто-то сам - делают, думаю многие. Лучше вопрос конкретизировать.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34922131
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CalmУверен, что интересует многих.

Мне эта область программирования наиболее интересна. Хотя, думаю, единого алгоритма нет и не должно быть.
Просто имхо надо создавать такой код, который можно будет потом подвергнуть изменениям, т.е. рефакторингу. Согласно одной книжке: если система хорошо спроектирована, то значит ее можно подвергнуть рефакторингу...
Изначально написать самый оптимальный с минимумом повторений код нереально, если только будет полное ТЗ до мелочей(адакий томик на пару сотен страниц) и оно не будет меняться!
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34929529
Фотография DVE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.Для быстрой разработки клиент сервеного приложения с большим количествои форм и табличек полагаю нужно использовать отличные от C#.NET инструменты, например J2EE, Oracle Forms, Delphi

2.Во избежание переписывания однофункционального кода разными программистами:
а.качественное проектирование
б.контроль написанного кода коллегой или руководителем групппы.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34929686
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DVE1.Для быстрой разработки клиент сервеного приложения с большим количествои форм и табличек полагаю нужно использовать отличные от C#.NET инструменты, например J2EE, Oracle Forms, Delphi

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

Вот тут спор на соседней ветке про то что лучше C# или С++, так вот, мне этот спор (в современных условиях в переносе на современный технологический уровень) напоминает спор жителей двух африканских племен - что вот грошки глиняные делать чисто руками или деревянный скребок использовать?

Ко мне давеча подошел наш маркетолог и говорит нужно блокировать возможность продаж через чистему при условии что товар обладает свойтсвом А, клиент свойством Б, а сектор продаж относится к сектору С. Сел рядом и начал смотреть - ну интересно ему как там и что я делать буду.
Я начал "шерстить" сохраненные процедуры, справочники и таблицы. Он и спрашивает - а что не т такого места в системе в котором эти условия нужно прописать логическими формулами и все будет работать. Я говорю - нет, нужно произвести изменениия не менее чем в трех процедурах и еще одной программе которая печатает отчет.
Потому что понятие продажи включает в себя:
1) Предложение клиенту
2) Прием о обработка заявки
3) Отгрузка
4) Распечатка документов

Он офигел (маркетолог).

Как я уже писал в предыдущих постах одно и тоже "знание" о процесее применяется в различных частях систмы при её проектировании и воплощении в кодах, в различных её уровнях и на разлдичных этапах её рабочего цикла.

Нужен инструмент (язык программирования) позволяющий создавать сущности , которые могут одновременно участвовать в отношениях со многими другими сущностями, которые в свою очередь.. и так далее.
Даже функциональные языки в этом смысле говорят только "а" но не говорят "б". Они (эти языки) уходят императивных многословий, сокращая код и увеличивая выразительноть программ путем задания логический условий (отношений) в контексте (в среде) некого испольнителя способного "понимать" эти условия и действовать сообразно им.
Но эти "исполнители" даже в функциональных программа, как бы это сказать - МОНОГАМНЫ и холтя сокращают программы избегая императивнях команд, тем не менее не решают проблемы многосвязаннсти (и вслед за ней логической целостности и централицазии внесения изменений) семантичсекого пространства задачи.

Пример многосвязанного понятия - ПРОДАЖИ. Очень комплексное и емкое понятие.

Однако есть системы (например документооборота) в которых такие емкие обхъекты "живут". Но как правило разновидности объектов заданы жестко и зашиты в кодах более низкого уровня. Объекты нельзя скрещивать и видоизменять выводя новые "сорта". Поэтому данные системы остаются безвестными и применимы только в очень специальных областях применения.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34929739
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogКо мне давеча подошел наш маркетолог и говорит нужно блокировать возможность продаж через чистему при условии что товар обладает свойтсвом А, клиент свойством Б, а сектор продаж относится к сектору С. Сел рядом и начал смотреть - ну интересно ему как там и что я делать буду.
Я начал "шерстить" сохраненные процедуры, справочники и таблицы. Он и спрашивает - а что не т такого места в системе в котором эти условия нужно прописать логическими формулами и все будет работать.

Приведенная Вами задача хорошо ложится на BPMS. Но в моем видении BPMS пока не хватает онтологичности. То, что вы дальше пишете , в чистом виде онтологический подход. Но реализация таких систем - это процесс , т.е. он идет. (сами по себе системы проектирования онтологий - они есть и их много и давно, а вот системы реализующие деятельность на базе таких описаний - это реже. Бесспорно, они тоже есть, но их не всеобъемлюще.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34930228
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogОн и спрашивает - а что не т такого места в системе в котором эти условия нужно прописать логическими формулами и все будет работать. Я говорю - нет, нужно произвести изменениия не менее чем в трех процедурах и еще одной программе которая печатает отчет.

Он офигел (маркетолог).


я бы, честно говоря, тоже офигел. Все таки какая сложная наука - проектирование систем.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34930229
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mainframe_старый
Приведенная Вами задача хорошо ложится на BPMS.
каким образом? :)
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34930434
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mainframe_старый AlexsalogКо мне давеча подошел наш маркетолог и говорит нужно блокировать возможность продаж через чистему при условии что товар обладает свойтсвом А, клиент свойством Б, а сектор продаж относится к сектору С. Сел рядом и начал смотреть - ну интересно ему как там и что я делать буду.
Я начал "шерстить" сохраненные процедуры, справочники и таблицы. Он и спрашивает - а что не т такого места в системе в котором эти условия нужно прописать логическими формулами и все будет работать.

Приведенная Вами задача хорошо ложится на BPMS. Но в моем видении BPMS пока не хватает онтологичности. То, что вы дальше пишете , в чистом виде онтологический подход. Но реализация таких систем - это процесс , т.е. он идет. (сами по себе системы проектирования онтологий - они есть и их много и давно, а вот системы реализующие деятельность на базе таких описаний - это реже. Бесспорно, они тоже есть, но их не всеобъемлюще.

Я находил в инете только касательно баз знаний. Говоря обращзно на базе онтологий реализуются пассивные ХРАНИЛИЩА. Если можно - есть ли пример системы на баще онтологий с "активной жизненой позицией"? Которая что то делает и обрабатывает.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34930436
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog
Я находил в инете только касательно баз знаний. Говоря обращзно на базе онтологий реализуются пассивные ХРАНИЛИЩА. Если можно - есть ли пример системы на баще онтологий с "активной жизненой позицией"? Которая что то делает и обрабатывает.

Правильно. Но это день сегодняшний. Хотя и тут не совсем корректно. У IBM есть исследовательская лаборатория в Германии, они там занимаются онтологическим системами, как активными, я где-то в этом форуме давала ссылку на их статью. Мы делаем такую систему для своих задач. Т.е. на описании онтологий выполняются различные процедуры, в том числе для автоматизации некоторых процессов. Ну и естесвенно и для хранилища, и для очтетов. Еще, например, у нас система управления контентом сайта сейчас сделана на такой системе, сейчас делаем документооборот. Внедрили пару подсистем документооборта (хотя там плюс еще управление процессами вставлено), делаем дальше.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34930437
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm Mainframe_старый
Приведенная Вами задача хорошо ложится на BPMS.
каким образом? :)
Ну там же бизнес-правило, если стоиомсть ниже того-то, если у клиент свойство равно тому-то и еще какое-то условие, то ...то просто в орекестровке процесс продажи станет доступен пользователям с одной ролью, а иначе - с другой. В общем-то нормально вписывается.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34931459
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34931479
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog Воть

Особенно по теме:
про пользовательский интерфейс
Да как-то тут ранее поднималась как раз эта проблема, про пользовательский интерфйес на оснвое онтологий и про эту работу я упоминала. Сегодня в МИЭТ (Зеленоград) защита кандидадтской по схожей тематике. Я посчита работу сильной (отзыв писала).
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34937017
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И опять же - если кто понимает о чем речь, то главнейшей проблемой в системах онтологии является не описание онтологий (это все банально и тривиально), а их маппирование друг на друга. По моему это уже на уровне подступов к ИИ.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34938061
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogИ опять же - если кто понимает о чем речь, то главнейшей проблемой в системах онтологии является не описание онтологий (это все банально и тривиально), а их маппирование друг на друга. По моему это уже на уровне подступов к ИИ.

По-моему мнению маппирование не самое интересное. Лично для меня интереснее, что с этим описанием делать дальше. И причем много раз в разных местах. Т.е. как исропльзовать описания для организации - бизнес-процессов, интеграции данных, автмоатизации процедур поддержки качества данных, автоматизации управляющих воздейтсвий, автмоатизации процедур обеспечения безопасности. Причем во всех местах должно использоваться одно и тоже описание.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34941231
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mainframe_старый AlexsalogИ опять же - если кто понимает о чем речь, то главнейшей проблемой в системах онтологии является не описание онтологий (это все банально и тривиально), а их маппирование друг на друга. По моему это уже на уровне подступов к ИИ.

По-моему мнению маппирование не самое интересное. Лично для меня интереснее, что с этим описанием делать дальше. И причем много раз в разных местах. Т.е. как исропльзовать описания для организации - бизнес-процессов, интеграции данных, автмоатизации процедур поддержки качества данных, автоматизации управляющих воздейтсвий, автмоатизации процедур обеспечения безопасности. Причем во всех местах должно использоваться одно и тоже описание.
А я имел ввиду вот что...
Мы имеем "центральное" описание, которое достаточно полно отражает бизнес-правилаи правила ввода и обработки данных (в одном флаконе). Теперь это описание надо "перевести" на "язык" другой онтологии специализированной на описание процессов, например "исполнителя и создателя" SQL запросов. Или(и) на язык онтологии "исполнителя и создателя" интерфейсов пользователя. Т.е. задания указанным "исполнителям" подаются на вход тоже в виде онтологий - просто хотя бы для того чтобы обеспечить однородность системы и единство технологии. Однако, как я уже сказал - это могут быть совсем другие онтологии. Другой структуры. И вот тут возникает вопрос мапирования.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34941294
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть
авторВ разных местах одно и то же описание - НЕТ, не одно и тоже. Источник один, но от него берут начало другие онтологии с дополнительным (и дополняемым) собственным контекстом, но тем не менее жестко связанные с центральным описанием.

авторТ.е. как использовать описания для организации - бизнес-процессов, интеграции данных, автоматизации процедур поддержки качества данных, автоматизации управляющих воздействий, автоматизации процедур обеспечения безопасности. - это определяется активностью "исполнителя" - программы, которая собственно и производит активные действия.
Исполнитель может быть интерактивным (ждущий воздействия оператора) и активным - выполняющим действия по таймеру или в зависимости от изменения информационного окружения (т.е. вариант ожидания либо временного события, либо опрос состояния рядом живущих объектов).
Исполнитель - это как бы заряженный энергией демон, которого переполняют силы, но он не знает ЧТО ему делать и поэтому он работает (будучи запушенным) вхолостую. In idle.
Но как только он получает на вход (в виде последовательности байтов) описание задачи - ПОНЯТНОЙ ему (поэтому и онтология для исполнителя должна быть специализированной), он начинает пахать и сеять.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34941307
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При этом работа может быть двух типов

1) Конечные действия (выполенние запросов, формирование интрефейса, расчет, сохранение и исзвлечение данных)

2) Трансферт - внесение изменений в активное состояние других онтологий с использованием структуры взаимосвязи.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34941410
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexsalog - НЕТ, не одно и тоже. Источник один, но от него берут начало другие онтологии с дополнительным (и дополняемым) собственным контекстом, но тем не менее жестко связанные с центральным описанием.


Боюсь вы не поняли. В том=то и дело, чтобы описание было ОДНО. Все ньансы с разными базами, процессами и т.п. описываются отношениями. Поскольку онтологии допускают произвольные отношения, то можно развернуться по полной программе. Какие хочшеь, так и проектируешь. А на основе этих огтношений - подчеркну - описание одно - делаются разные вещи. Одно описание и много разных вещей. К этому и стремимся - чтобы делать меньше, святое желаение любого программиста.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34941429
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogПри этом работа может быть двух типов

1) Конечные действия (выполенние запросов, формирование интрефейса, расчет, сохранение и исзвлечение данных)

2) Трансферт - внесение изменений в активное состояние других онтологий с использованием структуры взаимосвязи.

Если нравится, то можно классифицировать как угодно, главное, чтобы из классификации что-то следовало.
Простое изменение экземпляров понятий на основании описания онтологий и отношений между ними- это обычная вещь. Она давно есть. Я не об этом. Хотя и это полезно, но все же не это самое интересное.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34941573
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mainframe_старый Alexsalog - НЕТ, не одно и тоже. Источник один, но от него берут начало другие онтологии с дополнительным (и дополняемым) собственным контекстом, но тем не менее жестко связанные с центральным описанием.


Боюсь вы не поняли. В том=то и дело, чтобы описание было ОДНО. Все ньансы с разными базами, процессами и т.п. описываются отношениями. Поскольку онтологии допускают произвольные отношения, то можно развернуться по полной программе. Какие хочшеь, так и проектируешь. А на основе этих огтношений - подчеркну - описание одно - делаются разные вещи. Одно описание и много разных вещей. К этому и стремимся - чтобы делать меньше, святое желаение любого программиста.

Кстати да. чтоб понятно одно описание - это не одна онтология. Просто, описав что-то один раз, можно это потоv использовать в разных местах. Например, описали что есть понятие с какими-то атрибутами. Потом определили, что это понятие имеет отношения проекции с источником данных 1 и 2, но с 1 отношения на чтение/запись, а с 2 только на чтение. ЧТо из этого следует ?
1. Что должна быть автоматически выполнена репликация из источника 1 на источник 2 и вся репликация уже определена потому что все описано в описания понятия и отношений проекции дополнительно не нужн описывать.
2. Что при выборки понятия можно обратиться к истчонику 1, но лучше при прочих арвных начать с 2, но если связи нет, то можно и один
3. Что если нужно создать экземпляр, то только к 1
ну и так далее там еще много чего.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34942463
Фотография CrazyPotato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogПринципиальным решением указанных проблем было бы создание инструмента разработчика, логически согласованно автоматизирующего создание отдельных компонентов системы, на основании общих метаданных, описываемых в терминах автоматизируемой предметной области.


Пожалуйста! Есть 1С: несколькими щелчками мыши описываете метаданные, то есть некоторую сущность - автоматически создаётся таблица в БД, автоматически генерируется UI для просмотра-редактирования-списка.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34942568
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CrazyPotatoПожалуйста! Есть 1С: несколькими щелчками мыши описываете метаданные, то есть некоторую сущность - автоматически создаётся таблица в БД
Для одной сущности одной таблицы может и не хватить.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34942630
Фотография CrazyPotato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод CrazyPotatoПожалуйста! Есть 1С: несколькими щелчками мыши описываете метаданные, то есть некоторую сущность - автоматически создаётся таблица в БД
Для одной сущности одной таблицы может и не хватить.

Ну это не критично.
Всё зависит от того, как проектировать систему.
В большинстве случаев: сущность = таблица.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34942664
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Например, описали что есть понятие с какими-то атрибутами. Потом определили, что это понятие имеет
> отношения проекции с источником данных 1 и 2

Онтология в чистом виде здесь бесполезна. Уже потому, что Вы определяете понятия источников не семантически, а идентифицируете их. Т. е. в данном случае онтологию есть смысл использовать как дополнительную парадигму.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34942760
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CrazyPotatoВ большинстве случаев: сущность = таблица.
Счет-фактура, физ. лицо, юр.лицо ну и т.д. по списку. В общем случае сущность - иерархия таблиц.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34943549
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621>
Онтология в чистом виде здесь бесполезна. Уже потому, что Вы определяете понятия источников не семантически, а идентифицируете их. Т. е. в данном случае онтологию есть смысл использовать как дополнительную парадигму.

Итосник данных ведь тоже понятие, имеющее атрибуты - сервер, база, таблица (представление) и атрибуты таблицы (поля). Т.е. отношения проекции устанавливаются между понятиями, а не между понятием и источником данных.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34943552
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> отношения проекции устанавливаются между понятиями, а не между понятием и источником данных

Пожалуйста, продемонстрируйте это примером.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34943637
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> отношения проекции устанавливаются между понятиями, а не между понятием и источником данных

Пожалуйста, продемонстрируйте это примером.

Вводим понятие - сервер (с атрибутами - имя сервера, при необходимости свойства ОС, назначение и т.п.) , понятие - база данных с атрибутами название, отношением "размещается на" с понятием сервер. Понятие - источник данных с атрибутами название и свойством - база данных, т.е. отношением "является объектом", а так же множеством свойств - поля. Поле тоже понятие имеет тип, назание (понятное человеку, можно русское и англ. , которое будет принмать значение имени атрибута таблицы, ну и идентификаторы поля в системных таблицах СУБД).

Далее описываем, например, понятие студент (ФИО, паспорт, отношение с образовательной программой и т.п.). Но студент вводится в основном вузе - в базу основного вуза и в филиалах - в базу филиала. При этом студенты филиала должны быть в базе головного вуза, но там не могут редактироваться. Определяем понятие студент головного вуза, как производное от студента. Условие наследования, что некая характеристика образовательной программы с которой студент связан однозанчно идентифицирует основной вуз. Опреедляем понятие студент филиала как производный от понятия студента, но характеристика образовательной программы определяет только программы филиала.
Определяем отношения проекции между понятием студент и источником данных, т.е. определяем какой атрибут понятия студент какому атрибуту экземпляра понятия источник данных соответствует. При этом отношения проекции тоже могут иметь производные - проекция на чтения -запись и на запись. Далее определяем, что между источником соотвествующим головному вузу определены отношения проекции на чтение с понятием студент и отношения на чтение/запись с понятием студент головного вуза. Между понятием студент филиала определены отношения проекции на чтение/запись с источником филиала.
Далее вводим правило : если есть отношения проекции ан чтение запись в производном понятии и отношения проекции на чтение в базовом с арзными источниками данных, то должна быть организована репликация из первого источника во второй.

Как я понимаю, вопрос Ваш касался того, что отношения проекции определяются с произвольным понятием и экземпляром понятия источник данных?
Вы думаете это не вписывается в онтологическую парадигму?
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34944863
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> вопрос Ваш касался того, что отношения проекции определяются с произвольным понятием и
> экземпляром понятия источник данных?

Да. И Ваш пример это иллюстрирует. ;)

> Вы думаете это не вписывается в онтологическую парадигму?

И идентификатор экземпляра сущности - суррогатный. Имя поля, которое Вы назвали понятным человеку, таковым быть вовсе не обязано. Штатных средств преобразования метаданных СУБД в онтомодель - нет.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34945126
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621
Да. И Ваш пример это иллюстрирует. ;)


Согласна.

guest_20040621
> Вы думаете это не вписывается в онтологическую парадигму?

И идентификатор экземпляра сущности - суррогатный. Имя поля, которое Вы назвали понятным человеку, таковым быть вовсе не обязано. Штатных средств преобразования метаданных СУБД в онтомодель - нет.

Тоже согласна. Но кто мешает самим сделать? (только время и деньги). Собственно мы сделали для одной СУБД для некоторого ограниченного подмножества объектов.

Есть два способа хранить экземпляры. Можно преобразовав метаданные СУБД - и потом корректировать в ручном режиме - вводя понятность пользователям - русские слова, прописывая врунчую отношения, которые не построены, потому что они были "логическими", а ен физическими в СУБД.
Есть второй способ - в начале описать на уровне понятным предметникам и это описание транслируется - Не в таблицы - в одной таблице хранится и метаописания и собственно экземпляры (по горизонтали).
Мы пока делаем и так и так (ну если честно, пока нет ни в чем твердной уверенности). При необходимости репликации делаются в обе стороны.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34945192
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Но кто мешает самим сделать?

Как Вы правильно заметили, никто не мешает. Но я бы все-таки использовал онтологию как дополнительную парадигму, а не основную.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34946517
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Но кто мешает самим сделать?

Как Вы правильно заметили, никто не мешает. Но я бы все-таки использовал онтологию как дополнительную парадигму, а не основную.
А какую бы Вы использовали как основную ?
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34946547
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mainframe_старый guest_20040621> Но кто мешает самим сделать?

Как Вы правильно заметили, никто не мешает. Но я бы все-таки использовал онтологию как дополнительную парадигму, а не основную.
А какую бы Вы использовали как основную ?

Я что то не пойму в чем ограничения онтологической модели.
Онтология это конечное множество: O(A,F,L)
A - атрибуты
F-функции отношений
L - сами отношения (связи)

"жонглируя" структурой и свойствами атрибутов, многообразием фукций отношений (их идентификаторами, коих можно ввоодить сколько душа пожелает) и структурой отношений можно строить весьма разнообразные системы.
Онтология - это всего лишь способ описания - декларативый вместо императивного.
Фишка в том что онтология должна "жить" в среде исполнителя (программы) , которая "понимает" инеднификаторы функций отношений, знает свою собсвтенную цель (имеет контекст исполнителя - цель исполнителя) и знает что делать с атрибутами и их связями.
Функциональное программировани, семантическое программирование, системы настроек, системы фильтров на прокси-серверах, правила фильтрации спама, бизнес правила с системах БПМ, свойства (property) в современны языках прогаммирования, SQL языки наконец - все это родственно и суть - замена императивного на декларативное. Но любое декларативное из приведенного списка примеров всегда живет в среде активного исполнителя который ЗНАЕТ что с этим делать.
Приведенный ниже рисунок иллюстрирует взаимоотношение некой системы онтологии и нескольхих исполнителей:
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34946550
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... однако, в таком случае мы долждны делать (программировать) исполнителей, способных понимать исходное онтологическое описание (одно и тоже для все). это не есть хорошо, потому что усложняет жизнь разработчика исполнителя (подразумеватся система расширяемая и состоящая их карпичиков) и после того как будут созаны несколько распространненых исполнителей и они пойдут в ход - этот факт тут же сковывает разработчика исходной онтологии который вынужден сохранять набор её функций и атрибутов таким как это было задано при первоначальной разработки. А иначе, - после расзирения системы первичной (центральной) онтологии уже созданные исполнители перестанут понимать её.
Для решения этой проблемы и пригодился бы семантический перевод (маппирование) центральной онтологии на онтологии максимально своместимые с конекретным исполнителем. Это как главны инженер говорит на стройке с каждым исполнителем на его языке (начиная от прорада и заканчивая работягой - знаете - каждому свое.)
Иллюстрация:
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34946551
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И наконец, классификация...

Я не являюсь специалистом по онтологиям. Поэтому, предлагая следующую классификацию онтологических отношений, предполагаю что:
1) Описываю некое подмножество понятий уже описанных в литературе
2) Говорю о вещах, не имеющих отношение к онтологиям
3) Предлагаю к рассмотрению нечто практически полезное и новое

Итак:
Виды онтологических отношений:
1) Зависимость – элементарное онтологическое отношения двух атрибутов по заданной функции отношения.

2) Трансферт – влияние результатов функций отношения одной онтологической подсистемы на атрибуты (линейное влияние) и на функции (нелинейное влияние) другой онтологической подсистемы.

3) Наследование – заимствование части связей, функций отношений и атрибутов одной онтологической подсистемы от другой

4) Иерархия – выбор результатов отношений внутри одной подсистемы или в различных подсистемах в зависимости от оценки результатов этих отношений по иерархической шкале.

5) Последовательность – упорядочение вычисления онтологий во времени или в зависимости от состояния завершенности вычисления в одной системе или в различных системах.

6) Инкапсуляция – именованное определение границ системы атрибутов и их отношений.

Интересно мнение специалистов и сообщества .
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34946636
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и раздулся топик. Давно я сюда не заглядывал. Ясно одно. В основе качественного создания любой системы, будь то ERP/CRM лежит основательное (детальное) проектирование от и до. т.е. отработка всех деталей ее "жизнедеятельности". хотя часто слышу что мол все уже создано и самописные системы никому не нужны, когда есть 1C, Navision/Axapta и SAP R/3 наконец, все равно из "консервантов" и "пакетов быстрого приготовления" у повара никогда не получится щедевр кулинарного искусства. ручная работа ценилась всегда и везде. может не к месту будет сказано.
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #34946976
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> А какую бы Вы использовали как основную ?

Нет однозначного ответа на этот вопрос. От MOF до "ручного изготовления".
...
Рейтинг: 0 / 0
Качественная разработка приложений
    #35042516
Alexsalog...
Такой инструмент, хотя и ограниченный предлагаемой «моделью моделей» обладал бы уже некой универсальностью и возможностью творить, а не кроить однообразные программки по шаблону.

Техническая реализация
Если кто-то согласен или кто-то понял сказанное….
Какие мысли есть по технической реализации??
...
Такие вещи замечательно реализуются (и реализованы) на динамических языках программирования.
См. `Принцип DRY`, Django как прекрасный пример реализации.
...
Рейтинг: 0 / 0
77 сообщений из 77, показаны все 4 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Качественная разработка приложений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]