• Как с помощью регулярного выражения отделить символы с большой буквой, добавив пробел?

    0xD34F
    @0xD34F Куратор тега JavaScript
    str.replace(/(?<=\S)(?=[А-ЯЁ])/g, ' ')

    или

    str.replace(/(\S)([А-ЯЁ])/g, '$1 $2')
    Ответ написан
    1 комментарий
  • Как лучше объединить элементы массива в строку?

    0xD34F
    @0xD34F
    $toStr = fn($arr) => implode('', array_map(fn($k) => "[$k:]$arr[$k][:$k]", array_keys($arr)));
    print_r(array_map($toStr, $lang));
    Ответ написан
    1 комментарий
  • Как реализовать смену текста при переключении между radio button?

    0xD34F
    @0xD34F Куратор тега Vue.js
    data: () => ({
      meetupId: null,
      meetupData: null,
    }),
    watch: {
      meetupId(val) {
        fetch(`https://course-vue.javascript.ru/api/meetups/${val}`)
          .then(r => r.json())
          .then(r => this.meetupData = r);
      },
    },

    <label v-for="i in 5">
      <input type="radio" name="meetupId" :value="i" v-model="meetupId">
      {{ i }}
    </label>
    <pre>{{ meetupData }}</pre>
    Ответ написан
    Комментировать
  • В чем разница между способами тестирования (в контексте web и php)?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Опишу простыми словами для упрощения понимания.

    модульное тестирование

    Тестирование конкретного модуля. Обычно - это самый нижний уровень, отдельные простые классы, т.е. ниже по логике уже будут отдельные функции. Например, в JS есть класс Math - тестирование всех его методов и есть модульный тест. Конечно, границы между логическими уровнями могут быть размыты и в данную категорию вполне можно вписать класс уровнем выше. Так же, модулем может быть и что-то более сложное - опять же, много зависит от масштабов и особенностей архитектуры.

    интеграционное тестирование

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

    функциональное тестирование

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

    Инструментами автоматизации GUI - для сайтов это Selenium и браузеры. Для десктопных/мобильных приложений аналогичные решения.

    приемочное тестирование

    в че отличие от интеграционных.. еще видел фразу что тут и фронт и бек тестируются, но яснее не стало, какими инструментами оно делается?

    "Бизнес" заказал в "Конторе" разработку сайта, выдал ТЗ, контора сделала сайт, бизнес заплатить денег обещал. Как бизнес проверит что контора сделала именно то, что он хотел? Через приемочное тестировние - бизнес получает доступ к сайту и проверяет, что сайт именно такой, какой он заказывал в ТЗ, а не тот, который сделали индусы за доширак. Если в ТЗ указан конкретный список тестов/фич - используется этот список или так, как прописано в ТЗ само тестирование. Само тестирование проводит соответствующий специалист (инженер отдела качества) - тыкает все кнопочки, нажимает менюшечки и говорит начальству "все окей, подписывай и платим им деньги" или "вот тут и тут не окей, не подписывай, денег не давай". Реальный пример: была заказана и собрана станция спутниковой связи, на приемке были представители заказчика и исполнителя, была толстая пачка бумаги на несколько сотен страниц, по которой первые проверяли что все работает именно так, как там написано в течении нескольких недель (плюс-минус), а вторые исправляли косяки показывали что все окей, потом все поставили свои галочки и крестики и разъехались по домам.

    E2E - тут тестируется чрез браузер, с помощью Mocha и тп, те тестируются "требования бизнеса к приложению", тестируются пользовательские сценарии.. а в чем отличие от функциональных тестов тогда?

    Сквозное тестирование. Это полная проверка от начала и до конца. Отличие от функционального в том, что это более комплексный тест. Если функциональное тестирование - это проверка конкретной функции, тот сквозное - работа всего приложения, т.е. более комплексное. Например, E2E тест приложения для загрузки файла на сервер: тест включает в себя запуск приложения, авторизация пользователя, выбор файла, указание мета информации, загрузку файла на сервер, выход из приложения. Вот тут неплохая статья на хабре: https://habr.com/ru/company/otus/blog/681066/

    Совсем запутался, с unit только понятно, а как уложить и разделить остальные?

    60da68c37e576762375008e5_thumb-image.png
    Картинка отсюда: https://www.rainforestqa.com/blog/the-layers-of-te...
    Ответ написан
    Комментировать
  • Как правильно находить готовые коды, плагины на разных языках?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Мда. С такой грамотностью далеко не уйдёшь... ПредпрИниматель...
    Я дам простой ответ - предприниматель сам должен уметь находить ответы на вопросы, которые ты здесь задаёшь.
    Ты занимаешься не своей работой."Куски кода искать" должен не руководитель, а разработчик, это его работа и его профессия, за это ты платишь ему деньги
    Ответ написан
    5 комментариев
  • Как PHP получить получить JSON из JAVASCRIPT?

    @zkrvndm
    Софт для автоматизации
    Вообще все неправильно делаешь.

    Отправляешь данные из браузера на сервер вот так:
    (async function() {
        var result = await $.post('api/index.php', { raz: 'Привет, мир!' } );
        console.log('Ответ сервера:', result);
    })();

    Открой консоль CTRL + Shift + J, чтобы посмотреть ответ выведенный через console.log

    На сервере все что ты отправил будет лежать внутри суперглобального массива $_POST

    Можешь записать его в файл и посмотреть, что было внутри:
    <?php
    
    header('Content-Type: text/plain; charset=UTF-8');
    
    $json = json_encode($_POST, JSON_UNESCAPED_UNICODE);
    
    file_put_contents('POST.json', $json);
    
    echo 'Данные получены и записаны в файл POST.json -> смотри его.';
    Ответ написан
    Комментировать
  • Как организовать работу с одними стилями на разных проектах?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Одинаковая структура при разных реализациях - это больно и малореально. Существуют css\html-only дизайн системы, которые можно брать и реализовывать на любом фреймворке, но это тот ещё геморрой без особого выхлопа.

    Мне кажется вам стоит решить чего вы будете-придерживаться впредь, а что легаси, и вынести таки все компоненты одной актуальной версии(vue2 или vue3) в библиотеку, скомпилировав её в режиме web-components. Веб компоненты вы сможете подключать куда угодно, ценой лишних 100кб на непрофильный vue-runtime в случае несовпадения.
    Ответ написан
    1 комментарий
  • Сколько headless браузеров удастся запустить?

    neuotq
    @neuotq
    Прокрастинация
    Примерные расчёты это, по CPU:
    от 0,5 до 1 x на ядро, значит у вас 80 - 160 ограничение по инстансам.
    По ОЗУ примерно:
    0,5 + 2 * X , - значит 128 / 2 = 64 , те 63 браузера примерно
    Берём меньшее из двух, значит около 60 одновременно работающих на обычным среднем сайте, бизнес, соц сети и тп, без сверх тяжёлых штук.
    По движкам брать тот, который надёжнее и предсказумее в вашем случае работает, в контексте скриптов, загрузки всяких штук, запросов и тп, почти всегда это хромиум(семейство).
    Ответ написан
    3 комментария
  • Как узнать на чем сделан сайт?

    @kirokysuper
    Установить плагин для Google Chrome называется Wappalyzer
    Ответ написан
    2 комментария
  • Как шифровать payload?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Собственно вопрос: а что требуется?

    Этот вопрос всегда надо задавать тому, кто формирует требования, а не идти с этим вопросом в интернет к случайным людям.
    Мы тут посидим, пообсуждаем, примем решение и ты что-то там реализуешь.
    А в итоге окажется, что заказчик немножко "куку" и имел совсем не то, что мы тут посидели и решили.
    Иди и общайся с заказчиком.
    Ответ написан
    Комментировать
  • Логика для скрытия элементов в списке при недостаточной ширины контейнера?

    RAX7
    @RAX7
    Если используется нативный скрол, то можно повешать Intersection Observer
    Ответ написан
    Комментировать
  • Меня взломали и всё равно продолжают ломать??!! что делать?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Я понял. Тут ничего не поможет. Это банальное расщепление личности. Одна личность пишет на Тостер «как взломать роутер», потом ее замещает другая и пишет «какая-то сволочь взломала мой роутер!». И так по кругу.

    Возможно, помогло бы вашим сосуществующим личностям договориться между собой… найти конструктивный диалог, панимаиш.
    Ответ написан
    1 комментарий
  • Input внутри div?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    input {
      width: 100%;
    }
    Ответ написан
    1 комментарий
  • Как изменить дефолтное поведение инпут дате?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    он возвращает дату в формате
    MM-DD-YYYY - месяц день год

    Нет, не возвращает.
    Возвращает в формате YYYY-MM-DD.

    как-то можно без библиотек поменять на
    DD-MM-YYYY

    Можно. Все библиотеки для JS работают на JS.

    var d = document.querySelector('input[type="date"]')
    
    d.addEventListener('change', function(){
      console.log(this.value) // YYYY-MM-DD
      const [y, m, d] = this.value.split('-')
      console.log(`${d}-${m}-${y}`) // DD-MM-YYYY
    })
    Ответ написан
    Комментировать
  • Как проверить строку, чтобы узнать, можно ли её парсить?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    try { 
        const rq = JSON.parse(data)
    } catch (err) {
        console.log('error:', err)
    }
    Ответ написан
    Комментировать
  • Как получить данные из graphQL через JS/VUE?

    Negezor
    @Negezor
    Senior Shaurma Developer
    Вам нужен GraphQL клиент, например urql (urql-vue) или apollo-client (vue-apollo). Если вам нужен один запрос, то можно обойтись обычным fetch, например:
    const response = await fetch('https://example.com/graphql', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        operationName: 'fetchAuthor',
        query: 'query fetchAuthor { author { id name } }',
        variables: {},
      }),
    });
    
    const data = await response.json();
    Ответ написан
    Комментировать
  • Что такое window.__INITIAL_STATE__?

    MrDecoy
    @MrDecoy
    Верставший фронтендер
    При использовании предварительного рендеринга страниц, независимо на стороне сервера(SSR) или при билде приложения(SSG), разметка, прилетающая на клиент - просто разметка. Не реактивна.
    Думаю, Вы знаете, что есть такой процесс как гидратация - если коротко, то это как раз и есть процесс, когда статика обвешивается реактивностью.
    Стэйт - это просто объект в памяти.
    Откуда ему взяться в памяти, если начальное состояние приходит с сервера?
    Вот оно и приходит в переменной INITIAL_STATE.
    Происходит гидратация, initial_state становится, назовём условн, current state, то есть переходит в vm.$store и дальше работает как SPA.

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

    GavriKos
    @GavriKos
    Ну как бе команда спецов у вас есть - пусть и решает.

    Под ваше ТЗ подходят любые ЯП - потому что ТЗ говно.
    Ответ написан
    4 комментария
  • Можно ли заменить стандартные исходящие порты 80,53,443 на другие?

    CityCat4
    @CityCat4 Куратор тега Сетевое администрирование
    //COPY01 EXEC PGM=IEBGENER
    Нет. Потому что эти порты открыты не тобой :) Это кто-то где-то открыл порты, а ты просто знаешь их номер. И если ты их не откроешь, то ты просто не попадешь туда, но от этого тому, кто их открыл - ни жарко, ни холодно, пофиг ему.
    Ответ написан
    Комментировать
  • Можно ли заменить стандартные исходящие порты 80,53,443 на другие?

    Ziptar
    @Ziptar
    Дилетант широкого профиля
    Послушай, уважаемый, ты не тем занимаешься. Во-первых, интернет, на усреднённом роутере на базе лини, мало связан с доступом к роутеру и доступом роутера куда-либо. Цепочка forward не пересекается с цепочками input и output. Кроме того, само оперирование понятиями "входящие" и "исходящие" требует осознания того, к чему ты эти понятия применяешь - к пакетам, или к соединениям, потому что это разные вещи, и на разных роутерах эти разные вещи могут называться одинаково.
    Что касается "можно ли заменить" - да, принципиально можно. Да, на большинстве роутеров можно. Нет, не на всех роутерах это можно сделать предусмотренным производителем путём. И интернет тут, как правило, вообще ни при чём. Но самое главное - это не нужно. Безопасности это не добавляет.
    Ответ написан
    8 комментариев