|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Доброе время суток, в некоторых случаях отказаться от execute statement не получается и встаёт вопрос а как наложить зависимости на участников execute statement. До сих пор приходилось выкручиваться через type of column для входных, выходных и прочих переменных. Но зачастую в строке запроса используются поля которые незачем куда то вытаскивать создавая для них переменные или выходные параметры а зависимость на них и их содержащие таблицы должна существовать. Как Вы поступаете в подобных случаях? не рисовать же рядом тупо запросы которые ничего не возвращают или переменные (c type of column) которые никому не нужны дабы только создать на них зависимость? возможно есть другая, более красивая, возможность прописать зависимость без извращений, которая мне неизвестна? Идеален был бы просто оператор создания зависимости, но найти такой мне не удалось. поделитесь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 11:58 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
я уже поднимал раньше эту тему тут но красивого решения не вижу и по сей день ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:02 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, >в некоторых случаях отказаться от execute statement не получается честно говоря мне приходит в голову только соединение с внешней базой и создание метаданных >встаёт вопрос а как наложить зависимости на участников execute statement нормально никак. Только через изврат с невызываемыми операторами. >Идеален был бы просто оператор создания зависимости, но найти такой мне не удалось. потому что таких нет >возможно есть другая, более красивая, возможность прописать зависимость без извращений, которая мне неизвестна? не использовать execute statement там где он не нужен. Если нужна динамика собирай на клиенте execute block Лучше бы показали задачу где без execute statement не обойтись. Тогда может чего и подсказали бы ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:07 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
а... это снова байда про динамические сортировки и условия фильтрации пропихиваемые в ХП. Ну тогда увы ответа не будет. Там уже всё сказано было ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:16 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
и эти люди сетуют, что до них базу курочили "мальчики по вызову"... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:20 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Мимопроходящийи эти люди сетуют, что до них базу курочили "мальчики по вызову"... В крупных проектах должен быть человек (измученный нарзаном), который может сказать - "что это вы тут за херню наворотили" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:34 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Симонов ДенисMikhail Tchervonenko, .... Лучше бы показали задачу где без execute statement не обойтись. Тогда может чего и подсказали бы ну к примеру, ORDER BY создаётся динамически и список полей передаются в процедуру через запятую в виде строки и имена полей ещё надо допилить примерно так I_ORDER_BY = replace(I_ORDER_BY,'O_IDCOUNTRY','PARTNERS.id_country'); т.к. имена полей на клиенте отличаются от имен полей в базе (выходящие данные с префиксом O_, а исходящие с I_) сие не мои идеи по именованию и менять там что то уже поздно, да и никто не даст. (замечу что речь не всегда идёт о сортировке выходных данных в самом гриде, иногда это сортировка вромежуточных результатов в процедуре). а адея формирования блока на клиенте мне нравится не очень ввиду потенциальных проблем с универсальностью. Прийдётся отказаться от компонентов в виде допиленных Gridов которые автоматом сами передают список полей (с префиксом) в процедуру выборки. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:34 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Мимопроходящийи эти люди сетуют, что до них базу курочили "мальчики по вызову"... это как раз пример танцев с результатами работы тех самых мальчиков. Когда приходишь и говоришь что все надо переделывать а тебе говорят нет, вы только тут и тут поправьте и улучшите. Все денег стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:37 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
я собственно в основном эту дискуссию затеял зная что сюда разработчики заглядывают FB. Чем черт не шутит, если реализовали уж execute statement то почему не сделать и оператор создания зависимости, как раз для таких случаев. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:39 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoв некоторых случаях отказаться от execute statement не получается и встаёт вопрос а как наложить зависимости на участников execute statement.А зачем ? PS а как наложить зависимости на запросы, выдаваемые приложением ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:45 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoЧем черт не шутит, если реализовали уж execute statement то почему не сделать и оператор создания зависимостиЗависимости кого от чего ? Динамический запрос по своей сути неизвестен заранее и не предсказуем. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:47 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, хрень твоя идея с зависимостями. Ибо в качестве параметра сортировки мне никто не помешает передать Код: sql 1.
а можно и существующую. Если у вас часть запроса формируется на клиенте а часть хранится на сервере, то ту часть что хранится на клиенте никакими зависимостями не отследить. execute statement это фактически эмуляция динамически формируемых запросов приходящих с клиента. Да собственно в вашем случае часть запроса именно от туда и приходит ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:47 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvladMikhail Tchervonenkoв некоторых случаях отказаться от execute statement не получается и встаёт вопрос а как наложить зависимости на участников execute statement.А зачем ? PS а как наложить зависимости на запросы, выдаваемые приложением ? если под приложением понимается клиент то в идеале он вообще не должен работать с таблицами на прямую, только с хранимками. По крайней мере в том что пишу я нет ни одного запроса из таблицы напрямую, только из хранимок. Абсолютно 100%. Другими словами вся логика должна сидеть в базе. Это касается и проектов на FB и на MSSQL. Исключение только MySQL т.к. хранимки там появились сравнительно недавно и по отзывам ещё не всё допилено. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:54 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvladДинамический запрос по своей сути неизвестен заранее и не предсказуем. "как же так - ведь ES хранится в процедуре или триггере. ааааа!!!" :-) p.s. как мне повезло, что я "наелся" этих динамических конструкций в MUMPS, еще до SQL, и больше в коде на сервере ничего подобного не хочу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:56 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoто в идеале он вообще не должен работать с таблицами на прямую, только с хранимками. это совершенно ошибочное мнение. Однако, никто не запрещает такой подход. При этом жевание кактуса с ES - исключительно ваши личные проблемы. Представьте себе, что ES вообще отсутствует. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 12:58 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoнет ни одного запроса из таблицы напрямую, только из хранимок. Абсолютно 100%. Ужоснах. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:00 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Симонов ДенисMikhail Tchervonenko, хрень твоя идея с зависимостями. Ибо в качестве параметра сортировки мне никто не помешает передать Код: sql 1.
.... ну да, если туда пальцами набивать эти строки то конечно. А вот когда эти строки формирует компонент на клиенте на основе своих же свойств полей и ты знаешь что прийдёт в хранимку, то вопрос только в комбинации пришедшего и предварительной обработке. Заметьте, я хочу просто прописать в хранимке зависимости из execute statement. Остальные вопросы уже решены, и на клиенте нет логики на которую нужно накладывать эти зависимости. И походу, как уже писали раньше, кроме неисполняемого блока кода в этой хранимке, решения нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:02 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoесли под приложением понимается клиент то в идеале он вообще не должен работать с таблицами на прямую, только с хранимками. Есть рациональное зерно, и такой подход имеет право жить. Более того, в нашем проекте генерится код для вызова процедур в двух версиях: с query в виде первого параметра и без. Если передать Query, то результаты работы процедуры будут там. Многоярусные Delphi-строки забываются как страшный сон. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:04 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Коваленко Дмитрий> В крупных проектах должен быть человек (измученный нарзаном), > который может сказать - "что это вы тут за херню наворотили" :) "Любой русский программист, после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: переписать это все нафиг!" (с) Для тех кто не помнит этой фразы - древняя, но всё ещё актуальная притча: http://www.rushumor.com/stories/32.html Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:04 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoесли под приложением понимается клиент то в идеале он вообще не должен работать с таблицами на прямую, только с хранимками. По крайней мере в том что пишу я нет ни одного запроса из таблицы напрямую, только из хранимок. Абсолютно 100%. это не есть хорошо. По крайней мере процедуры выбора должны использоваться в крайнем случае когда без них не обойтись. Ибо оптимизатор лучше разрулит чистый запрос. Открой для себя вьюхи для более простых случаев. А уж джойн процедуры с процедурой это совсем гиблое дело. Частично конечно оптимизатор разруливает через HASH/MERGE JOIN, но результат не обязательно будет оптимальным. ибо оценить кардинальность ХП практически невозможно. Mikhail TchervonenkoДругими словами вся логика должна сидеть в базе. Это касается и проектов на FB и на MSSQL. для процедур модификации данных согласен. Хотя для всяких справочников можно сделать исключение. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:05 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoА вот когда эти строки формирует компонент на клиенте на основе своих же свойств полей ....то он с лёгкостью может составить запрос типа Код: sql 1.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:06 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoвозможно есть другая, более красивая, возможность прописать зависимость без извращений, которая мне неизвестна? Более красивой я не знаю. Пришлось писать своё. Выглядело так 7778565 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:07 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, ну да ладно забьём на левые таблицы. Вот в трёшке появились пользовательские PSQL функции, а ещё они в пакетах могут сидеть. Удачи вам в разруливании всего этого когда начнёте их использовать в своих динамических запросах ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:12 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoИ походу, как уже писали раньше, кроме неисполняемого блока кода в этой хранимке, решения нет. есть DECLARE VARIABLE с TYPE OF. Вы написали это в первом посте. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:12 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMikhail Tchervonenkoнет ни одного запроса из таблицы напрямую, только из хранимок. Абсолютно 100%. Ужоснах. когдато, фирма для которой писали софт вызвала Gutachter, типа эксперт от мелкософта (проект был на MSSQL + С#) который лазил по проекту и выискивал в том числе и прямые обращения к таблицам (на уовне select и на уровне компонентов). И таки нашел пару забытых временных затычек, это стоило нам денег. Если проект должен без проблем работать на нескольких платформах и различных клиентах иного решения нет. Все остальное стоит гораздо дороже в итоге и по деньгам и по времени. И я с тим на все 100% согласен. Опыт неоднократно подтвердил правильность такого подхода. Опять же это позволяет гораздо лучше контроллировать те же зависимости, да и тестирование сильно упрощается. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:12 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
kdvp.s. как мне повезло, что я "наелся" этих динамических конструкций в MUMPS, еще до SQL, и больше в коде на сервере ничего подобного не хочу. Каждый раз когда заходит вопрос о динамически собираемых запросах, kdv пишет "как это плохо". Я эту позицию понимаю и в некой мере согласен, но хоть убей, не пойму как построить запрос сложного многокритериального отчёта без динамической сборки либо на сервере, либо на клиенте. Да, есть гасилочки вида (field = param or param is null), ну и всё. ЧЯДНТ, что у меня они в любом случае возникают? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:14 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko> Опыт неоднократно подтвердил правильность такого подхода. Миша, а кой тебе годик? Сколько ERP-систем тебе лично довелось проектировать? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:16 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoА зачем ? PS а как наложить зависимости на запросы, выдаваемые приложением ? если под приложением понимается клиент то в идеале он вообще не должен работать с таблицами на прямую, только с хранимками.[/quote]Ну так они такие же объекты, как и таблицы - с зависимостями и прочем. Т.е. я намекал (а теперь прямо указываю) на абсурдность этой хотелки ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:17 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
-Mikhail TchervonenkoИ походу, как уже писали раньше, кроме неисполняемого блока кода в этой хранимке, решения нет. есть DECLARE VARIABLE с TYPE OF. Вы написали это в первом посте. да, и использую, но и там же я писал что не хочется каждый раз создавать переменную только для того что бы создать зависимость (если эта переменная реально не используется). Потому неисполняемый блок выглядит разумнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:18 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgm> как построить запрос сложного многокритериального отчёта всё прогрессивное человечество (в том числе и M$), для OLAP таки используют специально заточенные средства. и только юные пионЭры упорно, из поколения в поколение, передают друг-другу сакральные знания "как изобрести кривой велосипед с квадратными колёсами"... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:20 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
kdvp.s. как мне повезло, что я "наелся" этих динамических конструкций в MUMPS, еще до SQL, и больше в коде на сервере ничего подобного не хочу.Тебе "повезло" только в отсутствии практики работы на предприятии где ИТ не основное направление, но есть ИТ отдел и он подчиняется требованиям "бизнеса". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:21 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMikhail Tchervonenkoнет ни одного запроса из таблицы напрямую, только из хранимок. Абсолютно 100%. Ужоснах.Абсолютно нормальный и рабочий подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:21 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMikhail TchervonenkoА вот когда эти строки формирует компонент на клиенте на основе своих же свойств полей ....то он с лёгкостью может составить запрос типа Код: sql 1.
я ж писал, что это не всегда сортировка выходного потока, иногда это сортировка промежуточного результата в SP ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:24 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvlad> Абсолютно нормальный и рабочий подход. ты где-то случайно вляпался в ORM Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:25 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko(проект был на MSSQL + С#) Ну так MS SQL это... как бы так сказать помягче... весьма своеобразная вещь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:28 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Мимопроходящийafgm> как построить запрос сложного многокритериального отчёта всё прогрессивное человечество (в том числе и M$), для OLAP таки используют специально заточенные средства. Виноват. Забыл упомянуть, что сборка запросов нужна не только только для отчётов... но и для фильтрации рабочих данных. И да, она бывает сложна. В этой ситуации особенно радуют (правда) комменты Влада. И вообще в его подходе мне нравится то, что он ещё не потерял связь с прикладной разработкой реального мира. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:30 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
МимопроходящийMikhail Tchervonenko> Опыт неоднократно подтвердил правильность такого подхода. Миша, а кой тебе годик? Сколько ERP-систем тебе лично довелось проектировать? ты мне хочешь предложить работу? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:34 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgm, да. Но Влад не формирует в этих ХП динамические запросы ибо знает чем это грозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:37 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko> ты мне хочешь предложить работу? :) хочу понять первопричину категоричности выдвигаемых постулатов: то ли это опыт - сын ошибок трудных, то ли юношеский максимализм. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:39 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvladТебе "повезло" только в отсутствии практики работы на предприятии где ИТ не основное направление, но есть ИТ отдел и он подчиняется требованиям "бизнеса". на MUMPS я именно на таком предприятии и работал. Даже на двух. И еще с не MUMPS. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:42 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Симонов Денисда. Но Влад не формирует в этих ХП динамические запросы ибо знает чем это грозит. Это он пусть сам скажет. Либо повезло, либо формирует на клиенте, либо он знает то, чего я бы тоже хотел знать. PS: Пример. Поиск ошибок по куче параметров в трекере FB. Как это сделать адекватно без динамики, применимо к СУБД, я реально не знаю. Да. Можно вывести всё на дашборд, запрограммированный заранее. А если таки настраиваемый? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:47 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMikhail Tchervonenko(проект был на MSSQL + С#) Ну так MS SQL это... как бы так сказать помягче... весьма своеобразная вещь. за что платят на том и пишем. Нравится не нравится это материи которыми семью не накормить. А паттерны везде примерно похожие, проблема только в том что бы конкретный продукт освоить в приемлемые сроки и по возможности не наговнокодить. До сих пор получалось с переменным успехом, но неисправимых завалов пока не было. Сложнее когда приходят уже с заваленным проектом и просят его реанимировать. Некоторые просто надо переписывать с нуля, но тратиться на это готовы далеко не все. п.с. Вопрос, а кто на форуме из разработчиков FB? Спрашиваю не с целью их беспокоить, просто интересно почитать что писали. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:50 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmно хоть убей, не пойму как построить запрос сложного многокритериального отчёта без динамической сборки либо на сервере, либо на клиенте. на клиенте - сколько угодно. и как минимум два проекта у нас было именно с динамической сборкой запросов на клиенте (клиент в т.ч. был трехзвенкой). в одном из них - сборка запроса по описанию в XML. А в первом на динамические запросы я принудительно перевел разработчиков потому, что они поначалу нафигачили не менее 30-ти практически однотипных отчетных хранимых процедур. В то время никакого ES или EB в IB не было (а ФБ просто не было). Так что я против динамической сборки именно на сервере. Собственно, есть разные варианты динамической сборки. Против where или order by ничего не имею. А вот все остальное - у нас два программера в MUMPS генерили динамический код (хранимые куски кода склеивались в зависимости от условий обработки и данных). Отлаживать и разбираться с этим было практически невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:50 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvladАбсолютно нормальный и рабочий подход. подтверждаю. у меня есть одна система, в которой "внешний интерфейс" - только процедуры. Но никакого динамического кода там нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:52 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
МимопроходящийКоваленко Дмитрий> В крупных проектах должен быть человек (измученный нарзаном), > который может сказать - "что это вы тут за херню наворотили" :) "Любой русский программист, после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: переписать это все нафиг!" (с) ... надо будет как нибудь выбраться и напиться с тобой в кабаке :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:52 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Коваленко Дмитрий> ... надо будет как нибудь выбраться и напиться с тобой в кабаке :)) милости просим к нашему шалашу. :) а уж тем более напиться, это мы завсегда готовы! :)) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 13:57 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, дык а что в MS SQL для динамических запросов в ХП есть зависимости? Насколько мне известно их там нет вовсе и для нединамических запросов в ХП. Хотя могу ошибаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:21 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
МимопроходящийMikhail Tchervonenko> ты мне хочешь предложить работу? :) хочу понять первопричину категоричности выдвигаемых постулатов: то ли это опыт - сын ошибок трудных, то ли юношеский максимализм. я не навязываю эти постулаты, каждый волен сам набивать шишки. Я, к сожалению, многие набил сам хоть и пытался читать книжки. Сейчас мне 47 (почти), в разработке с 21 года, по началу c,c++, paradox, FoxPro, VFP, потом asp, php, c#, delphi, mysql,mssql,fb. Первые коммерческие продукт выпустил в 26 лет, тогда он назывался Информ-Авто, база на визуальном фоксе которая обменивалась информацией по российскому авторынку, стояла практически в 70% автомагазинов по СНГ (те что ладами торговали). Потом работа на заказ, банковский софт, учет итп. Пришлось даже программы для мат расчетов писать по теме своего диссера. Потом Германия, тут повезло, сразу попал в боевую фирму по разработке софта для текстильщиков, потом другая фирма со своим it отделом, базы по туризму итп потом опять боевая фирма по разработке для клиентов в области медицины ну и сейчас большая контора - поставки элитных тряпок из европы со своим отделом IT. Последние годы несколько крупных проектов точнее 6, успешных два, один загубленный, остальные умерли или еле теплятся по причине дальнейшей невостребованности (так бывает, сначала заказывают а потом сами разоряются, уходят на тругой рынок находят лучший продукт итп). Мелкие проекты посчитать не берусь. Из того что в онлайне можно глянуть только это , ну и несколько мелких поделок для себя тут . Вот ещё, фотографией увлекаюсь :). надеюсь тему раскрыл, мой ник моё реальное имя и фамилия, я не скрываюсь потому гугл в помощь ;) теперь твоя очередь ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:22 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:25 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
блин, все видео воткнулось, извиняюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:27 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko> Сейчас мне 47 (почти), в разработке с 21 года, по началу > c,c++, paradox, FoxPro, VFP, потом asp, php, c#, delphi, mysql,mssql,fb. не, я тебя на работу не возьму. распыляешься. толком не владеешь ни одним из. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:28 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
МимопроходящийКоваленко Дмитрий> ... надо будет как нибудь выбраться и напиться с тобой в кабаке :)) милости просим к нашему шалашу. :) а уж тем более напиться, это мы завсегда готовы! :)) ну, будете у нас на колыме тоже заглядывайте, могу по местным кабачкам экскурсию устроить ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:32 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
МимопроходящийMikhail Tchervonenko> Сейчас мне 47 (почти), в разработке с 21 года, по началу > c,c++, paradox, FoxPro, VFP, потом asp, php, c#, delphi, mysql,mssql,fb. не, я тебя на работу не возьму. распыляешься. толком не владеешь ни одним из. ну это ж в периоде 26 лет все. Кто чем не увлекался :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:34 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko> ну это ж в периоде 26 лет все. Кто чем не увлекался :) не воспринимай всерьёз. я в жизни вполне доброжелательный эпикуреец. и только на форуме мрачный мизантроп и зануда! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:41 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Симонов ДенисMikhail Tchervonenko, дык а что в MS SQL для динамических запросов в ХП есть зависимости? Насколько мне известно их там нет вовсе и для нединамических запросов в ХП. Хотя могу ошибаться. да, на тот момент когда я на нем кодил было кисло вот , кстати продукт отчасти решающий эту проблему (краткое описание тут ) есть ещё для оракла такая весч ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:45 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Мимопроходящийhvlad> Абсолютно нормальный и рабочий подход. ты где-то случайно вляпался в ORMНи в коем случае. Я эти три буквы (в этом порядке) сам не переношу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:45 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
kdvhvladТебе "повезло" только в отсутствии практики работы на предприятии где ИТ не основное направление, но есть ИТ отдел и он подчиняется требованиям "бизнеса". на MUMPS я именно на таком предприятии и работал. Даже на двух. И еще с не MUMPS.Сколько лет назад это было ? То-то же, вычёркиваем :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:46 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvladСколько лет назад это было ? То-то же, вычёркиваем :) не вычеркиваем. могу поименно перечислить, кто чем занимался, и кто какой код писал. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:48 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, забыл добавить, SQL Dynamite и с FB вроде могёт (я правда не пробовал, у меня IBExpert купленный). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:49 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
kdv, давай договоримся об итак очевидном - не стоит навязывать свои подходы\привычки и т.п. всему миру да ещё и в категоричной форме. Ибо твой (и мой и вообще любой) опыт не универсален и может быть не применим в чужих условиях. Я, например, считаю, что плюсы подхода "клиентам - только процедуры и никакого доступа на таблицы" на много порядков перевешивают минусы этого подхода. Но только в определённом ряде приложений - всякие ERP, автоматизации учёта на предприятиях и т.п. И это есть результат более чем 15-летнего опыта работы прикладным SQL программистом. И опыта общения с разработчиками подобного ПО. А вот как оно в вебе, например, меня вообще не интересует. Теперь про ES. У каждого инструмента есть своё назначение, плюсы и минусы, особенности применения. Из того, что инструмент может быть опасен\вреден в некоторых ситуациях, не стоит раздувать его тотальное порицание и запрет на использование. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:57 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoВопрос, а кто на форуме из разработчиков FB?hvlad и dimitr ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 14:58 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
kdvТак что я против динамической сборки именно на сервере У программистов c БД бывает 3 условные стадии (не везде, не всегда, не у всех, но общая картина, часто наблюдаемая, такова): 1. Мы пишем на Делфи и БД - это хранилище 2. А на хранимках можно писать быстрее. 3. Мы выросли и сложность логики такова, что процедурки уже не тянут (а там уже и реальное третье звено, ORM, паттерны, тестирование и т.д. да, да.... всего этого может не быть на этапе 2) Причины перехода и выбора могут немного отличаться, но в общем так. Так вот у некоторых (коих ИМХО не так мало), процедурная разработка и есть так трёхзвенка, с той лишь разницей, что центральное звено в БД, что крайне удобно (и данные рядом, и отдельное звено не надо админить). Не без минусов решение, но ещё один важный плюс - переход с п.1 на п.2 можно осуществлять постепенно, потому как часто приходишь на системы историей, и не всегда можно построить мир с нуля. Да и на процедурках можно прожить всю жизнь и не знать проблем. Это я тому, что коли логика наш "мозг" в процедурах, то и сборка туда же просится, чтобы не размазывать. kdvСобственно, есть разные варианты динамической сборки. Против where или order by ничего не имею. Так речь и идёт про where и order by. Иногда (не часто) по условию исключаются таблицы, т.к. оптимизатор не всегда адекватно воспринимал таблицу "для галочки". Ну ладно. DDL тоже бывает :) А бывает он именно потому, что на T-SQL в MSSQL я могу написать скрипт, который окопается, проверит всё, что надо проалтерит, и почти полностью всю работу по накату новой БД сделает. Что в FB проблематично, в силу известных особенностей работы скриптов (транзакции рулятся из выполнятора скриптов, DDL низя в PSQL без ES). Но это уже немного в сторону от темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:03 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvlad, ты пере-это-самое. я написал, что вот это мнение - ошибочно Mikhail Tchervonenkoто в идеале он вообще не должен работать с таблицами на прямую, только с хранимками. при этом также написал, что одну из систем я делал именно так - с интерфейсом на хранимых процедурах. Противоречий тут не вижу, потому что я выступил а) против идеализации определенного решения б) против излишнего увлечения динамическим кодом (ES в SP и триггерах). Собственно, и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:03 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvladТеперь про ES. У каждого инструмента есть своё назначение, плюсы и минусы, особенности применения. Hо не пиши на Коболе, если можешь этого избежать. (c) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:04 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
kdvты пере-это-самое.Ок, закончим на этом ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:09 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Hello, Hvlad! You wrote on 9 июля 2015 г. 15:01:26: Hvlad> Я, например, считаю, что плюсы подхода "клиентам - только процедуры и никакого доступа на таблицы" > на много порядков перевешивают минусы этого подхода. это всего лишь одна из парадигм. имеет право на существование. но не более. французы жрут садовых улиток и полагают это нормальным. нам же - сало подавай! ;) наши местные ораклисты довели данный подход до абсурда. более полусотни пакетов с процедурами/функциями "на все случаи жизни". даже для каждого тупого select * from SomeTable создаётся процедура, на каждый чих, потом поверх неё ещё и генерится промежуточный слой АПИ. функционал в хреновой туче мест тупо дублируется, ибо никто не озадачивается документированием этого кодо-могильника. и если кто-то скажет, что ЭТО удобно сопровождать, убью из рогатки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:20 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoSQL Dynamite и с FB вроде могёт. Ни в коем разе не хвастаюсь, но моё поделие с быдлопарсингом даёт профит в разы больше чем динамит, когда я его смотрел. Хотя бы потому, что есть зависимости Delphi -> SQL. Причём разбирает русские (да-да) имена из DFM. Даёт иногда лишние связи, но это ерунда. Всё это для Delphi + MSSQL, но работает на FB. Поддержку FB не развиваю, т.к. нет острой необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:22 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Мимопроходящийэто всего лишь одна из парадигм. имеет право на существование. но не более.Есс-но. Но ведь не "ужас-ужас" (c) :) Мимопроходящийнаши местные ораклисты довели данный подход до абсурда.Это не значит, что подход плохой :) Мимопроходящийи если кто-то скажет, что ЭТО удобно сопровождать, убью из рогатки.Нет, гораздо удобнее ковырять исходники 100500 прикладных программулечек в поисках ссылок на таблицу, поле которой нужно удалить или изменить тип и т.д. Ещё примеров дать ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:34 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Мимопроходящийместные ораклисты довели данный подход до абсурда. более полусотни пакетов с процедурами/функциями "на все случаи жизни". даже для каждого тупого select * from SomeTable создаётся процедура А если ещё и учесть, что курсоры из процедуры в Оракуле возвращаются сугубо через задницу... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:39 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Hello, Hvlad! You wrote on 9 июля 2015 г. 15:36:25: Hvlad> в поисках ссылок на таблицу, поле которой нужно удалить или изменить тип и т.д. "рефакторинг тм как норма жизни" - нужно выжигать калёным железом! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:42 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvladНо ведь не "ужас-ужас" (c) :) Пока движок не научится проталкивать внутрь ХП условия выборки и сортировку, так "ужас-ужас". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:43 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovhvladНо ведь не "ужас-ужас" (c) :) Пока движок не научится проталкивать внутрь ХП условия выборки и сортировку, так "ужас-ужас".Жевать, Дима, жевать ! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 15:45 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
hvladMikhail TchervonenkoЧем черт не шутит, если реализовали уж execute statement то почему не сделать и оператор создания зависимостиЗависимости кого от чего ? Динамический запрос по своей сути неизвестен заранее и не предсказуем. потому и предлагаю создать оператор создания зависимости типа: Код: sql 1. 2. 3. 4. 5. 6.
прописать сие удавольствие перед execute statement и по мере надобности править это конечно не решит проблему кривых рук пихающих в текст запроса что попало но по крайней мере позволит хоть как то навести порядок и незабыть вернуться к этому месту в случае правок в структуре таблиц или к примеру так: Код: sql 1.
тоже на мой испорченный неплохо т.к. только в случае execute statement и необходимо ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:05 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Hello, Mikhail Tchervonenko! You wrote on 9 июля 2015 г. 16:08:15: Mikhail Tchervonenko> прописать сие удавольствие перед execute statement > и по мере надобности править дык и без модификации движка сервера это можно сделать. заведи себе табличку под это "удавольствие". и всего то делов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:08 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
МимопроходящийHello, Mikhail Tchervonenko! You wrote on 9 июля 2015 г. 16:08:15: Mikhail Tchervonenko> прописать сие удавольствие перед execute statement > и по мере надобности править дык и без модификации движка сервера это можно сделать. заведи себе табличку под это "удавольствие". и всего то делов. оно понятно что обойти можно, хочется красоты, хотя само execute statement уже подразумевает её отсутствие ... но когда деваться некуда сие спасло бы отца Русской демократии в его потугах достич нирваны :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:13 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, я тебе этим оператором такой порядок наведу что мало не покажется. Сделаю какую нибудь тупую процедуру ничего не делающую и прицеплю к ней все объекты метаданных. Мало того. Раз есть оператор создающий зависимость значит должен быть и оператор её удаляющий. Ну тогда можно тупо у процедур не имеющих execute statement отнимать абсолютно легальные зависимости. Короче в сад. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:14 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Симонов ДенисMikhail Tchervonenko, я тебе этим оператором такой порядок наведу что мало не покажется. Сделаю какую нибудь тупую процедуру ничего не делающую и прицеплю к ней все объекты метаданных. Мало того. Раз есть оператор создающий зависимость значит должен быть и оператор её удаляющий. Ну тогда можно тупо у процедур не имеющих execute statement отнимать абсолютно легальные зависимости. Короче в сад. наличие select в прцедуре создаёт зависимость и не требует оператора удаления зависимости если этот select из процедуры удаляется. Почему в предложенном выше синтаксисе такой оператор вдруг должен появляться? убрал из процедуры объявление зависимости, зависимость пропала. Не оч. понимаю Вашу логику. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:24 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoпотому и предлагаю создать оператор создания зависимости... Филиал Ада на Земле. Это как хинты в комментах (докстрингах) в скриптовых языках, иначе среда разработки не знает чего ждать от метода на выходе. Нафиг-нафиг. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:29 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Hello, Afgm! You wrote on 9 июля 2015 г. 16:32:50: Afgm> Нафиг-нафиг. :) ну вот мы и достигли консенсуса Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:32 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmMikhail Tchervonenkoпотому и предлагаю создать оператор создания зависимости... Филиал Ада на Земле. Это как хинты в комментах (докстрингах) в скриптовых языках, иначе среда разработки не знает чего ждать от метода на выходе. Нафиг-нафиг. :) я бы сказал иначе, плохой мир лучше хорошей войны так и хоть какая то легальная возможность создать зависимость лучше чем скрытый код который эту зависимость имеет но не создаёт По сути это просто метка которая говорит зайди сюда если исправил это, что плохого если она есть? Гораздо хуже когда на продакшене вдруг вываливается исключение которое, при наличии такой метки, можно было избежать ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:35 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
МимопроходящийAfgm> Нафиг-нафиг. :) ну вот мы и достигли консенсуса ... а в 2002 году в epsilon.public.interbase NULL`ы и пиво обсуждали... В общем в тему я так и не вьехал ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:35 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
DarkMasterМимопроходящийпропущено... ну вот мы и достигли консенсуса ... а в 2002 году в epsilon.public.interbase NULL`ы и пиво обсуждали... В общем в тему я так и не вьехал это просто тут много букафф и пива захотелось чтой то .... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:37 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Hello, Darkmaster! You wrote on 9 июля 2015 г. 16:37:26: Darkmaster.. а в 2002 году в epsilon.public.interbase NULL`ы и пиво обсуждали... и все были молодыми, кудрявыми, стройными, двухметроворостыми... а нынче старые, лысые, пузатые пеньки трухлявые! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:38 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoafgmпропущено... Филиал Ада на Земле. Это как хинты в комментах (докстрингах) в скриптовых языках, иначе среда разработки не знает чего ждать от метода на выходе. Нафиг-нафиг. :) я бы сказал иначе, плохой мир лучше хорошей войны так и хоть какая то легальная возможность создать зависимость лучше чем скрытый код который эту зависимость имеет но не создаёт По сути это просто метка которая говорит зайди сюда если исправил это, что плохого если она есть? Гораздо хуже когда на продакшене вдруг вываливается исключение которое, при наличии такой метки, можно было избежать Я не говорю, что это хорошо, но давайте будем посмотреть вокруг. T-SQL, PHP, Python ... Пока не запустишь - не узнаешь ничего о работоспособнеос ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:39 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgm, случайно отправил. Пока не запустишь - не узнаешь ничего о работоспособности. Следовательно Тесты! Я понимаю желание сохранить всепоглощающий контроль зависимостей в FB. Он и польза и зло в одном лице. Но видимо тот случай, когда теги зависимостей это уже перегиб. С другой стороны если собирать скрипты через linq-flow-подобный интерфейс, то можно делать это поэтапно и проследить зависимости. Есть у данного подхода много минусов: и не всякий запрос можно написать, и не везде есть такая магия, и ещё всё это вне БД и т.д. Надеюсь развитие СУБД и технологий распределения-хранения-обработки данных со временем станет прозрачнее, и гонять данные между потоками <-> кластером <-> БД будет относительно просто и прозрачно. Но это вероятно нескоро, уж больно велик уровень слоёв абстракций у этой луковицы технологий. </поток сознания> ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:47 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmMikhail Tchervonenkoпропущено... я бы сказал иначе, плохой мир лучше хорошей войны так и хоть какая то легальная возможность создать зависимость лучше чем скрытый код который эту зависимость имеет но не создаёт По сути это просто метка которая говорит зайди сюда если исправил это, что плохого если она есть? Гораздо хуже когда на продакшене вдруг вываливается исключение которое, при наличии такой метки, можно было избежать Я не говорю, что это хорошо, но давайте будем посмотреть вокруг. T-SQL, PHP, Python ... Пока не запустишь - не узнаешь ничего о работоспособнеос ну да, но FB ж лучшеж всех должен быть :) хотелось бы пораньше узнавать некоторые проблемы. п.с. кстати, никто не проверял, если определять переменную с type of column но не инициализировать её, зависимость создастся или нет, может компилятор тупо её выкидывает в таком случае? если нет, то по идее, память она должна начинать отжирать только в момент нициализации или это происходит уже при декларировании? (иначе нафига декларирование всегда надо в начале процедуры писать). По идее это определяющий фактор для выбора: использовать не исполняемый кусок кода или пустые переменные. С переменными было бы короче если не надо инициализировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 16:53 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmafgm, случайно отправил. Пока не запустишь - не узнаешь ничего о работоспособности. Следовательно Тесты! Я понимаю желание сохранить всепоглощающий контроль зависимостей в FB. Он и польза и зло в одном лице. Но видимо тот случай, когда теги зависимостей это уже перегиб. С другой стороны если собирать скрипты через linq-flow-подобный интерфейс, то можно делать это поэтапно и проследить зависимости. Есть у данного подхода много минусов: и не всякий запрос можно написать, и не везде есть такая магия, и ещё всё это вне БД и т.д. Надеюсь развитие СУБД и технологий распределения-хранения-обработки данных со временем станет прозрачнее, и гонять данные между потоками <-> кластером <-> БД будет относительно просто и прозрачно. Но это вероятно нескоро, уж больно велик уровень слоёв абстракций у этой луковицы технологий. </поток сознания> эххх, тесты видели бы Вы глаза начальников которым говориш что тестирование тоже требует написания кода, времени и соотв. денег. Все говорят о тестах а на практике мало ими пользуются. Сколько контор перевидел, одна из десятка пишет тесты. В основном сидят девочки и тупо лазят по программе, в лучшем случае использую какой то план тестирования и ставят отметки что это проверено. И это в Европе, что творится в Азии, индии или СНГ приходится только предполагать. Опыт показывает что 100% покрытие тестами скорее исключение нежели правило. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 17:00 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoОпыт показывает что 100% покрытие тестами скорее исключение нежели правило. 100%... У меня чуть все кости в теле не треснули от натуги :) Основной - деньгосчитающий функционал из прикладной, и ядро фреймворка (своих либ) из общей логики уже хорошо. Всё завит от реалий, но да, часто работа в не-IT-профильных конторах это "Пиши код, ...ть!!!" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 17:25 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmMikhail TchervonenkoОпыт показывает что 100% покрытие тестами скорее исключение нежели правило. 100%... У меня чуть все кости в теле не треснули от натуги :) Основной - деньгосчитающий функционал из прикладной, и ядро фреймворка (своих либ) из общей логики уже хорошо. Всё завит от реалий, но да, часто работа в не-IT-профильных конторах это "Пиши код, ...ть!!!" да и в профильных тоже не все в порядке, поверьте, был там ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 17:26 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoafgmafgm, случайно отправил. Пока не запустишь - не узнаешь ничего о работоспособности. Следовательно Тесты! эххх, тесты видели бы Вы глаза начальников которым говориш что тестирование тоже требует написания кода, времени и соотв. денег. Все говорят о тестах а на практике мало ими пользуются. Сколько контор перевидел, одна из десятка пишет тесты. Из свежего. RSDNОбсуждение автоматизации тестирования в кулуарах любой конференции — как треп студентов-первокурсников о сексуальном опыте. Несколько человек действительно попробовали и им понравилось, кто-то видел в интернете как автоматизируют другие, кому-то рассказали старшекурсники, но большинство до сих пор тестирует руками без перспективы автоматизации в ближайшие несколько лет. Отсюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 17:30 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Коваленко Дмитрий, кстати, раз зашёл, вот IBProvider судя по статьям да - это тесты. Но без этого никак. SQLite Well-commented source code with 100% branch test coverage. И много кто ещё. Это системный (не надо придираться к термину) софт. А по поводу внедрения чего-либо у прикладника, то тут можно только процитировать: "Лучше сделать и просить прощения, чем вечно пытаться выпросить время на рефаторинг/тесты/..." ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 17:48 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmSQLite Well-commented source code with 100% branch test coverage. То есть в SQLite в принципе невозможно найти баг, поскольку они все отловлены ещё на этапе тестирования? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 18:14 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmКоваленко Дмитрий, кстати, раз зашёл, вот IBProvider судя по статьям да - это тесты. Но без этого никак. SQLite Well-commented source code with 100% branch test coverage. И много кто ещё. Это системный (не надо придираться к термину) софт. А по поводу внедрения чего-либо у прикладника, то тут можно только процитировать: "Лучше сделать и просить прощения, чем вечно пытаться выпросить время на рефаторинг/тесты/..." Часто софт пишется дабы по быстрому получить деньги, что будет потом интересует не очень и будующие ошибки даже приветствуются. Я бы сказал даже таких случаев большинство, по крайней мере мне попадалось. Ситуация обычно такая, напишите нам а поддерживать будет наш мальчик. Потому для фирмы основная заработанная сумма это период написания. Вероятность того что будет поддержка не очень высока. Потому в код закладывается необходимость в будующем что бы к вам обратились. Это может быть ошибка или что то что с изменением даты происходит. (напр. в отчете вписывается фиксированная дата или что то подобное). И если потом возникнут проблемы это хорошо, т.к. в договоре не написано что код не может содержать ошибок, а правка это деньги. Вот такая реальность. На фоне всего этого тесты как бы важны не очень. А вот если в конторе свой it отдел который сам все пишет ситуация меняется, хочется писать так, что б потом не дёргали. Потому всегда говорил, свой хороший спец, а лучше несколько, в итоге будет дешевле чем услуги сторонней конторы. Речь понятно о единичных и не маленьких продуктах. В коробочных заложена другая логика. п.с. если спец не заинтересован материально в качественном продукте и ему не дано достаточно времени на разработку, качества не жди. а так можно и 10 шапок сшить, но маленьких. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 18:28 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТо есть в SQLite в принципе невозможно найти баг, поскольку они все отловлены ещё на этапе тестирования? Да нет конечно. Это означает ровно то, что написано и не более. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 21:14 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmЭто означает ровно то, что написано и не более. Если написано "тестами покрыт каждый вариант исполнения кода", то как ещё это можно понимать, кроме как "работа была проверена в абсолютно любой возможной ситуации"?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 21:21 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgm, да бред там написан. Нет конечно можно покрыть тестами все вызовы функций. А вот все варианты описать вряд ли. Ибо подсознательно сочиняющий тесты всегда смотрит на них так. Вот я даю такой результат, на выходе должен быть такой (обычно положительный) результат. А на деле выходит по другому. Поэтому баги всё равно находят. А тесты для багов уже делают по факту его исправления. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 21:24 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovafgmЭто означает ровно то, что написано и не более. Если написано "тестами покрыт каждый вариант исполнения кода", то как ещё это можно понимать, кроме как "работа была проверена в абсолютно любой возможной ситуации"?.. Я не знаток английского, но дословно "покрыто 100% всех ветвлений кода". Криво с точи зрения русского языка, но яснее по сути. И даже если взять твой вариант перевода, то как одно вытекает из другого? Покрытие всеx веток, не означает покрытия всех комбинаций. У многих ошибок есть накопительный эффект. Зная тебя как не глупого человека, могу воспринимать вопрос как троллинг? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 22:25 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
afgmПокрытие всеx веток, не означает покрытия всех комбинаций. Нууууу.... Это как-то слишком сложно для моего понимания. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 22:40 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovafgmПокрытие всеx веток, не означает покрытия всех комбинаций. Нууууу.... Это как-то слишком сложно для моего понимания. это типа Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
И три теста: DoSmth(1, 1), DoSmth(0, 1) и DoSmth(1, 0). Покрыты все ветки, но на DoSmth(0, 0) наступит бо-бо. Кроме того, 100% покрытие не спасет от ситуаций, которые изначально не предусмотрены в коде Код: pascal 1.
- в случае пустого Arr опять же бо-бо, а покрытие 100%. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 15:00 |
|
Создание зависимостей на поля и таблицы входящие в execute statement
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal Плохому учишь Для DoSmth(1,1) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
уже бо-бо..... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 15:24 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1562712]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
104ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 205ms |
0 / 0 |