Форум программистов, компьютерный форум CyberForum.ru

Нюансы оформления кода - C++

Восстановить пароль Регистрация
 
 
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2139 / 972 / 223
Регистрация: 30.11.2013
Сообщений: 3,241
15.04.2016, 12:23     Нюансы оформления кода #1
Mr.X, то что вы делаете с форматированием кода заставляет меня плакать. Зачем вы так со мной?(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
16.04.2016, 13:15     Нюансы оформления кода
  #21

Не по теме:

avgoor, Не мне об этом судить, да и вообще лучше не вскрывать тему Российской армии.
Ну а вообще вот вам не удобно, а мне и Mr.X очень даже удобно. На вкус и цвет товарищей нет, как говорится.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,691
16.04.2016, 14:36     Нюансы оформления кода #22
Цитата Сообщение от avgoor Посмотреть сообщение
Цитата Сообщение от Mr.X Посмотреть сообщение
А что касается выравнивания по табу - так это только для удобства чтения.
Ну как? Вот, как это может быть удобно?
Ну, первое, что мы делаем при чтении кода - это проводим его семантический анализ, т.е. определяем чем является та или иная лексема (хотя, если между лексемами нет пробелов, то сначала придется сами лексемы мысленно выделять и опознавать). Если у нас строки написаны хаотично, то каждую строку мы анализируем независимо от других. Если же у нас сходные лексемы выровнены в столбик, то тут уже заранее ясно, что имя переменной надо искать под именем переменной, аргумент функции под аргументом функции, т.е. время на семантический анализ значительно сокращается. Т.е. получается, что заранее известно где что находится и где это можно найти. Ну, у Голуба это яснее изложено. А то похоже, что книг по форматированию кода никто не читает, но мнение свое тем не менее имеют, и считают, что оно-то самое авторитетное и есть.
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
16.04.2016, 19:10     Нюансы оформления кода #23
Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, первое, что мы делаем при чтении кода - это проводим его семантический анализ
Во во. Не знаю как вам, а мне, когда между, например, типом переменной и ее именем большой пробел, трудно глазами сопоставить одно с другим. Посмотрите оглавление любой книги:
Глава 1: Что-то там такое.....................................................................3
Глава 2: Что-то другое.........................................................................10
К чему там эти точки? Наверное чтоб легче сопоставить главу со страницей.
Теперь код. Точки там не поставить. И мне вот здесь сложнее понять какой тип имеет foo:
C++
1
2
int                                                          foo;
double                                                       bar;
А вообще, недавно британские ученые выяснили, почему юзеры не могут прочитать сообщения об ошибках.
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,558
Записей в блоге: 1
Завершенные тесты: 2
16.04.2016, 19:48     Нюансы оформления кода #24
Цитата Сообщение от avgoor Посмотреть сообщение
Теперь код. Точки там не поставить. И мне вот здесь сложнее понять какой тип имеет foo:
Для этого и существует подсветка выделенной строки.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,723
Записей в блоге: 3
16.04.2016, 19:59     Нюансы оформления кода #25
Цитата Сообщение от avgoor Посмотреть сообщение
А вообще, недавно британские ученые выяснили, почему юзеры не могут прочитать сообщения об ошибках.
Догадка:
Кликните здесь для просмотра всего текста
Голова не влазит в монитор, наверное?
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
16.04.2016, 20:14     Нюансы оформления кода #26
Цитата Сообщение от GbaLog- Посмотреть сообщение
подсветка выделенной строки.
Одной строки. При этом, наверное, нет подсветки синтаксиса? Ну раз уж нужно имена табами выравнивать.
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,558
Записей в блоге: 1
Завершенные тесты: 2
16.04.2016, 20:21     Нюансы оформления кода #27
avgoor, А вам надо, чтобы сразу все строки подсвечивались? Зачем тогда нужна эта подсветка, я говорю о том, как узнать у какой переменной какой тип.
Об вот этом.
Теперь код. Точки там не поставить. И мне вот здесь сложнее понять какой тип имеет foo:
C++
1
2
int                                                          foo;
double                                                       bar;
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
16.04.2016, 20:26     Нюансы оформления кода #28
Цитата Сообщение от GbaLog- Посмотреть сообщение
Зачем тогда нужна эта подсветка, я говорю о том, как узнать у какой переменной какой тип
Цитата Сообщение от Mr.X Посмотреть сообщение
Если же у нас сходные лексемы выровнены в столбик, то тут уже заранее ясно, что имя переменной надо искать под именем переменной
Выделения цветом недостаточно? Зачем их выравнивать?
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,558
Записей в блоге: 1
Завершенные тесты: 2
16.04.2016, 20:33     Нюансы оформления кода #29
avgoor, Ну мне, например, так приятней смотреть, да и читать легче, когда не надо в каждой строке искать место, где начинается имя переменной. Ты как бы ищешь его один раз, и остальные просто смотришь ниже.
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
16.04.2016, 20:42     Нюансы оформления кода #30
Цитата Сообщение от GbaLog- Посмотреть сообщение
Ну мне, например, так приятней смотреть
И это главная причина такого форматирования.
Маяковский стихи похожим образом писал. НО! он один так писал и никому не придет в голову, что их офигенно удобно читать.

Добавлено через 3 минуты
Резюмирую: приятно смотреть и удобно читать - разные вещи!
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,558
Записей в блоге: 1
Завершенные тесты: 2
16.04.2016, 20:46     Нюансы оформления кода #31
Цитата Сообщение от avgoor Посмотреть сообщение
И это главная причина такого форматирования.
А для чего вообще форматирование тогда? Если неприятно смотреть на свой код, то и желание кодить отпадет.
Цитата Сообщение от avgoor Посмотреть сообщение
Маяковский стихи похожим образом писал.
Маяковский был футуристом, он любил "зажечь" читателя, может поэтому так и писал.
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,558
Записей в блоге: 1
Завершенные тесты: 2
16.04.2016, 20:50     Нюансы оформления кода #32
del

Добавлено через 2 минуты
Цитата Сообщение от avgoor Посмотреть сообщение
Резюмирую: приятно смотреть и удобно читать - разные вещи!
Я понимаю, но мне и читать удобно и смотреть приятно, такие дела. А код вроде
C++
1
2
3
4
5
int foo() {
    int g = 0;
    //do smth
    return g;
}
мне не нравится.
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
16.04.2016, 20:53     Нюансы оформления кода #33
Цитата Сообщение от GbaLog- Посмотреть сообщение
А для чего вообще форматирование тогда?
Ну, ранее в этой теме проскакивало, что такое форматирование ускоряет чтение и, чтобы осознать это - нужно прочесть кучу умных книжек. А оказалось, что просто нравится как оно выглядит. Как я и предполагал.

Добавлено через 52 секунды
А на вкус и цвет, как известно, все фломастеры разные.
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,558
Записей в блоге: 1
Завершенные тесты: 2
16.04.2016, 20:59     Нюансы оформления кода #34
avgoor, Не стоит на моем примере останавливаться.
И с чего вы взяли, что это не ускоряет чтение? Очень даже, но только когда уже привыкнешь. А когда ты беспорядочно пишешь, то так, то сяк, то, конечно, ничего не увидишь хорошего в таком коде.
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
16.04.2016, 21:04     Нюансы оформления кода #35
Цитата Сообщение от GbaLog- Посмотреть сообщение
но только когда уже привыкнешь.
Ключевое.
Цитата Сообщение от GbaLog- Посмотреть сообщение
И с чего вы взяли, что это не ускоряет чтение?
Где в крупных компаниях так форматируют? В гугле неосиляторы guideline писали?
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,558
Записей в блоге: 1
Завершенные тесты: 2
17.04.2016, 09:57     Нюансы оформления кода #36
avgoor, Ладно, я, пожалуй, лучше перестану писать что-либо, а то уже сам в своих сообщениях и мыслях путаюсь.

Добавлено через 2 минуты
Отдохну и завтра отвечу.

Добавлено через 12 часов 41 минуту
Цитата Сообщение от avgoor Посмотреть сообщение
Ключевое.
Ну в общем-то к любому стилю кода надо привыкнуть, даже в больших IT-компаниях, таких, как Google тебе дадут ссылку на их стиль кода и ты должен к нему прирости, иначе тебя просто могут выгнать(если действительно за такое могут).
Просто тот стиль, который использует Mr.X мне кажется наиболее читаемым, чем какой-либо другой, поэтому я его хотя бы пытаюсь использовать.
Цитата Сообщение от avgoor Посмотреть сообщение
Где в крупных компаниях так форматируют? В гугле неосиляторы guideline писали?
Я не знаю где как форматируют, я ещё нигде не работал. Но могу предположить, что где-нибудь так пишут. И ещё, многие компании наверняка не задумываются о том, что после написания готового продукта их код кто-то будет читать, поэтому стиль форматирования выбирают не более читаемый, а более быстрый по написанию.
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
17.04.2016, 11:53     Нюансы оформления кода #37
Цитата Сообщение от GbaLog- Посмотреть сообщение
поэтому я его хотя бы пытаюсь использовать.
Зря-зря-зря. 99% что потом придется отвыкать.

Цитата Сообщение от GbaLog- Посмотреть сообщение
что где-нибудь так пишут
Чтобы где-то так писали, нужно этот стиль формализовать. Что значит формализовать? Это значит написать правила, однозначно определяющие форматирование одного и того же кода. Потому что если один код может быть отформатирован совсем по-разному разными людьми (что при данном стиле так оно и есть, как мне думается), то теряется консистентность по всей кодовой базе. А это ничем не лучше отсутствия вообще какого-либо стиля. Да и средства автоформатирования не смогут адекватно проверять такое на прекоммитном хуке, как и просто форматировать.

Цитата Сообщение от GbaLog- Посмотреть сообщение
поэтому стиль форматирования выбирают не более читаемый, а более быстрый по написанию.
Ничего подобного. Если компания озаботилась гайдом по коду, то ее усилия очевидно направлены именно на сопровождение.

Да если даже убрать всякое бизнес-вэлью, то лично мне просто крайне неудобно этот код читать. Вместо того, чтобы спокойненько и плавно перемещаться по коду, мне нужно заставлять глаза прыгать из одного места в другое. "Вырвиглаз" стайл для бешеных и нервных
Я уж молчу о том, что будет, когда я захочу одновременно править несколько файлов...
GbaLog-
Не Эксперт C++
1527 / 631 / 176
Регистрация: 24.08.2014
Сообщений: 2,558
Записей в блоге: 1
Завершенные тесты: 2
17.04.2016, 12:14     Нюансы оформления кода #38
Цитата Сообщение от ct0r Посмотреть сообщение
Чтобы где-то так писали, нужно этот стиль формализовать.
Я не думаю, что Mr.X безработный или фрилансер, который сам этот стиль полностью выработал и использует его только он.
Цитата Сообщение от ct0r Посмотреть сообщение
Зря-зря-зря. 99% что потом придется отвыкать.
Может быть, но что мне мешает сейчас так писать? Мне неизвестно мое будущее и, возможно, если я буду учится другому стилю форматирования, то когда приду на первую работу мне скажут форматировать так, как Mr.X. Так что сейчас переучиваться не вижу смысла.
Цитата Сообщение от ct0r Посмотреть сообщение
Ничего подобного. Если компания озаботилась гайдом по коду, то ее усилия очевидно направлены именно на сопровождение.
Ну я сделал предположение.

Кстати, если для вас это "вырвиглазное" форматирование, то это не значит, что для всех так. Сколько ещё раз мне это придется сказать, я даже не представляю.
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
17.04.2016, 12:25     Нюансы оформления кода #39
Цитата Сообщение от GbaLog- Посмотреть сообщение
Я не думаю, что Mr.X безработный или фрилансер, который сам этот стиль полностью выработал и использует его только он.
Меня это не интересует. Либо стиль хорошо формализуется, либо нет. Если нет, то его никто в здравом уме никогда в больших проектах использовать не будет. Все просто.
Найди мне такое форматирование в популярном гитхабовском проекте.

Цитата Сообщение от GbaLog- Посмотреть сообщение
если я буду учится другому стилю форматирования, то когда приду на первую работу мне скажут форматировать так, как Mr.X
Или скажут играть на барабанах. Такая же вероятность.

Цитата Сообщение от GbaLog- Посмотреть сообщение
Ну я сделал предположение.
Нужно не придумывать предположения в угоду своим хотелкам, а объективно смотреть на вещи.

Цитата Сообщение от GbaLog- Посмотреть сообщение
Кстати, если для вас это "вырвиглазное" форматирование, то это не значит, что для всех так. Сколько ещё раз мне это придется сказать, я даже не представляю.
Если внимательно все читать, то можно и не говорить.
Цитата Сообщение от ct0r Посмотреть сообщение
то лично мне просто крайне неудобно этот код читать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2016, 12:28     Нюансы оформления кода
Еще ссылки по теме:

C++ Нюансы синтаксиса: использование typedef
C++ Объянить нюансы работы указателей
Нюансы обучения: желание учесть все нюансы - корректность кода или overengineering? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nosey
 Аватар для Nosey
1185 / 352 / 102
Регистрация: 22.10.2014
Сообщений: 790
Завершенные тесты: 2
17.04.2016, 12:28     Нюансы оформления кода #40
В случае отсутствия IDE при работе с кодом, и в случае любви к функциональному стилю(for_each + lamba vs ranged for ) - код мистера Mr.X однозначно выигрывает. В остальных случаях слишком много проблем, учитывая что сегодня IDE поддерживают полный цикл разработки -> без IDE разработчики остаются очень редко, и функциональный подход не столь любим в общей массе С++ разработчиков, а те кто любят, также любят и скобочки на одной линии кода .
А самая главная проблема что в 95% случаев, вы будете писать такой код в гордом одиночестве, остальные люди просто жахнут "обычным" автоформатом.

Добавлено через 2 минуты
Цитата Сообщение от GbaLog- Посмотреть сообщение
Кстати, если для вас это "вырвиглазное" форматирование, то это не значит, что для всех так. Сколько ещё раз мне это придется сказать, я даже не представляю.
Найдите на github'e проекты оформленные в стиле Mr.X, и сравните с количеством "обычно" оформленных проектов
, статистика такая штука интересная.
Yandex
Объявления
17.04.2016, 12:28     Нюансы оформления кода
Ответ Создать тему
Опции темы

Текущее время: 18:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru