Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Разработка информационных систем Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6      [все]
 WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Добрый день всем!
Увлекаюсь генерацией программного кода по концептуальной модели предметной области.
На днях запустил микросервис [url=]http://gendoc.ru/cgi-bin/GenCode.htm[/url].
Не знаю, куда дальше двигаться.
Буду всем признателен за любые предложения, замечания комментарии, идеи.
24 окт 16, 13:30    [19815510]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
rbc5
Member

Откуда:
Сообщений: 48
Дмитрий Concept,
идея любопытная, но мне больше нравится подход XAF. Хотя, его лучше сравнивать с "КОНЦЕПТ".
25 окт 16, 11:41    [19819053]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
rbc5, спасибо за подсказку про XAF!
Смотрю, изучаю..
25 окт 16, 19:41    [19821443]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
scaffolding
Guest
Дмитрий Concept,

а впрочем, ничего нового)))
11 ноя 16, 11:40    [19882207]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Любой код это зло. А генератор кода - это генератор зла))
12 ноя 16, 16:12    [19886095]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Спасибо за ответы!

А эти ваши системы смогут сгенерить код по формулировкам вида, например:

Требуется учет расходов.
Справочник статей расходов.
Таблица с полями: дата, статья расходов, сумма, валюта, кто потратил и примечание.
Отчет по расходам в разрезе дат, статей расходов и кто потратил.

Мое приложение сможет.
14 ноя 16, 22:31    [19893413]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
rbc5, scaffolding,
спасибо, посмотрел, интересно, буду учитывать эти идеи и подходы к реализации в своих разработках.

На странице [url=]http://gendoc.ru/cgi-bin/GenCode.htm[/url] в разделе Ссылки буду размещать интересные ссылки по теме.
28 ноя 16, 17:31    [19943879]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
В WEB сервис генерации исходных кодов добавил генерацию по шаблонам: ASP, Java-таблица и различных вариантов комментариев.

Ссылка на сервис: [url=]http://gendoc.ru/cgi-bin/GenCode.htm[/url]

Интересно узнать мнение участников форума.
28 ноя 16, 17:36    [19943907]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 878
Дмитрий Concept
Спасибо за ответы!

А эти ваши системы смогут сгенерить код по формулировкам вида, например:

Требуется учет расходов.
Справочник статей расходов.
Таблица с полями: дата, статья расходов, сумма, валюта, кто потратил и примечание.
Отчет по расходам в разрезе дат, статей расходов и кто потратил.

Мое приложение сможет.


Можно посмотреть результат генерации по таким формулировкам:
Требуется учет пациентов.
Отчет по выявленным заболеваниям.
Форма 30.

?
28 ноя 16, 17:39    [19943923]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Alexander A. Sak,

В своем сообщении от 14 ноября я указал направление движения данной разработки.
На данный момент, реализации еще нет, появится месяца через три.
На данном этапе в приоритете - формирование онтологии (описание сущностей, их атрибутов и отношений между ними) и доработка шаблонов для генерации программного кода.

Как планируется обрабатывать постановку вида:

Alexander A. Sak
Требуется учет пациентов.
Отчет по выявленным заболеваниям


1) Анализ предложений на ограниченном естественном языке (ЕЯ) позволяет выделить из текста сущности ПАЦИЕНТ и ЗАБОЛЕВАНИЕ.
На сайте GENDOC.RU есть информация о имеющихся наработках по обработке ЕЯ (морфология, синтаксис, извлечение понятий)

2) В онтологии эти понятия должны быть предопределены с типовыми (наиболее распространенными атрибутами) и отношением многие ко многим. По сути UML диаграмма классов или ER диаграмма. Можно OWL.

3) Результаты отображения исходной постановки п.1 (ограниченный ЕЯ) в модель п.2 (фрагмент онтологии) достаточно информации для запуска шаблонов генерации исходного программного кода для целевой системы.
Можно будет просматривать, фильтровать, редактировать списки пациентов и заболеваний.

Здесь не вижу проблем.

А вот с фразой обстоят дела иначе:

Alexander A. Sak
Форма 30.


Ясно, что без формального описания данной сущности, ничего автоматически сгенерировано быть не может.
Даже опытному программисту, не встречавшемуся ранее с такой формой 30, перед началом работы ее нужно будет добыть и хорошенько изучить.

Коллеги, правда, у меня много недостатков.
НО Я НЕ СУМАСШЕДШИЙ!!!
28 ноя 16, 18:50    [19944245]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
fsharp_fsharp
Member [заблокирован]

Откуда:
Сообщений: 2041
ваше направление тупиковое. бросьте и не страдайте фигней.
29 ноя 16, 15:42    [19947736]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
fsharp_fsharp
Member [заблокирован]

Откуда:
Сообщений: 2041
в лучшем случае получится аналог 1С (но ничего подобного конечно не получится)
29 ноя 16, 15:43    [19947742]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
fsharp_fsharp
в лучшем случае получится аналог 1С (но ничего подобного конечно не получится)

Интересно, а причем тут 1С?
29 ноя 16, 15:53    [19947792]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
fsharp_fsharp
Member [заблокирован]

Откуда:
Сообщений: 2041
dma_caviar
fsharp_fsharp
в лучшем случае получится аналог 1С (но ничего подобного конечно не получится)

Интересно, а причем тут 1С?


это то, во что через 100...000 итераций может превратиться "WEB сервис генерации программного кода". ну, хотя к тому моменту уже может уже ИИ будет программы писать
29 ноя 16, 15:58    [19947821]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
fsharp_fsharp,

А что, 1С умеет делать анализ на естественном языке?
29 ноя 16, 16:05    [19947873]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
fsharp_fsharp
Member [заблокирован]

Откуда:
Сообщений: 2041
dma_caviar
fsharp_fsharp,

А что, 1С умеет делать анализ на естественном языке?


нет. но пока ни одна система это не умеет. даже сам человек
29 ноя 16, 16:08    [19947910]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
fsharp_fsharp
dma_caviar
fsharp_fsharp,

А что, 1С умеет делать анализ на естественном языке?


нет. но пока ни одна система это не умеет. даже сам человек

Так а 1С то тут причем?))
29 ноя 16, 16:14    [19947955]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
fsharp_fsharp
Member [заблокирован]

Откуда:
Сообщений: 2041
dma_caviar
fsharp_fsharp
пропущено...


нет. но пока ни одна система это не умеет. даже сам человек

Так а 1С то тут причем?))


этот ПП (и аналоги) наиболее близки к "...генерацией программного кода по концептуальной модели предметной области"
29 ноя 16, 16:16    [19947965]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
fsharp_fsharp
Member [заблокирован]

Откуда:
Сообщений: 2041
Дмитрий Concept
Alexander A. Sak,

В своем сообщении от 14 ноября я указал направление движения данной разработки.
На данный момент, реализации еще нет, появится месяца через три.
На данном этапе в приоритете - формирование онтологии (описание сущностей, их атрибутов и отношений между ними) и доработка шаблонов для генерации программного кода.

Как планируется обрабатывать постановку вида:

Alexander A. Sak
Требуется учет пациентов.
Отчет по выявленным заболеваниям


1) Анализ предложений на ограниченном естественном языке (ЕЯ) позволяет выделить из текста сущности ПАЦИЕНТ и ЗАБОЛЕВАНИЕ.
На сайте GENDOC.RU есть информация о имеющихся наработках по обработке ЕЯ (морфология, синтаксис, извлечение понятий)

2) В онтологии эти понятия должны быть предопределены с типовыми (наиболее распространенными атрибутами) и отношением многие ко многим. По сути UML диаграмма классов или ER диаграмма. Можно OWL.

3) Результаты отображения исходной постановки п.1 (ограниченный ЕЯ) в модель п.2 (фрагмент онтологии) достаточно информации для запуска шаблонов генерации исходного программного кода для целевой системы.
Можно будет просматривать, фильтровать, редактировать списки пациентов и заболеваний.

Здесь не вижу проблем.

А вот с фразой обстоят дела иначе:

Alexander A. Sak
Форма 30.


Ясно, что без формального описания данной сущности, ничего автоматически сгенерировано быть не может.
Даже опытному программисту, не встречавшемуся ранее с такой формой 30, перед началом работы ее нужно будет добыть и хорошенько изучить.

Коллеги, правда, у меня много недостатков.
НО Я НЕ СУМАСШЕДШИЙ!!!


вы либо школьник, либо троль
29 ноя 16, 16:23    [19948024]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
fsharp_fsharp,
какой реакции на свои комментарии Вы от меня ждете?

Вы не верите в возможность реализации данной идеи.
И ничего конструктивного по теме мне не подскажете.
У нас с Вами разные дороги.

А проект я буду продолжать.
29 ноя 16, 18:38    [19948692]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
Дмитрий Concept,

Продолжать то надо, хотя бы для самообразования.
А так, ты дойдешь до глаголов (остальное все относительно просто), а они требуют очень точных действий надо остальными (это программные методы) товарищами.
Вот типа сентенция - Создать форму 30.
Формы ты найдешь, и даже конкретно 30ую.
Но "Создать" это великий гемор.
Нужны контексты для "Создать":
1. проектировать
...в БД
... ЮМЛ
...
2. нарисовать на бумаге карандашом
... на доске мелом
... на экране смартфона
...

Этих гребаных контекстов неисчислимое количество и они, падлы, меняются во времени и в пространстве, в зависимости от интерпретирущего козла (машина, человек!!!!(ужасное слово) и т.д.
Самое главное - вычислить контекст. Дальше сама пойдет.
29 ноя 16, 19:17    [19948809]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
Интересная идея ...
Какие планы путей развития?
29 ноя 16, 19:41    [19948879]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
fsharp_fsharp
Member [заблокирован]

Откуда:
Сообщений: 2041
Владимир2012
Интересная идея ...
Какие планы путей развития?

ИИ
29 ноя 16, 20:42    [19949000]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Владимир2012
Member [заблокирован]

Откуда:
Сообщений: 1460
Дмитрий Concept
На днях запустил микросервис [url=]http://gendoc.ru/cgi-bin/GenCode.htm[/url].
Не знаю, куда дальше двигаться.
Буду всем признателен за любые предложения, замечания комментарии, идеи.
Предоставить визуальную среду создания КОНЦЕПТА.
Ведь об направление работ вы уже сказали http://www.sql.ru/forum/1238177/koncept-budushhee-za-konceptualnym-i-estestvenno-yazykovym-programmirovaniem
Жаль что ваша разработка не open source.
29 ноя 16, 21:15    [19949071]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Добрый день всем!

Прошло почти 3 месяца, как я взял паузу на осмысление того, что и зачем делаю.
Спасибо всем, кто дал мне полезные ссылки и комментарии на этом форуме.

Сразу сообщу, что проект развивается и актуальная версия WEB сервиса
доступна в разделе "Генерация программного кода" на сайте [url=]www.gendoc.ru[/url]

Генерация программного кода позволяет:
1) Сократить рутину в программировании, чтобы освободившееся время программисты могли использовать
для творчества, экспериментов, обучения новым технологиям и решения более интеллектуальных и нестандартных задач.
2) Ускорить, упростить и исключить ошибки и опечатки при составлении типового программного кода.
3) Упорядочить и стандартизовать исходный код программ, разрабатываемых коллективом программистов.
4) Быстро создавать прототипы приложений даже для тех систем и платформ, с которыми у разработчика раннее не было опрыта работы.
5) Упростить и ускорить процесс перевода программ с одного языка программирования на другой.
6) Более глубоко вовлечь аналитиков в процесс создания программ,
сократить коммуникационный разрыв между аналитиками и программистами.
7) Упростить обучение новым языкам программирования и технологиям,
путем сравнения сгенерированного кода на знакомом и незнакомом для пользователя зыках программирования
(аналог сравнения параллельных текстов при изучении иностранных языков).
8) Автоматизировать процесс разработки сопроводительной документации для программного орбеспечения.

Конечно, текущая версия WEB сервиса генерации программного кода на данный момент не позволяет
в полном объеме решать указанные выше задачи, но многое уже сделано.

Ниже приведены принципы, в соответствии с которыми будет осуществляться дальнейшее развитие сервиса:
1) Постепенное наращивание сложности (функциональности) шаблонов генерации от простых к сложным.
2) Максимальный охват шаблонами популярных и хорошо зарекомендовавших себя языков программирования,
программных систем и технологий.
3)"Осторожное" использование в шаблонах и результах генерации фреймворков и библиотек третьих (по отношению к базовой технологии) лиц.
4) Автоматическая генерация не только программ, но и документации к ней
(справочники (хэлпы) для разработчиков и пользователей,
описание API, шаблоны пользовательских инструкций и т.д.)
5) Простота использования WEB сервиса.

Также остается неизменным принцип:
отсутствие каких-либо ограничений на использование сгенерированного WEB сервисом программного кода.

Буду признателен за любые идеи и комментарии.

С уважением к форумчанам.
19 фев 17, 10:49    [20225702]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Версия 0.41 от 28.02.2017
1.Добавлен шаблон для генерации WEB приложения на PHP+MySQL для работы с таблицами.
2.Добавлен шаблон для генерации SQL-команд в синтаксисе SQLite и MySQL.
3.Добавлена возможность генерации в формат JSON.
28 фев 17, 16:22    [20251476]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
Дмитрий Concept,

цит. статью к Jeomant-у по ссылке на сайте:

статья
Таким образом, первый шаг работы по созданию чего-то нового в любой системе — воспроизведения базового шаблона той или иной конструкции, которая заложена в её фундамент. Например, если вы в рамках выбранного фреймворка, например Laravel на PHP, строите свой сайт, вы по-любому будуте создавать контроллеры, модели, миграции, сиды и так далее.


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

