powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / PBM + DDL говнокод
54 сообщений из 54, показаны все 3 страниц
PBM + DDL говнокод
    #39597374
Kopilogus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, доброго времени суток!

Поделитесь опытом, кто каким образом ограничивает пользователей БД от написания плохого t-sql кода?

На вскидку, есть простые очевидные рекомендации , но к сожалению разработчики их не всегда соблюдают, соответсвенно стоит задача - минимизировать влияние плохого кода на производительность DB и сервера в целом.
К примеру - нельзя создать процедуру в которой используется ORDER BY, GROUP BY, SELECT *, DISTINCT и т.д.

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

С политиками именования DDL объектов проблем не возникло, а вот с примером выше реализовать рабочую схему ON CHANGE не удалось.

Есть идеи?
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597386
Kopilogus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, также приветствуются прмеры "как не надо делать", для пополнения коллекции шаблонов..
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597422
Кусочек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KopilogusК примеру - нельзя создать процедуру в которой используется ORDER BY, GROUP BY, SELECT *, DISTINCT и т.д.



А как же -

Код: sql
1.
2.
WHERE EXISTS  
(SELECT * 



Ну и по Вашей же ссылке:

Use GROUP BY, ORDER BY, or DISTINCT in your query only when absolutely necessary.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597424
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запретить разработчикам использование ORDER BY, GROUP BY, SELECT *, DISTINCT и т.д. без отдельного высочайшего разрешения?
Это конгениально!
Достал попкорн, уселся поудобнее.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597433
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.ЕвгенийЗапретить разработчикам использование ORDER BY, GROUP BY, SELECT *, DISTINCT и т.д. без отдельного высочайшего разрешения?
Это конгениально!
Достал попкорн, уселся поудобнее.
Ну select * запретить вполне можно. Насчет остального - улыбнуло.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597440
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KopilogusК примеру - нельзя создать процедуру в которой используется ORDER BY, GROUP BY, SELECT *, DISTINCT и т.д.

Почему нельзя? А как вы собираетесь выводить сгруппированный результат. Или использовать TOP, OFFSET или оконные функции без ORDER BY ?
Автор статьи имел ввиду что не нужно их лепить везде где хочется, а только исходя их условий задач. А такие задачи каждая вторая будут.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597441
Kopilogus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны.ЕвгенийЗапретить разработчикам использование ORDER BY, GROUP BY, SELECT *, DISTINCT и т.д. без отдельного высочайшего разрешения?
Это конгениально!
Достал попкорн, уселся поудобнее.
Ну select * запретить вполне можно. Насчет остального - улыбнуло.

Коллеги, это всего лишь пример, сабж - можно ли реализовать при помощи политик управления?
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597443
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KopilogusПоделитесь опытом, кто каким образом ограничивает пользователей БД от написания плохого t-sql кода?

На вскидку, есть простые очевидные рекомендации , но к сожалению разработчики их не всегда соблюдаютЭэээ, как можно сделать это автоматически? :-)

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

Всякие анализаторы кода помогут в настолько малом числе случаев, что ИМХО их применение будет сильно вредить, успокаивая "всё хорошо".

Квалифицированный специалист увидит, что человек пишет кривой код, и его не нужно брать с испытательного срока. И он должен этим управлять, даже если вы напишете триггер ,который ругнётся (в 5% случаев) на кривой код и не даст его вставить.

Т.е., затраты на "анализатор" будут, а прибыли в компанию с этих затрат - нет. Так какой смысл?
KopilogusК примеру - нельзя создать процедуру в которой используется ORDER BY, GROUP BY Ээээ, как можно не делать ORDER BY ,если в задании написано "сделать ORDER BY"? Или вы про то, что делают ORDER BY тогда, когда этого не надо? Тогда способ борьбы описан выше.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597447
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgKopilogusПоделитесь опытом, кто каким образом ограничивает пользователей БД от написания плохого t-sql кода?

На вскидку, есть простые очевидные рекомендации , но к сожалению разработчики их не всегда соблюдаютЭэээ, как можно сделать это автоматически? :-)

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

Всякие анализаторы кода помогут в настолько малом числе случаев, что ИМХО их применение будет сильно вредить, успокаивая "всё хорошо".

