Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
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
|
Цитата(Tonal @ 7.8.2008, 13:02) Link Вынеси длинные проверки с 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 @ 10.8.2008, 18:31) Link Чё непонятно-то? непонятно что и как надо сделать! |
|
|
|
|
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
|
Цитата(Tonal @ 11.8.2008, 9:05) Link После проверок где isContinue = false и checkStatusBreak сразу выходить. Проверку на init_gaps в начало функции. и тоже по false сразу выходить. Изменение, которое после checkStatusDist тоже в 2 отдельные функции. Ну и из (time_t)fabs(double(next -> time_marker - cur -> time_marker)) тоже функцию. Что сделать надо, что именно и куда вынести? |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 28.12.2025, 18:25 |