Модераторы: Се ля ви

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> расстановка {} 
V
    Опции темы
MAKCim
Дата 5.3.2006, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Всем привет!
вопрос конечно детский но все же
какая на ваш взгляд расстановка скобок в коде делает его более удобночитаемым? smile
1.
Код

int F() {
    int a=1, b=5;
    if (a<b) {
        switch (a) {
            case 0: return 1;
            case 1: return 0;
        }
    }
}

2.
Код

int F()
{
    int a=1, b=5;
    if (a<b)
    {
        switch (a)
        {
            case 0: return 1;
            case 1: return 0;
        }
    }
}

сам склоняюсь к варианту 2


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Void
Дата 5.3.2006, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 9
Всего: 173



Был такой опрос. Выяснилось, что большинство также предпочитает вариант 2.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Cr@$h
Дата 5.3.2006, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Думаю, первый предпочитают Java-программисты, а второй -- С/С++/С#. Па крайней мере, большинство редакторов так заточено по умолчанию. Самому не нравятся оба варианта. Люблю так:
Код

int F()
    int a=1, b=5;
    if (a<b)
        switch (a)
            case 0: return 1;
            case 1: return 0;
        end switch
    end if
end function

Все равно эти end'ы писаться автоматически будут, а читаемость для меня повышается резко. ИМХО. Не люблю я в этом смысле "птичьи" языки.
PM MAIL ICQ   Вверх
Void
Дата 5.3.2006, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 9
Всего: 173



Cr@$h +1, только я бы для ИЯ предпочел блоки do..end, без явного указания, какой блок закрывается. Т.е. что-то больше похожее на синтаксис Модулы или Оберона.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
MAKCim
Дата 6.3.2006, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Цитата

Был такой опрос.

намек понял smile


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Cr@$h
Дата 6.3.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(Void @ 6.3.2006, 00:29 Найти цитируемый пост)
только я бы для ИЯ предпочел блоки do..end, без явного указания, какой блок закрывается. Т.е. что-то больше похожее на синтаксис Модулы или Оберона.

Ну,.. крылья другие, птица та же. Здесь у меня такие мнения: не хочу писать начало блока типа: begin, {. Ведь началом блока является сама конструкция. Плюс begin может заставить вынуждат делать лишние или нестандартные отступления. Появятся конструкции с несколькими блоками -- пожалуйста. Считаю полезным в end'е писать название конструкции, а то следующие коды по практичности одинаковы:
Код

            end
        end
    end
end


Код

            }
        }
    }
}


Более того, полезно уметь давать конструкции имя
Код

for( ... )
    inner: for( ... )
        for( ... )
            ...
            if( ... )
                continue inner
            ...
        end for
    end for inner
end for

PM MAIL ICQ   Вверх
nerezus
Дата 10.9.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Я { скобки в объявлении классов и функций пишу с новой строки.
В остальных местах - в джава-стиле  smile 


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Sardar
Дата 10.9.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 1
Всего: 317



Не люблю begin/end, do/end и прочие. Глазу проще различить (даже с подсветкой) ключевое слово от скобок и подобного, отсюда люблю С'подобные языки. По сабжу, первый вариант, если приходиться читать второй, то в редакторе ре-форматирую в первый.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cr@$h
Дата 10.9.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(Sardar @  10.9.2006,  17:30 Найти цитируемый пост)
Глазу проще различить (даже с подсветкой) ключевое слово от скобок и подобного

Даже субъективным мнением мне сложно назвать: посмотри на мой пост выше. Просто я ну ни как не могу понять, как птички могут быть проще: там же совсем не понятно, к чему относится скобка.
PM MAIL ICQ   Вверх
Mad
Дата 10.9.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: нет
Всего: 19



2 вариант


Цитата(Cr@$h @  10.9.2006,  16:10 Найти цитируемый пост)
росто я ну ни как не могу понять, как птички могут быть проще: там же совсем не понятно, к чему относится скобка.

если правильно оформить код (не пропускать табы), то читаеться одинаково легко, как со скобками, ток и с ключевыми словани
(тем более в VS.2005 если использовать возможность сворачивания блоков в строку)


--------------------
user posted image
PM MAIL   Вверх
Sardar
Дата 10.9.2006, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 1
Всего: 317



Цитата(Cr@$h @  10.9.2006,  16:10 Найти цитируемый пост)
Просто я ну ни как не могу понять, как птички могут быть проще: там же совсем не понятно, к чему относится скобка. 

Даже не задумываюсь, просто вижу и всё smile  Примерно то же самое говорю себе когда вижу begin/end, не вижу где начало блока, где конец, всё как одна простыня. Это всё от натренировки мозга, есть опыт, читаешь не задумываясь.

Сам это понял, когда писал много документации для Java. То что нужно самому раставлять HTML разметку меня убило, ведь это просто различать параграфы и списки, как например это делает phpDocumentor. Через пол года привык, теперь наоборот глюки phpDocumentor'а (<b><i>test</i></b> поймёт только <b>, вложенные теги вообще не понимает) кажуться просто вопиющим бредом, хочеться контроль над разметкой полный, т.к. иногда к классам пишу целые мануалы с заголовками и прочим smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cr@$h
Дата 10.9.2006, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(Mad @  10.9.2006,  18:33 Найти цитируемый пост)
если правильно оформить код (не пропускать табы), то читаеться одинаково легко, как со скобками, ток и с ключевыми словани

Ну, давай посмотрим.
Код

            }
        }
    }
}


Код

            end
        end
    end
end


Код

            end for
        end if
    end while
end function

Практичность измеряется, кто не знал  smile Засеките время, если захотите добавить код после конструкций while или if. Да тут, пока определишь, от чего какая птичка, то запутаться можно. Ведь код наверх может идти не так уж коротко. С простыми end -- то же самое почти, но лучше.
А уж тем более не понимаю, зачем открывающую кавычку сделали: просто потому что есть открывающая, каждой твари по паре, что ли.
Цитата(Sardar @  10.9.2006,  18:57 Найти цитируемый пост)
Это всё от натренировки мозга, есть опыт, читаешь не задумываясь.

Согласен. Я привык к "нормальным" конструкциям, а не к заголовкам конструкций с блоками из птичек.
PM MAIL ICQ   Вверх
ZeeLax
Дата 10.9.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: нет
Всего: 88



За первый вариант. А что до удобочитаемости - комментарии можно юзать и для ключевых слов и для птичек.


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
Cr@$h
Дата 10.9.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(ZeeLax @  10.9.2006,  21:40 Найти цитируемый пост)
А что до удобочитаемости - комментарии можно юзать и для ключевых слов и для птичек. 

Многое мои друзья программисты именно так и делают. Можешь привести пример на основе моих двух конструкций: та, что с птичками, и та, что end'ами? smile 
PM MAIL ICQ   Вверх
He1mut
Дата 27.9.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.9.2006

Репутация: нет
Всего: нет



ИМХО, второй вариант без сомнения наиболее удобочитаем.

Я вот даже в таких случаях пишу:
Код

for(int k = 0; k < 5; k++)
{
      cout << "что-то там, это к примеру" << endl;
}

PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.