.................
в коллекцию - тоже универсальные конструкторы человек пытался сотворить
jfeldman.narod.ru - Яков Фельдман, книжечка его лежала у меня все, пока не выкинул
http://www.ozon.ru/context/detail/id/137220121/
28 фев 17, 17:00    [20251636]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Vladimir Baskakov,
спасибо!

В части развития направления генерации кода на PHP я подумывал о Yii 2.
Какого Вы мнения об этом фреймворке?
28 фев 17, 19:05    [20252069]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

Вы бы наоборот сделали. Что-то типа API, чтоб энти самые фреймворки сами могли настроить себе такую кодогенерацию, которой уже бы пользовались конечные юзеры.
28 фев 17, 19:17    [20252098]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
dma_caviar
Дмитрий Concept,

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

Иначе вы пол жизни будете пилить такие шаблоны под всё широко распространенное.
28 фев 17, 19:18    [20252101]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
Дмитрий Concept
Vladimir Baskakov,
спасибо!

В части развития направления генерации кода на PHP я подумывал о Yii 2.
Какого Вы мнения об этом фреймворке?


Никакого - я не пэхапист )))
28 фев 17, 21:06    [20252350]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar,
у Вас хорошая платформа.
Всегда мечтал нечто подобное сделать, но не сложилось.

Вы правы, гоняться за технологиями - неблагодарное занятие.
Особенной за фреймворками и библиотеками - на них еще быстрее мода проходит.

Именно по этотой причине хочется хоть в некоторой части обрести независимость
(или возможность перехода) не только от ОС, но и от языка/среды программирования.

Моя работа не носит коммерческий результат.
Мне интересно найти общее в подходах и технологиях пограммирования.
Этакое метапрограммирование.

Пример:
20 лет назад было 3 SQL-лидера: Sybase (потом MS SQL), Oracle, Informix.
И общее мнение было, что так и останется.
Сегодня, следуя моде, мне пришлось в WEB сервисе генерации
реализовать синтаксис SQL запросов для MySQL, PostgreSQL, SQLite.
Все, в общем, одинаково.
Но у каждого из них свои особенности в синтаксисе, иначе работать не будет или будет работать криво.
А ведь есть стандарты SQL92 и SQL2000.
Кто мог предположить такое развитие событий 20 лет назад?

А C-подобный синтакцис у C++, Java, JavaScript, того же PHP.
20 лет назад любой, кто хотел разработать свой язык программирования, был чудаком
и "изобретателем велосипеда". А сколько с тех пор появилось новых языков?

Еще можно спорить, что лучше: XML (для серьезных) или JSON (попса).

ИТОГ, к которому я пришел.
Очень хочется вынести "за скобку" программирования:
1.Особенности синтаксиса по-сути одинаковых языков программирования, библиотек и ИТ-технологий.
2.Общую модель (онтологию) данных. Чтобы в каждом проекте, например, не нужно было изобретать
таличку физических лиц (будь то клиент, работник или пациент) с одними и теми же полями.

Понимаю, что это не монетизируется, но это мой путь.
Буду продолжать идти, пока есть интерес и силы :)
28 фев 17, 22:12    [20252496]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 2127
Дмитрий Concept,

сегодня только наткнулся
ИИ научили писать код
28 фев 17, 22:54    [20252563]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

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

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

Т.е. ядро ваше, а реализация провайдеров через api.
Причем я бы сфокусировался сначала например на sql языках. Потому как у ЯП и у реляционных языков ведь совмем разные принципы. В одном базовом провайдере не учесть и то и другое.
28 фев 17, 23:07    [20252591]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
dma_caviar
.... Чтобы те кому нужно, смогли за вас ....


Так в том и проблема, сделать что-то что хоть кому-то нужно. Это раз. Два - уже из коробки оно должно кодогенерить хотя бы под одну платформу. Три - разработка адаптеров и их использование на платформе Х должно быть проще, чем разработка того-же продукта на платформе Х с нуля, включая будущие расходы на развитие и поддержку.

4 - на примере ближаеших аналогов (рельс например) рассмотреть, как по мере развития продукта росла сложность того, что должно было упрощать жизнь.
1 мар 17, 09:59    [20253237]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Vladimir Baskakov
Два - уже из коробки оно должно кодогенерить хотя бы под одну платформу.

Ну это само собой. И к тому же примеры должны быть, чтобы было по аналогии с чем делать.
1 мар 17, 10:14    [20253278]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
alex55555
Member

Откуда:
Сообщений: 289
Дмитрий Concept
Очень хочется вынести "за скобку" программирования:
1.Особенности синтаксиса по-сути одинаковых языков программирования, библиотек и ИТ-технологий.
2.Общую модель (онтологию) данных. Чтобы в каждом проекте, например, не нужно было изобретать
таличку физических лиц (будь то клиент, работник или пациент) с одними и теми же полями.

А что мешает? Строим единую расширяемую модель и дорисовываем к ней "особенности синтаксиса языков" и "клиентов, работников и пациентов".
Дмитрий Concept
Понимаю, что это не монетизируется, но это мой путь.

Не смешно. Не монетезируется, это когда с открытым кодом (да и то не всегда). А так вы всегда оставляете себе ядро, а наружу только сервисы торчат (потенциально платные). Ну и идейки у народа за одно собираете, мол не для бабла, а чисто для души - помогите кто чем может, расскажите как вы там всё делаете (забесплатно, ведь для души!).

Хотя бывают и исключения.

Но конечный итог один - ещё лет 15 и будет вам ИИ, поувольняют не только кассиров да бухгалтеров, но и кодеров. Хотя опять же - ну какой дурак так далеко смотрит? Нам бы ипотеку выплатить, да унитаз подороже приобрести.
1 мар 17, 13:33    [20253974]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
kealon(Ruslan)
Дмитрий Concept,

сегодня только наткнулся
ИИ научили писать код


IDE станет еще более интеллектуальным, что ли? набираешь - ну давай бухучет, - и оно так пошуршав программу рождает?
1 мар 17, 14:24    [20254215]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
kealon(Ruslan)
Дмитрий Concept,

сегодня только наткнулся
ИИ научили писать код


Спасибо за ссылку, но смущает (привожу цитату из заметки) "В данный момент он может работать примерно с ПЯТЬЮ строками кодами. "

Вообще я не сторонник алгоритмов генерации произвольных программ.
Чтобы программа была полезна - ИИ нужно задать некий механизм целеполагания и критерии оценки полученного результата.
Обычно это можно сделать используя механизм спецификаций: т.е. не того как нужно программе работать, а что она должна делать или какой результат должен быть получен.
Это более реалистичный подход и он известен как генерация программ по входным спецификациям.
Я для того, чтобы не было комбинаторного взрыва - ограничивают такие генераторы программ предметной областью или классом решаемых задач.

Этот подход мне кажется более реалистичным, иначе такой ИИ (как в приведенной заметке) так и будет формировать абстрактные синтаксически правильные программы из 5-10 строк с неясной семантикой (для кого и чего такие программы будут нужны).
1 мар 17, 14:30    [20254245]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Vladimir Baskakov
kealon(Ruslan)
Дмитрий Concept,

сегодня только наткнулся
ИИ научили писать код


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

Почему нет?) Сейчас же это так и делается, людьми.
1 мар 17, 14:41    [20254287]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
Дмитрий Concept,

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

Т.е. ядро ваше, а реализация провайдеров через api.
Причем я бы сфокусировался сначала например на sql языках. Потому как у ЯП и у реляционных языков ведь совмем разные принципы. В одном базовом провайдере не учесть и то и другое.


Реально спасибо Вам за подсказанную идею. Не сразу, но Ваши слова до меня дошли.

По-сути внутри у меня именно такая архитектура (провайдер+api+классы генерации конструкций для различных ЯП) и используется.
Только нет четкого разделения на указанные компоненты. Т.е. где-то есть, а где-то еще все перемешано (каша).
У меня сейчас выделено три мета шаблона приложений:
1.Простая последовательность команд, включая циклические обработки (например цикл по полям сущности)
2.Приложение в архитектуре "десктоп" (основанное на создании и манипулировании классами компилируемых форм)
3.Приложение с архитектурой тонкого веб-клиента

В рамках одного мета шаблона настройка на конкретный ЯП вполне может быть вынесена в классы занимает около 10-20% от общего
объема команд шаблона.

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

Еще раз спасибо за идею и конструктив!
1 мар 17, 14:47    [20254323]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Vladimir Baskakov
dma_caviar
.... Чтобы те кому нужно, смогли за вас ....


Так в том и проблема, сделать что-то что хоть кому-то нужно. Это раз. Два - уже из коробки оно должно кодогенерить хотя бы под одну платформу. Три - разработка адаптеров и их использование на платформе Х должно быть проще, чем разработка того-же продукта на платформе Х с нуля, включая будущие расходы на развитие и поддержку.

4 - на примере ближаеших аналогов (рельс например) рассмотреть, как по мере развития продукта росла сложность того, что должно было упрощать жизнь.


Владимир, я с Вам согласен.
Но Вы обрисовали конечный продукт.
Я еще в начале пути к нему, думаю, где-то 20% только прошел.
И не могу гарантировать, что смогу дойти до конца (промышленной реализации).
Да и нужно ли?

Одно из применений сервиса - обучение ЯП. Особенно 2-му, 3-му и т.д. Например, я знал ASP. Сгенерировав параллельный код на PHP и сравнив его с аналогичным на ASP, не залезая в документацию, я сразу вижу принципиальные отличия.
<?php вместо <%
$sql = 'create ' . $id вместо sql='create '+id
echo '<tr>' вместо Response.Write('<tr>')

И т.д. Время существенно экономится. Обучение, так сказать, на примерах "параллельных текстов".
1 мар 17, 15:05    [20254425]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
alex55555
Дмитрий Concept
Очень хочется вынести "за скобку" программирования:
1.Особенности синтаксиса по-сути одинаковых языков программирования, библиотек и ИТ-технологий.
2.Общую модель (онтологию) данных. Чтобы в каждом проекте, например, не нужно было изобретать
таличку физических лиц (будь то клиент, работник или пациент) с одними и теми же полями.

А что мешает? Строим единую расширяемую модель и дорисовываем к ней "особенности синтаксиса языков" и "клиентов, работников и пациентов"..


Размерность задачи. ЯП много и предметных областей тоже. Онтология большая.

alex55555
Дмитрий Concept
Понимаю, что это не монетизируется, но это мой путь.

Не смешно. Не монетезируется, это когда с открытым кодом (да и то не всегда). А так вы всегда оставляете себе ядро, а наружу только сервисы торчат (потенциально платные). Ну и идейки у народа за одно собираете, мол не для бабла, а чисто для души - помогите кто чем может, расскажите как вы там всё делаете (забесплатно, ведь для души!).

Хотя бывают и исключения.

Но конечный итог один - ещё лет 15 и будет вам ИИ, поувольняют не только кассиров да бухгалтеров, но и кодеров. Хотя опять же - ну какой дурак так далеко смотрит? Нам бы ипотеку выплатить, да унитаз подороже приобрести.


"Ну и идейки у народа за одно собираете, мол не для бабла, а чисто для души'.
Да и не скрываю, за идеи буду признателен. К тому же, это в обе стороны.
Кто-то посмотрит на WEB сервис генерации кода, подумает "а вон значит как можно" и сделает лучше, учтя мои ошибки.
Ну и хорошо.
1 мар 17, 15:14    [20254458]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
alex55555
Member

Откуда:
Сообщений: 289
Дмитрий Concept
alex55555
пропущено...

А что мешает? Строим единую расширяемую модель и дорисовываем к ней "особенности синтаксиса языков" и "клиентов, работников и пациентов"..


Размерность задачи. ЯП много и предметных областей тоже. Онтология большая.


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

Но тем не менее - вот так ещё лет 15 народ пострадает, идейками пообменивается, и будет вам ИИ, так что можно не напрягаться, само скоро будет.
1 мар 17, 15:41    [20254590]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
kolobok0
Member

Откуда:
Сообщений: 1763
Дмитрий Concept
...
...чисто для души'....


если это цель, то....

1) можно искать подобных людей обладающих кучей бабла и тонной времени. Можно собственно не само действие (искать), а предложить некие правила объединяющих различные модули по генерации в единую платформу. Ну и богачи желающие подтянуться.

2) (немного дёгтя наверное) с точки зрения рынка - это не удачный вектор. более удачный рядом - в пол шажке от Вас. На рынке требуются (как тут уже прозвучало) продукты для конечного потребителя. Ваш же подход - без раскрутки имени = имхо тупиковая ветка.

3) выше Вы писали, что столкнулись с заточкой под те или иные БД. Это действительно так. Универсальность либо фичи. как более гибкий подход - создать адаптирующий слой под тот или иной движок. не все фичи вынуть сможете, но думаю для большинства задач подойдёт. Тут правда для адаптирующего слоя требуется опыт общения с различными БД и практическое применение наработок при той или иной модели классов обслуживающих БД.

4) ваш сервис предлагает некий интерфейс общение с человеком в рамках ваших знаний и понимания, далее идёт готовое решение в рамках ваших знаний и понимания. Системе как воздух требуется гибкость. И в плане интерфейса и в плане генерации. Может имеет смысл рассмотреть промежуточный слой строения классов?

как то так...пока :)
(круглый)
ЗЫ
Но всё же = вектор не тот. Вашу бы энергию да в мирных целях!!!
8 мар 17, 15:22    [20274617]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
kolobok0, спасибо!

kolobok0
1) можно искать подобных людей обладающих кучей бабла и тонной времени.

В это я не верю. У кого есть куча денег в такие проекты не вкладываются,
т.к. им нужна гарантия прибыли и желательно без рисков и за короткий срок.

kolobok0
предложить некие правила объединяющих различные модули по генерации в единую платформу.

ЭТА ИДЕЯ НУ ОЧЕНЬ НРАВИТСЯ. Готов присоединиться к такому обсуждению, если кто-нибудь возьмет модерацию темы на себя.

