|
|
||||||
Оценка стиля кода25.01.2015, 01:27. Показов 2965. Ответов 34
Метки нет (Все метки)
Народ, есть предложение. Оцените мой код. Не в смысле функционала - в смысле стиля написания.
Значится, вот тут есть некий код:
Итак, кто за мою аннигиляцию, как написателя адекватного цпп кода - поднимите руки и скажите свое язвительное слово. ![]() Кто против - тоже не стесняйтесь.
0
|
||||||
| 25.01.2015, 01:27 | |
|
Ответы с готовыми решениями:
34
Оценка кода Оценка кода |
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 26.01.2015, 15:26 | ||
|
1
|
||
|
4226 / 1796 / 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 / 1796 / 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 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 28.01.2015, 16:51 | |
|
Функции надо выделять не по минимуму их подзадач, а по минимуму связей с другими частями программы, как горизонтальных, так и с вызывающим кодом.
Добавлено через 5 минут То есть так, чтоб любое одиночное изменение где угодно вне функции с наименьшей вероятностью влекло за собой изменения функции, а её изменения с наименьшей вероятностью влекло за собой изменения вне функции, а если уж изменения вне функции влекут за собой изменения в функции и/или наоборот, то влекомые изменения должны быть минимальны. При этом каждая функция должна делать что нибудь осмысленно и при этом всё таки законченное и позволять придумать себе осмысленное имя, описывающее и назначение самой функции, и семантику её параметров.
1
|
|
| 28.01.2015, 18:10 | |
|
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 28.01.2015, 18:55 | |
|
0
|
|
| 28.01.2015, 23:26 | |
|
По форматированию - лишние скобки и строчки имхо дурной тон. Однострочники рулят. Не, конечно если у вас вместо монитора проектор на всю стену и сразу одним взглядом можно охватить несколько сотен строк кода - тогда да, можно позволить себе писать как ТС (тоже аббревиатурка, да). А если на моем буке стандартный экран, то меня достает мотать простыни, написанные в подобном стиле.
Единственно что можно тут упомянуть - опыт одной знакомой бабки, которая решила в готовом работающем коде заменить часть функций макросами и код перестал работать. Как выяснилось - как раз из-за отсутствия фигурных скобок внутри условий и циклов - функция выполнялась как одно целое, а макрос "рвался". По поводу выноса в функции - если скорость не важна или компилировать с максимальной оптимизацией, то логику конечно упрощает.
1
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 29.01.2015, 16:06 | |||
|
Добавлено через 2 минуты
0
|
|||
|
|
|
| 29.01.2015, 18:16 | |
|
0
|
|
| 29.01.2015, 18:16 | |
|
оценка кода
Оценка кода динамического двумерного массива Оценка стиля написания кода Настройка стиля кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|