Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для IrinaNovikova
9 / 4 / 0
Регистрация: 12.05.2015
Сообщений: 48

Как понять нормальный у тебя код или нет?

16.02.2016, 11:22. Показов 3153. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сейчас в процессе изучения C++ столкнулась с тем, что подсматриваю в интернете кто и как выполняет те или иные задачи. Еще ни разу не было такого, чтобы наткнулась на полностью подходящий код. Всегда выкрадываешь только частицу из чужого кода.
Поневоле начинают закрадываться мысли, а правильный ли я пишу код? Как определить правильность кода? Да, код работает, но правильный ли он?
Еще больше начинает закрадываться мыслей в направлении, а правильный код у других программистов. Учитывая тот момент, что наталкиваешься на неподходящие варианты кода. Порой явно какой-то неправильный.
Мир кодеров не идеален?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.02.2016, 11:22
Ответы с готовыми решениями:

Надо понять правильно работает код или нет. И работает ли он вообще
Он должен вычислить сумму с точностью эпсилон #include <iostream> using namespace std; int main() {

Как понять - Blu-ray привод или нет?
Всем привет. Как понять блу рей привод или нет. matshita dvd-ram uj8e1

Как понять это бан или нет? и почему?
Есть у меня блог filatoff.org. Пишу временами и все сам, ни какого сдиралова. По началу индексировался медленно, но верно. А теперь судя...

26
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
16.02.2016, 14:41
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от IrinaNovikova Посмотреть сообщение
Как вот понять правильно ты сделал или нет?
Ну, мне кажется, что основные критерии - это полное использование средств языка, т.е. работа на максимальном уровне абстракции, красота кода, и ясность и удобочитаемость.
Вот большинство студентов на форуме говорят, что пишут на С++, а сами лабают на Си.
Красоту кода я имел в виду в широком смысле, т.е. приемлемость с вашей эстетической точки зрения. И здесь интуиция всегда подскажет. Как говорил Туполев, некрасивый самолет не полетит. Некрасивая программа может быть и скомпилируется, и даже правильно решит задачу, но может в других аспектах быть проблемой.
Ну а с ясной и удобочитаемой программой и самому удобнее работать и видеть в ней ошибки, и другим приятнее ее читать.
1
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
16.02.2016, 14:50
Цитата Сообщение от IrinaNovikova Посмотреть сообщение
Ну знаете вот в бухгалтерии все схемы работы отлажены. Если у компании по результатам квартала остается прибыль, то ее можно перевести только инвестору или в резервный фонд, но никак не списать с баланса и успокоится. В программировании можно решить задачу к примеру добавив одну переменную, а можно добавить четыре переменные и решить такую же задачу. Как вот понять правильно ты сделал или нет?
Я вот когда смотрю чужие коды, то мне кажется, что у других неправильно. Потом у меня возникают мысли, что ведь я начинающий в этом деле и как я могу судить других на правильность кода?
Если вы можете доказать, что их код неверный или неоптимальный с какими-то доводами - значит этот код неверный/неоптимальный.

Вот в бухгалтерии, для несведующего человека бухгалтерия это горстка чисел, для бухгалтера - каждое число обязано быть в определённой графе. Т.е. любой человек с улицы умеющий считать в столбик, сможет просчитать всю бухгалтерию и привести верные числа, только вот налоговая, не принимает бумажные салфетки с числами, им подавай определённую заполненную форму. Вот разница между проеденным бухгалтером и человеком с улицы в том, что бухгалтер знает, зачем нужна именно эта форма, почему её сделали именно такой, какую задачу она решает.
П.С. Я предполагаю, что эти формы у бухгалтеров не с неба взяты, и там на самом деле есть умные люди, которые решают проблемы, а не создают их

Переходя к коду и разговаривая о переменных, и о чужом неверном коде:
Нужно быть наверняка уверенным, что чужой код сделан таким, по велению судьбы, а не специально, тогда он без проблем может быть неверным.
Например оптимизации:
1) "Ломание" архитектуры, ради избавления от кэшпромахов.
2) Вынос условных переходов из логичного места в не совсем логичное, ради лучшего предсказывания переходов.
3) Использование какой-либо неудобной функции, вместо красивой и удобной, которая опять же может ускорить код.
4) Какие-то архитектурные решения, аля несколько доп. переменных - возможно они существуют ради облегчения будущего расширения кода, если так, то плох он или хорош этот код?

Именно знание всяческих нюансов писавшего и отличает хороший код от "плохого", ровно также как и в бухгалтерии, ровно также как и во всех остальных областях.

Но в общем случае, всё, что пишется на форумах, очень часто будет неверным, или не самым рациональным, на форумах обычно люди учатся или пишут частенько на отмашку. Всё увиденное нужно понимать и проверять. Последнее также относится к книгам
1
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
16.02.2016, 14:55
Цитата Сообщение от IrinaNovikova Посмотреть сообщение
Поневоле начинают закрадываться мысли, а правильный ли я пишу код?
Забей, на данном этапе нечего заморачиваться. Пиши код, читай книги, читай чужой код, общайся с шарящими людьми - все параллельно. С получением опыта и знаний будет приходить и понимание.
4
 Аватар для IrinaNovikova
9 / 4 / 0
Регистрация: 12.05.2015
Сообщений: 48
16.02.2016, 14:56  [ТС]
Цитата Сообщение от Nosey Посмотреть сообщение
всё, что пишется на форумах, очень часто будет неверным, или не самым рациональным, на форумах обычно люди учатся или пишут частенько на отмашку. Всё увиденное нужно понимать и проверять. Последнее также относится к книгам
Такие мысли меня тоже посещали. Видимо так оно и есть на самом деле.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
16.02.2016, 15:03
Цитата Сообщение от Nosey Посмотреть сообщение
Если вы можете доказать, что их код неверный или неоптимальный с какими-то доводами - значит этот код неверный/неоптимальный.
Не согласен. Программирование - это процесс языковый, а значит интуитивный и творческий, так что тут гармония алгеброй не всегда поверяется.
Ну, это как спорить, например, кто правильнее написал стихотворение о любви. Математически вроде не докажешь, но всем как-то понятно, что у Ахматовой лучше получилось, чем у какого-нибудь васи пупкина.
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
16.02.2016, 15:11
Цитата Сообщение от Mr.X Посмотреть сообщение
Не согласен. Программирование - это процесс языковый, а значит интуитивный и творческий, так что тут гармония алгеброй не всегда поверяется.
Ну, это как спорить, например, кто правильнее написал стихотворение о любви. Математически вроде не докажешь, но всем как-то понятно, что у Ахматовой лучше получилось, чем у какого-нибудь васи пупкина.
Это да, но это стилистические/душевные/холиварные нюансы, это само собой разумеющееся, озвучивать это ради холивара не хочу
И привёл лишь то, что подталкивает к дополнительному изучению материала.
0
260 / 87 / 30
Регистрация: 29.10.2015
Сообщений: 196
19.02.2016, 18:56
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

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

Попробую по нарастающей перечислить признаки крутизны кода.
1) Код выполняет условия задачи. Уже хорошо. И этого иногда достаточно, если задача сиюминутная и к ней больше никогда и никто не вернется - нужны лишь полученные данные, и все.
2) Код контролирует данные, подсовываемые в задачу, и не сваливается при неправильных данных, да еще и предупреждения пользователю выдает. Еще лучше.
3) Код написан в срок. Это вообще классно, и иногда это самый важный пункт.
4) Код вообще не глючил очень долго, и его не смогла "завалить" целая бригада тестировщиков. Еще лучше.
5) Код написан так, что вы вернулись к нему спустя два года, вам понадобилось что-то в нем доработать. И вы все вспомнили, как и что в нем устроено, и вам не понадобилось заново вникать в его структуру. Еще лучше.
6) Код написан так, что другой программист, которому его передали - разобрался в нем без проблем и смог сам внести в него нужные дополнения, не обрушив что-то другое. Еще лучше.

Все, конечно, ИМХО.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2016, 18:56

Как по матрице смежности понять изоморфны графы или нет
Как по матрице смежности понять изоморфны графы или нет?

Как понять правильно сверстана форма под мобильники или нет?
Здравствуйте. Столкнулся с тем, что если на странице нажать на кнопку Быстрая покупка под фото товара, то в мобильном представлении...

Как понять, ограничена (сверху/снизу/в целом) последовательность или нет?
Как понять ограничена(сверху/снизу/в целом) последовательность или нет? Не понимаю, как определить вид последовательности. Можно кратко...

DVD-RW Asus DRW-24B1S1T SATA Black RTL. Нормальный привод или нет?
Добрый день. Нужно купить DVD-Rom, т.к. старый Nec совсем не пишет и не читает диски. Выбрал: Привод DVD-RW Asus DRW-24B1S1T SATA Black...

Понять, разноцветное изображение или нет
вообщем. нужно понять разноцветное изображение или нет (понятие разноцветное может быть любым, я думаю самое простое - черное-белое оно или...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru