Тема открыта по просьбе жителей Королевства и посвящена обсуждению вопросов оптимизации кода. Выставляйте свои лучшие и худшие тексты и не стесняйтесь их обсуждать. В споре рождается истина. Или, по крайней мере, оптимизация.
Всего в теме 737 сообщений
Добавить свое сообщение
Отслеживать это обсуждение 
- Тестирование проекта. Отладка.
- Подводные камни
- Централизованная обработка ошибок
- Бета-тестирование
- Давайте учиться на ошибках.
- Почему программисты допускают ошибки?
- Автоматизированные тесты для GUI
- О системах контроля ошибок
№ 367 20-01-2007 08:29 |  |
Ответ на »сообщение 366« (Geo)
___________________________
Во втором варианте, вроде бы, при выполнении получается на один оператор меньше. Почему же чаще встречается первый вариант? Кто-нибудь задумывался над таким вопросом?
Может быть, потому, что на одно слово "else" меньше? Набирать быстрее ;)
А вообще - как-то мало я с чужим кодом работаю... А самому додуматься до первого варианта мне не удалось - если б не ваше сообщение, даже не знал бы, что такое бывает :))) Очень неестественным мне он кажется.
№ 366 20-01-2007 06:51 |  |
Захотелось мне что-то потрепаться (побазарить ;-)) на околопрограммные темы. А заодно и тему поднять. А посему предлагаю на обсуждение вопрос.
Пусть нужно реализовать функцию, которая в зависимости от условия возвращает либо одно, либо другое значение. Наиболее часто встречается примерно такой вариант (для простоты возьму функцию Max):
function Max(N1,N2 : Integer) : Integer;
begin
Result:=N1;
if N2 > N1
then
Result:=N2;
end;
Хотя мене более естественным кажется такой код:
function Max(N1,N2 : Integer) : Integer;
begin
if N2 > N1
then
Result:=N2
else
Result:=N1;
end;
Во втором варианте, вроде бы, при выполнении получается на один оператор меньше. Почему же чаще встречается первый вариант? Кто-нибудь задумывался над таким вопросом?
№ 365 15-10-2005 10:02 |  |
№ 364 14-10-2005 10:45 |  |
Родной сайт Fowler'а хорош еще юмором. Например, выдержки из некоторых
описаний инструментов рефакторинга.
Smalltalk ... To all those who think that PhD projects are doomed to irrelevance.
IntelliJ Idea This is a fully fledged IDE. (Все-таки птичник!)
Together-J ... Recently bought by Borland (or whatever they call themselves these days)
Bicycle Repair Man This at least gets a prize for the best name!
Жаль, что в X-develop не упоминается Паскаль.
№ 363 14-10-2005 07:40 |  |
Ответ на »сообщение 362« (Как слышно? Прием!)
___________________________
>>>С появлением объектной технологии ... появилось большое количество плохо
спроектированных, неэффективных и малопригодных к сопровождению и расширению приложений.
Да, припечатал. Разумеется в дообъектную эпоху таких приложений не было :)
№ 362 14-10-2005 06:40 |  |
IMHO, английская книжка в Палме удобнее русской бумажной,
выписываемой через интернет и доставляемой нашей почтой.
Впрочем, дело вкуса. Главный плюс - там больше ссылок по теме.
Забавная реклама рефакторинга с уничижительной антирекламой ООП:
"С появлением объектной технологии ... появилось большое количество плохо
спроектированных, неэффективных и малопригодных к сопровождению
и расширению приложений. Профессиональные разработчики программных
систем все яснее видят, насколько трудно иметь дело с таким наследием".
Как говорится, что у трезвого на уме, то у рекламщика на языке.
№ 361 14-10-2005 04:37 |  |
Ответ на »сообщение 359« (Как слышно? Прием!)
___________________________
Ссылочку по рефакторингу лучше было дать на
www.refactoring.com , чем на магазин книжки.
Что-то я там не нашел текста книги на русском языке. Плохо искал?
И бумажная книга все-таки удобнее.
№ 360 14-10-2005 04:33 |  |
Ответ на »сообщение 358« (Антон Григорьев)
___________________________
Ну, я, например, не знаю, как, не подчёркивая это, отвечать на Круглом столе на многие вопросы, связанные с тем, как создавать, копировать и уничтожать объекты, почему после выполнения Free переменная не равна nil и т.п. Создать язык, в котором можно будет не знать, что переменная типа объект является указателем, вполне реально, но Delphi таким языком не является.
Ну так это проблема в конкретных людях, которые не читают книг с базовыми знаниями по языку программирования. О том, что объекты в Delphi - динамические, опытный разработчик должен всегда помнить. А если помнит, то зачем делать себе напоминание в виде "крыжиков"?
№ 359 14-10-2005 03:22 |  |
№ 358 14-10-2005 02:03 |  |
Ответ на »сообщение 357« (panda)
___________________________
Зачем подчеркивать каждый раз, что переменная типа объект на самом деле является указателем?
Ну, я, например, не знаю, как, не подчёркивая это, отвечать на Круглом столе на многие вопросы, связанные с тем, как создавать, копировать и уничтожать объекты, почему после выполнения Free переменная не равна nil и т.п. Создать язык, в котором можно будет не знать, что переменная типа объект является указателем, вполне реально, но Delphi таким языком не является.
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|