|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.03.2017, 12:49 | #1 |
Новичок
Джуниор
Регистрация: 03.03.2017
Сообщений: 4
|
Оценка начинающему
Привет, гуру! Я начал изучать С++ после года кодинга на Дельфи/паскале, занимаюсь по книжке Лафоре 4-ый курс, далеко за 3-4 дня, конечно, не ушёл, но уже удалось написать терминальную имитацию видеопокера.
Я хотел бы попросить всех посетивших посмотреть на код и дать оценку, в том ли я направлении думаю, как у меня получается да и в целом код на продуманность, за плюсики в карму, разумеется. Код:
Заранее спасибо. |
03.03.2017, 13:06 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
А по каким критериям оценивать?)
Форматирование кода в некоторых местах немного не очень (отступы). Если Visual Studio, то Ctrl+A, Ctrl+K, Ctrl+F. И между функциями то есть пустая строка, то нет (обычно отделяют 1 пустой строкой). Но хорошо что хоть какое-то есть и имена более-менее нормальные, часто новички забивают на них ; в конце блоков { } не нужен (кроме классов и енумов). И я б советовал всегда ставить { } в for/if даже если 1 операция.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 03.03.2017 в 13:08. |
03.03.2017, 13:11 | #3 |
Новичок
Джуниор
Регистрация: 03.03.2017
Сообщений: 4
|
С форматированием мне CodeBeautifier помог. Дело в том, что я пишу с мобилки в C4Droid и не всегда видно.
Критерии просты: как сильно я нагрязекодил. Развел лишнего, может быть, может что-то можно было сделать проще. |
03.03.2017, 13:16 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
03.03.2017, 13:18 | #5 |
Новичок
Джуниор
Регистрация: 03.03.2017
Сообщений: 4
|
|
03.03.2017, 14:18 | #6 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
1) много "магических" констант... например, 52 меняем на CARDS_IN_DECK (deck - колода же? проверь переводчиком)
2) стиль именования типов и переменных должен отличаться.... TDeck - один из общепринятых вариантов, хотя я часто именую классы с С, но это дело вкуса аналогично с полями и, пусть и менее критично, с параметрами и лок. переменными 3) местами очень длинный код методов\функций.... старайся укладываться в 3-5 строк. 4) в sameNumber можно\лучше убрать условие, а вот в Card:: display разверни тернарку в if т. к. не читаемо и весьма опасно 5) я бы выделил класс "рука", а в "колоде" сделал бы метод, который забирает из колоды карту и перемещает в руку... тогда рук может быть почти любое количество Последний раз редактировалось GreenWizard; 03.03.2017 в 14:24. |
03.03.2017, 14:36 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
В Дельфи да, в С++ — нет.
В С++ обычно просто с большой буквы. Да, но главное придерживаться чего-то одного в пределах проекта и т.п. В некоторых языках есть более-менее общепринятые/официальные соглашения, в С++ к сожалению нет. 3-5 чот слишком сурово.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 03.03.2017 в 14:43. |
03.03.2017, 14:53 | #8 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
Строго соблюсти - да, сурово слишком, но если ставить такую планку, то будет, в среднем, приемлемая длина по проекту :-) И то, это в реальных проектах, где куча др. нюансов, а вот в учебных проектах можно и нужно максимально ограничивать размеры функций. Во-первых, чтоб их хорошо освоить. Во-вторых, чтоб научиться разбивать код, выделяя повторяющиеся участки.эм.... если это про именование классов, то да, а так-то в с++ весьма строго со стандартами.
Последний раз редактировалось GreenWizard; 03.03.2017 в 14:56. |
03.03.2017, 14:55 | #9 |
Новичок
Джуниор
Регистрация: 03.03.2017
Сообщений: 4
|
1) Да, относительно констант - абсолютная правда, я обязательно это учту.
2) Учту, спасибо.. К слову, как обозначить переменнные? По типу переменной? Мол iIterations (как int) или же vIterations (как var)? 3) Я следовал логике: меньше кода в мейне - четче ясен алгоритм работы, я был не прав? Просто, разбивка функции checkHand приведет к созданию 6-8 других, работающих по тому же принципу, но просто самостоятельных. Так будет правильнее? 4) Можно подробнее про сравнение в sameNumber? 5) В условиях работы моей программы достаточно только одной "руки", но я обязательно учту про вынос класса. |
03.03.2017, 15:14 | #10 | ||
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Например как https://www.python.org/dev/peps/pep-0008/, http://www.php-fig.org/psr/psr-2/, http://www.oracle.com/technetwork/ja...oc-136057.html В С++ их много и все разные. Да, но не только в меине же В целом функции с понятными именами выполняющие какую-то четкую задачу — лучше, чем просто куча строк кода. Например первый попавшийся кусок: Цитата:
Кстати, переменные лучше держать в максимально маленькой области видимости и не переиспользовать одну и ту же переменную для разных задач. Например тут j можно сделать локальной переменной цикла: Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 03.03.2017 в 15:19. |
||
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оценка кода | Lokki1723 | Общие вопросы по Java, Java SE, Kotlin | 0 | 19.05.2016 17:53 |
Оценка потребляемой памяти и оценка времени выполнения. | halcyon | Общие вопросы C/C++ | 0 | 22.03.2015 13:42 |
Оценка и хвастанье) | helper999999 | Общие вопросы по программированию, компьютерный форум | 3 | 26.03.2014 06:37 |
оценка проекта | skaj | Общие вопросы по программированию, компьютерный форум | 2 | 28.08.2013 00:12 |
Оценка алгоритма | Алежа | Помощь студентам | 7 | 20.01.2009 14:28 |