Russian Qt Forum
Ноябрь 23, 2024, 17:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по стилю написания кода.  (Прочитано 5452 раз)
red5
Гость
« : Сентябрь 24, 2009, 10:18 »

Здравствуйте. Я начинающий програмист и меня интересует как грамотнее будет написать такой участок кода:

Код:
bool Dock5::isFrameDeclareVariable()
{
    if(f1->frameStyle() == QFrame::NoFrame){
return false;
    }
    else {
return true;
    }
}

Может быть, стоит написать всё в одну строку?

Код:
bool Dock5::isFrameDeclareVariable()
{
    return ( f1->frameStyle() != QFrame::NoFrame )
}

Есть уважаемые люди, которые говорят, что первый вариант "некрасивый". А в книге "Совершенный код" С.Макконнелл пишет что нужно писать код, который прежде всего понятен людям. Мне например, первый вариант гораздо понятнее.
Понимаю, что это дело вкуса, вот и интересует мнение опытных специалистов.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Сентябрь 24, 2009, 10:49 »

Код:
    ...
    return (f1->frameStyle() == QFrame::NoFrame) ? false:true;
    ...

Улыбающийся

или

Цитировать
Код:

bool Dock5::isFrameDeclareVariable()
{
    return ( f1->frameStyle() != QFrame::NoFrame )
}
« Последнее редактирование: Сентябрь 24, 2009, 10:51 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
mell
Гость
« Ответ #2 : Сентябрь 24, 2009, 11:17 »

я, например, вижу красоту кода объектно-ориентированных языков (тем более программируя на qt) именно в его понятности. Вообще, если правильно использовать ООП, комментарии к коду можно даже не писать, достаточно правильно выбирать названия методам. Если программа пишется в команде, или будет выкладываться с исходным кодом, или программа большая и в ней нужно будет потом разбираться, естественно предпочтителен "понятный" вариант.
а вот красивый вариант, по моему мнению, предпочтителен в процедурных языках в тех случаях, когда пишется "серьезный" код, например решение сложных алгоритмов, когда не просто кодишь потоком gui или там sql, а решаешь "красивую задачу красивым стилем"
Видимо тут отличие, как между стихами и прозой....

Кстати вот еще "понятный" вариант:
Код
C++ (Qt)
bool Dock5::isFrameDeclareVariable()
{
   bool isFrameDeclare = (f1->frameStyle() != QFrame::NoFrame)
   return isFrameDeclare;
}
 
Записан
Rcus
Гость
« Ответ #3 : Сентябрь 24, 2009, 15:25 »

Во, нашел. Помню что уже по этому поводу флейм Улыбающийся http://www.prog.org.ru/topic_8578_0.html
Записан
spirit
Гость
« Ответ #4 : Сентябрь 24, 2009, 16:03 »

вот статейка про стиль троллей.
Записан
red5
Гость
« Ответ #5 : Сентябрь 28, 2009, 09:06 »

Спасибо.
Вот пример из стиля троллей:
Код:
Use curly braces when the body of a conditional statement contains more than one line,
and also if a single line statement is somewhat complex.
// Wrong
if (address.isEmpty()) { 
    return false; 


for (int i = 0; i < 10; ++i) { 
    qDebug("%i", i); 


// Correct 
if (address.isEmpty()) 
    return false; 

for (int i = 0; i < 10; ++i) 
    qDebug("%i", i); 


Но ниже у них несколько исключений из этого правила :-) И эти исключения больше путают, чем помогают.
А вот в книге "Совершенный код" Макконнелл пишет, что всегда следует применять {}, даже когда всего одна строка. Это позволяет избежать ощибок-опечаток при дальнейшем добавлении второй строки. Конечно, это всё дело вкуса и споры вокруг этой темы говорят, что нет единственно правильного решения. Всем спасибо.
Записан
Rcus
Гость
« Ответ #6 : Сентябрь 28, 2009, 09:15 »

Не вижу противоречия. Все "исключения" подчиняются правилу
Цитировать
General exception

    * Feel free to break a rule if it makes your code look bad.
Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.126 секунд. Запросов: 22.