|
Тема |
Re: хубав код вапрос [re: KpyM] |
|
Автор | Zelen (Нерегистриран) | |
Публикувано | 02.04.04 17:56 |
|
|
Хм, не знам какъв е случая. На мен преди месеци ми мина през ръцете едно
парче код на C++ за code review.
Та там имаше метод от типа:
unsigned char XXX::GetByte()
{
if(...notEnougDataExpr...)
throw smth....;
return *buffer++;
}
Та аз го върнах с мнение, че на тази проверка мястото и не е вътре в метода.
Според дизайна, XXX::GetByte() трябваше да се вика за всеки байт, прочетен и кеширан от файл, опашка, канал или каквото и да е друго. Ставаше въпрос за повече от 1 блока данни с вероятна дължина - стотици хиляди байтове.
Ставаше въпрос за ОО решение и XXX::GetByte() беше вътршна и не се викаше от 100 места. Та моята препоръка беше, да се смени проверката с
assert, и с коментар, че ако не знаеш колко можеш да четеш, по-добре не чети.
Все пак ставаше въпрос за ключово място в кода и добавената проверка предполагам че умножава по 2 времето за изпълнение на тая функция.
Та - така. Но това беше моя случай - за случаия коментиран тук - не знам - не съм наясно, за какво става точно въпрос.
|
| |
|
|
|