kolobok0
2) (немного дёгтя наверное) с точки зрения рынка - это не удачный вектор. более удачный рядом - в пол шажке от Вас. На рынке требуются (как тут уже прозвучало) продукты для конечного потребителя. Ваш же подход - без раскрутки имени = имхо тупиковая ветка.

Понимаю. Но я стараюсь реально смотреть на вещи. Себя я давно знаю. Я технарь и вырос из системного программирования.
Маркетинг, продвижение, сегмент B2C - не умею я. Пробовал, но не умею.
Вот фреймворки, библиотеки, шаблоны - это мое. Но это сегмент B2B. А в нем в каждой софтверной компании свои программисты-технологи, технологии, внутренние стандарты и т.д.

kolobok0
3) выше Вы писали, что столкнулись с заточкой под те или иные БД. Это действительно так. Универсальность либо фичи. как более гибкий подход - создать адаптирующий слой под тот или иной движок. не все фичи вынуть сможете, но думаю для большинства задач подойдёт. Тут правда для адаптирующего слоя требуется опыт общения с различными БД и практическое применение наработок при той или иной модели классов обслуживающих БД.

С этим согласен. Общение с различными БД и практическое применение наработок необходимо.
Иначе не получить объективную оценку и обратную связь.

kolobok0
4) ваш сервис предлагает некий интерфейс общение с человеком в рамках ваших знаний и понимания, далее идёт готовое решение в рамках ваших знаний и понимания. Системе как воздух требуется гибкость. И в плане интерфейса и в плане генерации. Может имеет смысл рассмотреть промежуточный слой строения классов?

Здесь Вы абсолютно правы. Гибкость в плане интерфейса и в плане генерации необходимо.
Над этим работаю.
Не люблю загадывать и давать обещания, но, надеюсь, к концу марта продвинуть сервис в этом направлении.
Наработки есть, но они существуют для десктопной версии.
Сейчас переношу в WEB. Но процесс идет не быстро, т.к. я не являюсь глубоким специалистом в WEB технологиях и
приходится многому дообучаться в процессе.
9 мар 17, 09:25    [20276357]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept
Маркетинг, продвижение, сегмент B2C - не умею я. Пробовал, но не умею.

А зря что не умеете. Сейчас это самое главное. Вон хотя бы глянуть на битрикс или лучше даже не amocrm. Г полнейшее. Но собирают по 15 тыс чел на свои конференции. 1С их уже купила. И все только за счет маркетинга.
Дмитрий Concept
Вот фреймворки, библиотеки, шаблоны - это мое. Но это сегмент B2B. А в нем в каждой софтверной компании свои программисты-технологи, технологии, внутренние стандарты и т.д.

Буквально в соседней ветке пример. Там товарищ рассказывал как они по 12 тыс $ в год платили за один из фреймворков. И все бы хорошо, но просто решили другой такой же найти. Свои программисты-технологи сейчас уже никому не нужны. Дороговасто выходит. Нужны профильные программисты. Или точнее ИТ специалисты с большим прикладным опытом в конкретной отрасли. Как 1Сники например.
9 мар 17, 09:50    [20276432]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
s_ustinov
Member

Откуда: Lugano, CH
Сообщений: 1750
dma_caviar
Свои программисты-технологи сейчас уже никому не нужны. Дороговасто выходит. Нужны профильные программисты. Или точнее ИТ специалисты с большим прикладным опытом в конкретной отрасли. Как 1Сники например.

Ну я бы так не обобщал, что никому не нужны.
Но если говорить о фирмах (не ИТ) до 200-300 человек, то именно так и есть. Нужны админы + специалисты по обслуживанию систем (ERP, CRM, документооборот...). И большинство этих специалистов разработкой как таковой занимается только часть времени.
9 мар 17, 14:21    [20277579]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
s_ustinov
dma_caviar
Свои программисты-технологи сейчас уже никому не нужны. Дороговасто выходит. Нужны профильные программисты. Или точнее ИТ специалисты с большим прикладным опытом в конкретной отрасли. Как 1Сники например.

Ну я бы так не обобщал, что никому не нужны.
Но если говорить о фирмах (не ИТ) до 200-300 человек, то именно так и есть. Нужны админы + специалисты по обслуживанию систем (ERP, CRM, документооборот...). И большинство этих специалистов разработкой как таковой занимается только часть времени.

Не, ну понятно что много где они таки нужны))
Но тенденция к тому идет. И не только 200-300 человек. Но и по 10 тыс. Платить полнофункциональному разрабу не хотят.
9 мар 17, 14:45    [20277736]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
На мой взгляд, сейчас ускорились (или просто четче стали проявляться) две тенденции:
1.Сроки и бюджеты на разработку программ сокращаются. Как следствие, уход заказчиков от постоянных затрат и длительных проектов в пользу привлечения подрядчиков под конкретные проекты с фиксированными сроками и бюджетами.
2.Бум Open Source технологий, которые снижают универсальность и мобильность команд разработки ПО. Вложившись своими наработками в один стек разработки ПО не факт, что эта мода долго продлиться или найдешь заказчиков, которые лояльны к этому стеку разработки ПО.

Интуиция мне подсказывает (могу ошибаться, конечно), что именно в плоскости автоматизации программирования и документирования (CASE-технологии) находится решение.
Сейчас современные CASE средства дороги, тяжеловесны, сложны в применении и ориентированы на специализированные (ограниченный набор) языки моделирования, программирования, технологии и стандарты.

Вот если сделать CASE технологию, которая бы была:
1.Простой в изучении и использовании.
2.Дешевой.
3.Гибкой (настраивалась на выходные языки программирования и среды, Фреймворки, интерфейсы и т.д.)
4.Использовала на входе описание модели информационной системы/ПО в популярных нотациях (UML, ER, XML)
5.Поддерживала автоматическое документирование для всех этапов жизненного цикла ПО.

Собственно, это и есть цели разработки WEB сервиса генерации ПО.
Если удастся 50-70% программного кода на НАЧАЛЬНОМ ЭТАПЕ РАЗОРАБОТКИ ПО (или на этапе миграции на другую платформу/стек разработки ПО) сгенерировать автоматически, заложив прочный скелет приложения - это будет хороший результат,
который позволит вписаться в тенденции (указаны в начале данного сообщения) и позволит командам разработчиков
обеспечить необходимую мобильность, снизить зависимость от платформы, вписываться в сжатые сроки разработки и бюджеты.

Остальные 30%-50% программного кода - удел высокопрофессиональных разработчиков, допиливающих приложение под специфику задачи. От этого никогда и никуда не деться. Да и не нужно - это нормально.
9 мар 17, 15:41    [20278076]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
s_ustinov
Member

Откуда: Lugano, CH
Сообщений: 1750
Дмитрий Concept,
совсем недавно на хабре читал статью на эту тему https://habrahabr.ru/post/320652/
В комментариях много спорили

Дмитрий Concept
Интуиция мне подсказывает (могу ошибаться, конечно), что именно в плоскости автоматизации программирования и документирования (CASE-технологии) находится решение.

Если говорить конкретно о ИС предприятий, то с моей точки зрения самый перспективный вариант - BPM системы. Они УЖЕ работают. И ближе всего подошли к тому, что людям надо. Хотя именно автоматизации программирования там и нет :)

Если абстрагироваться от деталей, что надо пользователям (заказчикам)?
Объяснил компьютеру, что надо сделать - он сделал.
А будет при этом генерироваться код, или компьютер воспримет описание задачи как руководство к действию без дополнительных генераций кода (как делают BPM системы) - пользователю не важно.
Но есть отличие между CASE и BPM системами. Простую прикладную задачу (не "привет, мир!") в BPM уже сейчас можно запустить на исполнение вообще без привлечения программиста. А с CASE системами так не получается.
9 мар 17, 17:08    [20278632]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

Не то чтобы они сокращались, конечно. Где-то они может даже и увеличились. Но теперь кроме того чтобы остатки сходились, хотят получить больше гибкости, больше красивости, в общем, больше качества. К тому же, вырос технический долг проектов, который давит на грудь.

Я помню как лет 10 назад особо продвинутые владельцы, уже тогда крупных компаний, стали обзаводиться своими собственными ИТ отделами. Так как это дешевле и быстрее чем постоянно пинать аутсорс. Особенно если бизнес-процесс сложный. Хочешь что-то быстро оптимизировать или прогнуться под изменившиеся реалии, например выдавать кредиты без лишнего этапа - даешь команду ИТ отделу, и через относительно короткий срок получаешь результат и соответственно конкурентное преимущество. В случае аутсорса же, нужно встать в очередь, родить ТЗ, пройти согласования, поставить подпись под ТЗ, потом опомниться что нужно не один этап убирать, а два, переписывать ТЗ, заплатить за это. Потом понять что все не так и далее с этим жить)).

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

Поэтому всеобщая платформизация неибзежна))
Тут суть очень проста - чтобы создать нечто очень качественное, нужно чтобы это была не наколенная разработка, а полноценный продукт. А чтобы создать продукт, нужно чтобы в его основе уже был продукт (платформа). Чтобы выпустить новое качественное авто, нужно взять уже существующий продукт, например хороший движок. Иначе ничего не получится.
9 мар 17, 17:08    [20278636]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
s_ustinov
Дмитрий Concept,
совсем недавно на хабре читал статью на эту тему https://habrahabr.ru/post/320652/
В комментариях много спорили

Дмитрий Concept
Интуиция мне подсказывает (могу ошибаться, конечно), что именно в плоскости автоматизации программирования и документирования (CASE-технологии) находится решение.

Если говорить конкретно о ИС предприятий, то с моей точки зрения самый перспективный вариант - BPM системы. Они УЖЕ работают. И ближе всего подошли к тому, что людям надо. Хотя именно автоматизации программирования там и нет :)

Если абстрагироваться от деталей, что надо пользователям (заказчикам)?
Объяснил компьютеру, что надо сделать - он сделал.
А будет при этом генерироваться код, или компьютер воспримет описание задачи как руководство к действию без дополнительных генераций кода (как делают BPM системы) - пользователю не важно.
Но есть отличие между CASE и BPM системами. Простую прикладную задачу (не "привет, мир!") в BPM уже сейчас можно запустить на исполнение вообще без привлечения программиста. А с CASE системами так не получается.

Нельзя не согласиться. Это как самолеты и птицы, про которых рассказывал Сербант (маркетолог яндекса). Сначала пытались изучать как у птиц устроены перья, так нифига с этим и не раобравшись, сделали самолет по другому приницпу. Тоже самое с мозгами и машинным обучением. И тоже самое к кодом и логикой. Я всегда говорил - код это зло, а кодогенерация это генерация зла)). Если код порождает проблемы, то кодогенерация плодит эти проблемы на автомате.
9 мар 17, 17:14    [20278663]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
s_ustinov
Member

Откуда: Lugano, CH
Сообщений: 1750
dma_caviar,
Это точно. Проходит буквально 2-3 года - и огрехи первоначальной архитектуры начинают существенно раздражать. Как маленький камешек в кроссовке - ходить вроде можно, но аккуратно (не побегаешь) и РАЗДРАЖАЕТ. А лет через 10 - БОЛЬ. И рефакторингом уже не отделаешься... Вернее рефакторинг будет заключаться в написании системы с нуля.
9 мар 17, 17:16    [20278680]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
Сначала пытались изучать как у птиц устроены перья, так нифига с этим и не раобравшись, сделали самолет по другому приницпу. Тоже самое с мозгами и машинным обучением. И тоже самое к кодом и логикой. Я всегда говорил - код это зло, а кодогенерация это генерация зла)). Если код порождает проблемы, то кодогенерация плодит эти проблемы на автомате.


Не могу согласиться с Вами. То, что Вы имеете возможность писать в этом форуме, следствие отработки написанной кем-то CMS и отработки кода. :) Даже редактор текстов это чей-то код. Какое уж тут зло? Просто двойстенность явления. Все одновременно хорошо и плохо. С чъей точки зрения и в какой момент времени посмотреть? Да ну ее - эту философию!

Все-равно, по факту, в современном мире деньги определяют все.
И если не участвуешь в этой финансовой системе кровообращения, то будешь на задворках.

И 1C Битрикс и Амо СРМ - рулез!!! Алилуя!!! Что будет через 5 лет, кого этот интересует?

Я это проходил. Многие говорили, что победит Виндовз. Я сделал на них ставку. Я проиграл.
Что дальше? Слушать новых Оракулов?
9 мар 17, 21:09    [20279446]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept
dma_caviar
Сначала пытались изучать как у птиц устроены перья, так нифига с этим и не раобравшись, сделали самолет по другому приницпу. Тоже самое с мозгами и машинным обучением. И тоже самое к кодом и логикой. Я всегда говорил - код это зло, а кодогенерация это генерация зла)). Если код порождает проблемы, то кодогенерация плодит эти проблемы на автомате.


Не могу согласиться с Вами. То, что Вы имеете возможность писать в этом форуме, следствие отработки написанной кем-то CMS и отработки кода. :) Даже редактор текстов это чей-то код. Какое уж тут зло? Просто двойстенность явления. Все одновременно хорошо и плохо. С чъей точки зрения и в какой момент времени посмотреть? Да ну ее - эту философию!

Все-равно, по факту, в современном мире деньги определяют все.
И если не участвуешь в этой финансовой системе кровообращения, то будешь на задворках.

И 1C Битрикс и Амо СРМ - рулез!!! Алилуя!!! Что будет через 5 лет, кого этот интересует?

Я это проходил. Многие говорили, что победит Виндовз. Я сделал на них ставку. Я проиграл.
Что дальше? Слушать новых Оракулов?

