• В какую сторону развивается Vue и есть ли ему современные альтернативы?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Что вообще с фреймворком? Он развивается?

    Вы ведь даже не попытались гуглить. Не ходили в github проекта.
    Если да то в какую сторону и что слышно про Vue 4?

    В лучшую. Зачем вам 4? Разберитесь пока с тем что есть.
    Про React знаю, но интересуют именно Vue и ему подобные фреймворки

    Возьмите React )) Ну а подобные Vue... На слуху наверное только Svelte.
    Ответ написан
    Комментировать
  • Как тестировать запросы и ответы из базы данных через phpunit?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Мне кажется, что найденные варианты работают не так. Используются они оба, а какой именно - зависит от того, что именно вы тестируете - запрос или ответ.

    Если говорить про "запросы к БД", то для таких тестов "массив с данными" использовать просто глупо. Это получится какой-то формальный тест: "проверяем, что метод возвращает массив из трех строк - и тут же возвращаем этот самый массив". В чем смысл? Если вы тестируете запрос к БД, то и надо тестировать запрос к БД. По-другому никак.

    Здесь я отвлекусь, и порассуждаю на тему того, что на самом деле тестирование - это гораздо более трудоёмкая задача, чем обычно считается. И как следствие, большая часть тестов - это такая вот туфта. Либо тест заранее возвращает нужные данные, либо тестирует один-два кейса. А вариантов неправильных входящих данных ведь может быть огромное количество. То есть по-хорошему на такой заведомо сложный (и принципиально неделимый!) метод нужно десятка два тестов.

    И сюда же использование для тестов БД другой системы. Например основная БД MySQL, а для тестов используется Sqlite. Тут сразу можно сказать, что это профанация. Различие даже в какой-то одной настройке БД может повлиять на результаты запроса (и теста как следствие) - а тут и вовсе используется совсем другая БД.

    С другой стороны, работу с БД скорее стоит тестировать не в юнит тестах, а скажем в интеграционных. Но не будем углубляться.


    Массив же "с данными, симулирующими ответ из базы данных" используется на следующему уровне, там где требуется "ответ из базы данных". Взьмём метод, который использует данные, полученные из БД. Например авторизация юзера. Этот метод должен не сам лезть в базу, а дёргать отдельный метод, вполне возможно, что совсем другого класса. И вот чтобы протестировать авторизацию, вы и мокаете метод для работы с БД, и из этого мока возвращаете тот самый массив без всякого обращения к бд.

    Здесь нелишне будет напомнить название доклада с одной из последних конференций по пхп. Дословно не помню, но что-то вроде "Делайте методы как можно короче. Ваши тесты скажут вам спасибо." Собственно, именно при тестировании очень быстро начинаешь понимать удобство атомарных (то есть выполняющих какую-то одну простую операцию) методов. А без тестов пройдёт довольно много времени, пока не понадобится этот длинный метод отрефакторить, и по итогам менять кучу кода, который его вызывает.

    Так что разбивайте ваши длинные методы на мелкие, и тогда вопрос, как их тестировать, в большинстве случаев отпадёт сам собой.
    Ответ написан
    1 комментарий
  • Как Вернуть промис без прописывания .then каждый раз?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Ответ написан
    Комментировать
  • Почему метод pop удаляет не все елементы массива?

    Wispik
    @Wispik
    1. Нельзя итерироваться по объекту и одновременно изменять его
    2. pop удаляет с конца, а for of идет по массиву сначала

    Первая итерация цикла number=3, pop удаляет с конца, то есть 5
    вторая итерация number=8, pop удаляет 9
    и так далее
    когда number=6(четвертая итерация), 6 - это последний элемент массива, так как остальные удалил pop
    Ответ написан
    2 комментария
  • Как проксировать websocket не упираясь в пределы tcp?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Проксируется в целом ровно точно так же, как и любая сетевая нагрузка: клиенты [n] -> балансер -> сервера [m]. Лимит портов в 65к достаточно просто преодолевается путем добавления дополнительных сетевых адаптеров/каналов.
    Дополнительные ссылки:
    https://unetworkingab.medium.com/millions-of-activ...
    https://blog.postman.com/postman-engineering-milli...
    https://serverfault.com/questions/725224/how-to-ha...
    https://josephmate.github.io/2022-04-14-max-connec...
    https://github.com/eranyanay/1m-go-websockets
    https://github.com/ramsicandra/1million-ws

    Кроме того, WS коннекты можно балансировать как HTTP - банальным редиректом на прямой коннект к серверу. Т.е. клиент коннектится к балансеру, а он ему говорит: "а теперь тебе вот сюда коннектится надо". Или можно совмещать. Пару слов про проксирование WS в nginx: в сети пишут, что nginx с этим плохо справляется под существенной нагрузкой и лучше всего проксировать WS через специализированные прокси типа HAProxy.
    Ответ написан
    2 комментария
  • Как остановить выполнение функции при нажатии на input?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    var timeoutId;
    // ...
    timeoutId = setTimeout(...
    // ...
    timeoutId = setTimeout(...
    // ...
    function stop() {
      clearTimeout(timeoutId);
    }
    document.getElementById("placeholder_text").click = stop;


    Ну и не называй функцию do, есть ключевое слово do ... while.
    Ответ написан
    Комментировать
  • Компилируемый ЯП в стилистике JS есть?

    cyber-jet
    @cyber-jet
    Rust :)
    Ответ написан
    Комментировать
  • Как заменить под-зависимость на локальную копию?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    В package.json есть раздел overrides как раз для таких модификаций зависимостей зависимостей. В примерах в документации там почему-то акцент сделан только на версии пакетов, но можно и полностью заменить пакет на свой, если указать не версию, а локальный путь к нему.
    Ответ написан
  • Можно ли узнать, какой именно хост блокирует пакет?

    @AlexVWill
    Штука в том, что так не определишь. Именно потому что та верно отметил "соединение устанавливается, но ни один входящий байт не проходит". На самом деле конечно проходит, просто ТСПУ провайдера калечит VPN пакеты, так что до сервера доходит не шифрованный пакет, а абракадабра, которую нельзя расшифровать. Отсюда и проблема, сервер не может подтвердить подлинность пакета и отвергает его.
    Тут только можно посоветовать переход на какие то более другие протоколы, которые роскомпозору не по зубам.
    Ответ написан
    Комментировать
  • Cервисы email рассылок без подтверждения получателя?

    ZERGeich
    @ZERGeich
    Спам это плохо.
    Не знаю насчёт проверки подтверждений, но гугл вполне себе выдаёт кучу сервисов рассылок.
    Ответ написан
    Комментировать
  • Как получить исходные сигналы спутников ГЛОНАСС?

    NeiroNx
    @NeiroNx
    Программист
    Software Defined Radio
    https://www.rtl-sdr.com/rtl-sdr-tutorial-gps-decod...
    У ГЛОНАСС тот же принцип что и GPS, но библиотека не пойдет- придется писать.
    Ответ написан
    3 комментария
  • Насколько (не)безопасны беспроводные клавиатуры?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    //COPY01 EXEC PGM=IEBGENER
    Любой вопрос, касающийся ИБ начинается с модели нарушителя, что собственно и сделал alexalexes . Любая подобная атака эффективна на расстоянии вытянутой руки (да, производители обещают десятки метров, но зачастую клава после года-двух эксплуатации "не видит" приемник стоящий от нее на полметра).

    Если вы ищете себе устройство домой - не морочьте голову. Эфир в стандартном доме настолько зашумлен, что Вы отошли на метр - и атака потеряла свою эффективность - ну а на расстоянии метра от компьютера вопрос безопасности стоит уже немного по-другому :)

    "...- Не совсем, молодой человек, не совсем... Пэвээс - пистолет
    специального назначения. Его пуля теряет убойную силу на расстоянии
    вытянутой руки. Если вы выстрелите в кого-то, кто находится в метре от
    вас, эффект будет, как от горошины. Из него надо бить только в упор. Но
    если вы не самоубийца и собираетесь поразить кого-то другого. То гораздо
    надежнее и удобнее воспользоваться кинжалом или этой шпагой...."
    Александр Шалимов. Приобщение к большинству
    (жуткий киберпанк советских времен)

    Если же все-таки на работе - то Вы либо оборудуете себе кабинет попросторнее (можно с клеткой Фарадея чтобы уж по полной параноить) либо, если такой возможности нет - миритесь с указанной возможностью :)

    Но IMHO Вы морочите себе голову. Вы не Киркоров, не глава разведки, не президент Газпрома, чтобы становиться целью таких специализированных атак :)
    Ответ написан
    3 комментария
  • Насколько (не)безопасны беспроводные клавиатуры?

    msHack
    @msHack
    Есть приборы Устройства защиты от ПЭМИН
    https://nppgamma.ru/catalog/ustroystva_zashchity_o...

    На Ютубе были перехваты нажатия с клавы с помощью SDR Приемника работает в пределах комнаты
    Ответ написан
    1 комментарий
  • Насколько (не)безопасны беспроводные клавиатуры?

    GavriKos
    @GavriKos
    Все то же самое можно делать и с проводной клавиатурой. Методов очень много. И я не шучу.
    Ответ написан
    3 комментария
  • Как визуализировать магнитное поле?

    @pvvv
    2d: femm.info
    3d: radia, но там что-то сайт старой версии для математики помер, на гитхабе вроде была более свежая версия с привязкой к питону.
    прямоугольные параллелипипеды и дуги с равномерно распределённым током считает аналитически.
    но вот строить сложную геометрию по кусочкам удовольствие то ещё.
    65b904f7c8adc398443742.png
    65b904fdf331c771219016.png
    Ответ написан
    Комментировать
  • Как визуализировать магнитное поле?

    @rPman
    Попробуй phet interactive simulation, судя по видеодемонстрациям это очень простая и в то же время функциональная система для обучения, как я понял магнитные поля там есть для постоянных токов в проводниках (собирай из сегментов свою конфигурацию)

    Для переменных токов нужны очень и очень сложные и дорогие пакеты.
    Ответ написан
    5 комментариев
  • Локальная дата и время?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const dateTimeFormatter = new Intl.DateTimeFormat(
      'sv-SE',
      {
        dateStyle: 'short',
        timeStyle: 'medium',
      },
    );
    console.log(dateTimeFormatter.format(new Date()));
    // "2024-01-29 09:11:47" 
    console.log(dateTimeFormatter.resolvedOptions().timeZone);
    // "Europe/Moscow"
    Ответ написан
    2 комментария
  • Есть ли возможность перенаправить человека в telegram с заготовленным сообщением?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Такой возможности нет. Можно передать текст в аргумент команды start бота. Больше информации в официальной документации https://core.telegram.org/api/links

    Возможно, более разумным является веб-логин через Телеграм на самом сайте или, например, использование Web App в самом Телеграме. Но это надо существенно пересматривать всё взаимодействие с пользователем.
    Ответ написан
    Комментировать