Квалифицированный специалист увидит, что человек пишет кривой код, и его не нужно брать с испытательного срока. И он должен этим управлять, даже если вы напишете триггер ,который ругнётся (в 5% случаев) на кривой код и не даст его вставить.

Т.е., затраты на "анализатор" будут, а прибыли в компанию с этих затрат - нет. Так какой смысл?
KopilogusК примеру - нельзя создать процедуру в которой используется ORDER BY, GROUP BY Ээээ, как можно не делать ORDER BY ,если в задании написано "сделать ORDER BY"? Или вы про то, что делают ORDER BY тогда, когда этого не надо? Тогда способ борьбы описан выше.Добавлю, что если уж заговорили о технических средствах избавления от говнокода, то начать нужно с:
- средств разработки,
- хранения исходников в базе версионного контроля,
- привязки изменений к требованиям,
- тестировании,
- автоматических ночных сборках,
- деплоях,
- работать с цепочкой разработка - стабильный тест - продакшен.
и т.п.

А то народ зачастую правит код в продакшене прямо внутри базы (практически как в экзешнике в кодах), и потом рассуждает, как избавиться от говнокода :-)
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597451
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kopilogusможно ли реализовать при помощи политик управления?
ну конечно же нет.
вы вот попробуйте сперва свои хотелки формализовать:

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

order by нельзя, но вообще-то можно, если это часть top-а
или же это вставка в кластерный с целью минимального логирования

и т.д.

вы в состоянии всю эту логику запихнуть в политику?
это ж прям парсер надо свой писать,
причем офигительный такой парсер...
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597454
Kopilogus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-CiteKopilogusК примеру - нельзя создать процедуру в которой используется ORDER BY, GROUP BY, SELECT *, DISTINCT и т.д.

Почему нельзя? А как вы собираетесь выводить сгруппированный результат. Или использовать TOP, OFFSET или оконные функции без ORDER BY ?
Автор статьи имел ввиду что не нужно их лепить везде где хочется, а только исходя их условий задач. А такие задачи каждая вторая будут.

Это уже другой вопрос, всегда можно временно отключить проверки.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597460
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123вы в состоянии всю эту логику запихнуть в политику?
это ж прям парсер надо свой писать,
причем офигительный такой парсер...И, главное, этим не убрать остальные 90% мест, где можно наговнокодить. Это же только некоторые простые правила.
То есть это не избавит от необходимости читать код, учить, увольнять и т.д. А при контроле "глазами" все перечисленные ляпы будет видно моментально, так зачем делать этот анализатор?
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597461
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgЭэээ, как можно сделать это автоматически? :-)

в студии можно,
если проверок не хватает - можно написать свою, в инете есть примеры
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597468
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикесли проверок не хватает - можно написать свою, в инете есть примеры
так мы как раз про это самое,
про "написать свою"
вы напишите плиз свою, особенно ту, что оценит,
действительно ли в данном коде не нужен order by.
а то на словах-то все можно
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597471
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgИ, главное, этим не убрать остальные 90% мест, где можно наговнокодить. Это же только некоторые простые правила.
То есть это не избавит от необходимости читать код, учить, увольнять и т.д. А при контроле "глазами" все перечисленные ляпы будет видно моментально, так зачем делать этот анализатор?
я думаю, ТС и Критик хорошо споются.
один в состоянии формализовать задачу
и предоставить исчерпывающий список потенциально говнокодных конструкций,
ну а второй запросто это выразит кодом ;)
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597517
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kopilogus,

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

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

Не оспаривая правила которые Вы привели, замечу, что 99% проблем лежит в другом.

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

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

Короче, просто помогите/обясните людям и будет Вам счастье.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597525
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KopilogusК примеру - нельзя создать процедуру в которой используется GROUP BY, DISTINCT и

GROUP BY, DISTINCT то чем вам не угодили?
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597527
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Us,

а теперь представьте, что разработчиков у вас 50 штук (у меня примерно столько), добавьте сюда текучку кадров - и вы утоните в этих объяснениях
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597528
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КритикalexeyvgЭэээ, как можно сделать это автоматически? :-)