Ну я думаю мы поняли о каком коде идет речь). Форум тут ни при чем.
По поводу Виндовс - хз. Мы тоже сделали на них ставку, вроде выиграли вместе с ними))
9 мар 17, 22:03    [20279582]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
Дмитрий Concept
Все-равно, по факту, в современном мире деньги определяют все.

Правильно. Поэтому бизнесу нужны решения, адекватные по соотношению цена-качество.
Цена - это в том числе и расходы владения, а качество - расшипяемость, изменяемость, масштабируемость, юзабилити на разных уровнях. Решение с нулевой ценой ПОКУПКИ необязательно будет выгоднее решения с ценой, отличной от нуля. Т.к. учесть придется сумму затрат на приобретение и доработку под себя - взять бесплатно, потратить время на доработку а потом в случае сбоя вообще не знать что делать - это не особо привлекательно.
Многие говорили, что победит Виндовз. Я сделал на них ставку. Я проиграл.

Я люблю играть в го, правда делаю это совсем плохо. Игра учит, что невозможно контролировать ВСЕ ПОЛЕ. Но можно - хорошие куски этого поля, по размеру. Или важные. Или перспективные. Винда держит определенные сегменты, немелкие отнюдь, но не все поле целиком..... бизнес - не шахматы где поставил мат и все. И неажно, сколько ресурсов потратил... (часто не шахматы) часто это го. ищется тесудзи - лучший ход в области, ход решающий конкретную задачу, или адзи - ход создающий перспективы....
10 мар 17, 09:46    [20280257]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Vladimir Baskakov
Дмитрий Concept
Все-равно, по факту, в современном мире деньги определяют все.

Правильно. Поэтому бизнесу нужны решения, адекватные по соотношению цена-качество.
Цена - это в том числе и расходы владения, а качество - расшипяемость, изменяемость, масштабируемость, юзабилити на разных уровнях. Решение с нулевой ценой ПОКУПКИ необязательно будет выгоднее решения с ценой, отличной от нуля. Т.к. учесть придется сумму затрат на приобретение и доработку под себя - взять бесплатно, потратить время на доработку а потом в случае сбоя вообще не знать что делать - это не особо привлекательно.
Многие говорили, что победит Виндовз. Я сделал на них ставку. Я проиграл.

Я люблю играть в го, правда делаю это совсем плохо. Игра учит, что невозможно контролировать ВСЕ ПОЛЕ. Но можно - хорошие куски этого поля, по размеру. Или важные. Или перспективные. Винда держит определенные сегменты, немелкие отнюдь, но не все поле целиком..... бизнес - не шахматы где поставил мат и все. И неажно, сколько ресурсов потратил... (часто не шахматы) часто это го. ищется тесудзи - лучший ход в области, ход решающий конкретную задачу, или адзи - ход создающий перспективы....


Интересные мысли.
Не могу не согласиться.
10 мар 17, 12:15    [20281077]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
s_ustinov
Member

Откуда: Lugano, CH
Сообщений: 1750
Дмитрий Concept
Все-равно, по факту, в современном мире деньги определяют все.
И если не участвуешь в этой финансовой системе кровообращения, то будешь на задворках.

И 1C Битрикс и Амо СРМ - рулез!!! Алилуя!!! Что будет через 5 лет, кого этот интересует?

Я это проходил. Многие говорили, что победит Виндовз. Я сделал на них ставку. Я проиграл.
Что дальше? Слушать новых Оракулов?

Вообще то умные люди говорили "Microsoft must die!"
И они таки не ошиблись
В этом легко убедиться, посмотрев статистику популярности браузеров и прочитав фразу в стиле "To install the mssql-server Package on Ubuntu, follow these steps" по адресу docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-ubuntu

Вообще, желательно слушать не Оракулов, а аргументы. И тогда риск ошибиться можно снизить, хотя и не до нуля.
Ранее вы привели очень хороший список:
Дмитрий Concept
Вот если сделать CASE технологию, которая бы была:
1.Простой в изучении и использовании.
2.Дешевой.
3.Гибкой (настраивалась на выходные языки программирования и среды, Фреймворки, интерфейсы и т.д.)
4.Использовала на входе описание модели информационной системы/ПО в популярных нотациях (UML, ER, XML)
5.Поддерживала автоматическое документирование для всех этапов жизненного цикла ПО.

Но если его проанализировать, получается, что в нем есть внутренние противоречия.

Например "Поддерживала автоматическое документирование для всех этапов жизненного цикла ПО."
Это требование действительно очень важное. Любой, кто хоть раз разбирал код, написанный более нескольких месяцев назад (даже если это твой собственный код), с этим согласится.
Причем об этом говорят уже очень долго.
Какие есть работающие решения этой задачи? Я знаю только одно - сам код писать в соответствии с некими стандартами (комментарии, имена функций, оформление и т.д.), чтобы он и был документацией. Никаких других работающих вариантов не придумали. Но если мы будем вручную править текст программы, то зачем нам документировать все на уровне нотаций? И как добиться того, чтобы документация на уровне UML совпадала с тем, что в реальности делает программа?

А теперь убираем из списка пункт "3.Гибкой (настраивалась на выходные языки программирования и среды, Фреймворки, интерфейсы и т.д.)"
И сравниваем с BPM системами. Совпадение очень близкое:
Относительно простые в освоении.
Не очень дорогие (Bonita - open source)
На входе используют описание на популярном языке (BPMN)
Автоматически всё документируют (BPMN с комментариями - это и есть неплохая документация)

Разумеется, всё совсем не идеально, но - достаточно хорошо.

А теперь подумаем - а зачем нам нужен этот очень сложный элемент?
Я говорю о преобразовании
"описание модели информационной системы/ПО в популярных нотациях (UML, ER, XML)" --> "текст программы на ЯП высокого уровня".
Вот какую он несет пользу?
Для обучения - да, иногда полезен. Но в практической работе?

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

Я это к чему. Сама по себе постановка задачи "на вход загрузить описание алгоритма в популярной нотации" --> "на выходе получить код на ЯП" крайне спорна.

Вот пример относительно простого запроса из процедуры, которую сейчас дописываю:
INSERT INTO [Analysis].[Grouped CoGS Value Entry]
           ([Company ID]
           ,[Item Ledger Entry No_]
           ,[Positive]
           ,[Document Type]
           ,[Document No_]
           ,[Document Line No_]
           ,[ILE Quantity]
           ,[Invoiced Quantity]
           ,[From Value Entry No]
           ,[To Value Entry No]
           ,[To Check (Minimum)]
           ,[Equal (To Process)]
           ,[Cost Amt_(Non-Inv_) Expense])

SELECT
 ve.[Company ID]
,ve.[Item Ledger Entry No_]
,ile.Positive
,ve.[Document Type]
,ve.[Document No_]
,ve.[Document Line No_]
,ile.Quantity as [ILE Quantity]
,invoiced_q_line.[Invoiced Quantity]
,coalesce(ve_prev.[Entry No_],0) as [From Value Entry No]
,ve.[Entry No_] as [To Value Entry No]
,0 as [To Check (Minimum)]
,0 as [Equal (To Process)]
,ve.[Cost Amt_(Non-Inv_) Expense]

FROM           [Analysis].[Track Calculate - VE] as ve

	inner join [Analysis].[Track Calculate - ILE] as ile
		 on ile.[Company ID] = ve.[Company ID]
		and ile.[Entry No_] = ve.[Item Ledger Entry No_]

	inner join [Analysis].[Track Calculate - VE] as invoiced_q_line
		 on invoiced_q_line.[Company ID] = ve.[Company ID]
		and invoiced_q_line.[Item Ledger Entry No_] = ve.[Item Ledger Entry No_]
		and invoiced_q_line.[Document Type] = ve.[Document Type]
		and invoiced_q_line.[Document No_] = ve.[Document No_]
		and invoiced_q_line.[Document Line No_] = ve.[Document Line No_]
		and invoiced_q_line.[Invoiced Quantity] <> 0

	OUTER APPLY
	(select top 1
		ve_prev.[Entry No_]
	from [Analysis].[Track Calculate - VE] as ve_prev
	  where ve.[Company ID] = ve_prev.[Company ID]
		and ve.[Item Ledger Entry No_] = ve_prev.[Item Ledger Entry No_]
		and ve.[Document Type] = ve_prev.[Document Type]
		and ve.[Document No_] = ve_prev.[Document No_]
		and ve.[Document Line No_] = ve_prev.[Document Line No_]
		and ve.[Entry No_] > ve_prev.[Entry No_]
		and ve_prev.[Item Ledger Entry Type] = 1
		and ve_prev.[Cost Amt_(Non-Inv_) Expense] <> 0
	  order by ve_prev.[Entry No_] desc
	) as ve_prev

	where ve.[Item Ledger Entry Type] = 1
      and ve.[Cost Amt_(Non-Inv_) Expense] <> 0

	  and NOT EXISTS
		  (Select * from [Analysis].[Operation Entry (Table)] as exist_op
				where ve.[Company ID] = exist_op.[Item Ledger Company ID]
				  and ve.[Item Ledger Entry No_] = exist_op.[Item Ledger Entry No]
				  and ve.[Entry No_] = exist_op.[Value Entry No]
				  and exist_op.[Initial Value Entry No] <> exist_op.[Value Entry No])
;

Попробуйте его описать в популярной нотации
Засеките время, подумайте, - какие нужны знания для создания такого описания? Будет ли описание в популярной нотации понятнее, чем сам текст запроса на SQL?
И подумайте - кто будет (сможет) на практике пользоваться этим функционалом? И будет ли это легче и быстрее (дешевле), чем писать сразу на SQL?
Например, это могло бы быть дешевле, если использовать специалистов с более низкой квалификацией. Но поможет ли использование графической нотации (интерфейса) написать такой запрос пользователю, который не может его написать на SQL?
10 мар 17, 17:26    [20283091]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
s_ustinov, искреннее спасибо.

Прочитал Ваш пост спустя несколько часов после публикации.
Не смог сразу ответить. Переваривал. Вы несколько тем интересных затронули.
Если честно, то на все ответить до сих пор откровенно даже для себя не могу.

Но.

1.Ваш SQL-запрос - красавец. Но я никогда и не говорил о том, что кодогоенерация заменит программирование. Наоборот, она освободит программистов от рутины, и позволит ТОЛЬКО и писать такие красивые запросы. Я претендую на CRUD, но с учетом зоопарка и моды на технологии, надеюсь найти нишу.

2.Указанная Вами связь с BPM/BPMN весьма уместна, буду думать и работать над этим. Считаю это правильным направлением.

3.Вы меня сподвигли на решительные действия (отдельное спасибо). Подробности в следущем посте.
14 мар 17, 21:50    [20295348]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Всем! Всем! Всем!

Если Вы читаете это сообщение, скорее всего, Вы понимаете толк в программировании.
И сможете отделить зерна от плевел.

Чтобы продемонстрировать полезность автоматической генерации исходных кодов программ,
я готов абсолютно бесплатно для Вас по Вашему запросу реализовать шаблоны генерации программ в соответствии с Вашими идеями или стандартами.

Должен сообщить, планирую, что с апреля можно будет задавать определение сущности в произвольном виде, а не в рамках предопределенных полей.

Напишите мне о Ваших идеях (лучше пошлите пример кода) и я в течение 3-7 дней разработаю отдельный шаблон, учитывающий Вашу специфику.

Чтобы у Вас не было ощущения в "шапкозакидательстве" сообщу, что в настоящий момент разрабатываю шабон для AngularJS-NodeJS-SequelizeJS-PostgreSQL.

Жду Ваших идей и предложений.
14 мар 17, 22:14    [20295425]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

А скрипты только на создание структуры (я пока про БД) или на модификацию тоже?
И что должно быть на входе? Произвольное описание в формате внешней системы (xml\json)?
Если так, то чур я первый)
15 мар 17, 00:21    [20295771]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
Дмитрий Concept,

А скрипты только на создание структуры (я пока про БД) или на модификацию тоже?
И что должно быть на входе? Произвольное описание в формате внешней системы (xml\json)?
Если так, то чур я первый)


На модификацию тоже.

Высылайте мне на почту (есть в профиле) или публикуйте прямо здесь описание Ваших
сущностей в удобном для себя виде в формате JSON.
15 мар 17, 14:59    [20298232]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept
dma_caviar
Дмитрий Concept,

А скрипты только на создание структуры (я пока про БД) или на модификацию тоже?
И что должно быть на входе? Произвольное описание в формате внешней системы (xml\json)?
Если так, то чур я первый)


На модификацию тоже.

Высылайте мне на почту (есть в профиле) или публикуйте прямо здесь описание Ваших
сущностей в удобном для себя виде в формате JSON.

Например
{
	"TableName": "AM_Accounts",
	"EntityName": "Account",
	"Columns": [
			{
				"Name": "uid",
				"CanBeNull": "false"
			},
			{
				"Name": "Number",
				"CanBeNull": "false"
			},
			{
				"Name": "Name",
				"Descr": "Наименование",
				"CanBeNull": "false",
				"Length": "200",
			},
			{
				"Name": "BankAccountNumber",
				"Descr": "р/с",
				"Length": "20"
			},
			{
				"Name": "BankBIC",
				"Descr": "БИК",
				"Length": "20"
			},
			{
				"Name": "CurrencyID",
				"Descr": "Валюта",
				"CanBeNull": "false",
				"Relation": {
					"Entity": {
						"ID": "024503d1-9164-4ee6-8cb7-7526f77e5a5a"
					},
					"Column": "uid",
					"ParentEntityName": "Currency"
				}
			},
			{
				"Name": "IsOutBalance",
				"Descr": "Внешний",
				"CanBeNull": "false",
				"DefaultValue": {
					"Value": "false"
				}
			},
			{
				"Name": "Deleted",
				"Descr": "Удалено",
				"CanBeNull": "false",
				"DefaultValue": {
					"Value": "false"
				}
			},
			{
				"Name": "FullName",
				"CanBeNull": "false",
				"IsGenerateInScripts": "false",
				"Length": "251"
			},
			{
				"Name": "CategoryID",
				"Relation": {
					"Entity": {
						"ID": "fbe17da2-6000-4a99-ad77-7349e19a38ef"
					},
					"Column": "uid",
					"ParentEntityName": "Category"
				}
			},
			{
				"Name": "ContractorID",
				"Descr": "Контрагент",
				"Relation": {
					"Entity": {
						"ID": "ad82d012-85d2-4948-b8fe-e26fc0f8486b"
					},
					"Column": "uid",
					"ParentEntityName": "Contractor"
				}
			}
		]
}
15 мар 17, 15:55    [20298622]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
dma_caviar,

