Вниз  Совершенный код
- 21.12.2014 / 15:06
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Вот, вспомнил про презентации)

1 из 4Презентация
final ternary
  1.  0: aload_0
  2.  1: aload_0
  3.  2: getfield      #4   // Field x:I
  4.  5: ifge          12
  5.  8: iconst_0
  6.  9: goto          32
  7. 12: aload_0
  8. 13: getfield      #4   // Field x:I
  9. 16: sipush        200
  10. 19: if_icmple     28
  11. 22: sipush        200
  12. 25: goto          32
  13. 28: aload_0
  14. 29: getfield      #4   // Field x:I
  15. 32: putfield      #4   // Field x:I
  16. 35: return

__________________
 let live

Изменено aNNiMON (21.12 / 15:07) (всего 2 раза)
- 21.12.2014 / 15:59
Kalter
  Пользователь

Kalter 
Сейчас: Offline
#388724,
1. Сам ни разу в байт-коде не копался, спасибо. Надо кстати на каникулах заняться уже углубленным изучением.
2. Жутко - можно скобочки поставить.
3. У меня половина полей константы, ибо IDE задал проставлять их.
Magatino, здесь больше оптимизации, когда речь доходит до байт-кода.
__________________
 Homo homini penis est.
- 21.12.2014 / 16:16
Magatino
  Администратор

Magatino 
Сейчас: Offline
Цитата Kalter:
Magatino, здесь больше оптимизации, когда речь доходит до байт-кода.
Вот именно, странно рассуждать об оптимизации в перемещии персонажа, Витя бы лучше делом занялся, оптимизировал то, что действительно жрёт память, короче это камень в огород PPM :gy:
- 5.03.2015 / 01:31
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
А ну, гуру, выразите своё мнение, понятен ли этот код?

  1. protected function getECTSMark($rate, $current, $examRate) {
  2.     $grades = array(
  3.         'ECTS-F'  => 0,
  4.         'ECTS-FX' => 0.31,
  5.         'ECTS-E'  => 0.60,
  6.         'ECTS-D'  => 0.65,
  7.         'ECTS-C'  => 0.71,
  8.         'ECTS-B'  => 0.85,
  9.         'ECTS-A'  => 0.95,
  10.     );
  11.  
  12.     $mark = 'Undefined';
  13.     if ($current > 0) {
  14.         $percent = $rate / $current;
  15.  
  16.         if ($examRate !== NULL AND $examRate < 22)
  17.             $mark = 'ECTS-FX';
  18.         else foreach ($grades as $name => $value)
  19.             if ($percent >= $value)
  20.                 $mark = $name;
  21.     }
  22.     return $mark;
  23. }

- 5.03.2015 / 09:01
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Ксакеп, понятен.
__________________
 let live
- 5.03.2015 / 15:53
Kalter
  Пользователь

Kalter 
Сейчас: Offline
Как на счёт описания типа аргументов в лямбдах?

Вот пример, семантику спецом убрал.
Что думаете о коде ниже?
  1. object.method((param0, param1) -> {
  2.     return param0.toString()
  3.             .append("\n")
  4.             .append(param1.toString());
  5. });
А теперь?

__________________
 Homo homini penis est.

Изменено Kalter (5.03 / 15:55) (всего 2 раза)
- 17.12.2015 / 15:43
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Оставлю на память историю рефакторинга.

1 из 15Рефакторинг прав управления постом
  1. if ((($rights == 3 || $rights >= 6) && $rights >= $res['rights']) || (($res['user_id'] == $user_id && !$set_forum['upfp'] && ($start + $i) == $colmes && $res['time'] > $realtime - 900)AND !$type1['edit']) || (($res['user_id'] == $user_id && $set_forum['upfp'] && $start == 0 && $i == 1)AND !$type1['edit']) || (($type1['user_id']==$user_id && $i==1 && $start == 0) AND !$type1['edit'])) {
  2.     if((($rights == 3 || $rights >= 6) && $rights > $res['rights']) and $user_id != $res['user_id']) {
Первоначальный вариант

__________________
 let live
- 17.12.2015 / 16:45
ВитаминКО
  Супермодератор

ВитаминКО 
Сейчас: Offline
aNNiMON, запости на форуме JohnCMS :gg:

Блин, а я даже в простой програмке на ОР метался между вариантом "всеводнустроку" и с расписыванием. В итоге, 50/50 :кек2:

Для сравнения
До рефакторинга
После рефакторинга

aNNiMON, а в отдельные классы еще ничего не выносили? Думаю, если так рефакторить, то много кода выходит
__________________
 わからない!!
- 17.12.2015 / 17:16
aRiGaTo
  Пользователь

aRiGaTo 
Сейчас: Offline
ВитаминКО, конечно выносим. И вот такие няшности делаем:
  1. <div class="punmenu">
  2.     <i class="item"></i><a href="/ablogs/">Авторские статьи</a>
  3.  
  4.     {% if not User.is_guest %}
  5.         {% if Counters.ablogs_new %}
  6.             <span class="red"><a href="/ablogs/?act=new">+{{ Counters.ablogs_new }}</a></span>
  7.         {% endif %}
  8.         {% if Counters.ablogs_com_new %}
  9.             <span style="text-color: blue"><a href="/ablogs/?act=newcm">+{{ Counters.ablogs_com_new }}</a></span>
  10.         {% endif %}
  11.         {% if Counters.ablogs_mod %}
  12.             <span class="red"><a href="/ablogs/?act=mod">[{{ Counters.ablogs_mod }}]</a></span>
  13.         {% endif %}
  14.     {% endif %}
  15. </div>

__________________
 don't tread on me
- 17.12.2015 / 17:21
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
aRiGaTo, про няшности — это сарказм?
Наверх  Всего сообщений: 233
Фильтровать сообщения
Поиск по теме
Файлы топика (7)