Это неуклюжий интервал какой-то стиль?

9

Читая другой код программиста, он использует формат, который я никогда не видел. НАПРИМЕР

    namespace MyNs.HereWeAre
         {//tab here for some reason
         public class SomeClass
               {//here's another tab
               public string Method()
                    {//yet another tab
                    string _variable = "";//no tab implementation
                    return _variable;
                    }
               }//eof - class  (Yes these eof comments are on every file)
        }//eof - namespace
// eof - file

Я признаю ... этот код раздражает меня. Трудно добиться этого стиля. Нужно бороться с форматированием по умолчанию, предоставляемым IDE, visual studio.

Я мог бы проглотить эту таблетку немного легче, если бы знал, что для этого стиля есть веская причина. Этот стиль проистекает из какого-то другого языка программирования / IDE?

P.Brian.Mackey
источник
5
Это просто странно. За свои 18 лет развития я никогда не видел этого соглашения.
17 из 26
5
Если бы мне пришлось угадывать, я бы сказал, что программист - это Python-конвертер, который слегка расстроен необходимостью скобок и привык к отступу от всех под-токенов синтаксиса.
Теластин
21
CTRL K + CTRL D!
RYFN
2
@ Зевс - О, черт возьми, это сэкономит мне так много времени на решение этого нетрадиционного форматирования! Вы должны получить несколько баллов за это.
P.Brian.Mackey
1
Этот переформатированный ярлык (Ctrl K + Ctrl D) также работает с файлами HTML и другими форматами в Visual Studio.
Одед

Ответы:

19

Да: http://en.wikipedia.org/wiki/Indent_style#Whitesmiths_style

Стиль Whitesmiths, также называемый стилем Wishart в меньшей степени, сегодня встречается реже ... Первоначально он использовался в документации для первого коммерческого компилятора C, Whitesmiths Compiler . Он также был популярен в первые годы существования Windows, так как он использовался в трех влиятельных книгах по программированию для Windows, Руководстве для программистов по Windows от Durant, Carlson & Yao, Программировании Windows от Petzold и Windows 3.0 Power Programming Techniques от Norton & Yao. ,

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

Преимущества этого стиля аналогичны преимуществам стиля Allman в том, что блоки четко отделены от операторов управления. Однако в стиле Whitesmiths блок все еще визуально связан с оператором управления, а не выглядит как не связанный блок кода, окруженный пробелами. Другое преимущество состоит в том, что выравнивание фигурных скобок с блоком подчеркивает тот факт, что весь блок является концептуально (а также программно) одним составным оператором. Кроме того, отступ в скобках подчеркивает, что они подчиняются контрольному утверждению.

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

Это тот, который я никогда не видел практиковал, спасибо, IPU.

Eclipse имеет встроенный стиль кода Whitesmith для c ++ ... вы можете быть испорчены Java, так как каждый должен использовать один и тот же стиль в этом языке.

Эдвард Стрендж
источник
4
о, что значит "спасибо IPU"? Google не скажет мне ...
Амара
4
Невидимый Розовый Единорог. ru.wikipedia.org/wiki/Invisible_Pink_Unicorn
Скотт С. Уилсон
Стиль Whitesmiths не включает вкладки в конце строки. Вкладки в любом месте, кроме как в самом начале строки, являются злом и должны быть убиты огнем.
tdammers
6

Хотя стиль кодирования вашего коллеги причудлив, уродлив и труден для чтения:

  1. если у вас нет стандартов кодирования, то их форматирование так же, как и любое другое.

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

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

Если они все еще работают в вашей компании, вы пытались поговорить с ними об этом?

mward
источник
Этот человек давно ушел в мое время. Теперь перейдем к руководству по проектированию Microsoft Framework.
P.Brian.Mackey
9
В этом случае перед внесением изменений я рекомендую включить переформатирование кода в виде отдельной регистрации (например, Ctrl K + Ctrl D) (чтобы было легче отслеживать это конкретное изменение).
Брайан