Задать вопрос
  • Как вывести ширину дочернего элемента в процентах?

    Fragster
    @Fragster
    помогло? отметь решением!
    https://jsfiddle.net/3n9Loath/5/
    можно вообще одним элементом и градиентом в бэкграунде развлечься, но мне лень.
    Ответ написан
    1 комментарий
  • Где ошибка и где можно рациональнее написать код, чтобы сократить время обработки?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    тут долгая и «дорогая» задача — нахождение суммы делителей числа. У вас в решении для одного (любого) числа она вычисляется по многу раз. Этого нужно избежать.

    Составьте словарь: объект или Map, где ключ – сумма делителей. А значение – массив чисел, у которых оказалась такая сумма делителей.

    Один раз пройдитесь по диапазону 1 ... 3000 и заполните словарь, посчитав сумму делителей для каждого по одному разу.

    Затем остаётся пройти по словарю и набрать из каждого из массивов значений, пары. Например, все простые числа свалятся в массив под ключом 1 (все делятся только на 1 и на себя). {1: [1, 2, 3, 5, 7, 11, 13, ... ], ... } Из этого массива нужно все возможные пары повытаскивать: [1, 2], [1, 3], [1, 5], ..., [2, 3], [2, 5], ...

    Ещё оптимизация: при поиске делителей числа есть смысл проверять не до самого числа, а только до его половины. Например, 21: проверить, делится, ли на 2, 3, 4, ... 10 <= (21 / 2 = 10.5) и дальше проверять не нужно.
    Ответ написан
    1 комментарий
  • Как уменьшить сложность и тяжеловесность "контроллеров" в API приложениях?

    @Akela_wolf
    Extreme Programmer
    Путь к уменьшению сложности один - декомпозиция.
    Выносить все лишнее в отдельные классы и модули.
    Скажем, стоит выносить логику валидации запросов из контроллера в отдельные классы, оставляя в контроллере только абстрактное: валидировать. логировать. передать на обработку. вернуть результат.
    Тоже самое в сервисах: выносить логику обращения к БД, обращения к внешним сервисам и т.д., оставляя только то что относится непосредственно к ответственности сервиса

    См. книгу Р. Мартин "Чистая архитектура", вот статья об этом на хабре
    Ответ написан
    2 комментария
  • Как сделать border для шестиграника?

    TheSnegok
    @TheSnegok
    Ответ написан
    Комментировать
  • На сколько могут быть длинными модификаторы в БЭМ?

    SeaInside
    @SeaInside
    16 лет пилю все эти штуки
    * Это не модификаторы, а элементы

    Длинными могут быть настолько, насколько это требуется, и в количестве любом, методология это не регламентирует.

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

    уменьшат мне варианты названия других основных блоков на странице


    Создавайте внутренние блоки с общим неймспейсом, в вашем случае основной компонент - `profile`, внутренние - `profile-info`, `profile-page`, и складывайте их так, чтобы связь родитель-ребёнок между блоками была очевидна.
    Ну, да, в таком случае формально вы больше не сможете создать не-дочерний блок с неймспейсом `profile`, чтобы не запутаться, но тут нет других вариантов, и выбрать надо меньшее из зол.

    С моей колокольни выбор между монстр-компонентом на тысячу строк и тремя-четырьмя поменьше вообще не стоит - однозначно следует выбирать компоненты поменьше, даже если вы оперируете только стилями.
    Если пользуетесь фреймворками и в компонентах есть ещё и какая-то логика - то тем более.
    Пересечения между такими глобальными категориями вообще не такой частый сценарий, как может показаться, да и названия всегда можно выбрать более узкие.

    Я вот здесь отвечал на похожий по смыслу вопрос - посмотрите.
    https://qna.habr.com/q/1129178#answer_2136844
    Ответ написан
    2 комментария
  • Как установить ref на transition-group елемент?

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

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

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    document.addEventListener(
      'click',
      (e) => {
        const target = e.target.closest('.media-category__item');
        if (!target) {
          return;
        }
        document.querySelector('.media-category__item.active')?.classList.remove('active');
        target.classList.add('active');
        document.querySelector('.media-tab.active')?.classList.remove('active');
        document.querySelector(`.media-tab[data-tab="${target.dataset.category}"]`)?.classList.add('active');
      },
    );
    Ответ написан
    7 комментариев
  • Как установить событие на будущий DOM элемент?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для контроля изменений DOM используйте MutationObserver. В данном случае вам надо установить опцию childList для слежения за потомками div'а и, если добавление элементов происходит не непосредственно в div, а в его потомка, то ещё и опцию subtree.
    Ответ написан
    Комментировать
  • Нормально ли бросать (throw) внутри async функции?

    SeaInside
    @SeaInside
    16 лет пилю все эти штуки
    Где-то читал, что нехорошо кидаться ошибками изнутри async функций
    ... надо только возвращать rejected Promise.

    В этом `где-то` вас обманули, так как любое возвращаемое из `async` функции значение (да, включая throw) уже обёрнуто в `Promise`.

    const foo = async () => { throw new Error('Smth went wrong'); };
    const bar = async () => Promise.reject(new Error('Smth went wrong'));

    Работают абсолютно одинаково
    Ответ написан
    3 комментария
  • Какой функцией декодировать эту строку - чтобы русские буквы получились?

    WblCHA
    @WblCHA
    Для полной коллекции:
    decodeURIComponent("\u042d\u0442\u043e \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0442\u043e\u0440\u044b \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u0444\u0438\u0433\u043d\u0451\u0439 \u0437\u0432\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0431\u043e\u0433 \u0437\u043d\u0430\u0435\u0442 \u043a\u0430\u043a \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c")
    Ответ написан
    Комментировать
  • Какой функцией декодировать эту строку - чтобы русские буквы получились?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    toString() прекрасно сделает работёнку: грязно и дёшево )

    (
      "\u042d\u0442\u043e \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0442\u043e\u0440\u044b \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u0444\u0438\u0433\u043d\u0451\u0439 \u0437\u0432\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0431\u043e\u0433 \u0437\u043d\u0430\u0435\u0442 \u043a\u0430\u043a \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c"
    ).toString()  // "Это текст которы ..."

    по сути, тут и делать ничего не надо — это просто разные способы записать одну и ту же строку.

    Как число можно записать, например, и 1000 и 1e3 и 0x3E8,
    так и букву, например, можно записать несколькими способами: "ё", "\u0451".
    «В памяти» в итоге окажется одно и то же значение.
    Ответ написан
    Комментировать
  • Как прописать классы в php коде?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Объясняем на простом примере, как в программировании можно использовать логическое мышление.
    $description = "<div id='details-2' class='col-12 col-xl-4 col-lg-12 mb-xl-5 mb-5'><div class='d-flex b-skills'><div class='height:70px;'><div class='text-bold'>";
    echo $description,"\n";
    echo addslashes($description);

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

    И откройте уже для себя волшебные клавиши Ctrl-U
    При проблемах с генерацией хтмл, надо смотреть ровно то что нагенерил ваш код, а не те красявости, которые старательно подрисовывает к нему инспектор.
    Ответ написан
    5 комментариев
  • Что такое артефакты в Gitlab?

    @Akela_wolf
    Extreme Programmer
    Нет. Артефакт - это общее название любого файла, полученного в результате сборки. Это может быть собственно результат сборки (jar или exe), отчет о тестах, сгенерированные данные и т.д. Иначе говоря, артефакт - это нечто материальное, то что не исчезает после окончания пайплайна (в отличие от временных файлов, которые удаляются по окончании процесса)
    Ответ написан
    2 комментария
  • Выключается emmet в VS code?

    @Yur4ukk
    Помогло
    просто в settings.json нужно написать такой код

    "emmet.triggerExpansionOnTab": true,
    "files.associations": {"*html": "html"},
    Ответ написан
    Комментировать
  • Как изменить длину заливки svg?

    RAX7
    @RAX7
    1) Заменить path на rect
    2) Для градиента использовать gradientUnits="userSpaceOnUse"
    Ответ написан
    2 комментария
  • Что использовать Long Polling или Webhooks?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    делай сразу на вебхуках. полинг удобен разве что для кратковременного присоединения бота. для постоянного стабильного подключения вебхуки. разница в том что полинг сам постоянно опрашивает сервер "есть чо для меня?", на что сервер либо выдает данные, либо нет. а вебхуки это типо "вот мой адрес, пришли данные когда появятся" и сидит ждет от сервера телеграма когда тот пришлет чего.
    Ответ написан
    2 комментария
  • Менеджер паролей iOS российский?

    @Drno
    1. Не умрет
    2. Не существует. (продукты касперского я не считаю адекватными)
    Ответ написан
    Комментировать
  • Стоит ли выносить код в отдельный компонент?

    Aetae
    @Aetae
    Тлен
    Всегда.
    Больше пяти строчек в разметке - отдельный компонент.
    Больше пяти строчек в коде - отдельный хук.)
    Ответ написан
    Комментировать
  • Что писать в резюме чтобы были шансы куда-то попасть без опыта?

    ArchitectOfRuin
    @ArchitectOfRuin
    WordPress-энтузиаст, маркетолог, переводчик
    Десятки откликов - это очень мало. Раньше, когда требовалась работа, я отписывал массово на email разным компаниям по вакансиям.
    Более сотни откликов, еще и написанных по-разному, чтобы в спам не улетало.
    В итоге из сотни откликов нашел пару вариантов для себя. Тоже без опыта. Без вышки. Компаниям на это начхать, если надо вакансию закрыть.
    Просто те вакансии, которые ты видишь, они обычно создаются рекрутерами для имитации какой-то своей деятельности. Чтобы показать начальству: "Смотрите, я работаю!" Они и не заинтересованы кого-то там нанимать. Во многих компаниях открытая вакансия идет в счет другому специалисту, который периодически делает типа "за двоих", а потому и деньги себе зачисляет. Такие тоже заинтересованы в отсутствии человека.
    И еще момент. На крупных биржах вакансий (не будем тыкать пальцем) многие объявления - фейковые. Никого там не ищут и не отвечают никогда. Вот исходя из этой картины мира и делай выводы.
    Ответ написан
    Комментировать
  • Как найти одинаковые на "вид" слова?

    hint000
    @hint000
    у админа три руки
    Выскажу очевидную мысль: сравнивать нужно не слова целиком, а посимвольно.
    Нагугливается без особых усилий целая кучка материалов:
    https://stackoverflow.com/questions/39948627/how-t...
    https://ru.wikipedia.org/wiki/Модуль:Похожие_символы
    https://en.wikipedia.org/wiki/Homoglyph
    https://ru.wikipedia.org/wiki/Омоглиф
    https://codebox.net/pages/homoglyph-detection
    https://habr.com/ru/post/86303/
    Ответ написан
    1 комментарий