MSSQL
15 мар 17, 16:11    [20298708]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar,

Хорошо, подходит.
Только, можно еще типы данных добавить?
15 мар 17, 17:16    [20298975]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,
А ну да, есть там такое, я "подчистил" зачем-то.
MetadataKeyColumn - guid
MetadataStringColumn - nvarchar
MetadataNameColumn - nvarchar
MetadataForeignKeyColumn - guid, внешний ключ, индекс, связь с другой таблицей
MetadataBooleanColumn - bit

{
	"M": {
		"TableName": "AM_Accounts",
		"EntityName": "Account",
		"Columns": {
			"MetadataBaseColumn": [
				{
					"Name": "uid",
					"CanBeNull": "false",
					"_xsi:type": "MetadataKeyColumn"
				},
				{
					"Name": "Number",
					"CanBeNull": "false",
					"_xsi:type": "MetadataStringColumn"
				},
				{
					"Name": "Name",
					"Descr": "Наименование",
					"CanBeNull": "false",
					"Length": "200",
					"_xsi:type": "MetadataNameColumn"
				},
				{
					"Name": "BankAccountNumber",
					"Descr": "р/с",
					"Length": "20",
					"_xsi:type": "MetadataStringColumn"
				},
				{
					"Name": "BankBIC",
					"Descr": "БИК",
					"Length": "20",
					"_xsi:type": "MetadataStringColumn"
				},
				{
					"Name": "CurrencyID",
					"Descr": "Валюта",
					"CanBeNull": "false",
					"Relation": {
						"Entity": {
							"ID": "024503d1-9164-4ee6-8cb7-7526f77e5a5a"
						},
						"Column": "uid",
						"ParentEntityName": "Currency"
					},
					"_xsi:type": "MetadataForeignKeyColumn"
				},
				{
					"Name": "IsOutBalance",
					"Descr": "Внешний",
					"CanBeNull": "false",
					"DefaultValue": {
						"Value": "false"
					},
					"_xsi:type": "MetadataBooleanColumn"
				},
				{
					"Name": "Deleted",
					"Descr": "Удалено",
					"CanBeNull": "false",
					"DefaultValue": {
						"Value": "false"
					},
					"_xsi:type": "MetadataBooleanColumn"
				},
				{
					"Name": "FullName",
					"CanBeNull": "false",
					"IsGenerateInScripts": "false",
					"Length": "251",
					"_xsi:type": "MetadataStringColumn"
				},
				{
					"Name": "CategoryID",
					"Relation": {
						"Entity": {
							"ID": "fbe17da2-6000-4a99-ad77-7349e19a38ef"
						},
						"Column": "uid",
						"ParentEntityName": "Category"
					},
					"_xsi:type": "MetadataForeignKeyColumn"
				},
				{
					"Name": "ContractorID",
					"Descr": "Контрагент",
					"Relation": {
						"Entity": {
							"ID": "ad82d012-85d2-4948-b8fe-e26fc0f8486b"
						},
						"Column": "uid",
						"ParentEntityName": "Contractor"
					},
					"_xsi:type": "MetadataForeignKeyColumn"
				}
			]
		},
		"Designer": {
			"ID": "FE3DA424-1139-418A-B184-5951D0A19FAA"
		},
		"Permissions": {
			"Permission": {
				"ID": "c3038795-84f9-47fd-8851-5b543a79be72",
				"Name": "Admin",
				"Descr": "Привилегия администратора"
			}
		},
		"_xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
		"_xmlns:xsd": "http://www.w3.org/2001/XMLSchema"
	}
}
15 мар 17, 18:04    [20299151]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar,

Ok. В начале следующей недели напишу и покажу, что получилось.
15 мар 17, 18:19    [20299199]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
s_ustinov
Member

Откуда: Lugano, CH
Сообщений: 1750
Дмитрий Concept
Чтобы продемонстрировать полезность автоматической генерации исходных кодов программ,
я готов абсолютно бесплатно для Вас по Вашему запросу реализовать шаблоны генерации программ в соответствии с Вашими идеями или стандартами.

Должен сообщить, планирую, что с апреля можно будет задавать определение сущности в произвольном виде, а не в рамках предопределенных полей.

Напишите мне о Ваших идеях (лучше пошлите пример кода) и я в течение 3-7 дней разработаю отдельный шаблон, учитывающий Вашу специфику.

Чтобы у Вас не было ощущения в "шапкозакидательстве" сообщу, что в настоящий момент разрабатываю шабон для AngularJS-NodeJS-SequelizeJS-PostgreSQL.

Я несколько дней думал, что может быть мне полезно...
И ничего не придумал

Я занимаюсь очень "прикладными" вещами. Есть ERP система (сейчас NAV, но работал и с другими), для которой пишу отчеты и / или куски функционала. Причем написание кода не основная моя задача - я в основном консультант, а не разработчик. :) И основная моя ценность в том, что я знаю, как это должно работать (могу придумать алгоритм, решающий определенную бизнес-задачу, и написать ТЗ), а не в том, что умею реализовать алгоритм на конкретном ЯП.

Насколько я понимаю, примерно такие специалисты и являются вашей целевой аудиторией. Но у меня нет задач, которые можно решать с помощью этого инструмента. Для создания табличек в базе - копипаст + редактирование прекрасно решают мои задачи (для каждой задачи требуется создавать в основном не больше десятка табличек).
Написание SQL кода - мне НАМНОГО проще сразу писать на SQL, чем пытаться описать это в какой-то нотации и потом всё равно править сиквел.
Написание кода на специфическом языке системы (C/AL (язык навижина), язык 1С, ABAP) - создавать генерацию такого кода не в платформе просто глупо, так как ЯП не универсальный. Да даже для универсального ЯП (compiere/adempiere/idempiere использует java) - как именно подобный сервис сможет сгенерировать код, если мне надо, например, НЕМНОГО доработать алгоритм расчета себестоимости основных средств?

А вот BPMN в данном случае может пригодиться. Можно рассматривать куски функционала системы (фин учет, расчет себестоимости, учет товародвижений и т.п.) как "микросервисы", которые будет "дергать" BPM система через те же веб-сервисы (почти во всех системах сейчас есть возможность интеграции с другими системами через веб сервисы). То есть BPM будет находиться на уровень выше "модулей" - мы повышаем уровень абстракции, и во многих случаях это будет полезно и, главное, будет работать.
18 мар 17, 13:23    [20308642]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar, приветствую!

Я написал адаптер для загрузки описания сущности (таблицы) из Вашего формата JSON во внутренний формат WEB сервиса.
Соответственно, для него доступны все имеющиеся шаблоны генерации, в т.ч. SQL.
Посмотреть можно по ссылке: http://gendoc.ru/cgi-bin/gcadapter.htm

Теперь нужно уточнить у Вас, что нужно получить на выходе.
Можно поправить имеющийся шаблон для SQL, можно генерить хранимые процедуры MS SQL.
Хорошо, если Вы напишете, на каком языке программирования должно быть написано приложение-клиент и как оно должно осуществлять передачу (подстановку) параметров в команды SQL.

К сообщению приложен файл. Размер - 46Kb
20 мар 17, 09:50    [20312489]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
s_ustinov, добрый день!

Все верно, так и есть.
Вам не нужно морочиться с генерацией кода, если Вы:
1) Опытный профессионал, имеющий свою устойчивую нишу.
2) Работаете в рамках сложившейся и замкнутой технологии (особенно характерна для ERP).
3) Работаете на проекте с большой/длительной историей.

Потребность в генерации (в том числе - ПЕРЕгенерации, ДОгенерации) эффективна, если возникает потребность:
1) Для новых разработок.
2) Перехода на новые платформы/языки программирования/фреймворки/библиотеки.
3) Переноса (выноса из существующей системы) части функционала в другую (заново разрабатываемую) систему.
4) Разработки внешних интеграционных интерфейсов.

Ваша идея соединения технологии BPM с результатами кодогенерации - мне нравиться.
Таким образом, можно было бы обеспечить стандартизацию вызовов сервисов/методов в определенном BPM движке.
20 мар 17, 13:10    [20313624]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

Не, нужно только create table и alter table.
Правда alter пока не понятно как делать. Надо наверное тогда два json-а передавать до изменений и после. Чтобы сгенерился скрипт alter.
Еще не нужно sys_id, uid - это uniqueidentifier и нету NULL, NOT NULL.
И еще API, через который можно дергать сервис))
20 мар 17, 13:20    [20313680]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
dma_caviar,

Ну и еще возможность править шаблоны через личный кабинет. Не будут же ваши потребители постоянно вас дергать.
20 мар 17, 13:22    [20313692]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
1) Для новых разработок.- сомнительная выгода - структуры данных рождаются синхронно и взаимозависимо с алгоритмами, при уточнении требований - чистый ==водопад== - когда сначала появилась вся до последней запятой постановка, и потом по ней ничего не меняя пишут код - редкость.

2) Перехода на новые платформы/языки программирования/фреймворки/библиотеки.
тут данные уже обычно описаны, в слое метаданных базы, и надо их правильно прочитать

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

4) Разработки внешних интеграционных интерфейсов.
Вот всякий ETL - это да, но тут хорошо бы как раз получать метаописание с живых данных - а так, руками нагенерять иксэмэльное или json - описание чтобы по нему система сгенерировала таблички - не очень интересно.

Не хватает какой-то изюмины, ради которой можно плюнуть на остальные шероховатости.... вот в руби-на-рельсах, на момент когда они родились, изюмина была. этот робот сделает за меня простую работу, с которой я и сам неплохо справляюсь, оставляя разгребать самостоятельно завалы и нестыковки - такое впечатление. Именно концептуальной дорожной карты - это что и для чего.
21 мар 17, 09:43    [20316265]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
alex55555
Member

Откуда:
Сообщений: 289
Vladimir Baskakov
Не хватает какой-то изюмины

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

Дмитрий Концепт

Вам специально повторю - забейте на генераторы и займитесь ИИ. Вот начали что-то там про естественные тексты - туда и копайте, раз интересно. И все авторы подобного вашему кода в конце концов именно в ИИ упираются, точнее в неумение его реализовать. Но процесс идёт, умение тренируется и лет через 10-20-30 кто-то обязательно сумеет. Ну и тогда всех нас выставят на продажу в игру "Сафари" в качестве, естественно, мишени. Хотя у всех Дмиртиев Концептов на этом пути есть альтернатива - подумайте о будущем и возможно вашему стремлению к идеалу не понравится всё то безобразие, которое вы увидите в своих мыслях. И тогда ковыряйте своё творение с простым прицелом - что бы избежать "Сафари". Хотя бы так, гении вы этакие, по дороге к аду идущие.
22 мар 17, 13:52    [20321151]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
не обязательно - в R-o-R ИИ не было, а юзабилити было.
22 мар 17, 14:19    [20321308]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
alex55555
Member

Откуда:
Сообщений: 289
Vladimir Baskakov
не обязательно - в R-o-R ИИ не было, а юзабилити было.

В вашей любимой стрелялке тоже есть какое-то юзабилити. Если вам достаточно такой изюминки, то у вас не должно возникать вопросов к Дмитрию, ибо для кого-то такого рода изюминку в его продукте есть.
22 мар 17, 20:15    [20322777]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
Ээ в ruby on rails можно стрелять? И стрелять тоже? Не, изюм по тем временам когда оно появилось - был. и есть. Вопросов у меня особо нет, потому что к моим задачам продукт не особо пригоден. А кому пригодится, то и хорошо.
23 мар 17, 06:48    [20323722]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
Дмитрий Concept,

Не, нужно только create table и alter table.
Правда alter пока не понятно как делать. Надо наверное тогда два json-а передавать до изменений и после. Чтобы сгенерился скрипт alter.
Еще не нужно sys_id, uid - это uniqueidentifier и нету NULL, NOT NULL.
И еще API, через который можно дергать сервис))


Вот, что получилось c uid и NULL, NOT NULL.
API можно сделать, когда базовые шаблоны будут отлажены - через 2-3 месяца по моим оценкам.
Про alter table - думаю, как лучше реализовать.

/* Программа: MyProg */
/* Язык: sql */
/* Дата создания: 23.03.2017 */
/* Сгенерировано по шаблонам КОНЦЕПТ, www.gendoc.ru */

/* Создание таблицы */
create table AM_Accounts (
  uid uniqueidentifier DEFAULT NEWID()
  ,Number varchar(50) NOT NULL
  ,Name varchar(200) NOT NULL
  ,BankAccountNumber varchar(20) NULL
  ,BankBIC varchar(20) NULL
  ,CurrencyID int NOT NULL
  ,IsOutBalance int NOT NULL
  ,Deleted int NOT NULL
  ,FullName varchar(251) NOT NULL
  ,CategoryID int NULL
  ,ContractorID int NULL
  ,CONSTRAINT PK_uid PRIMARY KEY (uid)
)
23 мар 17, 18:17    [20327089]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

>> ,CONSTRAINT PK_uid PRIMARY KEY (uid)

Только желательно имя ключа генерить в виде PK_ИмяТаблицы
И индексы на CurrencyID, CategoryID и ContractorID так как это внешние ключи.

