Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 08:55 08.07.25 
Компютри и Интернет
   >> Програмисти
*Кратък преглед

Страници по тази тема: 1 | 2 | 3 | (покажи всички)
Тема хубав код вапроснови  
Автор KpyM ()
Публикувано02.04.04 13:20



кои от двата варианта е по добар според вас и що?


functoin ReadData(){
if(CanReadData){
//read data here
}
}

...
ReadData(); //skrito e dali moze da se 4ete ili ne
...

-- ili --

function ReadData(){
//read data here
}
...
if(CanReadData){// pokazvame 4e 4eteme samo ako moze
ReadData();
}
...



Тема Re: хубав код вапроснови [re: KpyM]  
Автор Дeшeв (Муслон)
Публикувано02.04.04 13:48



Ще се наложи да дадеш повече контекст . Особено частта, където се извиква четенето на данните.

Губи ми се else елемента -- кво става ако не можеш да четеш? Плющят изключения ли?

Аз лично обичам като викам код да не се грижа дали мога или не мога да чета. Бих предпочел скритото CanReadData допитване. Съответно бих искал при невъзможност за четене да ми се върне подходящ NullObject (виж гугъл за Null Object Pattern) или в най-лошия случай да се хвърли изключение.

--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck


Тема Re: хубав код вапроснови [re: KpyM]  
АвторRealGuru (Нерегистриран)
Публикувано02.04.04 14:08



Както ти каза колегата, зависи от това къде и как ще се използва.

Ако викаш функцията на 100 места, трябва да напишеш на 100 места:


if(CanReadData){// pokazvame 4e 4eteme samo ako moze

ReadData();

}


Лично аз не бих го направил така.



Тема Re: хубав код вапроснови [re: KpyM]  
Автор Гypy (бенгбъс драйвър)
Публикувано02.04.04 14:42



Ами първият вариант е малко заблуждаващ ако някой друг програмист ти ползва кода с ауто-комплете, защото името подвежда ще данните ще бъдат прочетени на всяка цена - аз поне така тълкувам ReadData.

ReadData void ли е? Или хвърля exceptions?

Ако е void и не хвърля exception когато данните не са прочетени, вариант 1 става заблуждаващ, май.

Ако си на анси-с май там тенденцията е функциите да връщат error-code. На Жаба тенденцията е да се хвърлят exceptions. В .НЕТ стила май по-скоро клони към вторият вариант.

--
Increasing performance by lowering expectations.


Тема Re: хубав код вапроснови [re: Гypy]  
Автор Дeшeв (Муслон)
Публикувано02.04.04 15:21



В отговор на:

малко заблуждаващ ако някой друг програмист ти ползва кода с ауто-комплете




По едно време мислех да си спирам auto-complete на студиото. Сериозно! Видях как като не познавам някой клас, вместо да се опитам да разбера повече за него я с документация я с кода му, създавам обект или декларирам указател и чакам да видя списъка с методите излязъл след . или ->. Ужасен антипатърн. И после нямало да има дефекти...

В края на краищата не спрях допълването, но почнах да се мъча да не програмирам с проби и грешки като шимпанзе.

--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck

Тема Re: хубав код вапроснови [re: Дeшeв]  
Автор _avatar (agnostic)
Публикувано02.04.04 16:47



Хмм. Аз пък хич не мога да си ги представя нещата без autocomplete. Искам да кажа, че вината не е в autocomplete-a. Студиото си има много добър debug mode (от скоро го ползвам), който доста помага за отстраняване на грешки.
Просто трябва да се балансира:
autocomplete - debug mode - manual
От което и да се откажеш е излишно екстремно преживяване. Същото важи и за прекаляването, с което и да е от трите.



Тема Re: хубав код вапроснови [re: KpyM]  
Автор josarjan ()
Публикувано02.04.04 17:07



Кво ще кажеш за втория вариант (разделени) + още:

function ReadDataIfCan() {
if (CanReadData) {
ReadData();
}
}

кой, квото му трябва това си вика.



Тема Re: хубав код вапроснови [re: _avatar]  
Автор Дeшeв (Муслон)
Публикувано02.04.04 17:49



В отговор на:

много добър debug mode




Амиии то аз и дебъгери не ползвам откакто съм пътешественик из TDD страната. На ВСтудио 7 ползвам NUnitAddin, който пуска тестовете в друг процес и даже не съм се тормозил да разуча как да attach-на дебъгера към него, че да зяпам там.

Проблема с дебъгера ми е, че той създава някакво временно знание за програмата, което се губи буквално след минути. Друго си е да го запишеш някъде, че и после да го изпълниш и то да ти каже дали още си прав.

--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck

Тема Re: хубав код вапроснови [re: josarjan]  
Автор Дeшeв (Муслон)
Публикувано02.04.04 17:53



Декоратор патърна е добро решение в случая. Е говоря за ОО и функционални езици. Иначе изглежда странно ;-> не искам да си го представям в процедурно C.

Примерно DataReader, който чете без да гледа дали може или не. CheckedReadingDecorator, може да работи с DataReader и да доставя проверката за грешки.

--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck


Тема 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 времето за изпълнение на тая функция.
Та - така. Но това беше моя случай - за случаия коментиран тук - не знам - не съм наясно, за какво става точно въпрос.




Страници по тази тема: 1 | 2 | 3 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.