1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

[Борьба с быдлокодингом] Стили оформления кода

Тема в разделе "Программирование", создана пользователем deep_fox, 29 апр 2014.

  1. TopicStarter Overlay
    deep_fox

    deep_fox Гость

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

    Стиль Кернигана Ричи:
    Код:
    if (<cond>) {
    ········<body>
    }
    
    Стиль Олмана:
    Код:
    if (<cond>)
    {
    ········<body>
    }
    
    Стиль Уайтсмитс:
    Код:
    if (<cond>)
    ········{
    ········<body>
    ········}
    
    Стиль GNU:
    Код:
    if (<cond>)
    ··{
    ····<body>
    ··}
    
    Самые удобные (как на мой взгляд, так и судя по стайлгайдам большинства контор) - это стили Олмана и K&R.

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

    0. Переменным следует давать говорящие названия, не стоит называть переменные одной буквой (если это не какой-нибудь итератор несложного цикла). Называйте переменные, константы, функции и файлы со строчной буквы, а свои типы (в т.ч. классы) с заглавной. Например, struct ListNode. Если в имени переменной, функции или файла содержится несколько слов, то все, кроме первого, должны начинаться с заглавной буквы. Например, getNextValue().

    1. Выделяйте пробелами все арифметические операции, оператор присваивания.

    2. Не нужно отделять скобки пробелами. printf("Hello, world!"), а не printf ("Hello, world!").

    3. Нужно ставить пробел после ключевого слова: между if и (, for и ( и т.д.

    4. Операторы доступа к полям классов и структур "->" и "." не выделяются пробелами.

    5. Старайтесь минимально использовать глобальные переменные. По возможности сужайте области видимости переменных, множества возможных значений (например, не стоит использовать переменную типа int в качестве логической переменной), набор допустимых операций и т.д.

    6. Пишите const везде, где только можно, не нужно использовать "захардкоженные" константы, никаких "магических чисел" в коде.
    Например, при виде for (int i = 2; i < 17; i++) должны вытекать глаза. Правильно, например: for (int i = lValue; i < rValue; i++).

    7. Использование goto - очень плохой тон.

    8. Нужно стараться, чтобы функции помещались на одном экране, основной поток выполнения должен быть предельно прост и понятен. Однотипные наборы операций следует выносить в отдельные функции. По поводу быстродействия не беспокойтесь: вы всегда сможете их заинлайнить, если это вообще автоматом не сделает оптимизатор.

    Так что, товарищи, долой быдлокод, оформляем всё стильно-модно! ^^
     
    • Like Like x 3
    Метки:
  2. EEjester

    EEjester hack_the_god

    Регистрация:
    25 окт 2012
    Сообщения:
    1.326
    Симпатии:
    941
    я уж думал тут что интересное про блок_схемы. или как правильно строить программу...

    по сабжу: юзаю gnu
     

Поделиться этой страницей

Загрузка...