Но это уже детали)
23 мар 17, 18:21    [20327102]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
dma_caviar
Дмитрий Concept,

>> ,CONSTRAINT PK_uid PRIMARY KEY (uid)

Только желательно имя ключа генерить в виде PK_ИмяТаблицы
И индексы на CurrencyID, CategoryID и ContractorID так как это внешние ключи.

Но это уже детали)

А индексы IX_ИмяТаблицы_ИмяСтолбца
23 мар 17, 18:22    [20327104]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Vladimir Baskakov
1) Для новых разработок.- сомнительная выгода - структуры данных рождаются синхронно и взаимозависимо с алгоритмами, при уточнении требований - чистый ==водопад== - когда сначала появилась вся до последней запятой постановка, и потом по ней ничего не меняя пишут код - редкость.

2) Перехода на новые платформы/языки программирования/фреймворки/библиотеки.
тут данные уже обычно описаны, в слое метаданных базы, и надо их правильно прочитать

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

4) Разработки внешних интеграционных интерфейсов.
Вот всякий ETL - это да, но тут хорошо бы как раз получать метаописание с живых данных - а так, руками нагенерять иксэмэльное или json - описание чтобы по нему система сгенерировала таблички - не очень интересно.

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


Что тут скажешь.. Вы опытный и мудрый человек.

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

Ведь каждому, кто программировал, легко заметить, что по-сути одни и те же структуры данных (философски - одно и то же содержание) в разных элементах ИС повторяются/проявляются в различных формах.
Здесь под элементами ИС я имею ввиду: БД, экранные формы, отчетные формы, формы фильтров, интерфейсы и API, описание/документация/хэлпы, разнообразные форматы экспорта/импорта.
Вот бы описав один раз сущность, иметь возможность автоматически трансформировать ее для использования в упомянутых элементах ИС.

А если принять во внимание, что:

ЧИСЛО_ВОЗМОЖНЫХ_ВАРИАНТОВ_РЕАЛИЗАЦИИ_ИС = варианты_СУБД X варианты_клиентских_технологий_и_ЯП X 
варианты_серверных_технологий_и_ЯП X разнообразные_фреймворки X разнообразные_стандарты_и_форматы_данных X
различные_форматы_документации и т.д.


Интересная задача получается, особенно, если учесть, что каждая из категорий постоянно пополняется и мода меняется со временем.
23 мар 17, 18:53    [20327199]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
alex55555
Vladimir Baskakov
Не хватает какой-то изюмины

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

Дмитрий Концепт

Вам специально повторю - забейте на генераторы и займитесь ИИ. Вот начали что-то там про естественные тексты - туда и копайте, раз интересно. И все авторы подобного вашему кода в конце концов именно в ИИ упираются, точнее в неумение его реализовать. Но процесс идёт, умение тренируется и лет через 10-20-30 кто-то обязательно сумеет. Ну и тогда всех нас выставят на продажу в игру "Сафари" в качестве, естественно, мишени. Хотя у всех Дмиртиев Концептов на этом пути есть альтернатива - подумайте о будущем и возможно вашему стремлению к идеалу не понравится всё то безобразие, которое вы увидите в своих мыслях. И тогда ковыряйте своё творение с простым прицелом - что бы избежать "Сафари". Хотя бы так, гении вы этакие, по дороге к аду идущие.


Я не верю в то, что ИИ сможет заменить творческую и интеллектуальную работу.
И не должен.
Думаю, хорошие специалисты-люди всегда будут востребованы.

От задачи генерации программного кода отказаться пока не могу.
Мне хочется разобраться в природе формирования и трансформации информационных объектов.
WEB сервис генерации программного кода,
которым я сейчас занимаюсь, это лишь экспериментальная установка (или полигон) для этой цели.
23 мар 17, 19:12    [20327238]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
dma_caviar
Дмитрий Concept,

>> ,CONSTRAINT PK_uid PRIMARY KEY (uid)

Только желательно имя ключа генерить в виде PK_ИмяТаблицы
И индексы на CurrencyID, CategoryID и ContractorID так как это внешние ключи.

Но это уже детали)

А индексы IX_ИмяТаблицы_ИмяСтолбца


Сделаю.

dma_caviar,
Если не секрет, откуда Вы свое замечательное описание таблицы на JSON выгружаете?
Если секрет - я не обижусь :)
23 мар 17, 19:17    [20327253]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept
dma_caviar
пропущено...

А индексы IX_ИмяТаблицы_ИмяСтолбца


Сделаю.

dma_caviar,
Если не секрет, откуда Вы свое замечательное описание таблицы на JSON выгружаете?
Если секрет - я не обижусь :)

Из своей платформы. Правда там xml, а json я конвертнул в каком-то онлайн конвертере.
Но если с API все сложится, то сделаем взаимодействие и в json формате.
23 мар 17, 19:22    [20327264]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept
Я не верю в то, что ИИ сможет заменить творческую и интеллектуальную работу.

А я верю) Мы же занимаемся творческой и интеллектуальной работой. А чем мы отличаемся от машинного обучения? Механизмами эволюции и генетики. Другой вопрос когда это произойдет. Возможно не скоро. Но как известно прогресс постоянно ускоряется.
23 мар 17, 19:28    [20327278]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Перегонщик перекупки
Member

Откуда:
Сообщений: 2215
что тут курят? что-то тяжелое?
24 мар 17, 08:29    [20328059]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
Дмитрий Concept
От задачи генерации программного кода отказаться пока не могу.
Мне хочется разобраться в природе формирования и трансформации информационных объектов.


Фиг знает, но может нужно что-то типа акцесса, чтобы можно было рисовать модель предметной области из готовых ==кубиков== но с учетом объектно- ориентированности или аспектно- ориентированности (трэйтов) чтобы в сущность можно было инжектировать готовые блочки данных - поведения, и хороший обкатанный набор таких блочков для предметных областей - например бухгалтерии, чтобы готовую систему собирать как в конструкторе ==лего==

- то есть удобная юзабельная среда вокруг допустим идеи онтологий
https://ru.wikipedia.org/wiki/Онтология_(информатика)


А так, муссировались же идеи, UML .... только системки недешевые были Rational Rose например. ну и не только https://habrahabr.ru/post/46648/
....лет 10 назад. Мода возвращается иногда, если к витку возврата подкатить продукт - может взлететь.....

а так, коллега же тут уже писал, допустим
http://www.vipros.ru/index.php?option=com_content&view=article&id=8&Itemid=2 - можно почитать доки, посмотреть как оно бывает....
что тут курят? что-то тяжелое?

ДААААА!
24 мар 17, 10:05    [20328375]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
dma_caviar
Дмитрий Concept,

>> ,CONSTRAINT PK_uid PRIMARY KEY (uid)

Только желательно имя ключа генерить в виде PK_ИмяТаблицы
И индексы на CurrencyID, CategoryID и ContractorID так как это внешние ключи.

Но это уже детали)

А индексы IX_ИмяТаблицы_ИмяСтолбца


Доработал.
http://gendoc.ru/cgi-bin/gcadapter.htm
Шаблон генерации: SQL

/* Программа: MyProg */
/* Язык: sql */
/* Дата создания: 29.03.2017 */
/* Сгенерировано по шаблонам КОНЦЕПТ, www.gendoc.ru */

/* Создание таблицы */
create table AM_Accounts (
  uid uniqueidentifier DEFAULT NEWID()
  ,Number varchar(50) NOT NULL
  ,Name varchar(200) NOT NULL
  ,BankAccountNumber varchar(20) NULL
  ,BankBIC varchar(20) NULL
  ,CurrencyID int NOT NULL
  ,IsOutBalance int NOT NULL
  ,Deleted int NOT NULL
  ,FullName varchar(251) NOT NULL
  ,CategoryID int NULL
  ,ContractorID int NULL
  ,CONSTRAINT PK_AM_Accounts PRIMARY KEY (uid)
)
CREATE INDEX IX_AM_Accounts_CurrencyID ON AM_Accounts (CurrencyID);
CREATE INDEX IX_AM_Accounts_CategoryID ON AM_Accounts (CategoryID);
CREATE INDEX IX_AM_Accounts_ContractorID ON AM_Accounts (ContractorID);
29 мар 17, 11:20    [20345283]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

Только
,CategoryID int NULL
,ContractorID int NULL
тоже Guid-ы.

Ну и конечно, важно иметь возможность генерации скрипта изменений. Например указываем json что было и json что стало. А система генерит скрипт на модификацию.
И API, чтобы это дергать из конфигуратора.

А по поводу сайта. Мне кажется есть смысл чтобы каждый вендор (типа нашей платформы) имел свой раздел, чтобы там только его шаблоны отображались.

Кстати в плане монетизации вполне себе сервис получился бы.
3 апр 17, 13:55    [20360772]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
Дмитрий Concept,

Только
,CategoryID int NULL
,ContractorID int NULL
тоже Guid-ы.

Сделал пока так:
,CategoryID varchar(50) NULL
,ContractorID varchar(50) NULL

Если нужно поправить тип и длину поля - напишите, как именно.

dma_caviar
Ну и конечно, важно иметь возможность генерации скрипта изменений. Например указываем json что было и json что стало. А система генерит скрипт на модификацию.

Ага, понял: "json что было и json что стало", сравниваю их и нахожу новые поля,
затем генерю ALTER TABLE для новых полей.
На следующей неделе сделаю.

dma_caviar
И API, чтобы это дергать из конфигуратора.

Будет API.
Как только закончу отладку основного кода генерации.
Будет отдельный URL, на него можно будет отправить HTTP POST, а в теле запроса описание таблиц "json что было и json что стало", в ответ вернет сгенерированный SQL код.

dma_caviar
А по поводу сайта. Мне кажется есть смысл чтобы каждый вендор (типа нашей платформы) имел свой раздел, чтобы там только его шаблоны отображались.

Хорошая мысль. Но это тема для будущего развития.
Пока в приоритете доработка кода для ввода описаний таблиц (сущностей) в различных форматах и "наращивания мяса" в части генерации исходного программного кода для различных приложений/систем/платформ/языков программирования.

dma_caviar
Кстати в плане монетизации вполне себе сервис получился бы.

Пока не думаю об этом.
7 апр 17, 10:10    [20376245]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept
Сделал пока так:
,CategoryID varchar(50) NULL
,ContractorID varchar(50) NULL

Если нужно поправить тип и длину поля - напишите, как именно.

Просто у нас тип "MetadataForeignKeyColumn" это uniqueidentifier
7 апр 17, 11:25    [20376680]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
Дмитрий Concept
Сделал пока так:
,CategoryID varchar(50) NULL
,ContractorID varchar(50) NULL

Если нужно поправить тип и длину поля - напишите, как именно.

Просто у нас тип "MetadataForeignKeyColumn" это uniqueidentifier


Это я понял.
Но мне что в CREATE TABLE для внешних ключей таблицы, ссылающихся на GUID, писать?
Из документации MS SQL я не понял.
Сомневаюсь, что запись вида:

,CategoryID uniqueidentifier NULL
,ContractorID uniqueidentifier NULL

будет корректна.
7 апр 17, 11:40    [20376785]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept
dma_caviar
пропущено...

Просто у нас тип "MetadataForeignKeyColumn" это uniqueidentifier


Это я понял.
Но мне что в CREATE TABLE для внешних ключей таблицы, ссылающихся на GUID, писать?
Из документации MS SQL я не понял.
Сомневаюсь, что запись вида:

,CategoryID uniqueidentifier NULL
,ContractorID uniqueidentifier NULL

будет корректна.


А почему некорректна?
7 апр 17, 11:51    [20376838]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
Дмитрий Concept
пропущено...


Это я понял.
Но мне что в CREATE TABLE для внешних ключей таблицы, ссылающихся на GUID, писать?
Из документации MS SQL я не понял.
Сомневаюсь, что запись вида:

,CategoryID uniqueidentifier NULL
,ContractorID uniqueidentifier NULL

будет корректна.


А почему некорректна?


Т.е. сделать так?
7 апр 17, 12:46    [20377171]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

Ага. Вроде же все ок.
7 апр 17, 12:51    [20377206]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Сегодня по причине проблем на хостинге
сайт gendoc.ru с 12:00-15:30 (время московское) был недоступен.

Сейчас сервисы генерации исходного программного кода доступны.

Базовая версия генератора:
http://gendoc.ru/cgi-bin/GenCode.htm

Расширенная версия генератора:
http://gendoc.ru/cgi-bin/gcadapter.htm


Также добавлены:
1) описание форматов и примеры исходных данных для генерации;
2) описание реализованных шаблонов генерации и скриншоты с примерами полученных результатов.
7 апр 17, 16:20    [20378418]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Уважаемый автор
Member

Откуда: Питер
Сообщений: 211
Дмитрий Concept,

Добавьте, пожалуйста, генерацию кода на языке SWIFT!
Последняя версия 3.1
Очень жду!

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

вот так вот хочу описать и получить готовый листинг программы на языке Swift, ну крайний случай на Objective-C
8 апр 17, 00:55    [20379887]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Уважаемый автор
Дмитрий Concept,

Добавьте, пожалуйста, генерацию кода на языке SWIFT!
Последняя версия 3.1
Очень жду!

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

вот так вот хочу описать и получить готовый листинг программы на языке Swift, ну крайний случай на Objective-C


К сожалению у меня нет никакого опыта программирования на яблочных технологиях, в частности на Swift и Objective-C.
Хотя, может быть, самое время начать.

Генератор кода, не может создать любую программу за программиста.
Но можно сгенерить вполне себе рабочий прототип (какркас) указанного Вами приложения.
Т.е. регистрацию пользователей, ведение контактов и обмен простыми сообщениями между пользователями.

Вероятно, данные о пользователях и контактах должны храниться в облаке?
Или в базе данных?
Тогда какую базу данных Вы предпочли бы?

Готов разработать шаблон генерации исходного кода программы под Вашу задачу.
8 апр 17, 11:37    [20380203]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
Дмитрий Concept
пропущено...


Это я понял.
Но мне что в CREATE TABLE для внешних ключей таблицы, ссылающихся на GUID, писать?
Из документации MS SQL я не понял.
Сомневаюсь, что запись вида:

,CategoryID uniqueidentifier NULL
,ContractorID uniqueidentifier NULL

будет корректна.


А почему некорректна?


Доделал, еще замечания к полученному коду есть?

/* Создание таблицы */
create table AM_Accounts (
  uid uniqueidentifier DEFAULT NEWID()
  ,Number varchar(50) NOT NULL
  ,Name varchar(200) NOT NULL
  ,BankAccountNumber varchar(20) NULL
  ,BankBIC varchar(20) NULL
  ,CurrencyID uniqueidentifier NOT NULL
  ,IsOutBalance int NOT NULL
  ,Deleted int NOT NULL
  ,FullName varchar(251) NOT NULL
  ,CategoryID uniqueidentifier NULL
  ,ContractorID uniqueidentifier NULL
  ,CONSTRAINT PK_AM_Accounts PRIMARY KEY (uid)
)
CREATE INDEX IX_AM_Accounts_CurrencyID ON AM_Accounts (CurrencyID);
CREATE INDEX IX_AM_Accounts_CategoryID ON AM_Accounts (CategoryID);
CREATE INDEX IX_AM_Accounts_ContractorID ON AM_Accounts (ContractorID);
10 апр 17, 10:33    [20383941]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
Дмитрий Concept,

Разве что DEFAULT NEWID() убрать. Это в принципе без надобности + наименование у него будет не очень красивое.
10 апр 17, 11:08    [20384134]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Для расширенной версии генератора кода
реализован"базовый" формат описания сущности.

Описание:
В первой строке задается сначала заголовок, затем через пробел(ы) идентификатор сущности.
Заголовок является необязательным, но если присутствует, то должен быть заключен в одинарные кавычки.
Далее следуют строки описания полей сущности в формате:
Заголовок Идентификатор_поля Тип_данных Длина_поля
Заголовок,Тип_данных, Длина_поля - являются необязательными.
Если заголовок задан, то он должен быть заключен в одинарные кавычки.
Примеры типов полей: строка, стр, string, str, varchar, целое, int, integer, boolean, numeric, float, double и т.п.
Длина поля задается целым числом.

Пример 1 (полная запись):
'Задачи' task 
'Раздел' fGroup1 строка 50 
'Наименование' fName строка 100 
'Срок' fDateFinish дата 10 
'Приоритет' fPriority целое 15 
'Статус задачи' fStatus строка 20 
'Описание' fDescr строка 255 
'Дата создания' fDateCreate дата 10 


Пример 2 (сокращенная запись):
MyTask 
MyGroup str 
'Наименование' Name str 100 
DateFinish date 10 
Priority int 
Status str 20 
'Описание' fDescr str 255 
'Создана' fDateCreate date 10
10 апр 17, 13:36    [20384825]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
а что сейчас изобретается?

То есть чем запись лучше Create Table task -- Задачи
( fGroup1 varchar2(50) , -- Раздел
...
)

как будут описаны связи - много к одному, один ко многим? необходимость каскадных действий для связей?
11 апр 17, 10:01    [20387792]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Vladimir Baskakov
а что сейчас изобретается?

То есть чем запись лучше Create Table task -- Задачи
( fGroup1 varchar2(50) , -- Раздел
...
)


Да ничем не лучше.
Просто одна из многих форм представления описания модели данных.
Может кому-то будет удобна.

На данный момент этот формат ("базовый") решает конкретную задачу связки базовой и расширенной версий генератора кода.
Порядок действия следующий:
1.Заходим на страницу базового генератора кода.
2.Выбираем поля для сущности (таблицы).
3.Если что-то не нравиться или чего-то не хватает (нужно изменить имя поля/заголовок/размер или добавить поля, которых нет в списке), то можно сделать следующее.
4.После выбора полей установить шаблон "базовый" и выполнить генерацию.
5.Затем полученный результат скопировать в буфер обмена.
6.Перейти в расширенную версию генератора кода.
7.В поле исходных данных скопировать содержимое из буфера обмена.
8.Внести в описание желаемые изменения и дополнения.
9.Указать формат "базовый" и желаемый шаблон генерации.
10.Выполнить генерацию.

Таким образом, с одной стороны, сохраняется возможность использования предопределенных примеров полей, с другой стороны, пользователь может "подкрутить" описание модели исходных данных по своему желанию.

Vladimir Baskakov
как будут описаны связи - много к одному, один ко многим? необходимость каскадных действий для связей?


Со связями имел дело.
Решение есть, но опубликовано будет в следующих версиях генератора.
На данном этапе нужно отладить текущую версию.
11 апр 17, 11:44    [20388466]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
уточняющий вопрос.
допустим есть json - описание.
из него система сгенерила ==базовый==, юзер поправил скормил системе и получил ==расширенный==.

Теперь, допустим, в самом низу поменялось - json - перегенерируем как бы.

- так юзеру надо будет вспомнить, что он там в базовом менял? и еще раз это накатить?

пока, очень похоже почему-то на неудобный чисто - текстовый ERWIN.......
11 апр 17, 13:30    [20389169]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Vladimir Baskakov
уточняющий вопрос.
допустим есть json - описание.
из него система сгенерила ==базовый==, юзер поправил скормил системе и получил ==расширенный==.

Теперь, допустим, в самом низу поменялось - json - перегенерируем как бы.

- так юзеру надо будет вспомнить, что он там в базовом менял? и еще раз это накатить?

пока, очень похоже почему-то на неудобный чисто - текстовый ERWIN.......


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

С удовольствием взял бы что-нибудь готовое.
Еще с большим удовольствием использовал бы подход:
Графический редактор моделей (ER диаграмма или UML диаграмма классов) =>
Выгрузка/экспорт в промежуточный (скрытый для пользователя) текстовый формат =>
Загрузка этого файла в генератор программ и генерация кода.

В ERWIN, Rational Rose, ARIS можно настроить отчеты, чтобы выгрузить данные для реализации данного подхода, но они рассчитаны на опытных пользователей и являются платными.

Буду признателен каждому, кто подскажет, при помощи какого свободно распространяемого графического редактора для моделирования данных, можно выгрузить в текстовом виде полное описание сущностный с атрибутами и связями между сущностными.
Наверное, этот вопрос нужно в отдельный топик вынести.

В общем, Владимир, я с Вами согласен.
Источник сведений о модели данных должен быть один и чтобы правки вносились на самом верхнем уровне.
11 апр 17, 14:18    [20389438]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
WebSharper
Member

Откуда:
Сообщений: 106
Дмитрий
Буду признателен каждому, кто подскажет, при помощи какого свободно распространяемого графического редактора для моделирования данных, можно выгрузить в текстовом виде полное описание сущностный с атрибутами и связями между сущностными.
Наверное, этот вопрос нужно в отдельный топик вынести.


Есть формат XMI на котором общаются такие редакторы - их есть и беспатные.
12 апр 17, 15:36    [20394632]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
Дмитрий, немного можно наковырять

http://www.databaseanswers.org/modelling_tools.htm

и тут было http://www.sql.ru/forum/632522/case-sredstva-proektirovaniya немного.


- неопытному то может именно с инструментом проще - в схеме поменял = топ-хлоп - скрипт на изменение базы готов.
=================
Я думаю бесплатные ср-ва всегда будут немного кривее, тормознее и неудобнее платных (в разном сочетании этих качеств) - иначе кто бы платные покупал? а они продаются.
=================
В принципе, вот и для онлайн работы тоже было. например http://eax.me/dbdsgnr/ - может и исходники где лежат?

там же допустим в соседнем топике упомянуто https://wiki.gnome.org/Apps/Dia/Examples и доп-инструмент dia2code чтобы из диаграммы сделать программу ((((

или может ... мало ли? придумаете что-то типа скорописи http://haml.info/ - только для баз данных, и действительно станет в тексте но удобно, понятно и всем понра......... то есть, в идее что-то может и есть, но вот ухватить это.... суть хорошести.
12 апр 17, 18:10    [20395499]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Всем добрый день!

Выношу на обсуждение два возможных варианта развития генератора программ на ближайшее время.

1) Экранная форма => Приложение по работе с БД.
Берем HTML форму (подготовленную в редакторе или взятую из какого-либо сайта или WEB приложения) и для нее автоматически генерируется приложение, содержащее SQL код БД для хранения записей с полями данной формы и выполнения основных операций (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

2) Таблица БД => Приложение с экранными формами для работы с таблицей БД.
Берем оператор SQL CREATE для создания некоторой таблицы (например, путем реверсивного инжиниринга из БД или из какого-нибудь устаревшего приложения) и для него автоматически генерируется приложение (десктоп или WEB), содержащее экранные формы для выполнения основных операций с данной таблицей (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

Интересно знать мнение участников форума.
3 май 17, 09:21    [20452062]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Перегонщик перекупки
Member

Откуда:
Сообщений: 2215
Дмитрий Concept
Всем добрый день!

Выношу на обсуждение два возможных варианта развития генератора программ на ближайшее время.

1) Экранная форма => Приложение по работе с БД.
Берем HTML форму (подготовленную в редакторе или взятую из какого-либо сайта или WEB приложения) и для нее автоматически генерируется приложение, содержащее SQL код БД для хранения записей с полями данной формы и выполнения основных операций (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

2) Таблица БД => Приложение с экранными формами для работы с таблицей БД.
Берем оператор SQL CREATE для создания некоторой таблицы (например, путем реверсивного инжиниринга из БД или из какого-нибудь устаревшего приложения) и для него автоматически генерируется приложение (десктоп или WEB), содержащее экранные формы для выполнения основных операций с данной таблицей (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

Интересно знать мнение участников форума.



Вы занимаетесь ерундой
3 май 17, 09:25    [20452070]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4214
Дмитрий Concept
Всем добрый день!

Выношу на обсуждение два возможных варианта развития генератора программ на ближайшее время.

1) Экранная форма => Приложение по работе с БД.
Берем HTML форму (подготовленную в редакторе или взятую из какого-либо сайта или WEB приложения) и для нее автоматически генерируется приложение, содержащее SQL код БД для хранения записей с полями данной формы и выполнения основных операций (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

2) Таблица БД => Приложение с экранными формами для работы с таблицей БД.
Берем оператор SQL CREATE для создания некоторой таблицы (например, путем реверсивного инжиниринга из БД или из какого-нибудь устаревшего приложения) и для него автоматически генерируется приложение (десктоп или WEB), содержащее экранные формы для выполнения основных операций с данной таблицей (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

Интересно знать мнение участников форума.


Идея хорошая.
Что-то подобное делал Clarion в конце 80-х начале 90-х, только под DOS, ну БД была своя.
4 май 17, 08:37    [20455248]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
mad_nazgul
Дмитрий Concept
Всем добрый день!

Выношу на обсуждение два возможных варианта развития генератора программ на ближайшее время.

1) Экранная форма => Приложение по работе с БД.
Берем HTML форму (подготовленную в редакторе или взятую из какого-либо сайта или WEB приложения) и для нее автоматически генерируется приложение, содержащее SQL код БД для хранения записей с полями данной формы и выполнения основных операций (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

2) Таблица БД => Приложение с экранными формами для работы с таблицей БД.
Берем оператор SQL CREATE для создания некоторой таблицы (например, путем реверсивного инжиниринга из БД или из какого-нибудь устаревшего приложения) и для него автоматически генерируется приложение (десктоп или WEB), содержащее экранные формы для выполнения основных операций с данной таблицей (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

Интересно знать мнение участников форума.


Идея хорошая.
Что-то подобное делал Clarion в конце 80-х начале 90-х, только под DOS, ну БД была своя.


Да, с Clarion я успел поработать. Из него часть идей и почерпнул при разработке КОНЦЕПТ и генератора программ по шаблонам.
4 май 17, 09:31    [20455443]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
Дмитрий Concept,

если тебе нечего делать, то сделай веб вью для ВИПРОС.
4 май 17, 15:53    [20457513]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
ViPRos
Дмитрий Concept,

если тебе нечего делать, то сделай веб вью для ВИПРОС.


Спасибо за предложение!
Жаль, что мы не пересеклись раньше, когда Вы имели внешнее финансирование Вашего проекта.
Он был интересный. На сайте проекта последняя новость от 2013 года.

Отличие моего подхода заключается в том, что у меня нет цели разработать CASE средство под определенную систему.

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

Т.к. целевой язык программирования и используемые библиотеки (фреймворки) общедоступны и популярны,
то нет проблем с авторскими правами, документацией и специалистами.
Нет последующей зависимости и отношений с КОНЦЕПТ или генератором программ от КОНЦЕПТ.

Вообще нет никаких последующих ограничений.
Забирай сгенерированный программный код и развивайся дальше как хочешь и не завись ни от кого.

Тем не менее, если пошлете мне в личку или опубликуете здесь метаописание таблицы в формате ВИПРОС,
я обязательно рассмотрю и попробую что-то полезное для Вас сделать.
4 май 17, 21:21    [20458488]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
Дмитрий Concept,

Тут картинка метаструктуры ВИПРОС в формате SVG.

К сообщению приложен файл (Метаструктура ВИПРОС.rar - 38Kb) cкачать
4 май 17, 22:07    [20458566]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
Свежее руководство разработчика выслал на твою почту яндексовую.
4 май 17, 22:11    [20458571]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
ViPRos
Свежее руководство разработчика выслал на твою почту яндексовую.


Спасибо!
Это конструктив.
Смотрю.
4 май 17, 22:22    [20458589]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
hVostt
Member

Откуда:
Сообщений: 11393
Дмитрий Concept
Интересно знать мнение участников форума.


Автоматически сгенерированное приложение это примерно как автоматически сгенерированная художественная книга. Ничего общего с реальностью.

Максимум, что можно сделать, это CRUD по таблицам.
Но так это уже было много-много раз.
Но бизнесу не упёрся CRUD по таблицам.

Проблема генератора в том, что если сгенерировать, потом дописать логику, то уже перегенерировать нельзя, так как логика убьётся. Полезность и КПД инструмента генератора сводится к нулю.

Есть бутстраперы и всякие тулы для разработчиков, от них в тысячу раз больше пользы, чем от универсального генератора для универсального бизнеса в вакууме.
4 май 17, 23:08    [20458656]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
hVostt
Member

Откуда:
Сообщений: 11393
Дмитрий Concept,

Другое дело, это не генерация кода, а возможность описывать логику декларативно в терминах бизнес-модели и генерировать UI по этой модели. Это вообще никаким боком к генерации кода не относится, но выхлоп просто огромный. Незнаю зачем генерировать код. Зачем вообще его генерировать, потом править, потом компилировать, если можно сразу генерировать результат при исполнении, без промежуточной бестолковой возни?
4 май 17, 23:15    [20458663]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
hVostt
Дмитрий Concept,

Другое дело, это не генерация кода, а возможность описывать логику декларативно в терминах бизнес-модели и генерировать UI по этой модели. Это вообще никаким боком к генерации кода не относится, но выхлоп просто огромный. Незнаю зачем генерировать код. Зачем вообще его генерировать, потом править, потом компилировать, если можно сразу генерировать результат при исполнении, без промежуточной бестолковой возни?

Ну, он еще реально не занимался этим делом, потому выхлоп он видит в виде сгенерированного кода.
Код нафиг никому не уперся, если это не код интерпретации модели и трансформации модели в другие модели для других интерпретаторов :)
4 май 17, 23:25    [20458679]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
hVostt
Member

