Часто приходится видеть, что именно среди C/C++ программистов многие не соблюдает name convention. Куда не посмотри на stackoverflow, везде, даже в одном и том же куске кода, какая-то каша. Не только name convention, но и пробелы между = и () и { }. Кто-то использует camel case, кто-то с нижними подчеркиваниями, кто ставит { на одной строке, кто-то с новой. Да, повторяюсь, часто это один человек в одном и том же куске кода.
Здравствуйте, ManFeel, Вы писали:
MF>Часто приходится видеть, что именно среди C/C++ программистов многие не соблюдает name convention. Куда не посмотри на stackoverflow, везде, даже в одном и том же куске кода, какая-то каша. Не только name convention, но и пробелы между = и () и { }. Кто-то использует camel case, кто-то с нижними подчеркиваниями, кто ставит { на одной строке, кто-то с новой. Да, повторяюсь, часто это один человек в одном и том же куске кода.
давай, расскажи, как нужно ставить пробелы в выражении"о=(а);" , обсудим.
Re[2]: Почему много C/C++ программистов не знают name convention?
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, ManFeel, Вы писали:
MF>>Куда не посмотри на stackoverflow
J>Ты считаешь, когда кто-то пишет пример кода в браузере, он заморачивается стилистикой кода?
ты не понял. почему программисты на других языках заморачиваются?
Re[3]: Почему много C/C++ программистов не знают name convention?
Здравствуйте, ManFeel, Вы писали:
J>>Ты считаешь, когда кто-то пишет пример кода в браузере, он заморачивается стилистикой кода? MF>ты не понял. почему программисты на других языках заморачиваются?
не замечал.
ЗЫ Когда коту программисту нечем заняться, он себе код лижет.
Да ответ простой — очень много разных нейм конвеншинов в разных либах.
Вот начал человек прогать. Открыл книгу по винапи, пишет в одном стиле.
Понадобилась хрень из буста начал писать код в стиле буста.
И вся эта каша в одном проекте. К некоторым с опытом приходит, что писать надо везде в одном стиле независимо от используемых библиотек.
Хотя я на проекте постоянно ругаюсь по поводу кодстайла с людьми которые уже по 10 лет работают но не могут писать код в одном стиле.
Раздражает нереально, а все удивляеются чего это я к кодстайлу все пристаю, код же работает.
Re: Почему много C/C++ программистов не знают name convention?
Разный стиль кодирования у одного программиста — почти всегда следствие копипаста из разных мест. Почему копипаст особенно распространен у C++-программистов (или почему Вам так какжется) — не берусь судить.)
Re: Почему много C/C++ программистов не знают name convention?
Язык программирования тут ни при чём, проблема в инструментарии.
Например, для c# автоформатирование + проверка на соответствие стилю кодирования в студии присутствует практически из коробки. Плюс, есть общепринятый ещё с c# 1.0 стиль кодирования. Как результат, best practices закрепляются с начала изучения языка, и чтобы изобрести что-то своё, надо осознанно от них отклоняться.
Даже когда код пишется без студии, "красивости" добавляются на автомате. Иначе непривычно выглядит
Напротив, если весь окружающий код — это мешанина из кучи разнородных исходников + блокнот (notepad++/vim/etc — в общем, не полноценная IDE), то привычке оформлять код правильно взяться неоткуда
Re[2]: Почему много C/C++ программистов не знают name convention?
Здравствуйте, jahr, Вы писали:
J>Разный стиль кодирования у одного программиста — почти всегда следствие копипаста из разных мест. Почему копипаст особенно распространен у C++-программистов (или почему Вам так какжется) — не берусь судить.)
Обычно так — что бы заюзать какую то функцию, нужно найти include, lib, скопировать бинарники при необходимости, поприседать с линкером. А на кой ляд это надо ? Вот и берут копируют все подряд откуда угодно.
Re[2]: Почему много C/C++ программистов не знают name convention?
В c# к тому же один компилятор, а не много, как в c/c++, и большинство работает с c# из студии.
И потом большинство примеров для c# написаны MS, соответственно в одном стиле.
А для c/c++ есть разные известные стили (например, google code style).
Re: Почему много C/C++ программистов не знают name convention?
Здравствуйте, ManFeel, Вы писали:
MF>Часто приходится видеть, что именно среди C/C++ программистов многие не соблюдает name convention.
Потому что его не существует. В С++ нет такой вещи как naming convention. Каждый прилюбодействет как хочет. Naming conventions и прочие conventions есть у команд разработчиков, у библиотек и тд. Но на уровне языка — ничего подобного нет.
А вот скажем в Go эту проблему решили изначально правильно — там есть утилита для форматирования кода, работающая "из коробки" и единый стандарт оформления кода.
Re[2]: Почему много C/C++ программистов не знают name convention?
Здравствуйте, Lazin, Вы писали:
L>Здравствуйте, ManFeel, Вы писали:
MF>>Часто приходится видеть, что именно среди C/C++ программистов многие не соблюдает name convention.
L>Потому что его не существует. В С++ нет такой вещи как naming convention. Каждый прилюбодействет как хочет. Naming conventions и прочие conventions есть у команд разработчиков, у библиотек и тд. Но на уровне языка — ничего подобного нет.
кто сказал, что он существует на уровне языка?
Re: Почему много C/C++ программистов не знают name convention?
MF>Например, тут http://stackoverflow.com/questions/2108219/c-raw-sockets-and-64-bit-issue?rq=1 — все подряд понамешано. По какому принципу он ставит { то на одной строке, то на новой? Почему иногда именует переменные как n_var, а иногда nVar ?
На stackoverflow часто задают вопросы по куску скопированного и немного поправленного примера. В исходном виде один стиль. Правки делаются другим.
Make flame.politics Great Again!
Re: Почему много C/C++ программистов не знают name convention?
Здравствуйте, ManFeel, Вы писали:
MF>Часто приходится видеть, что именно среди C/C++ программистов многие не соблюдает name convention. Куда не посмотри на stackoverflow, везде, даже в одном и том же куске кода, какая-то каша. Не только name convention, но и пробелы между = и () и { }. Кто-то использует camel case, кто-то с нижними подчеркиваниями, кто ставит { на одной строке, кто-то с новой. Да, повторяюсь, часто это один человек в одном и том же куске кода.
MF>Например, тут http://stackoverflow.com/questions/2108219/c-raw-sockets-and-64-bit-issue?rq=1 — все подряд понамешано. По какому принципу он ставит { то на одной строке, то на новой? Почему иногда именует переменные как n_var, а иногда nVar ?
MF>И такое я замечаю чаще всего именно для C/C++ кода. примеров масса.
Это инерция культуры от всяких доинтернетных времён. Name convention чаще всего существуют и соблюдаются в пределах какой-то одной библиотеки, но когда дело доходит до того, чтобы подключить пару библиотек к своему проекту, получается, что есть свой naming convention, есть naming convention первой библиотеки, есть naming convention второй библиотеки. И это нифига не способствует движению в правильную сторону
Автор поста на SO скорее всего либо просто говнокодер, либо поставил себе задачу за 60 секунд накидать пример для вопроса. Склоняюсь к первому варианту.
Re[2]: Почему много C/C++ программистов не знают name convention?
Здравствуйте, Sinix, Вы писали:
S>Например, для c# автоформатирование + проверка на соответствие стилю кодирования в студии присутствует практически из коробки.
Когда то давно, когда еще даже FW Guidelines не были выпущены, сравнительно несложными административными методами удавалось добиваться неплохого единообразия стиля. Так что инструменты тут не причем.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
S>>Например, для c# автоформатирование + проверка на соответствие стилю кодирования в студии присутствует практически из коробки. AVK>Когда то давно, когда еще даже FW Guidelines не были выпущены, сравнительно несложными административными методами удавалось добиваться неплохого единообразия стиля. Так что инструменты тут не причем.
Это же бубль гум административными методами, тут хоть на мальбогле пиши — нужно соблюдать Ну а когда никакого контроля за кодом нет, то получается то, что у топикстартера.
Re[3]: Почему много C/C++ программистов не знают name convention?
Здравствуйте, AndrewVK, Вы писали:
S>>Ну а когда никакого контроля за кодом нет AVK>... то надо его вводить. На таком уровне это совсем недорого обходится.
По-моему, это из разряда "за всё хорошее и против всего плохого". Мы ведь говорим про вариант "без инструментальной поддержки", так?
В единичных случаях возможно всё что угодно, в общем случае — увы. Далеко не во всех проектах можно ввести нормальный code review. Не, чисто формально можно, но на практике затраты и выигрыш несопоставимы будут. Веб, легаси, аутсорс, проекты "для фана" — там "качество" кода зачастую такое, что чисти-не чисти — не спасёт
Единственный рабочий вариант из тех что я видел и делал — хук на событие коммита с проверкой изменённого файла, типа такого. Всё остальное — разговоры в пользу бедных, т.к. при смене тимлида/команды перестаёт работать на раз-два.
Re[3]: Почему много C/C++ программистов не знают name convention?
Здравствуйте, Qodomoc, Вы писали:
Q>В c# к тому же один компилятор, а не много, как в c/c++, и большинство работает с c# из студии.
Ну, компилятору то в общем всё равно на стилистику.
Q>А для c/c++ есть разные известные стили (например, google code style).
Большинство из них выросли из персональных предпочтений CTO компании.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока