- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
public function set flip(value:Boolean):void {
if (this.object.flip != value) {
this.object.flip = value;
this.clearCells();
var cell:Cell = this.cell;
}
}
public function get cell():Cell {
if (!this._cell) {
createCell();
}
return this._cell;
}
Lure Of Chaos 07.06.2013 21:56 # −11
по мне, проверка вообще должна быть внутри метода - мало ли, в другом месте забудем проверить.
defensive programming вообще рулит.
как там в AS дела обстоят с assert'ами? это просто шикарно
kyzi007 07.06.2013 22:15 # −12
if (this.object.flip != value) {
this.object.flip = value;
}
А что тут смущает?
А проблема передергивания в данном месте в том что после удаления данных происходит обращение к ним, случайно аснхронное, и они воскресают)
Lure Of Chaos 07.06.2013 22:35 # −11
пишем и в дебаг режиме получаем ошибку выполнения, если условие не выполнено, а в продакшн ассерты не компилятся, что нам дает возможность проверять корректность входных данных\результата без ущерба в производительности, в одну строку и немедленно, без дополнительных усилий тестирования.
> А что тут смущает?
а зачем делать проверку, если результат в любом случае value?
kyzi007 07.06.2013 23:24 # −9
Затем чтобы не дергать лишний раз, это нормальная практика. Может там на сеттер эвент генерится об обновлении данных.
Lure Of Chaos 07.06.2013 23:38 # −14
kyzi007 07.06.2013 23:45 # −12
Lure Of Chaos 07.06.2013 23:47 # −12
у нас в жабе вообще ресурсы ограничены - превысил лимит памяти - и все посыпалось. особенно мало ресурсов на андроиде
kyzi007 08.06.2013 00:04 # −12
А это сеттер и есть.
Lure Of Chaos 08.06.2013 00:05 # −11
wvxvw 08.06.2013 10:45 # −11
Но, конечно, бойлерплейта много и нужно не забыть привязать настройку к дебаг/релиз переключателю и т.д.
В Хексе можно было бы лучше сделать, т.как макросы + условная компиляция на уровне.
roman-kashitsyn 07.06.2013 23:35 # −11
Lure Of Chaos 07.06.2013 23:36 # −11
roman-kashitsyn 07.06.2013 23:36 # −12
Lure Of Chaos 07.06.2013 23:40 # −13
roman-kashitsyn 07.06.2013 23:43 # −12
Lure Of Chaos 07.06.2013 23:43 # −13
anonimb84a2f6fd141 08.06.2013 03:16 # +8
inkanus-gray 08.06.2013 02:22 # −10
В исходниках популярных продуктов ассерты проверяют тривиальные вещи типа assert(2 * 2 == 4). Как я понял, делается это для проверки гипотез, а именно для того, чтобы убедиться, что фрагмент кода компилируется и работает именно так, как ожидает разработчик.
Почему не в отдельном файле? Ассерт прямо на месте позволяет протестировать выражение в готовом окружении с инициализированными объектами. Почему ассерты не удаляют после выпуска модуля? Чтобы можно было ещё раз протестировать при рекомпиляции другой версией компилятора.
Таким образом, ассерт полезен для статического анализа, а не для отладки и не для контроля.
kyzi007 07.06.2013 23:46 # −14
wvxvw 08.06.2013 11:11 # −12
roman-kashitsyn 08.06.2013 13:09 # −11
wvxvw 08.06.2013 14:02 # −12
kyzi007 08.06.2013 15:33 # −11
Ну и можно в результате включать и выключать throw ошибок, и для совсем финального продакшена выкусывать логи.
roman-kashitsyn 08.06.2013 15:56 # −11
kyzi007 08.06.2013 16:50 # −9
guest 03.06.2017 18:22 # 0
wvxvw 08.06.2013 11:01 # −13
guest 08.06.2013 12:30 # +14
roman-kashitsyn 08.06.2013 12:55 # −14
guest 08.06.2013 17:05 # +11
bormand 08.06.2013 22:18 # −11
roman-kashitsyn 07.06.2013 22:57 # −9
оставайтесь на линии, ваше присваивание очень важно для нас
inkanus-gray 07.06.2013 23:34 # −13
kyzi007 07.06.2013 23:51 # −11
kyzi007 08.06.2013 00:02 # −13
anonimb84a2f6fd141 08.06.2013 03:17 # +1
3.14159265 10.06.2013 13:03 # −10
anonimb84a2f6fd141 10.06.2013 20:22 # +3
НУЖНО БОЛЬШЕ ЫНТЫРПРАЙЗА
3.14159265 10.06.2013 20:53 # −11
anonimb84a2f6fd141 27.06.2013 23:32 # −3