:: Курилка
Зацените красоту кода на PL/SQL
urfin
Автор

Сообщений: 328
Дата регистрации: 17.08.2004
Голосование
Нравится ?
В настоящий момент голосование приостановлено.
7 участников проголосовало.
писатель идиот 3
 
43%
язык отстой 0
 
0%
ошибка проектирования 0
 
0%
всё норм - я тоже так пишу 0
 
0%
другое 4
 
57%



-- Удалено по требованию правообладателя


------------------




Исправлено 2 раз(а). Последнее : urfin, 23.11.17 07:01
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Слишком много букв, ниасилил.

Вполне возможно что оно написано адекватно, но не исключено что можно и сильно сократить... Если запросы в разных ветках по сути одинаковы, просто чуть разные поля вынимают (а дополнительно "прицепляемые" или НЕ прицепляемые таблицы могут и не влиять на результат), то проще сделать один "избыточный" запрос и потом уже его результат разобрать IF-ами - но это невозможно оценить "чисто по коду". Вообще не очень понятно что автор хотел сделать - везде вижу MAX(id) - это странно. Может свидетельствовать о кривой структуре самой БД - не часто требуется искать "какой-то последний id".

PL/SQL (как, впрочем, и большинство аналогичных по назначению "СУБД языков") - язык как язык. Позволяет писать вполне нормально. Естественно позволяет и феерическое г*но делать.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
urfin
Автор

Сообщений: 328
Дата регистрации: 17.08.2004
Игорь привет.
Такой стиль кодирования меня просто бесит.
Как можно поддерживать подобное ?


------------------




Исправлено 1 раз(а). Последнее : urfin, 22.11.17 08:37
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
CcRaZzY

Сообщений: 9390
Откуда: Одинцово
Дата регистрации: 29.11.2007
Igor Korolyov
Слишком много букв, ниасилил.

Аналогично.


------------------
Девиз по жизни: "п***ц конечно, но погнали."
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Так же как и любое другое

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

Делать же "динамику", т.е. потиху сформировать команду и потом её текст так или иначе исполнить - ну я бы поостерёгся. Хотя оно и сократится, вероятно, по числу буковок раз в 5, но это тоже не будет хорошо...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
CcRaZzY

Сообщений: 9390
Откуда: Одинцово
Дата регистрации: 29.11.2007
Igor Korolyov
Так же как и любое другое
Если не лень, то глубоко вникаешь в логику и переписываешь "красиво". Проблема в том, что в некоторых областях "красиво" невозможно писать - можно только лабать г*нокод - т.к. надо очень быстро и "постоянно изменяемо"

Делать же "динамику", т.е. потиху сформировать команду и потом её текст так или иначе исполнить - ну я бы поостерёгся. Хотя оно и сократится, вероятно, по числу буковок раз в 5, но это тоже не будет хорошо...

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


------------------
Девиз по жизни: "п***ц конечно, но погнали."
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ну потому оно и написано так как написано - чтобы "быстрее" и чтобы меньше думать. Похоже там явно одинаковые запросы встречаются - т.е. вместо составления примитивной матрицы условий и сведения всех одинаково-запросных веток в одну (хотя да, при этом условия в IF/CASE будут скорее всего "ужасными"), автор тупо копипастил запросы...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
sphinx

Сообщений: 31179
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
urfin
Такой стиль кодирования меня просто бесит. Такой стиль кодирования меня просто бесит.

Человек может только перешел с другого языка (например, с Delphi) - и с концепцией толком не разобрался, и свой стиль из старого языка притащил. А подсказать (не унижая) - некому.

Как по мне - автор кода большой молодец. Хм..


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/1 positive
Re: Зацените красоту кода на PL/SQL
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
Согласна с sphinx-ом, мало ли по каким причинам автор кода навоял такую портянку. Нам неизвестны причины и зачем сразу уж так ругаться на предыдущего разраба.


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 1 раз(а). Последнее : Божья_коровка, 14.09.17 18:52
Ratings: 0 negative/1 positive
Re: Зацените красоту кода на PL/SQL
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
возможно было утро второго января


------------------
Мойте ноги, моя ноги вы моете и руки
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
"Я это вам гарантирую!.." (C) [sm128]
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
Vedmak

Сообщений: 5966
Откуда: CiTY
Дата регистрации: 30.10.2003
Зачастую первая версия ТЗ весьма стройна (как невеста перед свадьбой). Все пожимают руки и хлопают по плечу исполнителей. Все улыбаются.

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

И Петрович (Иванычь, Артемичь...) начинает ваять, ибо "...спасай! Нас всех закопают если...". Ну а дальше уже как получится... спас или не спас история умалчивает, а код попал к коллеге urfin-у. Затем и тут стал замечен.

P.S. Кстати... за время истории и невеста уже не столь стройна как перед свадьбой.

P.P.S. А в оригинале кода отступы были или Copy+Past скушал?


------------------
Говорить стоит лишь для тех, кто слушает.




Исправлено 2 раз(а). Последнее : Vedmak, 14.09.17 20:11
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
urfin
Автор

Сообщений: 328
Дата регистрации: 17.08.2004
sphinx
Человек может только перешел с другого языка (например, с Delphi) - и с концепцией толком не разобрался, и свой стиль из старого языка притащил. А подсказать (не унижая) - некому.
Как по мне - автор кода большой молодец. Хм..

Это кусочек функции из пакета в 7000 строк и таких пакетов многие десятки (если не сотни).


------------------




Исправлено 4 раз(а). Последнее : urfin, 22.11.17 08:36
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
descent52_tmp

Сообщений: 214
Откуда: Саров
Дата регистрации: 20.11.2014
urfin
Автор кода "софтвеа архитектор" - одна из ключевых фигур в конторе.
urfin, 'постучите' этого 'автора' клавиатурой по 'голове' так, чтобы просветление у него настало. И продолжайте 'стучать', пока это просветление не настанет.

25 лет никем неконтролируемо 'кодить'! 'Прикопай' этого 'программиста'!

P/S слова в скобках замени на те, какое тебе воспитание и восприятие ситуации позволяет.



Исправлено 1 раз(а). Последнее : descent52_tmp, 15.09.17 10:33
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Лишний образец, насколько логичнее и лучше многого существующего синтаксис Фокспро.
Все эти then, ;, и ряд прочих совершенно избыточных смысловых моментов, какой баран придумал столько лишних букв пихать в очевидные и без того конструкции, другие же передирали потом это же уже в свои другие языки. [sm128]


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В фокспро всё абсолютно точно так же (через ж*пу) пишется - при желании автора, конечно же. И, если чо, THEN как ключевое слово описан даже в хелпе По поводу ; в pl/sql или каком c# - где это символ завершения команды. Так вот они мне там гораздо больше симпатичны (не говоря уж про внутристрочный комментарий /* тут он */ ) чем в фоксе - это ж с какого бодуна надо было придумать ставить символ-разделитель, в качестве "соединителя" частей команды на разных строках
Я уж не говорю про "лаконичность" фоксового синтаксиса в других случаях - например банальное описание класса. Все эти DEFINE, PROC/ENDPROC вместо простых скобок - очень сокращает количество букв
Если что, то сишный стиль - что для if что для циклов - гораздо удобнее. Там вообще нет никаких end_чего_то_там. Просто скобкой блок закрыл (при чём ЛЮБОЙ блок) и всё.

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

Проблема (если она есть - код мне читать недосуг) лишь в логической организации кода. Если там на самом деле идентичные запросы в разных ветках, или если путём несложных модификаций часть из этих запросов может быть сведена к одному/двум "общим", или если там избыточные ("глупые/тривиальные") проверки в IF-ах - вот это проблема. А все прочее - от глубины вложенности IF-ов до просто "объёма" - далеко не критерий "г*внистости" этого кода.

P.S. К примеру, у нас есть в оракле триггера аудита, так там как раз "километровые" куски "почти повторяющегося" кода - да ещё и записан он по сути в одну строку Просто потому что данный код генерируется автоматом (другой программкой, кстати тоже на pl/sql написанной).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
По большому счету мы не знаем всей предыстории данного кода и его дальнейшего предназначения.

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

Используя такой подход при желании можно генерировать код под разные платформы на основе одной структуры.
Так что тут еще вопрос, кто более продвинут.
Ratings: 0 negative/1 positive
Re: Зацените красоту кода на PL/SQL
Гулин Федор

Сообщений: 4640
Откуда: Минск
Дата регистрации: 24.10.2002
читабельность конечно слабовата
но имхо проще найти форматтер и переформатировать под себя - дело 1-2 минут

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

зы иметь дело с таким кодом я бы не хотел
но код подправить легче чем БД - если там косяки то уже ничего не исправишь даже с помощью суперкода


зы да уж архитектор - выходит понятие многозначное
а раз самому не надо сопровождать код - ну тогда ясно
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
CcRaZzY

Сообщений: 9390
Откуда: Одинцово
Дата регистрации: 29.11.2007
urfin
sphinx
Человек может только перешел с другого языка (например, с Delphi) - и с концепцией толком не разобрался, и свой стиль из старого языка притащил. А подсказать (не унижая) - некому.
Как по мне - автор кода большой молодец. Хм..

Автор кода "софтвеа архитектор" - одна из ключевых фигур в конторе.
Пишет подобный код более 25 лет. Всё без камментов и всё спихивается потом подчинённым,
поскольку писатель сразу теряет интерес к написанному роману.

P.S. Это кусочек функции из пакета в 7000 строк и таких пакетов многие десятки (если не сотни).

Мммммм..... Какой-то архитектор у вас совсем не архитектурный

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

А так - это не архитектор уже получается, а человек без определенного рода занятия.


------------------
Девиз по жизни: "п***ц конечно, но погнали."
Ratings: 0 negative/0 positive
Re: Зацените красоту кода на PL/SQL
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
CcRaZzY
человек без определенного рода занятия.
То есть БОРЗ(ый)?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 19 (Гостей: 19)

© 2000-2024 Fox Club 
Яндекс.Метрика