Вниз  Совершенный код
- 17.12.2015 / 17:23
aRiGaTo
  Пользователь

aRiGaTo 
Сейчас: Offline
Ксакеп, ну, это лучше, чем было.
__________________
 don't tread on me
- 18.12.2015 / 00:11
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Финальный вариант, со всеми оптимизациями и комментариями

Было
Стало

Так как эти проверки были в двух местах (веб-версия и мобильная версия), то пришлось засунуть в функцию.
__________________
 let live

Изменено aNNiMON (18.12 / 00:12) (всего 1 раз)
- 18.12.2015 / 00:16
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, не понял это за тихий ужас? ООП не улучшило бы код или это противоречит совершенному коду?

Изменено Dinisimys (18.12 / 00:17) (всего 1 раз)
- 18.12.2015 / 00:22
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Dinisimys, ООП бы улучшило, но там где были эти изменения, ООП встроить тяжело.

ООП, JohnCMS.
ООП, JohnCMS. :haha:
__________________
 let live
- 18.12.2015 / 00:22
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Dinisimys, Какое ООП? Это джон 3 версии, тогда и букв таких не знали. Тут абы человеку понять, а то только интерпритатор и разбирал :lol:

Изменено web_demon (18.12 / 00:22) (всего 1 раз)
- 18.12.2015 / 00:25
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
aNNiMON, не знал что джон на столько бездушно относился к прогерам. Но смысл тогда писать этот код сюда, если он все же не совершенный? :)

Изменено Dinisimys (18.12 / 00:26) (всего 1 раз)
- 18.12.2015 / 00:31
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Dinisimys, не нашёл темы по рефакторингу, поэтому написал сюда. Тот пост - продолжение этого поста. Просто на память оставил и как пример возможного рефакторинга.
На совершенный код не претендую.
__________________
 let live

Изменено aNNiMON (18.12 / 00:32) (всего 1 раз)
- 18.12.2015 / 03:58
ВитаминКО
  Супермодератор

ВитаминКО 
Сейчас: Offline
Для джона это уже совершенный код :rofl: Один и тот же код в функцию запилить
__________________
 わからない!!
- 3.07.2017 / 09:19
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Naik, Пост #489764, ну вот InsertSectorsType превратить в интерфейс с методом Date getDate(Context context, int index, BaseEvent model); и строчки с 22 по 57 превратятся в date = getDate(context, i, model);, а если избавиться от костыля if (i == 0 || ..) на 36 строке, то int index уберётся и будет красивее.

Объект Date today у тебя используется только в ветке SEE_EVENT_STATUS, так что можно его перенести с начала метода туда.

На 19 строке у тебя удар по перформансу, если объектов в events много и кому-то приспичит LinkedList передать. events.size() в отдельную переменную до цикла и будешь спокоен. Тем более, что размер списка у тебя и так на 12 строке впервые используется.

На 18 строке у тебя лишнее создание объекта. Год можешь взять с todayLocalDate.

Ну а то, что дальше внутри ветки if (date != null), какой-то легаси-велосипед, там без пяти капель не разобраться.
__________________
 let live

Изменено aNNiMON (3.07 / 09:28) (всего 1 раз)
- 3.07.2017 / 09:25
Naik
  Пользователь

Naik 
Сейчас: Offline
там сама суть :gg:
Проверка нужно ли вставлять категорию (если уже вставлено к примеру Today то уже не нужно его вставлять. Ну и месяц вставляется если нужно. Также в сектор даты записывается сколько дней до той даты, т.к. при выводе если дата в пределах недели то она отображается по другому и может развернуться в почасовый таймлайн :gg:

Изменено Naik (3.07 / 09:29) (всего 1 раз)
Наверх  Всего сообщений: 233
Фильтровать сообщения
Поиск по теме
Файлы топика (7)