|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|||||||||||
Оценка кода28.01.2020, 22:43. Показов 6518. Ответов 123
Метки нет (Все метки)
Здравствуйте, прошу вас всех оценить мой код , по возможности дать советы что так , а что не так и как это исправить либо в каком направлении смотреть , это моя первая попытка создать что-то не ради забавы , а чтобы использовать это в реальной жизни. Сразу скажу что еще не все доделал что хотел бы. Это декодер asn1.der , данные передаются в decode() в виде BLOB конвертированного в массив знаков.
header Кликните здесь для просмотра всего текста
cpp Кликните здесь для просмотра всего текста
0
|
|||||||||||
| 28.01.2020, 22:43 | |
|
Ответы с готовыми решениями:
123
Оценка кода
|
|
Диванный эксперт
|
|
| 28.01.2020, 22:58 | |
|
ReYalp, в чем причина отказа от std::vector?
Зачем столько const_cast?Можно же изменить сигнатуру decoder::Append, добавив const к указателю источнику.
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 28.01.2020, 22:59 | |
|
1
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|||
| 28.01.2020, 23:05 [ТС] | |||
|
oleg-m1973, вот в этом моменте я не уверен, с массивом будет лучше?
Добавлено через 2 минуты Max Dark, Добавлено через 24 секунды Max Dark,
0
|
|||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 28.01.2020, 23:08 [ТС] | |
|
Max Dark, какую именно часть? и как код в общем?
0
|
|
|
Диванный эксперт
|
||||
| 28.01.2020, 23:20 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||
| 29.01.2020, 00:17 | ||||
|
который агрит компиляторы. https://rextester.com/UCHSH48627
для начала.
3
|
||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 29.01.2020, 00:26 [ТС] | |
|
hoggy, как можно включить GCC чтобы он так же "агрился"?
Добавлено через 2 минуты hoggy, и насчёт ошибок unused parametr я не знаю как их исправить, задумано так что если вызывающе у нужны будут эти переменные он передаст указатель и я когда найду данные верну ему их с помощью указателя, ещё есть такой вопрос, можно как-то проверить указывает ли указатель на динамически выделенную память или статически?
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||||||||||||||
| 29.01.2020, 00:46 | |||||||||||||||||||||||||||||
|
можно посмотреть командную строку:
поэтому, я считаю, что лучше писать вот так:
но допустим, временно оно не используется. тогда можно написать так:
2
|
|||||||||||||||||||||||||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 29.01.2020, 09:34 | |||||||
2
|
|||||||
|
Just Do It!
|
||
| 29.01.2020, 10:06 | ||
|
видно, что вы уделяете этому внимание, но моё личное имхо: я не люблю ГОРИЗОНТАЛЬНО СКРОЛЛИТЬ. и причины этому даже больше объективные чем субъективные. Если сильно много горизонтального скролла это может "также сильно" сказаться и на моей производительности, как кодера.
2
|
||
|
Неэпический
|
||||||||||||
| 29.01.2020, 13:30 | ||||||||||||
1
|
||||||||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|||||||||||
| 30.01.2020, 20:46 [ТС] | |||||||||||
|
hoggy, исправил что советовали и что смог
срр
0
|
|||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||
| 30.01.2020, 22:19 | ||||||||||||
|
это - фатальный косяк, дальше в принципе код уже можно и не смотреть. но я всё ж таки посмотрел первые 4ре строчки твоего хэдера.
все эти заголовки и макросы - это детали реализации. подключать их нужно к cpp, а не к хедеру. не имей привычки прицеплять к хедеру всякий не нужный ему для работы хлам важно понимать почему нельзя цеплять к хедеру всякий хлам. во-первых, это нужно для инкапсуляции. (почитай Макконелла, что это такое, и почему это так важно) если вкратце: очень важно не отсвечивать деталями реализации. чем меньше внешний мир знает об устройстве твоего класса - тем лучше. если снаружи есть доступ к деталям реализации, тогда снаружи кто нибудь может на них завязаться. и тогда детали реализации уже нельзя будет изменить, без риска сломать уже написанный код. но если никто кроме твоего класса не знает о деталях его реализации, тогда ты легко можешь его модифицировать без оглядки на остальную кодовую базу. во-вторых, такой код проще читать и сопровождать. чем меньше всякой фигни мельтешит перед глазами, тем проще инструмент. в-третьих, это оптимизирует время компиляции. каждый сpp файл компилируется отдельно. каждый раз заново к каждому такому cpp файлу прицепляется хедер, который в свою очередь ещё что-то там прицепляет. и потом весь этот хлам каждый раз заново компилируется-парсится. вот будет у тебя проект из 10 cpp файлов. и твой <iostream> будет 10 раз по новой компилироваться.(в нём примерно 10'000 строк тяжелых шаблонов). а если у тебя будет 100 cpp файлов? а если 1'000 ? а потом начинается нытьё, мол с++ медленно проекты компилирует. это не с++ медленный. это некоторые люди не думают головой, что и зачем они прицепляют. можно же прицепить его к cpp файлу, где он используется. и подключится только раз именно там, где он действительно нужен.
1. я надеюсь тебе понятно, что в хэдере он нафиг не нужен. его нужно перетащить в cpp 2. почему системный путь #include "string.h" в кавычках?системные пути должны быть в угловых скобках #include <string.h>это нужно что бы: - различать системные и пользовательские файлы - оптимизация поиска нужного файла. системный файл в системной папке будет обнаружен быстрее, если сразу искать его в системной папке, а не в путях пользователя. 2. почему ты подключаешь сишную версию заголовка #include "string.h",вместо того, что бы подключать правильную с++ версию #include <cstring>?с++ версии могут иметь важные косметические дополнения. ты же не хочешь наступить на грабли? вот, я честно просмотрел целых 4ре строчки твоего кода. исправишь деффекты, можно будет ещё посмотреть.
1
|
||||||||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||||||||||||||||
| 30.01.2020, 23:51 [ТС] | ||||||||||||||||
|
hoggy, никогда не использовал header guard ,спасибо за совет, вот исправил :
header Кликните здесь для просмотра всего текста
cpp Кликните здесь для просмотра всего текста
Добавлено через 41 минуту вот исправил конструкторы Кликните здесь для просмотра всего текста
0
|
||||||||||||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 31.01.2020, 00:27 | ||
|
"Мы приглашаем тебя с нами целовать жопу Не, книга - хорошая. Просто, все хорошее - хорошо в свое время. И ТС-у ее читать - явно рано. Просто, некоторые вещи постигаются только через боль и через практику. Иначе, прочитав хорошую книгу по кодингу, есть шанс в нее уверовать, как в истину в последней инстнации. Со всеми вытекающими. Если хочешь, могу примеры, даже с этого форума, где, в общем-то, годную идею довели до маразма. Но, только в личку, обидятцо.
2
|
||
| 31.01.2020, 00:29 | |
|
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 31.01.2020, 01:36 [ТС] | |
|
avgoor, а когда читать подобные книги не рано?
0
|
|
| 31.01.2020, 01:36 | |
|
Помогаю со студенческими работами здесь
20
оценка кода Оценка стиля кода Оценка кода динамического двумерного массива
Оценка стиля написания кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|