• Как указывать петли в матрице инцидентности?

    @AVKor
    Общее правило для петель: считается дважды.

    Конкретно по данному вопросу: разбор с примером.
    Ответ написан
    Комментировать
  • Можно ли как-то в c++ узнать принадлежность объекта классу?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Зачем вам это? Есть полиморфизм, а касты -- это плохой стиль почти всегда.

    Можно много чего использовать, в том числе и тэги. В базовом классе создаёте перечисление, где каждый элемент -- тип наследника + 1 элемент на тип базового класса. В базовом классе определяете виртуальный метод вроде type() и реализуете его для всех наследников.

    Но перед тем, как сделать это, хорошо подумайте над тем, надо ли оно вам. Про SOLID почитайте, в особенности про букву L.
    Ответ написан
    Комментировать
  • Как временно убрать css transition?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Мой ответ является расширенной версией ответа Илья Шатохин про добавление класса .no-transition.
    И он в общем то полагается на костыль, но не настолько ужасный как setTimeout.
    .no-transition {
      transition: none !important;
    }

    Затем в js пишем нечто подобное
    elem.classList.add("no-transition");
    var triggerLayout = elem.offsetHeight;
    // действия с элементом которые произойдут мгновенно

    Суть такова, что работа с DOM в браузере оптимизирована таким образом, что он "группирует" все изменения и потом применяет их одновременно. Но, если в js коде обращаться к свойстам элементов, которые триггерят лэйаут, эти группы будут "дробиться" в этом месте вызова. В итоге вот эта самая строчка "var triggerLayout = elem.offsetHeight;" вызывает триггер лэйаута и операция с элементом происходит уже так, словно к нему добавлен класс без транзишена. Точно таким же образом например анимируются элементы с display: none, которые надо показать с помощью изменения opacity. Вначале вы меняете свойство display, затем триггерите лэйаут, затем добавляете класс изменяющий опасити - у вас происходит анимация. Без триггера элемент просто моментально появится.
    Таблицу css триггеров можно найти тут - csstriggers.com
    + вот тут еще пишут про это gent.ilcore.com/2011/03/how-not-to-trigger-layout-...
    Сам по себе лэйаут нужно триггерить только тогда, когда это является лучшим способом реализации анимации, ибо это влияет на производительность. На эту тему (и многие другие вещи) вам сюда - https://developers.google.com/web/fundamentals/per...
    Ответ написан
  • Зачем забывать о var?

    rockon404
    @rockon404
    Frontend Developer
    Отказ от var современном модульном коде обусловлен тем, что использование только const и let, const для переменных которые не переопределяются и let для переменных которые переопределяются повышает читаемость кода и снижает когнитивную нагрузку с программиста, читающего код.
    Такой код воспринимается легче и быстрей.
    Так же в современном модульном коде нет ни одного объективного кейса для предпочтения var вместо const/let.

    Гайдлайн AirBnb.
    ESLint no-var
    Ответ написан
    1 комментарий
  • Как узнать имя функции?

    Это можно сделать, но я настоятельно рекомендую не использовать это. Лучше переделать код.
    ({
        fn: function() {
            console.log(arguments.callee.name); // fn
        }
    }).fn();
    Ответ написан
    4 комментария
  • Каким образом построить иерархию классов для платформера?

    Ni55aN
    @Ni55aN
    Slide17.PNG

    В Game реализация игровой логики
    GameEngine управляет ресурсами и вводом/выводом
    и т.д., думаю можно не объяснять
    Ответ написан
    Комментировать
  • Как мониторить событие выбора файла для input type=file?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    onChange вполне подходит. Просто нужно сделать в 2 шага:
    1. При фокусе очищаем поле
    2. Следим за ончейндж, которое сработает даже в случае выбора той же самой картинки. Так как мы очистили поле в первом шаге.
    Ответ написан