Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2012, 12:34   #1
Ponkole
Форумчанин
 
Регистрация: 02.07.2010
Сообщений: 167
Сообщение Рекомендуемые правила оформления кода

Многие опытные программисты форума частенько жалуются на плохую читаемость кода. Конечно же каждый программист обладает так называемым "почерком" (стилем программирования). Но, согласитесь, у некоторых очень неразборчивые "почерки". Предлагаю тем, кто жалуется, в этой теме тезисно изложить рекомендуемые правила(от себя или где - нибудь общепринятые).
Если я тебе помог, помоги и ты мне +ом с комментарием
Ponkole вне форума Ответить с цитированием
Старый 02.01.2012, 12:39   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Но, согласитесь, у некоторых очень неразборчивые "почерки".
По этой причине и существуют Кодинг Гайдлайны у проектов.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.01.2012, 15:38   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Тема очень хорошая, ИМХО. Сам хотел обсудить оформление кода. У меня за время писания когда, можно сказать, выработался свой почерк... позже расскажу...
Вадим Мошев вне форума Ответить с цитированием
Старый 02.01.2012, 16:07   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

1. Практически каждая строка должна иметь поясняющий комментарий (кроме совсем очевидных, вроде end или операторных скобок).
2. Отступы в стиле Олмана - http://ru.wikipedia.org/wiki/%CE%F2%...E0%ED%E8%E5%29
3. Перед функцией/методом/процедурой обязательно:
а) Зачем нужна эта функция/метод/процедура
б) Краткая расшифровка всех входящих параметров
в) Иногда расшифровка результатов (например -1 в случае неверных входящих параметров).
4. Разделяю все методы, классы и прочие важные функциональные единицы программы строкой состоящей из одних слешей типа:
////////////////////////////////////////////////////////////////////////////////////////////////
Ну это на вскидку, может и еще чего делаю . Собственно конкретные детали не так уж и важны, главное чтобы оформление кода вообще имело место.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 02.01.2012 в 16:28.
Utkin вне форума Ответить с цитированием
Старый 02.01.2012, 16:15   #5
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

C/C++/C#
1. Параметры функции именую, начиная с "p" : pParameter и т.д.
2. Внутренние переменые функций именую, начиная с "_" _Data и т.д.
3. Свойства класса именую с большой буквы.
4. Поля класса именую с маленькой буквы.
5. Именование функций, делегатов, событий и прочего для меня не так важно. все они с большой буквы. Интуитивно пониманию по ключевым словам в имени.
Это позволяет мне лучше ориентироваться в коде.
Касательно разметки:
Использую стиль Олмана.
Остальное что я тоже делаю, написал Уткин.
Очень долго свой подход разрабатывал, очень удобен и очень к нему привык.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 02.01.2012, 16:41   #6
Bustle
Interdicted
Участник клуба
 
Аватар для Bustle
 
Регистрация: 25.11.2010
Сообщений: 1,194
По умолчанию

Как документировать код
Пример:
Код:
<?php

/**
 *
 * Описание файла
 *
 * @name значение
 * @version значение
 * @author значение
 * @since dd.mm.yyyy hh:mm
 *
 */

/**
 *
 * myFunction()
 *
 * Описание функции
 *
 * @author значение
 * @param array $Params
 * @return string
 *
 */
function myFunction($Params)
{
     return $Value;
}

/**
 * myClass
 *
 * Описание класса
 *
 * @access public
 * @author значение
 * @since dd.mm.yyyy hh:mm
 */
class myClass
{
    /* Const */
    const MYCONST = 1;
    /* Private *
    private static $_PrivStatic = 2;
    private $_PrivNonStatic = 3;
    /* Protected */
    protected static $_ProtStatic = 4;
    protected $_ProtNonStatic = 5;
    /* Public */
    public static $pubStatic = 6;
    public $pubNonStatic = 7;

    
    /**
     *
     * _PrivStaticFunc()
     *
     * Описание метода
     *
     * @access private
     * @static
     * @author значение
     * @param mixed $Params
     * @return mixed
     *
     */
    private static function _PrivStaticFunc($Param)
    {
    }

    /**
     *
     * PubFunc()
     *
     * Описание метода
     *
     * @access public
     * @author значение
     * @param array $Params
     * @return mixed
     *
     */
    public function pubFunc(array $Param = array())
    {
    }
}
Стиль:
- Табуляция 4 пробельных символа (именно пробельных символа, а не знак табуляции)
- Примеры оформления:
Код:
if ($xX === 1)
{
    // делаем что-то
    $yY = myFunc($Xx);
}
else
if ($xX === 2)
{
    // делаем что-то
}
else
{
    // делаем что-то
    $xX = myFunc(1, 3, 4, 10, 'hello');
    if ($xX == 1 && $yY == 'world')
    {
    }
}

function myFunc($Vv)
{
    $aA = array($vV);
    foreach($aA as $kK => $vV)
    {
        // что-то делаем
    }
    switch($aA)
    {
        case 1 :
        {
            break;
        }
        case 2 :
            break;
    }
}
- Желательно писать как можно короче
- Стараться умещать строку кода по ширине до 80 символов, на крайний случай до 120
- Названия переменных, классов, функций, методов и т.п. должны отражать суть, но не быть слишком длинными и не слишком короткими
Love writing code and I am really passionate about it

Последний раз редактировалось Bustle; 02.01.2012 в 16:59.
Bustle вне форума Ответить с цитированием
Старый 02.01.2012, 17:07   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
2. Отступы в стиле Олмана - http://ru.wikipedia.org/wiki/%CE%F2%...E0%ED%E8%E5%29
Что-то меня совсем не торкнули отступы на картинке по вашей ссылке.
_-Re@l-_ вне форума Ответить с цитированием
Старый 02.01.2012, 17:09   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну бывает . Но если включить какой-нибудь орган, то можно найти и так...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 02.01.2012, 17:20   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Возможно стиль отступов и не определяющий (если нет особых требований привередливого заказчика), главно что бы они вообще были, и все ПО оформлено в одном стиле. В Delphi тоже без отступов читать код очень тяжело, другой раз на форуме выложат 10 строк кода без отступов, не только читать, но и смотреть противно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.01.2012, 17:45   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

С++/C#
1)применяю стиль Олмана(1 таб, размером в 4 пробела).
2)у параметров у методов обычно ставлю нижнее подчеркивание, но не всегда, а обычно только тогда когда конфликт с именем поля(причем для списка инициализации)
3)поля пишу с малой буквы(обычно всегда private)
4)имена классов с большой буквы, и чтоб понятные были.*
5)обязательно использую namespace.*
6)в хидерах никаких using.
7)методы пишу с большой буквы(Scan, Clean)
но get/set-методы чаще пишу с малой(getData)

Делфи:
1)отступы по одному пробелу
2)классы как положенно с Т, предрекая имя класса префиксом
3)поля предрекаю F<имя>
4)методы с большой буквы(LoadFromFile)

*
Код:
phL::LexicalScanner::Scanner
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правила написания кода на Delphi Virtson Общие вопросы Delphi 17 06.08.2010 08:59
Правила разделов/главные правила Alex Cones О форуме и сайтах клуба 1 30.09.2009 17:49
Оформления текста tae1980 Microsoft Office Excel 6 26.03.2009 18:54
Стили оформления кода Altera Свободное общение 2 30.08.2008 17:23
Проблема оформления SunKnight Общие вопросы Delphi 3 25.02.2008 01:11