LINUX.ORG.RU

Программируя на «C», как вы оформляете код?

 


2

1

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

  1. Мне всё равно, какой стиль у меня 242 (30%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. K&R 207 (26%)

    *********************************************************************************************************************************************************************************************************************************************************************************

  3. Свой стиль 181 (23%)

    ***********************************************************************************************************************************************************************************************************************************************

  4. GNU 98 (12%)

    *********************************************************************************************************************************

  5. allman 82 (10%)

    ************************************************************************************************************

  6. linux 62 (8%)

    *********************************************************************************

  7. 1tbs 31 (4%)

    ****************************************

  8. stroustrup 30 (4%)

    ***************************************

  9. whitesmith 10 (1%)

    *************

  10. banner 6 (1%)

    *******

  11. horstmann 6 (1%)

    *******

Всего голосов: 955, всего проголосовавших: 804

★★★★★

Проверено: post-factum ()
Последнее исправление: Binary (всего исправлений: 1)

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

Странно, что его юзает всего 9%.

Вычти из опроса тех, кому до фени и у кого «свой» стиль.

Что по-настоящему странно, что так много народу пользуется гну-стилем - более инопланетного способа форматирования трудно придумать.

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

После прочтения Java code conventions на сайте Oracle, писать иначе на языках с си-подобным синтаксисом становится неприятно. (:

Insomnium ★★★★
()
Ответ на: комментарий от val-amart

Спасибо, посмотрю на гнутые отступы

fero ★★★★
()

Два пробела в качестве отступа, скобки по принципу K&R, и самое главное — между именем функции и скобками обязательно ставлю пробел (подглядел в документации GTK, пробел между именем функции и скобками делает код гораздо читабельнее, исключения лишь для тех функций, чьи имена «$» или «_»). Код выглядит примерно так:

public function get () {
  is_null ($this->_xsl) && $this->xsl (CEntity::factory ('CXslModel')->getByName (self::$_defaultXslName));
  is_null ($this->_xsl) && throw new CException ('Xsl doesn't exist.');
  $result = CXslProcessor::instance ()
    ->xml ($this->getXml ())
    ->xsl ($this->_xsl)
    ->process ();
  $this->clearEntities ();
  return $result;
}
xmm4n
()
Ответ на: комментарий от Insomnium

После прочтения Java code conventions на сайте Oracle, писать иначе на языках с си-подобным синтаксисом становится неприятно. (:

первая { в таком коде

int main(void)
{
    //body
}
1. мне визуально нравится

2. туда можно впихнуть коммент про этот блок, который будет виден как «имя» вкладки

3. он отделяет прототип от реализации функции.

Всё ИМХО, но мне нравится. И да, ИМХО!!!

drBatty ★★
()

определенно, какой-то стиль у меня выработался, но какой именно, сказать затрудняюсь. похож на K&R. ответил: мне все равно

chg ★★★★★
()

1TBS

...но только не «C», а «Javascript» ...

хм, хотя, да, синтаксис сишый.

user_id_68054 ★★★★★
()

очёнь огорчён что нас (1TBS) во много раз меньше чем K&R ...

...хотя да — на практике роясь в чужих исходниках — там как правило K&R

user_id_68054 ★★★★★
()

после этого опроса я ещё больше зауважал Python...

...там когда приходится редактировать чужие исходники — во много раз меньше приходится злится о том что мол «WTF STYLE!!»

хотя и в Python всегда есть несколько вариантов о том записать

x = [
    aaa,
    bbb,
    ccc,
] # <-- есть как минимум 3 варианта о том куда оставить эту скобку

my_func(param_A,
       param_B, param_C) # тоже самое, по сути

from my_super_module import (
        submodul_a,
        submodul_b,
        submodul_c,
        ) # и опятьже!

но согласитесь что в Python таких style-спорных строчек во много раз меньше чем в C-alike-языках (^_^).

user_id_68054 ★★★★★
()

пэхэпэ, indyan-style

function indian($a, $b)
{
  if($a!==true && $a===false)
  {
    $b = true;
  }
  elseif ($a===true && $a!==false)
  {
    $b = false;
  }
  return true; 
  //деньги
}
oskar0609
()
php, js - 1tbs + пробелы между скобками; 
python - lisp style
if ( function_exists( 'apc_clear_cache' ) ) {
    if ( apc_clear_cache() && apc_clear_cache( 'user' ) && apc_clear_cache( 'opcode' ) ) {
        print( 'All Clear!' );
    } else {
        print( 'Clearing Failed!' );
    }

    print( '<pre>' );
    print_r( apc_cache_info() );
    print( '</pre>' ) ;

} else {
    print( 'apc_clear_cache don\'t exist' );
}
Blood_Raven
()

Почитаю на досуге о всех этих стилях. Как-то не задумывался о подобных классификациях...

observer ★★★
()

Мне всё равно, какой стиль у меня 163 (26%)

Еретики!

DesertFox
()

Eclipse [built-in]

Почему нет в списке???

Bioreactor ★★★★★
()

Не пишу на си, так что отметил все пункты сразу

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

Удобнее читать, компактнее, + удобнее выделять блоки вне скобок { } пустой строкой, в олмане получится строка для закрывающей + пустая для разделения блоков.

В 1tbs когда читаешь if ... else видишь, что if «открывает» (занимает одну строку), } закрывает и находится на томже уровне, что и if, и сразу видно, где кончается весь блок.

Имхо меньше времени для просмотра кода и блоки кода более выделены.

Blood_Raven
()

Не хватает пункта «Я не знаю как называется мой coding style»

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

Хочется ВЗЯТЬ И ПЕРЕОФОРМИТЬ.

Это как мне раньше хотелось ВСЁ ВЗЯТЬ И ПЕРЕПИСАТЬ. На каждой работе.

pacify ★★★★★
()

В основном Allman, но в последнее время декларацию функций оформляю как в GNU, т.е.:

int
main(int argc,char** argv)

Удобно, если требуется узнать где именно функция имплементирована, то это можно сделать при помощи шаблона типа «^name».

A-234 ★★★★★
()
Ответ на: комментарий от skiminok1986

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

A-234 ★★★★★
()
Ответ на: комментарий от amazpyel

считаю вполне нормально

сам же по началу ставил в конце строки ; и забывал поставить : где нужно, и работа в разных редакторах надоедала, то 4, то 8 пробелов, то таб, пока не выбрал sublime

#!/usr/bin/env python3

import csv
file = "file.txt"

with open( file, 'r', encoding = 'utf-8' ) as csvfile:
    csv_reader = csv.reader( csvfile, delimiter = "\t", skipinitialspace = True )
    for row in csv_reader:
        print( ', '.join( row ) )
Blood_Raven
()

Мне всё равно, какой стиль у меня 177 (25%)

быдлокодеры на волне

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

Можно спокойно пользоваться незарегистрированной версией, только иногда при сохранении спрашивает «купишь?», а так ограничений нет.

Для питона хочу еще посмотреть wingware, pycharm, komodo

Blood_Raven
()

К сожалению вместо стандартных стилей приходится использовать фирменный, плохо проработанный.

NoName
()

А вы нарочно не указали Google Code Convention?

Altsin
()
Ответ на: комментарий от A-234

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

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

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

A-234 ★★★★★
()

Я бы порекомендовал юным подаванам НЕ использовать такой стиль:

function() {
}
1. Он путается со стилем содержимого функций: if (a) {....

2. Имея имя функции/класса на отдельной строчке, легче парсить текст (как человеку, так и машине). Скажем, когда нужны все классы и функции, ты ищешь одиночную { и выводишь предыдущую строчку.

Я думаю, даже без холиваров понятно, что стиль должен приходить к примерно такому:

class A
{
    void meth()
    {
        if (a) {
            ...
        } else {
            ...
        }
    }
}

Просто когда программингу учишься как Маугли - сам по себе, пишешь как попало. А с годами начинаешь чувствовать, где эстетически лучше вставлять пропуски.

matumba ★★★★★
()

всюду, кроме jQuery пишу

function()
{
...
}

wingear ★★★★
()

Похоже на Java, почти полностью совпадает с Qt style.

От себя несколько моментов:

void function()
{
    if (..) {
    } else if (...) {
    } else {
    }
}
вместо табов - 4 пробела
private и protected поля и методы классов начинать с «_»
accessor'ы и modifier'ы класса (если они тривиальны) - в 2 строки:
void setName(QString name)
    { _name = name; }
QString name() const
    { return _name; }

some-body ★★
()
Последнее исправление: some-body (всего исправлений: 1)

как в примерах микрочипа, привык просто. как называется - не знаю.

aiqu6Ait ★★★★
()

В 1tbs это не одно и то же что K&R?

ei-grad ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.