|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexander Dilevsky 2:5020/400 10 Dec 2001 09:43:49 To : Andrey Khavryuchenko Subject : Re: goto нет в tcl -------------------------------------------------------------------------------- "Andrey Khavryuchenko" <akhavr@kds.com.ua> wrote in message news:m3n10s6rtr.fsf@netmaster.kds.com.ua... > Alexander, > > "AD" == Alexander Dilevsky wrote: > > AD> Классический пример такого кода - функция, в нескольких местах которой > AD> присутствуют проверки нетривиальных условий (которые не влезают в > AD> понятие switch), и условный переход в сторону конца функции, перед > AD> которым надо выполнить еще пачку действий (например, очистку). Да, это > AD> моделируется путем флагов (и приводит к непонятности кода), либо путем > AD> дублирования пачки действий (что совсем плохо по понятным причинам), > AD> может быть еще исключениями, если они есть в языке, хотя сюда > AD> притягиваются за уши. В _данном_ случае goto короче, понятнее и > AD> потенциально безопаснее. > > Блин. Выносишь сложные условия в отдельные функции, повторяющиеся куски > кода туда же. Если функция длинее 25 строк -- разрезаешь ёё на части. Hу знаете, выносить чистку локальных переменных функции в другую функцию только из-за преданности структурному программированию - это уже слишком :) > Все функции, что не влазят на стандартный экран терминала are evil! Hу в теории, конечно, так, а на практике - назови хоть один реальный проект, код которого следует этому правилу ;) > > -- > Andrey V Khavryuchenko http://www.kds.com.ua/ > Offshore Software Development -- Alexander Dilevsky mailto:dil@cea.ru --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6577cb6cf0c3.html, оценка из 5, голосов 10
|