• Почему у стрелочной функции из объекта контекст виндоу?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    На learn.javascript, например, неплохо написали:
    Стрелка => ничего не привязывает. У функции просто нет this.
    При получении значения this – оно, как обычная переменная, берётся из внешнего лексического окружения.


    В вашем примере с литералом объекта можно добавить для понимания:
    const obj = {
      w() {
        console.log('w', this);
      },
      x: function () {
        console.log('x', this);
      },
      y: this,
      z: () => {
        console.log('z', this);
      },
    };
    
    obj.w(); // obj
    obj.x(); // obj
    console.log('y', obj.y); // Window
    obj.z(); // Window


    Запись литерала объекта не создаёт свой контекст: на момент записи this тот же, что и снаружи:
    const a = this; // Window
    const obj = {
      b: this, // тоже Window 
    }
    
    a === obj.b // true
    Ответ написан
    1 комментарий
  • Docker Desktop потребляет много ресурсов, грузит процессор и оперативную память. Что делать?

    lp1641
    @lp1641 Автор вопроса
    Junior Front-End (React)
    Сперва нашёл .wslconfig, там уменьшил количество ресурсов, вроде стало немного лучше, а потом случайно выключил WSL2 в настройках Docker и заметил что нагрузка снизилась.
    Потом ещё поэкспериментировал и составил список. Потому что для слабых устройств это может быть критично.

    - Использовать Hyper-V вместо WSL2. Это происходит само по себе если в настройках отключить использование WSL2.

    - Отключить отправку анонимной статистики.

    - Отключить автоматическую проверку и скачивание обновлений.

    - На Hyper-V Docker практически не грузит систему если его запускать один раз, если его закрыть и открыть заново он начинает грузить. После запуска контейнеров можно убить в диспетчере задач процесс Docker который нагружает CPU. Без того процесса всё продолжило работать нормально и ничего не закрылось. Причины такого поведения не ясны.

    - Настроить ресурсы выделяемые для Hyper-V на минимум, или увеличить если это нужно для содержимого контейнера. Но приложениям на NodeJS хватает и минимум ресурсов. Для WLS2 ресурсы настраиваются в папке пользователя Windows в файле .wslconfig, WLS2 грузит систему сильнее и по ощущениям работает медленнее не смотря на то что в настройках докера написано о том что это более производительное решение.

    - Благодаря этим действиям Docker начинает работать быстрее, почти не потребляет CPU и RAM, и это хорошо. Тестировалось с контейнерами где была база данных и бекенд на NodeJS.

    Всё что здесь описано личный опыт, Docker Desktop был версии 4.7.0, не факт что ваш опыт будет совпадать с моим.
    Ответ написан
    1 комментарий
  • Почему style background vue3 не применяется?

    0xD34F
    @0xD34F Куратор тега Vue.js
    нужно создать 6 блоков с разными цветами

    :style="{ color: bgColor }"

    Цветами ЧЕГО? Свойство color - это цвет текста, никакого текстового содержимого в блоках нет.

    Делаю как в документации

    v-for="(index, bgColor) in colorArray"

    Ну конечно, как в документации. Там ведь тоже элемент массива и его индекс местами перепутаны. Или всё-таки нет?
    Ответ написан
    Комментировать
  • Насколько резонно подключать библиотеки для таких вещей как модалка, маски и тд?

    dima9595
    @dima9595
    Junior PHP
    Вопрос философский и зависит от различных факторов. Иногда, действительно, легче написать какой-то компонент самому. Особенно если сайт простой. А вот для больших проектов, где требуется производительность, модульность, к примеру, можно и подключить готовую библиотеку.

    Как лучше - решать всегда вам. Вы являетесь разработчиком и только вы знаете себя лучше других - сможете написать хороший компонент или нет.

    Лично я использую библиотеки для более-менее крупных проектов, которые со временем будут только расширяться. Для одностраничников 50/50. Всё зависит от требуемой скорости разработки.
    Ответ написан
    Комментировать
  • Должен ли программист при получении заказа выполнять и роль девопса?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Должен кому? Долг перед заказчиком определяется пунктами договора. Если вы не соглашались делать работу devops'а, то и не должны её делать. Но лично я считаю, что должен самому себе уметь делать решения под ключ. Правда, я за это всегда накручивал ценик равный оплате разработчика бэкенда, фронтенда, админа, аналитика и менеджера проекта.
    Ответ написан
    3 комментария
  • Рефакторинг new Vue() в vue 3?

    Попробуйте документацию:
    https://v3-migration.vuejs.org/breaking-changes/gl...
    https://vuejs.org/api/application.html#createapp

    (а подход с созданием нового приложения внутри компонента я бы пересмотрел)
    Ответ написан
    1 комментарий
  • Что может случиться после перехода по вредоносной ссылке?

    @rPman
    * деанонимизация, как минимум сайт узнает ваш ip адрес (а из него примерные географические координаты), очень часто об этом забывают пользователи telegram и других анонимных чатов
    * спам через уведомления, сайты запрашивают разрешение на прием уведомлений (иногда циклически, пока не нажмешь да) и через некоторое время у вас будут всплывающие окна с картинками (реклама)
    * атака уязвимых веб сервисов где вы авторизованы - click jacking (вслепую заставлять нажимать кнопки на авторизованном сайте, рисуя его со 100% прозрачностью в iframe, пододвигая под курсор пользователя), cross site scripting (выполнять действия на сайтах вызывая напрямую там запросы)
    * есть опасность доступа к буферу обмена, дело в том что по стандарту, браузер не имеет прямого доступа к буферу, пока пользователь не совершит действие на сайте (клик мышкой), заставить пользователя это сделать не сложно, а содержимое буфера будет у злонамеренного сайта, а что там у вас в буфере бывает - иногда очень интересно
    * фишинг - подсовывать визуальную копию других сервисов, требовать авторизацию и таким образом выуживать логин пароль
    * многие люди разрешают (поведение браузеров по умолчанию) автоматическую загрузку файлов в каталог загрузки, злонамеренный сайт может подсунуть туда легитимное приложение, зараженное трояном, в надежде что пользователь когда-нибудь запустит его, увидев в папке загрузки (там всегда бардак и никто не запоминает откуда что скачали), на самом деле это одно из самых опасных действий, так как переводит операции из браузерной песочницы в операционную систему, а там уязвимости опаснее
    ...
    Ответ написан
    1 комментарий
  • Как установить ref на transition-group елемент?

    0xD34F
    @0xD34F Куратор тега Vue.js
    ref указанный так указывает на Proxy а не на элемент. Как это исправить?

    Никак не исправить.

    Да это и не нужно. За этим Proxy скрывается ссылка на экземпляр компонента, а у экземпляра компонента в качестве одного из свойств присутствует ссылка на элемент.
    Ответ написан
    Комментировать
  • Как обявить this typescript-у на vue?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Стрелочные функции использовать надо
    Ответ написан
    Комментировать
  • Каким образом лучше вывести в консоль веб-сервера PHP данных вроде ошибок, данных (var_dump) схожим образом, как они выводятся при разработке на IDE?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    если честно, то я совсем не понимаю этих проблем

    и постоянно бегать на сервер обновлять лог и обратно,

    я не понимаю, что это значит
    в моем мире есть ssh консоль на сервер, в котором запущена команда tail -f error.log
    которая в реальном времени отображает все обновления в логе
    то есть "бегать" и "обновлять" ничего не нужно, а всего лишь разместить окно терминала на соседнем мониторе и видеть всю отладочную информацию в реальном времени
    это если говорить об отладке через лог ошибок и "консоль веб-сервера" (что бы это не значило)

    вывод var_dump(), конечно, без небольшой доводки так просто в лог не направишь, но вместо неё вполне можно использовать json_encode. ну или уж написать обертку над var_dump которая через ob_start сохраняет вывод в строку, которую потом можно через error_log() отправлять в лог ошибок РНР

    я работаю с вебхуками и api поэтому браузером почти не пользуюсь.

    Опять же, я не понимаю, как можно работать с вебхуками и API без Postman
    И если мы работаем через Постман - то какая проблема собственно в том же окне и видеть ответ сервера?
    Ответ написан
    Комментировать
  • Не очищаются логи, постоянно выходит старый лог, почему?

    @lil_koi
    лучший из худших
    удаляй файл логов, слови ошибку - будет новый и чистый
    Ответ написан
    Комментировать
  • Закрытие бесплатного G Suite (Workspace), куда мигрировать?

    mrpsycho
    @mrpsycho
    Вообще, печально все.
    Полноценно гугл заменить может только Office365. И то есть случаи, когда гугл "круче".
    Но и то, в текущих реалиях надо бы что-то в рф, ато могут отобрать.

    Я так понимаю в конкуренты можно записать и bitrix24, там весь функционал на фантике написан, но еще не протестировал.

    Яндекс и Мейл.ру не умеют нормально работать с разными доменами на аккаунте, что для меня, например, критично.

    пример:
    есть домены domain1.ru и domain2.ru
    в гугле это независимые сущности, можно создать как user1@domain1.ru, так и user1@domain2.ru
    и группы могут быть gr1@domain1.ru и gr1@domain2.ru.

    А в яндексе и мейле - это все невозможно.
    И получается что user1 будет иметь логин user1@domain1.ru, и второй домен всегда будет алиасом.
    С группами еще хуже - info@domain1.ru и info@domain2.ru - это один и тот же ящик. Хотя внутри хотелось бы видеть разных людей.
    Ответ написан
    2 комментария
  • Как дождаться загрузки значений props?

    AlbertName
    @AlbertName
    Senior Javascript Developer
    В таких случаях неплохо делать лоадер. И пока данные грузятся, показываем лоадер, а когда они приехали, показываем компоненты в которые пробрасываем полученные, отфильтрованные или обработанные под иные задачи (например), данные.

    Загрузку данных нужно отслеживать там, где эта загрузка проинициализирована. Но в любом случае, если значение пропс изменится, компонент должен перерисоваться.
    Ответ написан
    Комментировать
  • Как передать стиль из родительского компонента дочернему?

    delphinpro
    @delphinpro Куратор тега Sass
    frontend developer
    Нет. Используйте пользовательские свойства.

    .wrapper {
      --gap: 10vmin;
    }
    
    .children {
      margin: var(--gap);
    }


    <div class="wrapper">
      <div class="children">
        <!-- Применится margin: 10vmin -->
      </div>
    </div>
    Ответ написан
    Комментировать
  • Какой битрейт идеален для формата видео?

    gbg
    @gbg
    Любые ответы на любые вопросы
    В случае видео, битрейт сильно зависит от содержимого видео - именно поэтому наилучшее отношение размер/качество достигается двухпроходным кодированием.

    На увеличение необходимого битрейта влияет:
    -рост количества мелких деталей
    -более динамичные сцены как по количеству движения, так и по динамике изменения цвета и яркости.
    Ответ написан
    Комментировать
  • Почему не работает связь "один ко многим"?

    delphinpro
    @delphinpro Куратор тега Laravel
    frontend developer
    Films: 
    @foreach($director->films as $film)
      {{ $film->title }} <br>
    @endforeach
    Ответ написан
    Комментировать
  • Почему не работает связь "один ко многим"?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    HasMany указывает на то что тут $director->films будет коллекция, а ты обращаешься как к HasOne.
    Ответ написан
    Комментировать
  • Возможно ли реализовать более изящную типизацию объектов и деструктивное присваивание?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    А ты для начала придумай синтаксис для этого, который бы не вступал в прямой кофликт с JS и при этом был интуитивен.)
    Вот тут на тему много копий сломано, но, ИМХО, нет нормальных достойных релиза вариантов.)
    Ответ написан
    Комментировать
  • Что не так с маршрутом Laravel?

    @kandrash
    Кратко о себе
    Route::get('/system/settings/roles/{id}' срабатывает. Поменяйте местами
    Ответ написан
    2 комментария