|
|
||||||
Оценка стиля кода25.01.2015, 01:27. Показов 3127. Ответов 34
Метки нет (Все метки)
Народ, есть предложение. Оцените мой код. Не в смысле функционала - в смысле стиля написания.
Значится, вот тут есть некий код:
Итак, кто за мою аннигиляцию, как написателя адекватного цпп кода - поднимите руки и скажите свое язвительное слово. ![]() Кто против - тоже не стесняйтесь.
0
|
||||||
| 25.01.2015, 01:27 | |
|
Ответы с готовыми решениями:
34
Оценка кода Оценка кода |
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 26.01.2015, 15:26 | ||
|
1
|
||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||||||||||||||||||||||||||||||||
| 26.01.2015, 15:38 | ||||||||||||||||||||||||||||||||||||
0
|
||||||||||||||||||||||||||||||||||||
|
Заблокирован
|
||
| 26.01.2015, 16:16 | ||
|
0
|
||
|
|
||
| 26.01.2015, 16:22 | ||
|
Добавлено через 5 минут Все эти рекомендации по оптимизации кода зачастую всплывают в старой литераторе. В те времена памяти было мало, а потому компиляторы были недостаточно умными, и программисту приходилось заниматься ручными оптимизациями, многие из которых в нынешние дни уже неактуальны
2
|
||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||||||||||||||||||||||||||||||||||||||
| 26.01.2015, 18:13 | |||||||||||||||||||||||||||||||||||||||||||||||
0
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
| 28.01.2015, 14:09 [ТС] | |
|
Благодарю всех за внимание.
![]() По форматированию отвечу всем сразу, без цитат, а-то это дело растянется надолго. Всем сторонникам ярко выраженной лаконичности могу только пожать плечами. Привычка к обилию фигурных скобок напрямую вытекает из способа написания кода. Почти никогда не пишу финальную версию алгоритма вот так сразу одним проходом. На это у меня банально не хватит опыта - вместо этого сперва делаю базовую версию, костяк, и постепенно добавляю функционал - в этом случае изначальное наличие всех скобок на циклах и условиях облегчает процесс. Плюс, однозначность - не может даже теоретически возникнуть сомнений, что находится в теле цикла, а что нет. Обилие пробелов, переносов строк, скобок - все это работа форматировщика, делается автоматом. Наличие всех закрывающих скобок также контролируется редактором. Так что, когда настраивал всю эту оснастку, просто решил, что пусть все будет визуально отдельно - попробовал, понравилось, а на некоторые нестыковки, как наличие\отсутствие пробела после названия функции или слова for, просто закрыл глаза. Так ли оно важно? Например, предназначение звездочки как оператора умножения или оператора разыменования должно однозначно вытекать из контекста, поэтому пробелы не имеют особого значения. 0x10, Evg, полностью согласен по перегрузке логикой. Постоянно пинаю себя не лениться и дробить код под кусочки с минимумом функционала... Но всегда трудно было уловить грань, на которой следует остановиться. Например, очистка временных контейнеров в шапке цикла. Другое дело, что при разнесении логики по функциям, как сделал 0x10, абсолютно любой цикл будет просто проходом по последовательности без дополнительной лапши. Вот это уже куда проще читается. В общем, с позиций профессионального программирования компоновка кода у меня никуда не годится, это понял, тут есть много чему поучиться. Но если учесть, что программирование - хобби, а профессиональная деятельность никак не связана даже с IT? ![]() Убежденный, код выдран из контекста и из темы. Это фикс на новый функционал - поэтому что-то было добавлено, а старое, уже не нужное - закомментировано. Ну, и наименование gp откомментировано в классе. Хотя, согласен - лучше было оставить полное наименование.SatanaXIII, мне тут сказали, что мой код вообще лисп напоминает.)) Неужто инициализация копированием так страшно смотрится? В stl ведь это обычное дело, многое основано на конструкторе копирования и operator(), так почему не использовать это в любой инициализации? Я даже и разницы не заметил, когда отказался от инициализации присваиванием.
0
|
|
|
|
||
| 28.01.2015, 14:40 | ||
|
3
|
||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 28.01.2015, 16:51 | |
|
Функции надо выделять не по минимуму их подзадач, а по минимуму связей с другими частями программы, как горизонтальных, так и с вызывающим кодом.
Добавлено через 5 минут То есть так, чтоб любое одиночное изменение где угодно вне функции с наименьшей вероятностью влекло за собой изменения функции, а её изменения с наименьшей вероятностью влекло за собой изменения вне функции, а если уж изменения вне функции влекут за собой изменения в функции и/или наоборот, то влекомые изменения должны быть минимальны. При этом каждая функция должна делать что нибудь осмысленно и при этом всё таки законченное и позволять придумать себе осмысленное имя, описывающее и назначение самой функции, и семантику её параметров.
1
|
|
| 28.01.2015, 18:10 | |
|
0
|
|
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 28.01.2015, 18:55 | |
|
0
|
|
| 28.01.2015, 23:26 | |
|
По форматированию - лишние скобки и строчки имхо дурной тон. Однострочники рулят. Не, конечно если у вас вместо монитора проектор на всю стену и сразу одним взглядом можно охватить несколько сотен строк кода - тогда да, можно позволить себе писать как ТС (тоже аббревиатурка, да). А если на моем буке стандартный экран, то меня достает мотать простыни, написанные в подобном стиле.
Единственно что можно тут упомянуть - опыт одной знакомой бабки, которая решила в готовом работающем коде заменить часть функций макросами и код перестал работать. Как выяснилось - как раз из-за отсутствия фигурных скобок внутри условий и циклов - функция выполнялась как одно целое, а макрос "рвался". По поводу выноса в функции - если скорость не важна или компилировать с максимальной оптимизацией, то логику конечно упрощает.
1
|
|
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 29.01.2015, 16:06 | |||
|
Добавлено через 2 минуты
0
|
|||
|
|
|
| 29.01.2015, 18:16 | |
|
0
|
|
| 29.01.2015, 18:16 | |
|
оценка кода
Оценка кода динамического двумерного массива Оценка стиля написания кода Настройка стиля кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|