Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как правильно читать код?)  [new]
VinniL
Member

Откуда:
Сообщений: 42
Добрый день, форумчане.
Дайте совет.

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

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

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

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


Заранее благодарю.

К сообщению приложен файл. Размер - 144Kb
18 июл 18, 15:49    [21581744]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
VinniL,

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

еште шоколад, помогает

автор
Есть процедура на 1500 строк
огооо
18 июл 18, 15:54    [21581765]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2374
на бумажке рисовать структуру/схему
в процедуре писать комментарии
18 июл 18, 16:10    [21581820]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30759
VinniL
В общем, пытаясь разобраться в значении одного поля, раскручиваю одну цепочку, потом вторую, третью, уже забываю первую, потом теряется мысль и через пару часов я окончательно могу запутаться.
Читать, рисовать схемы, комментировать.
Освоить клавиатурные быстрые команды, переключаться между несколькими окнами, в которых писать фрагменты запросов.
Заводить для каждого таска отдельный файл скриптов, в который записывать скрипты, и разные свои мысли по таску, для больших тасков может быть и не один файл, и даже отдельная папка. Я файлы завожу с номером и именем таска из TFS, типа "02712 Отчёт для идиотов №3.sql"
Сдкелать так, что бы вас не отвлекали какое то время, а то есть вариант этой картинки, где мысль обрывается на "Привет, я там послал тебе письмо, потом прочитаешь?"
18 июл 18, 16:45    [21581925]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7396
1. Используйте среду разработки, позволяющую делать свертки кода с подсветкой найденных фрагментов и поддержкой регулярных выражение (SSMS 2016+, например или VS).
2. Используйте форматировщики кода, благо есть бесплатные вроде Apex, которые можно подгонять под себя для инструментов, указанных выше.
3. Комментируйте код и переменные.
18 июл 18, 18:54    [21582291]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7396
4. Используйте метки редактора.
18 июл 18, 18:55    [21582292]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
vikkiv
Member

Откуда: London
Сообщений: 2620
alexeyvg
Читать, рисовать схемы, комментировать.
++
для сложных моделей/структур пока что самое наглядное, ничего лучше не придумали.
класскика в общем, как в школе, там педагоги знают как давать детям знания чтобы понималось и усваивалось с учётом ассоциативных способностей разума.

так что А4/А3 с ручкой или электронный эквивалент - и вперёд.
18 июл 18, 19:12    [21582350]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
mnbvcx
Member

Откуда:
Сообщений: 189
alexeyvg
Я файлы завожу с номером и именем таска из TFS, типа "02712 Отчёт для идиотов №3.sql"

А как версии скрипта отчета учитываете?
Ну, типа, был работающий вар-т, а теперь нужно его доделать/переделать?
Если гит не использовать.
18 июл 18, 19:58    [21582460]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30759
mnbvcx
alexeyvg
Я файлы завожу с номером и именем таска из TFS, типа "02712 Отчёт для идиотов №3.sql"

А как версии скрипта отчета учитываете?
Ну, типа, был работающий вар-т, а теперь нужно его доделать/переделать?
Если гит не использовать.
Разработка в проектах в Visual Studio, все изменения в сорс-контроле (TFS, VSS, а git не использовал, но студия работает и с ним), изменения привязываются к таскам (а таски к проектам, и т.п., но это уже менеджерское)
Всегда можно посмотреть, как и кем менялась процедура для отчёта за последние 5 лет, для чего, и какой начальник попросил эту функциональность...
Всё делать получается намного быстрее.

Я вообще так работаю с конца 90х, ещё не в одной компании не резали базы на-живую :-)
18 июл 18, 20:37    [21582531]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
aleks222
Member

Откуда:
Сообщений: 850
VinniL
Может кто знает правильный и верный способ разбора больших скриптов?


Самый правильно-верный = написать вместо большого скрипта маленький.

1. Один запрос в 1500 строк - это редкость невероятная.
2. А куча запросиков тупо переписывается "по-одному".
19 июл 18, 05:43    [21583190]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1209
aleks222
1. Один запрос в 1500 строк - это редкость невероятная.
У ТСа не запрос, а процедура на 1500 строк.
Microsoft Visio в помощь
VinniL
В общем, пытаясь разобраться в значении одного поля, раскручиваю одну цепочку, потом вторую, третью, уже забываю первую, потом теряется мысль и через пару часов я окончательно могу запутаться.
Разбирайся не "по полям", а "по блокам". Раздели (образно) процедуру на несколько моментов/шагов
19 июл 18, 09:39    [21583602]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
шК0ДЕР,

автор
Microsoft Visio в помощь

чем только народ не развлекается, лишь бы не работать
19 июл 18, 09:42    [21583625]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1209
TaPaK
чем только народ не развлекается, лишь бы не работать

Да, в визио можно много времени потратить рисуя блок-схемы, но я имел в виду простой, легкий в обращении и доступный инструмент, который может помочь в проблеме по сабжу, особенно, если у автора такой запутанный код
19 июл 18, 09:45    [21583645]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
шК0ДЕР
TaPaK
чем только народ не развлекается, лишь бы не работать

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

чем плох мольберт и кисть?
19 июл 18, 09:46    [21583654]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1209
TaPaK
чем плох мольберт и кисть?
Разве заявлял, что они плохи? Совсем нет, я согласен с вышеописанными советами, лишь добавил немного от себя. Пользовался пару раз в похожем случае на этапе проектирования, минус мольберта и кисти в том, что полотно может быть мало и на нем не уместится схема. Прислушиваться или нет - выбор ТСа
19 июл 18, 10:04    [21583745]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
aleks222
Member

Откуда:
Сообщений: 850
шК0ДЕР
aleks222
1. Один запрос в 1500 строк - это редкость невероятная.
У ТСа не запрос, а процедура на 1500 строк.


Эээээ?
У тя, страдалец, в процедурах чай запросов то савсем нема?
А чаво ты туды пишешь?
19 июл 18, 16:04    [21585576]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
msLex
Member

Откуда:
Сообщений: 7730
aleks222
шК0ДЕР
пропущено...
У ТСа не запрос, а процедура на 1500 строк.


Эээээ?
У тя, страдалец, в процедурах чай запросов то савсем нема?
А чаво ты туды пишешь?

Есть разница между одним запросом в 1500 строк и одной процедурой в 1500 строк, в которой 100 запросов по 15 строк.
19 июл 18, 17:12    [21585831]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
msLex,

автор
Есть разница между одним запросом в 1500 строк

такие штуки вообще должны отбраковываться на уровне парсера :) ибо дикость
19 июл 18, 17:16    [21585852]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
TaPaK
msLex,

автор
Есть разница между одним запросом в 1500 строк

такие штуки вообще должны отбраковываться на уровне парсера :) ибо дикость

эххх... текущее ограничение ~256Мб, но есть надежда что план не успеет сделать, но и это можно продлить :)
19 июл 18, 17:19    [21585867]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
пффф, entity framework с легкостью генерит запросы на 600+ строк, в которых простейший CRUD и больше ничего
качественные запросы получаются :)
19 июл 18, 17:50    [21586048]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
VinniL
Member

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

Верно, там не один запрос, а порядка 40, собранных в одной процедуре.
И это все нужно разложить на атомы, а потом снова собрать)
19 июл 18, 18:42    [21586183]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно читать код?)  [new]
VinniL
Member

Откуда:
Сообщений: 42
- блокнот - done
- файл Excel - done
- кисть и полотно - done
- счеты - in progress

:) :) :)

-- PROFIT
19 июл 18, 18:48    [21586195]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить