Пример кода №1

Предыдущая тема Следующая тема Перейти вниз

Пример кода №1

Сообщение автор Marina-T в Чт Ноя 05, 2015 10:30 pm

Код:

var
CS: TCriticalSection;
...
CS.Enter;
if (Dir <> CurrentDir) then
begin
CS.Leave;
Exit;
end;
CS.Leave;
...

Код показывает незнание основных механизмов, предоставляемых языком программирования. В данном случае необходимо использование конструкции try finally, что позволяет отказаться от второго вызова метода Leave и делает код более логичным, стабильным и читаемым.
avatar
Marina-T
Admin

Сообщения : 33
Дата регистрации : 2015-11-04
Возраст : 31

Посмотреть профиль http://auslogics.online-talk.net

Вернуться к началу Перейти вниз

Re: Пример кода №1

Сообщение автор SmartGuy в Пн Ноя 23, 2015 10:05 pm

По возможности, вообще лучше избегать Exit. По моему так будет лучше:
Код:
 CS.Enter; try if (CompareText(Dir,CurrentDir) = 0) then begin Foo(); end; finally CS.Leave; end;1

SmartGuy

Сообщения : 5
Дата регистрации : 2015-11-20

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Пример кода №1

Сообщение автор DELPHI team Auslogics в Вт Ноя 24, 2015 10:39 pm

Приведенный пример как раз и демонстрирует неверное использование. В комментариях идет об этом речь и пояснение
avatar
DELPHI team Auslogics

Сообщения : 11
Дата регистрации : 2015-11-21

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Пример кода №1

Сообщение автор MaxMix в Вт Ноя 24, 2015 10:50 pm

Этот код тоже исполниться быстрее чем Try finaly. Не нужно быть догматичным программировании. Программирование это творчество!

MaxMix

Сообщения : 3
Дата регистрации : 2015-11-20

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Пример кода №1

Сообщение автор DELPHI team Auslogics в Ср Ноя 25, 2015 5:34 pm

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

Мы работаем над ПО которое не обязательно должно показывать чудеса быстродействия, в первую ПО должно быть очень стабильным.
avatar
DELPHI team Auslogics

Сообщения : 11
Дата регистрации : 2015-11-21

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Пример кода №1

Сообщение автор Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения