Показать сообщение отдельно
Старый 23.02.2008, 22:16   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
это замечательный призыв.

надо учитывать только две вещи:
1. корректная работа при обработке исключений
2. корректная работа внутри транзакционных скобок ttsbegin-ttscommit/ttsabort

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

Кроме того, в таких простейших случаях без-else-овый код должен выглядеть так
X++:
int foo(int bar)
{
    if ( /*expr1*/ ) throw /*some exception*/; 
    if ( /*expr2*/ ) return 1;
    if ( /*expr3*/ ) return 2;
    if ( /*expr4*/ ) return 3;

    doSomething or throw /*some exception*/;
}
а не так, как предлагает автор блога

См. также книгу Мартина Фаулера про Рефакторинг существующего кода
http://www.ozon.ru/context/detail/id...?partner=mazzy

или скачать эту книгу бесплатно, если предпочитаете читать в электронном виде
http://www.proklondike.com/contentview.php?content=258
__________________
полезное на axForum, github, vk, coub.