в студии можно,
если проверок не хватает - можно написать свою, в инете есть примерыЯ писал про другое. Такое да, можно, и есть много средств для этого.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597531
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kopilogusесть простые очевидные рекомендации Да уж...
Редкостный бред.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597536
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmKopilogusесть простые очевидные рекомендации Да уж...
Редкостный бред.Ладно, многие из них выглядят вполне разумно. Только если без формализма, и понимая, "почему".
Вот ещё есть, пошире списочек: https://www.dbrnd.com/2016/12/database-design-common-practices-for-database-developers-and-application-developers/

Но смысл предложения ТС в другом - можно нанять плохих разработчиков, уволить хороших, настроить средство автоматического запрета говнокода, и получить профит.
Так вот, идея неудачная. Не получиться так сделать.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597541
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgЛадно, многие из них выглядят вполне разумно. Только если без формализма, и понимая, "почему".
Вот ещё есть, пошире списочек: https://www.dbrnd.com/2016/12/database-design-common-practices-for-database-developers-and-application-developers/
При желании можно раскритиковать любые рекомендации, включая указанные.
alexeyvgНо смысл предложения ТС в другом - можно нанять плохих разработчиков, уволить хороших, настроить средство автоматического запрета говнокода, и получить профит.
Так вот, идея неудачная. Не получиться так сделать.
Я думаю, это Админ Роскомнадзор.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597548
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvginvmпропущено...
Да уж...
Редкостный бред.Ладно, многие из них выглядят вполне разумно.
авторAvoid Using GROUP BY , ORDER BY, and DISTINCT
Avoid using GROUP BY , ORDER BY, and DISTINCT as much as possible

Reason: When using GROUP BY, ORDER BY, or DISTINCT, SQL Server engine creates a work table and puts the data on the work table. After that, it organizes this data in work table as requested by the query, and then it returns the final result.
ну вот это вот уж ни в какие ворота не лезет.
неужели же кто-то станет писать group by,
только потому, что ему нечего делать?
ведь или тебе нужны агрегаты,
или у тебя просто будет неверный результат,
схлопнуть группы в строки и не поменять при этом результат -- это как?
не полениться перечислить все нужные колонки еще раз, но уже не в SELECT,
а в GROUP BY?
это типа всем назло?
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597559
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgЛадно, многие из них выглядят вполне разумно.Выглядят может и разумно, только не для оптимизации производительности.
А в причинах описаны, в большинстве, чьи-то фантазии.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597599
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmalexeyvgЛадно, многие из них выглядят вполне разумно.Выглядят может и разумно, только не для оптимизации производительности.
А в причинах описаны, в большинстве, чьи-то фантазии.Вообще да, неквалифицированность автора прямо выпирает, если приглядеться :-)
Что то разумно, да, но в целом, как будто автор совсем начинающий.

Впрочем, понятно, если посмотреть на профиль - опытный программист, с неслабым самомнением, но совсем не специалист по MSSQL, высказывает о нём своё мнение, пишет "правила" (!). Я встречал таких, бывало.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597606
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КритикAlexander Us,

а теперь представьте, что разработчиков у вас 50 штук (у меня примерно столько), добавьте сюда текучку кадров - и вы утоните в этих объяснениях

Не воспринимайте буквально.
Я имел ввиду, что элементарную квалификацию пользователей и организацию работы не заменить сводои догм.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597610
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvginvmпропущено...
Да уж...
Редкостный бред.
Вот ещё есть, пошире списочек: https://www.dbrnd.com/2016/12/database-design-common-practices-for-database-developers-and-application-developers/


Use Natural Primary key rather than Surrogate Primary key . Natural Primary keys are keys base on an external meaningful data. Surrogate Primary key are keys base on an auto-increment number or values which have no meaning outside the system

хм всегда считал ровно Наоборот (конечно есть исключения )
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597613
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы а с какого это рожна пользователи могут писать SQL-код ?
ну т.е кто такие эти юзеры - для чего им это ?

ну т.е случаи конечно разные бывают - так и наверно рецепты как уменьшить могут быть разными
просто вот те юзеры к-е были у меня в принципе писать SQL не умели.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597655
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, почему пользователи пишут (т.е. далёкие от специальных знаний люди) запросы.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597745
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федорalexeyvgпропущено...

Вот ещё есть, пошире списочек: https://www.dbrnd.com/2016/12/database-design-common-practices-for-database-developers-and-application-developers/


Use Natural Primary key rather than Surrogate Primary key . Natural Primary keys are keys base on an external meaningful data. Surrogate Primary key are keys base on an auto-increment number or values which have no meaning outside the system

хм всегда считал ровно Наоборот (конечно есть исключения )Есть 2 вида проектировщиков баз данных. Одни ...
:-)
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597748
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsКритикAlexander Us,

а теперь представьте, что разработчиков у вас 50 штук (у меня примерно столько), добавьте сюда текучку кадров - и вы утоните в этих объяснениях

Не воспринимайте буквально.
Я имел ввиду, что элементарную квалификацию пользователей и организацию работы не заменить сводои догм.Понятно, что, эти 50 штук разработчиков будут разбираться в ограничениях как в "чёрном ящике"?
- "Вот так написали, не прокатило, ошибка. Попробуем так... А вообще, для какого сервера БД мы пишем, где про него можно прочитать?"
Понятно, что нужно какое то описание, + квалификация, + старшие (а то один специалист на 50+ неучей выглядит странно, он с некоторыми может даже за год не поговорить не разу).
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597772
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgВообще да, неквалифицированность автора прямо выпирает, если приглядеться :-)
Что то разумно, да, но в целом, как будто автор совсем начинающий.

Впрочем, понятно, если посмотреть на профиль - опытный программист, с неслабым самомнением, но совсем не специалист по MSSQL, высказывает о нём своё мнение, пишет "правила" (!). Я встречал таких, бывало.
авторI have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technologyЭто наверное по 1 году на каждую технологию. Очень опытный эксперт. С сертификатом от Oracle без знания Oracle...
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597779
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MindalexeyvgВообще да, неквалифицированность автора прямо выпирает, если приглядеться :-)
Что то разумно, да, но в целом, как будто автор совсем начинающий.

Впрочем, понятно, если посмотреть на профиль - опытный программист, с неслабым самомнением, но совсем не специалист по MSSQL, высказывает о нём своё мнение, пишет "правила" (!). Я встречал таких, бывало.
авторI have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technologyЭто наверное по 1 году на каждую технологию. Очень опытный эксперт. С сертификатом от Oracle без знания Oracle...Я писал про автора первых "рекомендаций", Nikhil Devre. "I work as a Senior Application Architect."

Второй, ANVESH PATEL, про которого вы пишите, всё таки специалист по БД.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597815
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Базы данных только как хранилище данных. Они медленные, запросы выполняются долго, хотя должны вернуть пару строк.. Лучше напишем кеширование, запихнем в Redis. Обернем 100500 сервисов, положим в ОЗУ, не то что ваш SQL.

Примерно так рассуждают люди которые не хотят вникать в тонкости MSSQL, потому что надо за пол года продать 5 сайтов, 10 сервисов и пару приложений, некогда разбираться.

Вот и 50 разработчиков и текучка...
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597825
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgMindпропущено...

пропущено...
Это наверное по 1 году на каждую технологию. Очень опытный эксперт. С сертификатом от Oracle без знания Oracle...Я писал про автора первых "рекомендаций", Nikhil Devre. "I work as a Senior Application Architect."

Второй, ANVESH PATEL, про которого вы пишите, всё таки специалист по БД.Возможно, никогда о нем не слышал, да и рекомендации из разряда ни о чем - "Анализируйте ваши запросы на производительность"...
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39597828
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgAlexander Usпропущено...


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

инструкции у нас есть, но их читают только неудачники (а может просто трудно сразу запомнить сотни страниц описаний), а так раз выскочила ошибка - и сразу с описанием, что сделано неправильно
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598178
Kopilogus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за отзывы!

В нашем случаем разрабов под сотню, и как писали коллеги, текучка персонала также имеет место быть.
Обучать - да нужно, но в наши задачи как DBA не входят, а вот геморрой и последствия после кодеров разгребаем по полной..
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598200
Олегон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можете ещё посмотреть на SQL Code Guard, как интсрумент анализа кода на всякие типичные огрехи и best practices.
Теперь эту утилиту выкупил Redgate, но пока ещё бесплатна.

https://www.red-gate.com/products/sql-development/sql-code-guard/
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598249
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KopilogusВ нашем случаем разрабов под сотню, и как писали коллеги, текучка персонала также имеет место быть.
Обучать - да нужно, но в наши задачи как DBA не входят, а вот геморрой и последствия после кодеров разгребаем по полной..
Забавное местечко, в котором админам позволят блокировать разработку.
На самом деле вам нужно найти (или помочь создать) релиз-мастера и все последствия разруливать с ним. Желательна практика ревью кода. Теоретически есть и еще более изощренные варианты - вплоть до аттестации, по результатам которой отсеются геморройные кодеры.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598273
Гигабайт Мегабайтович Килобайтов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KopilogusСпасибо всем за отзывы!

В нашем случаем разрабов под сотню, и как писали коллеги, текучка персонала также имеет место быть.
Обучать - да нужно, но в наши задачи как DBA не входят, а вот геморрой и последствия после кодеров разгребаем по полной..
а админов сколько? ))
таки в вашем случае напрашивается ревью кода разработчиками, а после админами.
Но таки ради "ускорения" фиг так сделают..
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598276
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикalexeyvgпропущено...
Понятно, что, эти 50 штук разработчиков будут разбираться в ограничениях как в "чёрном ящике"?
- "Вот так написали, не прокатило, ошибка. Попробуем так... А вообще, для какого сервера БД мы пишем, где про него можно прочитать?"
Понятно, что нужно какое то описание, + квалификация, + старшие (а то один специалист на 50+ неучей выглядит странно, он с некоторыми может даже за год не поговорить не разу).

инструкции у нас есть, но их читают только неудачники (а может просто трудно сразу запомнить сотни страниц описаний), а так раз выскочила ошибка - и сразу с описанием, что сделано неправильноВот, в этом и проблема - инструкций нет (раз их никто не читает), желания (или денег) на вменяемые инструкции и вменяемое управление нет, масса бесполезных (но самых высокооплачиваемых) людей (которые должны были бы управлять и писать) радостно пилят деньги вместо работы, ну а с разработчиков, нанятых по остаточному принципу, чего спрашивать? поют как умеют.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598326
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.ЕвгенийНа самом деле вам нужно найти (или помочь создать) релиз-мастера и все последствия разруливать с ним. Желательна практика ревью кода

это просто кинуть горячий мячик "на ту сторону", и в 99% случаев ничего не будет исправлено по разным причина,
а код-ревью - это почти х2 трудозатрат на разработку, мало мест, где такое согласуют, ведь все должно быть реализовано еще вчера
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598355
Гигабайт Мегабайтович Килобайтов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик.ЕвгенийНа самом деле вам нужно найти (или помочь создать) релиз-мастера и все последствия разруливать с ним. Желательна практика ревью кода

это просто кинуть горячий мячик "на ту сторону", и в 99% случаев ничего не будет исправлено по разным причина,
а код-ревью - это почти х2 трудозатрат на разработку, мало мест, где такое согласуют, ведь все должно быть реализовано еще вчера
как я и написал - ради "ускорения" фиг разрешат))
если правильно поставлен процесс разработки - вопрос совсем не больших денег и не большого времени. Но очень большого начального администрирования.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598360
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикэто просто кинуть горячий мячик "на ту сторону"
Пусть так. Но контроль качества кода принадлежит именно "той стороне".
Критикв 99% случаев ничего не будет исправлено по разным причина (...) мало мест, где такое согласуют
Вы явно сгущаете краски.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598364
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гигабайт Мегабайтович Килобайтов таки в вашем случае напрашивается ревью кода разработчиками, а после админами
Ревью кода админами - это вообще одна из самых странных вещей, про которые мне приходилось слышать. Такое где-то бывает? Может, там админов перевести в разработчики, и вся недолга?
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598430
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныГигабайт Мегабайтович Килобайтов таки в вашем случае напрашивается ревью кода разработчиками, а после админами
Ревью кода админами - это вообще одна из самых странных вещей, про которые мне приходилось слышать. Такое где-то бывает? Может, там админов перевести в разработчики, и вся недолга?Как сказать, конечно, если человек делает ревью, то есть "разрабатывает", то он "разработчик", но иногда такие люди называются DBA, и это общемировая практика.
Т.е. бывает, часть обязанностей DBA - разрабатывать код для СУБД (более сложный, чем простые селекты, и более нестандартный, чем отчётные процедуры), попутно консультировать разработчиков, ну и делать ревью их кода.
Не всегда так, но есть, можно посмотреть описание вакансий на зарубежных сайтах.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598441
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критика код-ревью - это почти х2 трудозатрат на разработку, мало мест, где такое согласуют, ведь все должно быть реализовано еще вчераПарное программирование - это "почти х2 трудозатрат", и действительно редко встречается, а ревью как раз стоит немного.
Я не работал за много лет ни в одном месте, где бы оно не делалось (хотя видел такое).
Что бы кто то опытный, или начальник, никогда не взглянул на код джуниора, или не поправил бяки, если всё равно делает модификацию этого кода? Это надо очень сильно накласть на качество кода, продукта, профессию, самоуважение, и всё такое :-)
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598697
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Все завист от того, что вы понимаете под ревью, если глянуть правильность наименований объектов, то это быстро, а если смотреть логику процедуры из нескольких тысяч строк, то может получиться и больше, чем х2
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598732
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KopilogusК примеру - нельзя создать процедуру в которой используется ORDER BY, GROUP BY, SELECT *, DISTINCT и т.д.

Автор предлагает пересылать всю таблицу в несколько мега или даже гигабайт на какой-то другой сервер, что бы сделать там GroupBy или Distinct ?)

Рекомендация похожа на те, в которой авторы рекомендуют обращаться к полям не по имени, а по индексу.
т.е.
Код: sql
1.
2.
DataSet.FieldByName('UserName') - не правильно.
DataSet.Fields[7] - с точки зрения авторов правильней, с точке зрения производительности)



Если в вашем ПО заметна разница в скорости между индексом и именем - то это повод задуматься, что бы сменить разработчика.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598748
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикalexeyvg,

Все зависит от того, что вы понимаете под ревью, если глянуть правильность наименований объектов, то это быстро, а если смотреть логику процедуры из нескольких тысяч строк, то может получиться и больше, чем х2
ревью кода не должно нести проверку "бизнесовости" кода, только с точки зрения правильности написания sql-кода, если более опытный разработчик увидел явный ляп - то конечно на него обратить внимание, но основное - правильность написания sql-кода, и вот тут очень помогает регламент . "Бизнесовость" кода должно проверять тестирование. или таки у вас и на этом "экономят"? ))
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598803
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно вспомнить еще окаменелое творение Joe Celko's - SQL Programming Style
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598938
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикalexeyvg,

Все завист от того, что вы понимаете под ревью, если глянуть правильность наименований объектов, то это быстро, а если смотреть логику процедуры из нескольких тысяч строк, то может получиться и больше, чем х2Мы говорили про "автоматический контроль на простокод"?

Вы не сможете триггерами проверить "логику процедуры на несколько тысяч строк", и её соответствие бизнес-логике из "требований".

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

Затраты на ревью и контроль можно регулировать, понятно, что если это условно "ракета", то контроля может быть много, а если это обычный рядовой код от джуниора, то проверка на "вменяемость" не займёт много времени, к тому же реально её достаточно делать выборочно, и покажет она несравнимо больше автоматического контроля.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39598954
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daoно основное - правильность написания sql-кода, и вот тут очень помогает регламент+1
Только он должен быть правильный, а не "просто трудно сразу запомнить сотни страниц описаний"

Например, разработчики обычно берут пример и переделывают, вместо того, что бы писать с нуля. Так сделайте шаблоны, + отмечайте "эталонные" процедуры (и другой код) каким то образом.

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

То есть, собственно, тут тонкость в том, что, оказывается, руководители, аналитики, архитекторы тоже могут быть квалифицированными и тоже могут участвовать в проекте! Представляете? А не просто где то "быть", то есть вроде они есть, но непонятно что это такое, ну и при большом желании можно нарыть папочки, куда наваливаются кучки файликов с никому не нужными результатами их жизнедеятельности.
...
Рейтинг: 0 / 0
PBM + DDL говнокод
    #39599654
Kopilogus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОлегонМожете ещё посмотреть на SQL Code Guard, как интсрумент анализа кода на всякие типичные огрехи и best practices.
Теперь эту утилиту выкупил Redgate, но пока ещё бесплатна.

https://www.red-gate.com/products/sql-development/sql-code-guard/

Спасибо! Ее используем активно ))
...
Рейтинг: 0 / 0
54 сообщений из 54, показаны все 3 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / PBM + DDL говнокод
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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