![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 03.03.2017
Сообщений: 4
|
![]()
Привет, гуру! Я начал изучать С++ после года кодинга на Дельфи/паскале, занимаюсь по книжке Лафоре 4-ый курс, далеко за 3-4 дня, конечно, не ушёл, но уже удалось написать терминальную имитацию видеопокера.
Я хотел бы попросить всех посетивших посмотреть на код и дать оценку, в том ли я направлении думаю, как у меня получается да и в целом код на продуманность, за плюсики в карму, разумеется. Код:
Заранее спасибо. |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 03.03.2017
Сообщений: 4
|
![]()
С форматированием мне CodeBeautifier помог. Дело в том, что я пишу с мобилки в C4Droid и не всегда видно.
Критерии просты: как сильно я нагрязекодил. Развел лишнего, может быть, может что-то можно было сделать проще. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 03.03.2017
Сообщений: 4
|
![]() |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#8 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
![]()
Строго соблюсти - да, сурово слишком, но если ставить такую планку, то будет, в среднем, приемлемая длина по проекту :-) И то, это в реальных проектах, где куча др. нюансов, а вот в учебных проектах можно и нужно максимально ограничивать размеры функций. Во-первых, чтоб их хорошо освоить. Во-вторых, чтоб научиться разбивать код, выделяя повторяющиеся участки.эм.... если это про именование классов, то да, а так-то в с++ весьма строго со стандартами.
Последний раз редактировалось GreenWizard; 03.03.2017 в 14:56. |
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 03.03.2017
Сообщений: 4
|
![]()
1) Да, относительно констант - абсолютная правда, я обязательно это учту.
2) Учту, спасибо.. К слову, как обозначить переменнные? По типу переменной? Мол iIterations (как int) или же vIterations (как var)? 3) Я следовал логике: меньше кода в мейне - четче ясен алгоритм работы, я был не прав? Просто, разбивка функции checkHand приведет к созданию 6-8 других, работающих по тому же принципу, но просто самостоятельных. Так будет правильнее? 4) Можно подробнее про сравнение в sameNumber? 5) В условиях работы моей программы достаточно только одной "руки", но я обязательно учту про вынос класса. |
![]() |
![]() |
![]() |
#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 |