Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (44)

Лучшие ответы пользователя

Все ответы (177)
  • Как безопасно давать фрилансеру доступ к коду сайта?

    @iljaGolubev
    TDD. Ставьте ему задачу в виде набора юнит-тестов.
    Если нужно доработать отдельные представления - укажите что будет на входе из контроллера.
    JS/фронт - тот же подход.
    Ответ написан
    3 комментария
  • Влияет ли на быстродействие и потребление памяти, отказ от обращения к свойствам класса, внутри методов?

    @iljaGolubev
    Быстрее будет присвоение $someProperty = $this->someProperty до цикла.
    Но это именно про приведённый код с учетом, что цикл 1000 внутри someMethod. Прирост скорости настолько незначительный, что в реальных условиях может выиграть и echo $this->someProperty;
    Но ведь в реальности такой код не имеет смысла...
    Если уж заменять, то с реальными циклами и требуемым окружением.

    По памяти разницы нет - создание новой переменной без изменения не выделяет дополнительную память.
    `CV` - compiled variable == ссылка на реальную переменную.

    // для echo $someProperty;
    0000 EXT_STMT
    0001 T0 = FETCH_OBJ_R THIS string("someProperty")
    0002 ECHO T0
    0003 EXT_STMT
    
    // для echo $this->someProperty;
    0000 EXT_STMT
    0001 T1 = FETCH_OBJ_R THIS string("someProperty")
    0002 ASSIGN CV0($someProperty) T1
    0003 EXT_STMT
    0004 ECHO CV0($someProperty)
    0005 EXT_STMT


    Мини-микро-нано прирост скорости возможет только из-за того, что в цикле для `echo $someProperty; ` будет выполняться только ECHO, тогда как для `echo $this->someProperty; ` две инструкции FETCH_OBJ_R и ECHO.
    Ответ написан
    Комментировать
  • Как лучше подключать svg иконки во vue js?

    @iljaGolubev
    Если точно нужны inline svg, то vue-svg-loader - он делает автоматически ваш 1-й вариант.

    Ещё есть vite-svg-loader - подключается как плагин к vite и удобен тем, что можно из vite.config менять как импортировать файл (url или raw).

    Можно написать свой компонент в который передавать имя иконки. Только не делайте свой 2-й вариант - его недостаток в том, что все иконки всегда загружаются в браузер даже если никогда не будут показаны.

    через "v-if/v-else-if" рендерить ту, которая равна "close".

    Если у вас всего 2-3 иконки - можно и так, но в общем случае - старайтесь не использовать длинные "портянки" if/else. Почти всегда можно обойтись без такого кода. (conponent is или defineAsyncComponent)
    Ответ написан
    Комментировать
  • Как сделать делать демо доступ к сайту на Django без абуза со стороны юзера?

    @iljaGolubev
    3. Отдельные сервера для демо. Без "регистрации и смс" валидации почты, телефона и чего там ещё на основном. Хард-ресет демо окружения каждые X минут (удаление сессий, очистка баз).
    И пусть себе играются пока могут.

    4. Общий юзер для всех demo / demo@mail
    Ответ написан
    Комментировать
  • Как указать путь к файлу при импорте в TypeScript?

    @iljaGolubev
    Возможно import App from "./App.vue"; поможет.

    А ещё, создать в корне файл shims-vue.d.ts если ещё нет чего-то подобного. Нужно указать ts компилятору что делать с sfc компонентами vue.
    declare module "*.vue" {
      import type { DefineComponent } from "vue";
      const component: DefineComponent<{}, {}, any>;
      export default component;
    }
    Ответ написан
    1 комментарий