Упрощение кода, написание того или иного кода более понятно и просто |
Здравствуйте, гость ( Вход | Регистрация )
Упрощение кода, написание того или иного кода более понятно и просто |
AD |
7.8.2008, 9:10
Сообщение
#11
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Выдалась возможность, может сможете и мне упростить функцию?
Вот ее код:
Для того, чтобы было чуть понятнее привел кусочек класса, где определена эта функция. Ну что можно сказать: функция выполняет расчет и добавление в вектор значений в зависимости от значения GAPTYPE! Я подумывал о том, чтобы вынести расчет для каждого case в отдельную функцию, но посчитал количество параметров этой функции и стало грустно! Может сможете улучшить данный код? Просьба приводить пример улучшения кода. Заранее спасибо! |
|
|
Tonal |
7.8.2008, 12:02
Сообщение
#12
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Вынеси длинные проверки с next -> status... в отдельные функции - сразу жить станет легче, и станит видно что делать дальше.
|
|
|
AD |
7.8.2008, 12:55
Сообщение
#13
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Вынеси длинные проверки с next -> status... в отдельные функции - сразу жить станет легче, и станит видно что делать дальше. Если честно, наглядность не сильно увеличилась: Исходник
|
|
|
Tonal |
8.8.2008, 15:21
Сообщение
#14
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Без тега кода всяко только уменьшилась!
По коду:
Вторую аналогично. После проверок где isContinue = false и checkStatusBreak сразу выходить. Проверку на init_gaps в начало функции. и тоже по false сразу выходить. Изменение, которое после checkStatusDist тоже в 2 отдельные функции. Ну и из (time_t)fabs(double(next -> time_marker - cur -> time_marker)) тоже функцию. |
|
|
AD |
8.8.2008, 16:38
Сообщение
#15
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Tonal, я не понял как и что. Можно все-таки кодом, пожалуйста!
|
|
|
AD |
10.8.2008, 16:59
Сообщение
#16
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
А мне помогут упростить код?
|
|
|
Tonal |
10.8.2008, 17:31
Сообщение
#17
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Чё непонятно-то?
|
|
|
AD |
10.8.2008, 22:06
Сообщение
#18
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
Tonal |
11.8.2008, 8:05
Сообщение
#19
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Цитата Дай - понимаю, курить - понимаю, дай курить - не понимаю! Какое предложение объяснить? Да, и функции, вместо checkStatus* я бы назвал isStatus* - во первых сразу понятно что они возвращают и зачем, во вторых соответствует стилю Qt. |
|
|
AD |
11.8.2008, 8:48
Сообщение
#20
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
После проверок где isContinue = false и checkStatusBreak сразу выходить. Проверку на init_gaps в начало функции. и тоже по false сразу выходить. Изменение, которое после checkStatusDist тоже в 2 отдельные функции. Ну и из (time_t)fabs(double(next -> time_marker - cur -> time_marker)) тоже функцию. Что сделать надо, что именно и куда вынести? |
|
|
Текстовая версия | Сейчас: 26.11.2024, 1:03 |