LINUX.ORG.RU

Оформления кода.

 


0

1

Смотрел разные примеры и мне безумно понравилось такое оформления кода

int
main()
{
    double a = 10.5;
    if (expr) {
        // ...
    }
    return 0;
}

Как видно при объявлении функции возвращаемый тип и имя пишем в двух строках. Функции начинается с фигурной скобки с новой строки. При написании конструкций типа if, switch, for и других бы не переносим фигурную скобку на новую строку.

Шаблонные функции пишем так:

template<typename T>
int func(T a)
{
    // ...
}

Но если мы пишем большую конструкцию if, то оформляем ее так:

if (a == true
  && b == false)
{
    // ...
}

Как видно фигурная скобка уже с новой строки.

Как вам такая практика?

P.S смотрел github.com/nginx/



Последнее исправление: xensk (всего исправлений: 1)

Ответ на: комментарий от Pinkbyte

Не совсем (т.к. иной раз надо же воткнуть всего кусок кода, и прямо в сообщение). Но за название спасибо — сейчас поставлю вместо pastebinit.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Pinkbyte

Он есть в layman

У тебя он небось дефолтным интепретатором в eselect python стоит?

Не знаю, я эту гадость не пользую

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Не знаю, я эту гадость не пользую

Какую? eselect? Тогда ты ССЗБ :-)

Если третий питон не пользуешь, тогда - переключись на второй же eselect-ом, ну :-)

eselect python set python2.7
Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Какую?

python

eselect python set python2.7

Неа:

/usr/include/glib-2.0/glib/gtypes.h:29:2: error: #error "Only <glib.h> can be included directly."
In file included from /usr/include/glib-2.0/glib/gtypes.h:34:0,
                 from /usr/include/glib-2.0/glib/gstrfuncs.h:34,
                 from ./mooutils/mooi18n.h:20,
                 from mooutils/mooi18n.c:16:
/usr/include/glib-2.0/glib/gversionmacros.h:29:2: error: #error "Only <glib.h> can be included directly."
make[3]: *** [mooi18n.o] Error 1

Все равно патчить надо, похоже.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ну, главное с Python-ом разобрались, дальше будет проще. Если на неделе не замотают - может и займусь... Но обещать ничего не буду...

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Да я и сам могу пропатчить, если надо будет. Просто пока забил маленько, на работе и так делов дофига, а я со следующей недели уже в отпуске. Хочу хотя бы пару недель из четырех отдохнуть от работы...

Eddy_Em ☆☆☆☆☆
()

Всегда пишу фигурную скобку на той же строке, стараюсь даже блоки в одно выражение окружать фигурными скобками.

crowbar
()
Ответ на: комментарий от Iron_Bug

табы — это правильно

Поддерживаю. «Indent with tabs, align with spaces». И не понимаю, почему всё большее количество людей стремится отступать пробелами.

полно средств для форматирования

Не подскажешь годный форматер для C/C++? Гибкости uncrustify, с одной стороны, местами не хватает (и иногда его клинит), а с другой стороны его >9K параметров без внятных доков — это жесть.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

Функции начинается с фигурной скобки с новой строки. При написании конструкций типа if, switch, for и других бы не переносим фигурную скобку на новую строку.

Так код оформляется у Кернигана и Ритчи в классическом учебнике(по крайней мере в последней попавшейся мне в руки русскоязычной версией). С пояснением, что это одна из существующих договорённостей.

По-поводу прочего не знаю.

raven_cler ★★
()
Ответ на: комментарий от Eddy_Em

щкворец наращиваешь?

не только наращивает, но и другим дает!

MyTrooName ★★★★★
()
Ответ на: комментарий от intelfx

И не понимаю, почему всё большее количество людей стремится отступать пробелами.

меня питон приучил.

да и как-то проще выдерживать 80 символов в строке, не опасаясь, что твой табовый отступ уедет вправо или влево

форматтер

man indent

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от MyTrooName

да и как-то проще выдерживать 80 символов в строке, не опасаясь, что твой табовый отступ уедет вправо или влево

Годный аргумент использовать пробелы.

Но имхо табы - для отступов, пробелы - для выравнивания.

Deleted
()
Ответ на: комментарий от Eddy_Em

А потом вспоминать, какого хрена обозначают a,b,c,d,e,f,g,h? Так красивше, да и читается намного проще.

Лучше выбрать одну букву и придерживаться во всем проекте ее.

Deleted
()
Ответ на: комментарий от intelfx

мне хватает плагина в CodeBlocks. он простой, но форматирует код в тот вид, который мне нужен. хотя у него есть настройки - выбор стиля и основные настройки. не слишком много, но всё, что мне нужно, там есть.
вообще, я стараюсь придерживаться красивого написания кода сразу и, по сути, если я форматирую что-то, то это обычно чужой код, который мне достался в поддержку.

но минусы есть у всех форматтеров. особенно когда начинаются шаблоны или дефайны.

Iron_Bug ★★★★★
()
Ответ на: комментарий от MyTrooName

у меня на одной работе был один программист, который именовал все переменные как-то типа a4gh5dh789. у него в голове были тараканы расшифровки этих кракозябр. больше никто это не мог понять.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Deleted

Это микроконтроллер. Дешевле объявить кучу глобальных переменных, чем тягать их везде в качестве параметров!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от MyTrooName

Нафиг-нафиг, а то потом же без путылки не разберешься!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Iron_Bug

нет, всё-таки слепленные вместе закрывающие скобки параметров функции и открытие области видимости уязвляют моё перфекционистское отношение к коду.

Правильно.

а табы - это правильно.

Рили, и чем же? Ты между () {} тоже табы ставишь?

а так... да не так уж важно, как расставлены скобки.

Важно. Основа читаемости - это компактность. Все эти скобки пошли со скрещивания едазастроки + примитивный мозг рядовой обезьяны, который не способен воспринимать больше 2-3-х конструкций на область фокусировки глаз. А агитируют за них только заедушные обезьяны со вбитым в жопу кодестайлом.

Никаких объективных плюсов в них нет.

хуже всего, когда разные авторы в коде не придерживаются общих правил наименований и структуры программы и получается мешанина стилей и форматов. вот это страшно. а остальное - мелочи жизни.

Это не представляется возможным. Пушкину тоже надо было на фене писать, чтобы его текста понимал любой говнарь в тпушке за партой?

У всех разный уровень развития, понимания кода и владения языком, поэтому уравнять ты их можешь только вниз. Т.е. все будут писать говно.

Не бывает вменяемых людей с разным стилем - их стиль исходит не из, - «пиши так, иначе тебя уволят, заедушная обезьяна - и обезьяна будет писать как сказали и везде доказывать, что так правильно», а из каких-то объективных соображений( в которые потакание нулёвым обезьянам не входит).

Поэтому в среднем у пацанов всё одинаково, кроме тех моментов, когда что-то можно с одинаковым профитом можно писать по разному. Тут уже всё зависит в основном от привычки и «нравиться».

В этом нет никаких барьеров. Всё это просто сводится к одном стилю, если это надо. А когда это читаешь - стиль и логика пацана прослеживается, поэтому код читается как свой.

А вот 98% стилей и «кода» регламентируются не каким-то там нравится/логикой, а тотальной жопорукостью и неосиляторством. В этом говне нет логики, нет ничего - это бездарная отрыжка обезьяны, которую при любом кодестайле читать не представляется возможным.

Carb_blog6
()
Ответ на: комментарий от PreciousProtection

void next_LED_in_effects()
{

Зачем ты впендюрил сюда скобочку - объясни мне.

Выпилил неосиляторство ифа едиком - молодец. Отделил несвязную со следующими конструкцию - молодец.

Carb_blog6
()
Ответ на: комментарий от MyTrooName

да и как-то проще выдерживать 80 символов в строке, не опасаясь, что твой табовый отступ уедет вправо или влево

Зачем выдерживать 80символов в строке? Вменяемо осилишь аргументировать?

Carb_blog6
()
Ответ на: комментарий от Deleted

Но имхо табы - для отступов, пробелы - для выравнивания.

Зачем? Табы протухли 30лет назад. Любой недоредактор умеет перевод строки уравнивать с верхней строчкой, даже конец вложенного блока может отслеживать.

Ладно, 30лет назад ты бы тыкал таб 3-4раза, а пробел 20, но сейчас я уверен на 99% - ты его не тыкаешь. Т.е. единственный аргумент и плюс таба ушел.

Ещё есть один аргумент - длинна таба, т.е. быстрая смена отступов без парсинга сырца. Это тоже нахрен лет 20 не нужно, когда есть нормальная «менялка отступов».

Да и я сомневаюсь, что это кто-то вообще юзает. Т.е. аргументов за табы я не вижу.

Carb_blog6
()
Ответ на: комментарий от Carb_blog6

длинна таба, т.е. быстрая смена отступов без парсинга сырца

Именно поэтому я и считаю, что табы для отступов.

менялка отступов

У меня нету.

Deleted
()

Смотрел разные примеры и мне безумно понравилось такое оформления кода

Аргументируй. Что ты такого безумного увидел в этих строках?

comp00 ★★★★
()

Как всё печально в этом вашем Си. В Go например стиль оформления кода, а также политика табов вместо пробелов гвоздями прибиты (по большому счёту), и всё, никаких споров, и программы все реально в одном стиле)

