Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
fraks Я уже стар мозгами. Если я как-то обошелся без лишних неведомых мне свистоперделок - значит оно мне и не нужно. Не, надо пробовать. Я вот CNPack терпеть не могу: попробовал. Долго не пользовался GExperts, тоже пробовал ибо. Сейчас я Gexperts использую, т.к. в нем есть годный автоформаттер. Но всё остальное смело бы выкинул... хи, идея, вычистить Gexperts. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:14 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам fraks> Тут наверное было что-то умное, но я не понял. Если не лень - распиши. Это форум без тега SRC скушал пробелы. Я имел в виду привычку выравнивать пробелами простыню присвоения переменных, полей и т.п. - так читать удобнее. :) А, это да, это обязательно. Все что можно выровнять - обязательно выровняю. Во многих случаях это сразу показывает где ошибка. К сожалению, некоторые языки не позволяют такого. При написании bat-файлов очень не хватает такой возможности, выровнять при присвоении переменным по знаку =. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:15 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
softwarer fraks Я конечно тоже использую такой метод "испуганного программирования", но исключительно когда эта строка - первая и единственная такого рода в процедуре. Это попытка остаться немножко беременной. Если такая строка хороша как первая в процедуре, отсюда по индукции следует, что она хороша и в других случаях. Категорически не согласен. Характерный пример у меня - обработчик события из контекстного меню грида. Если нет выделенной строки (фокус не выставлен или нет ни одной записи) то убегаем. Сразу видно что процедура далее не будет выполняться. Если убегание где-то в середине, да еще и не одно то это фигово т.к. нет места где производится "по окончании процедуры", ибо этих окончаний образуется целая куча. И при попытке дописать в процедуру еще одну обработку можем пролететь, ибо из нее вышли раньше. softwarer fraks Если такие убегания встречаются внутри, да еще неоднократно - это не есть хорошо. Это есть хорошо. И точно всяко лучше, чем попытки обойтись без них. Не всегда попытки обойтись заканчиваются красиво, но множественные выходы - исключительная, крайняя мера, а не обычное решение. softwarer Кстати, задай себе простой вопрос: используешь ли ты raise в середине процедур? Если да - значит кривишь душой, ибо это точно такое же убегание, только более масштабное. Если нет.... ну да, ну да, настоящие мастера исключений не используют. Только коды ошибок, только хардкор. Хм... для меня raise это примерно как транзакция. Где оно нужно - там оно нужно и это не вопрос красоты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:22 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
fraks При написании bat-файлов очень не хватает такой возможности, выровнять при присвоении переменным по знаку =. Используй PowerShell. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:24 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
ъъъъъ fraks Я уже стар мозгами. Если я как-то обошелся без лишних неведомых мне свистоперделок - значит оно мне и не нужно. Не, надо пробовать. Я вот CNPack терпеть не могу: попробовал. Долго не пользовался GExperts, тоже пробовал ибо. Сейчас я Gexperts использую, т.к. в нем есть годный автоформаттер. Но всё остальное смело бы выкинул... хи, идея, вычистить Gexperts. :) У меня установлен GExperts, с незапамятных времен. С тех когда было не лень изучать что-то новое :) Сейчас даже не могу сказать что именно оттуда использую, ибо все через шорткаты. - Комментирование/расскоментирование блока строк. - TODO List - Procedure List Форматтер не использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:27 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
ъъъъъ fraks При написании bat-файлов очень не хватает такой возможности, выровнять при присвоении переменным по знаку =. Используй PowerShell. PowerShell прикольная штука, но это нужно дополнительно изучать, и плюс там проблемка с запуском скрипта. Если все по феншую то скрипт должен иметь подпись чтобы запускаться. Или нужно полностью отключить защиту от запуска. Отключить что-то меня стремает, а подписывать - какая-то очень непростая песня, решил что пока обойдусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:32 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
fraks ъъъъъ пропущено... Используй PowerShell. PowerShell прикольная штука, но это нужно дополнительно изучать, и плюс там проблемка с запуском скрипта. Если все по феншую то скрипт должен иметь подпись чтобы запускаться. Или нужно полностью отключить защиту от запуска. Отключить что-то меня стремает, а подписывать - какая-то очень непростая песня, решил что пока обойдусь. Ага, а bat - файлы неподписанные не стремает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:44 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
fraks Категорически не согласен. Да наздоровье. Просто это несогласие чисто эмоциональной природы, без опоры на факты. fraks Характерный пример у меня - обработчик события из контекстного меню грида. Если нет выделенной строки (фокус не выставлен или нет ни одной записи) то убегаем. Сразу видно что процедура далее не будет выполняться. Теперь с позиций этого рассуждения раскритикуй вот этот код и расскажи, чем ужасен выход из второй строки: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. fraks И при попытке дописать в процедуру еще одну обработку можем пролететь При любом дописывании в процедуру можно пролететь. Поэтому нужно думать, что и куда дописываешь, проверять корректность. Множественные точки выхода здесь ничего не меняют, тем более, как мы уже выяснили, они у тебя по факту всё равно есть - через raise. "Единая точка выхода" - это рудимент теории структурного программирования, смысл которого с тех пор потерялся. Когда об этом писал Дейкстра, под этим имелось в виду следующее: в середине структурного блока не должно быть GOTO куда-то в другие части программы. То есть не должно быть так, что из блока ты можешь уйти в A, в Б, в В и в Г, точка выхода должна быть одна. exit - это всего лишь goto на последний end процедуры. То есть конструкции Первая Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. вторая Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. и третья Код: pascal 1. 2. 3. 4. 5. 6. полностью эквиваленты и соответствуют подходу структурного программирования. Просто третья из них наиболее читаемая и удобная для восприятия. fraks Хм... для меня raise это примерно как транзакция. Где оно нужно - там оно нужно и это не вопрос красоты. Это же верно и для других конструкций, в том числе exit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:47 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
fraks softwarer пропущено... Код: pascal 1. 2. 3. 4. Я конечно тоже использую такой метод "испуганного программирования", но исключительно когда эта строка - первая и единственная такого рода в процедуре а я очень сильно люблю именно этот метод. позволяет избавиться от излишней вложенности условий Сразу отсёк на входе в подпрограмму то, что не соответствует условиям, и пишешь только функциональный код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 15:58 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
bk0010 YuRock Это обычный говнокод. Первые 3 ифа выкидываются на с помощью Exit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:06 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
defecator а я очень сильно люблю именно этот метод. позволяет избавиться от излишней вложенности условий. Сразу отсёк на входе в подпрограмму то, что не соответствует условиям, и пишешь только функциональный код Любовь к этому методу появляется у тех, кто достаточно повозился со сложными и запутанными условиями, задолбался править вызванные ими баги и начал ценить упрощение и даваемые им блага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:08 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
softwarer YuRock Это еще хуже, нужен else if везде, кроме первой строки. С чего бы там был нужен else if? Думаешь, два товара слететь не могут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:08 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
fraks YuRock пропущено... Это еще хуже, нужен else if везде, кроме первой строки. Else тут не нужен нигде. Каждая строка отвечает за свою настройку, независимо от других. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:09 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
fraks Приведенный мной код - это только часть процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:11 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
К сожалению весь код Delphi без использования Exit и с лишними begin/end DelphiМогло бы быть Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: pascal 1. 2. 3. 4. 5. 6. 7. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Код: pascal 1. 2. 3. 4. 5. 6. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:13 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
YuRock Значит, нужен цикл по контролам, используя свойство Tag. Так будет ещё хуже. А нужно там тривиальное Код: pascal 1. 2. 3. 4. 5. 6. Это если не задаваться вопросом о том, что для "шести одинаковых по сути фрагментов" следует использовать решения, поддерживающие множественность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:18 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
DimaBr, Ага, Exit, Break и Continue отлично сокращает лесенки. Но надо быть аккуратным в использовании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:21 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
YuRock fraks пропущено... Else тут не нужен нигде. Каждая строка отвечает за свою настройку, независимо от других. Эээээ. я совсем перестал понимать что такое хорошо. Зачем мне цикл по N контролам на форме, причем увидеть что конкретно в этот цикл попадет - весьма непросто, вместо 6 одинаковых строк с прямыми ссылками на контролы, из которых все очевидно? Если можно сделать просто кодом, без визуальщины - так и нужно сделать. Меньше потенциальных глюков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:28 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
softwarer YuRock Значит, нужен цикл по контролам, используя свойство Tag. Так будет ещё хуже. А нужно там тривиальное Код: pascal 1. 2. 3. 4. 5. 6. Это, конечно, улучшит ситуацию на 17% :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:28 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
DimaBr К сожалению весь код Delphi без использования Exit и с лишними begin/end В 94-м году я тоже писал "без exit и с лишними begin/end". Мир развивается. P.S. Впрочем, сейчас заглянул в исходники конца 80-х - в части случаев уместные exit я использовал и тогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:28 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
softwarer defecator а я очень сильно люблю именно этот метод. позволяет избавиться от излишней вложенности условий. Сразу отсёк на входе в подпрограмму то, что не соответствует условиям, и пишешь только функциональный код Любовь к этому методу появляется у тех, кто достаточно повозился со сложными и запутанными условиями, задолбался править вызванные ими баги и начал ценить упрощение и даваемые им блага. Именно. Все эти простые варианты просты пока не наступит пора их переделать. При переделке вся эта простота оборачивается необходимостью переписать всю логику по новой, но уже на нормальных условиях, без бегства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:30 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
ъъъъъ fraks пропущено... PowerShell прикольная штука, но это нужно дополнительно изучать, и плюс там проблемка с запуском скрипта. Если все по феншую то скрипт должен иметь подпись чтобы запускаться. Или нужно полностью отключить защиту от запуска. Отключить что-то меня стремает, а подписывать - какая-то очень непростая песня, решил что пока обойдусь. Ага, а bat - файлы неподписанные не стремает... Ну да, есть такое двоемыслие :) У нас еще довольно много машинок под WnXP где этого PowerShell нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:33 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
fraks, сказочник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:36 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
softwarer YuRock Значит, нужен цикл по контролам, используя свойство Tag. Так будет ещё хуже. А нужно там тривиальное Код: pascal 1. 2. 3. 4. 5. 6. Это если не задаваться вопросом о том, что для "шести одинаковых по сути фрагментов" следует использовать решения, поддерживающие множественность. Это нормальный вариант. Если случиться переделать - буду в этом направлении двигаться. Множественность вообще и множественность по сильно ограниченному множеству - не всегда есть смысл связываться с множеством. Здесь одна только попытка перебрать контролы убъет весь смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:45 |
|
||
|
Флейм про оформление и begin-end
|
|||
|---|---|---|---|
|
#18+
YuRock softwarer пропущено... Так будет ещё хуже. А нужно там тривиальное Код: pascal 1. 2. 3. 4. 5. 6. Это, конечно, улучшит ситуацию на 17% :) А цикл по Tag несомненно улучшит и работу и читабельность на 100%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2021, 16:47 |
|
||
|
|

start [/forum/topic.php?fid=58&startmsg=40063315&tid=2037285]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 397ms |

| 0 / 0 |
