- 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;
}
                                
 Follow us!
по мне, проверка вообще должна быть внутри метода - мало ли, в другом месте забудем проверить.
defensive programming вообще рулит.
как там в AS дела обстоят с assert'ами?
if (this.object.flip != value) {
this.object.flip = value;
}
А что тут смущает?
А проблема передергивания в данном месте в том что после удаления данных происходит обращение к ним, случайно аснхронное, и они воскресают)
пишем и в дебаг режиме получаем ошибку выполнения, если условие не выполнено, а в продакшн ассерты не компилятся, что нам дает возможность проверять корректность входных данных\результата без ущерба в производительности, в одну строку и немедленно, без дополнительных усилий тестирования.
> А что тут смущает?
а зачем делать проверку, если результат в любом случае value?
Затем чтобы не дергать лишний раз, это нормальная практика. Может там на сеттер эвент генерится об обновлении данных.
у нас в жабе вообще ресурсы ограничены - превысил лимит памяти - и все посыпалось. особенно мало ресурсов на андроиде
А это сеттер и есть.
Но, конечно, бойлерплейта много и нужно не забыть привязать настройку к дебаг/релиз переключателю и т.д.
В Хексе можно было бы лучше сделать, т.как макросы + условная компиляция на уровне.
В исходниках популярных продуктов ассерты проверяют тривиальные вещи типа assert(2 * 2 == 4). Как я понял, делается это для проверки гипотез, а именно для того, чтобы убедиться, что фрагмент кода компилируется и работает именно так, как ожидает разработчик.
Почему не в отдельном файле? Ассерт прямо на месте позволяет протестировать выражение в готовом окружении с инициализированными объектами. Почему ассерты не удаляют после выпуска модуля? Чтобы можно было ещё раз протестировать при рекомпиляции другой версией компилятора.
Таким образом, ассерт полезен для статического анализа, а не для отладки и не для контроля.
Ну и можно в результате включать и выключать throw ошибок, и для совсем финального продакшена выкусывать логи.
оставайтесь на линии, ваше присваивание очень важно для нас
НУЖНО БОЛЬШЕ ЫНТЫРПРАЙЗА