Откуда:
Сообщений: 11393
ViPRos
Ну, он еще реально не занимался этим делом, потому выхлоп он видит в виде сгенерированного кода.
Код нафиг никому не уперся, если это не код интерпретации модели и трансформации модели в другие модели для других интерпретаторов :)


Дмитрию надо взять реальную задачу с реальностью бизнеса, представить как будто генератор уже полностью готов, и попробовать положить на него решение.

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

Поэтому у решений типа ВИПРОС огромный потенциал. Возможность работу аналитика свалить на аналитика, исключив промежуточные дорогостоящие звенья: менеджер-программист, имеет огромную ценность для бизнеса. Она понятна, она реальна, она позволяет быстрее получать результат и экономить на этом.

У генерации кода, который через неделю уже станет не акуальный, а через месяц от него ничего не останется, потенциала нет от слова совсем. Бесполезная работа, с бесполезными перспективами, с непонятным выхлопом. Бизнесу нужен код? Не нужен ему код. Нафик он ему не упёрся.
4 май 17, 23:42    [20458704]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Shr
Member

Откуда: Новосибирск
Сообщений: 2773
hVostt
Проблема генератора в том, что если сгенерировать, потом дописать логику, то уже перегенерировать нельзя, так как логика убьётся. Полезность и КПД инструмента генератора сводится к нулю.
А git тут не поможет? Кладем результат генерации в одну ветку, а доработки ведем в отдельной - рабочей. Перегенерируем новый код в ветку генерации, и делаем её merge в рабочую.
5 май 17, 09:20    [20459195]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 29727
Shr,
это если Объектом автоматизации по ГОСТ 34 видеть ветку с кодом.
hVostt смотрит выше. У него Объект автоматизации - Технологический процесс производства ПО.
Даже не один отдельно взятый программист.
5 май 17, 10:53    [20459697]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
ViPRos
Свежее руководство разработчика выслал на твою почту яндексовую.

Посмотрел.
Документ ОЧЕНЬ ПОНРАВИЛСЯ!
Качественный и содержательный.
Модель метаданных полная и очень хорошо продуманная.

Что Вы понимаете под "веб вью для ВИПРОС":
WEB редактор метаданных или генератор пользовательского UI по метаданным?
5 май 17, 10:58    [20459722]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1656
hVostt

Проблема генератора в том, что если сгенерировать, потом дописать логику, то уже перегенерировать нельзя, так как логика убьётся. Полезность и КПД инструмента генератора сводится к нулю.
.


ну, в некоторых модулях OEBS кастомизировать можно было устанавливая перехватчики трех видов - до стандартной функциональности, после, вместо. этого хватает не абсолютно всегда, но нередко.
5 май 17, 11:17    [20459804]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
ViPRos
Дмитрий Concept,

если тебе нечего делать, то сделай веб вью для ВИПРОС.

Начните с Web API. Дальше по накатанной пойдет. Проверено.
5 май 17, 11:46    [20459955]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
dma_caviar
ViPRos
Дмитрий Concept,

если тебе нечего делать, то сделай веб вью для ВИПРОС.

Начните с Web API. Дальше по накатанной пойдет. Проверено.


Кстати, на интересную мысль натолкнули.
По описанию интерфейса WEB API можно автоматически генерировать
библиотеку (обертку) для работы с этим API для выбранного языка программирования.
Например Java, C# или Delphi.
5 май 17, 12:42    [20460269]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
dma_caviar
ViPRos
Дмитрий Concept,

если тебе нечего делать, то сделай веб вью для ВИПРОС.

Начните с Web API. Дальше по накатанной пойдет. Проверено.

Делать именно "веб-вью" той структуры, которая имеется - дохлый номер. Тоже проверено.
А при наличии API вы сможете для каких-то отдельных небольших задач рисовать веб интерфейс прям на чистом html+js, в виде SPA, например, поручив это студенту первого курса.

Прям, не пытаясь охватить неохватуемое, для отдельных маленьких задач. Быстро и сразу.

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

Мы запилили целых 2 проекта веб вью, работающих принципиально по разному. Работать работает, но все фигня.
У первого был принцип - полная копия десктоп форм.
Полный провал. У веба просто другие цели, другие задачи.
Да еще и DX сюда замешали. В общем ужас.
Второй работал по принципу Razor. Без DX, на бутстрапе. По умолчанию формируются формы списков и формы просмотра/редактирований. Но при желании с помощью Razor можно было сверстать такой шаблон формы, какой надо, нестандартный. Это уже было получше, но все равно, веб задачи лежали каким-то тяжелым грузом.

Потом так получилось, что понадобилось сделать API для интеграции с телефонией.
Взяли старый добрый asp.net и что-то там нахреначили. Но меня достало что IIS падла тормозит когда не надо. Сайт обновишь и всплывашка о новом звонке операторам колцентра прилетает не сразу, а через несколько секунд. Пока IIS взлетит.

Короче тогда я для себя понял что это за тяжелый груз на плчах, когда дело касается веб UI. Это долбаные веб серверные технологи)) Или это IIS меня просто добил. Или тормозной Web DX.

Короче не долго думая, плюнул я на это и, как обычно мы это делаем, запилили свой лисапед.
Не обращая внимание на то, что нам крутили пальцем у виска.
Свой веб сервер для API.
Летает как зверь. Никаких зедержек, ничего лишнего. Архитектура чем-то напоминает mvc asp.net. В том смысле что тоже есть некие контроллеры. Но только они у нас декларативные и управляются через конфигуратор.

Ну а дальше понеслось.
Для одного клиента, монтажной организации, ради интереса сделали личный кабинет для выездных монтажников. На html+js. Просто верстка и вызовы API. Мы им даже бюджета никакого особо не предъявили, потому что это было не сложно и нам самим хотелось это сделать.
Вот они в ладоши хлопали и прыгали. До этого юзали что-то унылое от Б24.

Сначала это были просто вызовы контроллера, который дергал скрипты в базе и возвращал результат в виде json. Ну например отбирал список заказов монтажника.
Сейчас уже пилим контроллеры более высокого уровня, чтобы можно было получать метаданные списков/формы, декларативную логику. Чтобы не нужно было тупой версткой заниматься.

Думаю это и будет нормальный "веб вью". С третьей попытки))
Но если бы не свой API, думаю до сих пор бы только лошадей запрягали).
5 май 17, 12:52    [20460321]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
dma_caviar
Member

Откуда: http://itproduct.ru
Сообщений: 1941
А вообще, вчера общался на фейсбуке с каким-то товарищем, как он себя называет "когнитивный инженер". Говорит у нас у всех ограничено мышление. Скоро появится большая мега-рыба, которая автоматизирует весь бизнес и весь мир в придачу. И все мы окажемся на обочине этого бренного мира.
Вот и думай теперь))
5 май 17, 13:02    [20460373]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
Дмитрий Concept
ViPRos
Свежее руководство разработчика выслал на твою почту яндексовую.

Посмотрел.
Документ ОЧЕНЬ ПОНРАВИЛСЯ!
Качественный и содержательный.
Модель метаданных полная и очень хорошо продуманная.

Что Вы понимаете под "веб вью для ВИПРОС":
WEB редактор метаданных или генератор пользовательского UI по метаданным?


А пофиг, метаданные ничем не отличаются от данных, просто они описывают другие данные
Вот не хватает симметричной веб составляющей

К сообщению приложен файл. Размер - 49Kb
5 май 17, 15:28    [20461116]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
Web Api и т.д. генерировать не надо, доступ к веб сервисам имеется
5 май 17, 15:30    [20461129]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
Надо налету из модели, которая сгенерирована налету из полученных метаданных формировать вью и контроллер
5 май 17, 15:32    [20461142]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
hVostt
Member

Откуда:
Сообщений: 11393
ViPRos
Надо налету из модели, которая сгенерирована налету из полученных метаданных формировать вью и контроллер


Генерить вью это понятно. Зачем генерить контроллер? Нафига?
5 май 17, 16:46    [20461474]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
hVostt
ViPRos
Надо налету из модели, которая сгенерирована налету из полученных метаданных формировать вью и контроллер


Генерить вью это понятно. Зачем генерить контроллер? Нафига?


MainView и MainController должны дать функциональность этой MDI формы

К сообщению приложен файл. Размер - 33Kb
5 май 17, 17:33    [20461598]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
ViPRos,

А для выбранного из меню макротипа должны быть сгенерированы собственные view (куча их на самом деле) и контроллер (который управляет вызовом методов макротипа, обрабатывает события макротипа, валидирует и т.д.)
Контроллер этот для макротипа тоже может быть сделан универсальным для всех макротипов и один раз от руки - ниче против не имею
5 май 17, 17:36    [20461603]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
ViPRos,

Ведение метаданных, прав и т.д. можно исключить (их вобще надо вести в других прогах)
5 май 17, 17:37    [20461605]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
ViPRos,

да и вью для макротипа можно сделать универсальной

по сути в ВИПРОС так и сделано - универсальный вью и контроллер для всех макротипов
5 май 17, 17:39    [20461609]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
ViPRos,

я бы за полгода все это сделал бы
но у меня нет времени совсем
5 май 17, 17:42    [20461620]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
hVostt
Member

Откуда:
Сообщений: 11393
ViPRos,

Т.е. ты хочешь сказать, генерация контроллера обошлась дешевле?
5 май 17, 17:46    [20461625]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
ViPRos
Member

Откуда:
Сообщений: 7917
hVostt
ViPRos,

Т.е. ты хочешь сказать, генерация контроллера обошлась дешевле?

Ну, на самом деле наверное и не надо генерировать контроллер и вью с нуля, так как основной функционал их для всех макротипов общий.

Просто их надо каждый раз привязать к модели макротипа.
Думаю, что вообще ничего не придется генерировать.
5 май 17, 17:59    [20461644]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Дмитрий Concept
Всем добрый день!

Выношу на обсуждение два возможных варианта развития генератора программ на ближайшее время.

1) Экранная форма => Приложение по работе с БД.
Берем HTML форму (подготовленную в редакторе или взятую из какого-либо сайта или WEB приложения) и для нее автоматически генерируется приложение, содержащее SQL код БД для хранения записей с полями данной формы и выполнения основных операций (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

2) Таблица БД => Приложение с экранными формами для работы с таблицей БД.
Берем оператор SQL CREATE для создания некоторой таблицы (например, путем реверсивного инжиниринга из БД или из какого-нибудь устаревшего приложения) и для него автоматически генерируется приложение (десктоп или WEB), содержащее экранные формы для выполнения основных операций с данной таблицей (просмотр и фильтрация записей, добавление/модификация/удаление записей, экспорт в CSV).

Интересно знать мнение участников форума.


Двигаюсь по обоим пунктам. Не разочарован.
Интересно получается. Скоро опубликую.
16 май 17, 21:02    [20486860]     Ответить | Цитировать Сообщить модератору
 Re: WEB сервис генерации программного кода  [new]
Дмитрий Concept
Member

Откуда: Москва
Сообщений: 130
Всем привет!

В WEB сервисе генератора программного кода сделаны адаптеры для HTML формы и оператора SQL CREATE TABLE.

Идея заключается в том, чтобы извлекать описание сущности (структуры таблицы)
из кода HTML формы или оператора создания таблицы на SQL.
Т.е. в качестве входного языка описания сущности, подаваемой на вход генератора кода,
можно использовать синтаксис HTML или SQL (а не какой-то выдуманный).

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

Расширенная версия генератора кода:
http://gendoc.ru/cgi-bin/gcadapter.htm

Пользуйтесь - как хотите.
Пишите, если будут пожелания по доработке генератора кода,
настройке на другие языки и системы программирования,
реализации в сгенерированном коде новой функциональности.
22 июн 17, 11:24    [20582881]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6      [все]
Все форумы / Разработка информационных систем Ответить