ivanzoid
()
Ответ на: комментарий от fluorite

Неплохо, на первый взгляд вполне гибко.

intelfx ★★★★★
()
Ответ на: комментарий от Carb_blog6

Не бывает вменяемых людей с разным стилем

ещё как бывает. это просто у вас опыта малровато. а я поработала в разных компаниях и видела проекты, которые делались десятилетиями, десятками разных программистов. и вот там - страшно. потому что разные люди пишут код по-разному. хотя каждый, в принципе, по своему прав. но смешение стилей и подходов, разных технологий и методов - это жопа.

поэтому либо компания декларирует определённый кодстайл, либо там бардак.

Iron_Bug ★★★★★
()
Ответ на: комментарий от ivanzoid

В Go например стиль оформления кода, а также политика табов вместо пробелов гвоздями прибиты

а в псхушках кровати привинчивают к полу. потому что пациенты буйные :)

но мы не будем равняться на неадекватов, я надеюсь. программист на С - человек достаточно умный, чтобы не ему не нужен был поводок и костыли.

Iron_Bug ★★★★★
()
28 октября 2014 г.
Ответ на: комментарий от pashazz

только хотел спросить у Эдди, почему он последние полгода один и тот же кусочек кода на си мастурбирует. хорошо, на дату внимание обратил

MyTrooName ★★★★★
()

Смотрел разные примеры и мне безумно понравилось такое оформления кода

Этот стиль называется OpenBSD KNF (Kernel Normal Form).

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Дык, я использую: geany, mcedit, medit и gedit (в генте, к сожалению, почему-то medit не собирается, приходится говеный gedit собирать). Дофига настраивать. Да и еще на всех ~5-7 машинах, где приходится код править...

А почему не emacs-vim-sublimetext? Мне правда интересно.

JANB
()

Про классы не осветил.

Deleted
()
Ответ на: комментарий от JANB

А почему не emacs-vim-sublimetext?

Выбираю то, что проще. Emacs — это ж помереть можно, пока его освоишь; с вимом та же хрень. Третий — даже без понятия, что это. Но явно что-то жирное.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ну, база emacsа осваивается за несколько часов... Впрочем, каждому свое.

Если используешь gedit, посмею себе попробовать порекомендовать sublime. Почти не жирный, а с большими файлами работает быстрее чем gedit. Сейчас это достаточно модный редактор - а значит - на случай всего есть куча плагинов. Поддерживает из коробки все языки, и, важное - осваивать не нужно - там работает обычное управление. Как и в gedit.
То есть ctrl+c, копирует текст, а ctrl-v его вставляет. А по alt+F4 можно даже выйти.

Ну и самое главное - из коробки работает minimap. Да, это офигенно. В gedit такого вообще нет, а в имэксе нужно пакет ставить специальный.

JANB
()
Ответ на: комментарий от JANB

gedit

Не использую: он скатился и стал GTK3. Вместо gedit пользуюсь medit'ом. Но он тоже какой-то хреноватый. geany лучше.

А по alt+F4 можно даже выйти

Еще чего не хватало. У меня эта комбинация переносит активное окно на четвертый рабочий стол.

minimap

?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Это глобальные переменные. Микроконтроллер же.

// А с каких это пор так страшно стали цитаты оформляться? Надо будет юзверстиль допилить, чтобы было как раньше. А то нихрена не отличишь цитату от кода.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

А с каких это пор так страшно стали цитаты оформляться?

Я же цитировал переменные из кода. Так и должно быть, не?

Deleted
()
Ответ на: комментарий от Deleted

обычные цитаты (

вот такие

) всегда были в рамочке. А теперь просто оформлены полоской слева. Прямо как блок с кодом...

int x;

Хм, что-то у меня код перестал полоской слева выделяться.

Eddy_Em ☆☆☆☆☆
()
Последнее исправление: Eddy_Em (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.