2.12.2014 / 16:14 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| Ксакеп, просто гитхаб это так, сегодня он есть, а завтра нет, а лабы им нужно как-то хранить n лет
|
2.12.2014 / 16:48 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Naik, никому эти ваши лабы не нужны, так я вам скажу.
У нас есть ещё платформа Moodle, там всякие работки тоже делаем.
|
2.12.2014 / 20:38 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Цитата aRiGaTo: В-третьих, на телефоне? Что ты забыл в этой теме? Здесь про "совершенный" код говорим, а не о способах онанизмаА ты? О себе: H+, .NET-фанатик, Pythonoфил, иногда извращенец-неформалхЯ считаю, код должен быть максимально чистым. А коллективных проектов у меня попросту не было, и вряд-ли предвидится, я программирую в одиночку. Если кому-то требуется помощь по моим сорцам, которые я выкладываю на гит, например, всегда можно меня спросить, но как правило самому в них разобраться довольно просто, по крайней мере легче, чем во многом, выложенном нашими мемберами |
2.12.2014 / 20:42 | |
Oak Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| DominaN, это же самоирония, очевидно
__________________
Эль Презеденте |
3.12.2014 / 05:45 | |
aRiGaTo Пользователь Сейчас: Offline
Имя: Snork Откуда: Yerevan Регистрация: 03.02.2010
| DominaN, а я тут причём?
__________________
don't tread on me |
4.12.2014 / 00:07 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Кстати, вот так яндекс стали форматировать CSS и делать всё красиво. http://habrahabr.ru/company/yandex/blog/223503/ |
21.12.2014 / 14:16 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Kalter, Пост #388721Для ограничений лучше использовать if/else, а не тернарники. Возьмём такой код: private int x, y;
private final int screenW = 240, screenH = 320;
public void upd() {
// I
x = x < 0 ? 0 : x > screenW - 40 ? screenW - 40 : x;
// II
if (x < 0) x = 0;
else if (x > screenW - 40) x = screenW - 40;
}
В первом случае байткод будет выглядеть так: 0: aload_0
1: aload_0
2: getfield #4 // Field x:I
5: ifge 12
8: iconst_0
9: goto 32
12: aload_0
13: getfield #4 // Field x:I
16: sipush 200
19: if_icmple 28
22: sipush 200
25: goto 32
28: aload_0
29: getfield #4 // Field x:I
32: putfield #4 // Field x:I
35: return
Заметь, во всех случаях вызывается #32 - putfield - запись значения в поле x. Вот второй случай: 0: aload_0
1: getfield #4 // Field x:I
4: ifge 15
7: aload_0
8: iconst_0
9: putfield #4 // Field x:I
12: goto 32
15: aload_0
16: getfield #4 // Field x:I
19: sipush 200
22: if_icmple 32
25: aload_0
26: sipush 200
29: putfield #4 // Field x:I
32: return
Здесь не только нет записи в поле x при каждом проходе, здесь ещё и байт-кода меньше получается. Для сравнения приведу размер скомпилированного класса: С тернарником: 540 байт Без тернарника: 518 байт А вот то же, только поля screenW, screenH - не final: С тернарником: 484 байт Без тернарника: 506 байт Подытожу: • Ограничители на тернарниках в коде выглядят несколько жутковато; • Затраты на запись в поле/переменную при каждом проходе; • Лишний байткод. __________________
let live Изменено aNNiMON (21.12 / 14:59) (всего 6 раз) |
21.12.2014 / 14:25 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| aNNiMON, а как же твой любимый final?
|
21.12.2014 / 14:34 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Ксакеп, с final метод получился меньше, но класс больше из-за того, что в пуле констант вычисленные значения хранятся. Без final каждый раз 40 отнимается.
__________________
let live |
21.12.2014 / 14:57 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| aNNiMON, Не надо тут навязывать свой код, у меня твой код с пробелами выглядит жутковато, и да, твой стиль описания кода не прижился, хоть с твоих исходников я и начинал изучать Java ME |