Задать вопрос
  • Нормальная ли практика делать сайт на разных языках в поддоменах?

    delphinpro
    @delphinpro
    frontend developer
    Мультиязычность (контента) обычно реализуется двумя методами
    1. Отдельные колонки под языки в каждой таблице.
    2. Отдельные таблицы одноименных моделей под каждый язык.
    Для реализации обоих способов есть уже несколько готовых пакетов.
    https://yandex.ru/search/?text=laravel+multilangua...

    А уж какую адресацию вы сделаете, особой роли не играет. Это могут быть и поддомены (en.site.ru), и поддиректории (site.ru/en).

    Я сейчас говорю о переводах именно контента. С переводом интерфейса проблем нет, тут используется встроенные методы локализации.
    Ответ написан
  • В каких ситуациях надо использовать хук useImperativeHandle?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Это может понадобиться, если в твоем компоненте используется какая-нибудь хрень, которой удобно управлять не через изменение пропсов (стандартный react-way), а через вызовы функций. Ну вот тот же пресловутый инпут или текстареа - у него есть штуки, которые не отобразились на пропсы, например выделение текста.

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

    Пример из более-менее известного - библиотека Формик
    https://github.com/jaredpalmer/formik/blob/main/pa...
    formikbag - тот самый "объект с методами". Он создается через хук useFormik, но конкретно здесь компонент Formik сам это сделал и отдал тебе
    Ответ написан
    Комментировать
  • От чего зависит звук беспроводных (радиочастотных) наушников?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    От теоремы Котельникова, энергопотребления и частотного диапазона.
    Итак мы имеем следующее распределение качества (гипотетическое)
    USB - цифра идет напрямую шумы от системника отсутствуют
    Wired - цап в компе и напрямую ловит шумы от системника, но плюс то что широта канала зашкаливает
    Bluetooth - шумов конечно нет, но жать нужно жестко, а с учетом диапазона все очень плохо.

    Так что бы не лили маркетологи в уши, это все по радиоканалу ну вы поняли
    Ответ написан
    5 комментариев
  • Как попасть в IT школьнику?

    xez
    @xez
    TL Junior Roo
    1. До 18ти лет, скорее всего, никуда не возьмут.
    2. В вашем возрасте обучение максимально быстрое и эффективное.

    Отсюда план:
    1. Учитесь, читайте книги, набивайте руку на пет-проектах. Читать и учиться придется на протяжении всей карьеры (спойлер, т.к. пенсии у вас не будет - всей жизни).
    2. Заканчивайте 11й класс.
    3. Постарайтесь поступить в ВУЗ (опционально).
    4. После первой сессии начинайте искать работу. К этому времени у вас должно скопиться небольшое портфолио проектов и опыт достаточный для трудоустройства на младшие позиции.
    5. Спокойно доучивайтесь в ВУЗ-е (опционально), паралельно работая.
    Ответ написан
    7 комментариев
  • Наставник-разработчик отказался от junior-специалиста. Что делать?

    xez
    @xez
    TL Junior Roo
    Как вы считаете, что мне лучше делать в этой ситуации?

    1. Перестать верить в деда мороза и розовых единорогов.
    2. Работать дальше.
    3. Учиться, учиться и еще раз учиться.
    Ответ написан
    Комментировать
  • Почему сайт падает при парсинге?

    mayton2019
    @mayton2019
    Bigdata Engineer
    сайт падает, в логах ничего

    Так не бывает. Если OOM киллер срубает процесс то где-то об этом остается след.
    Поищи в syslog, в сообщениях D-bus, в логах Апача, в логах Редиски или ПХП.
    Ответ написан
    Комментировать
  • Как заставить PHPStorm кушать меньше памяти?

    @hjk Автор вопроса
    Всё оказалось просто и тупо. Оставлю, если кому будет интересно. Шторм индексировал папку с логами проекта, которые оказались включены. Он пытался этот рост заиндексировать прямо в реальном времени и закипал. Оказалось достаточно исключить папку логов из индекса, и всё вернулось на круги своя.
    Ответ написан
    1 комментарий
  • Достаточно ли одного Windows Defender в качестве единственного антивируса?

    @Komandir_Bublik
    Виндовсовый один из лучших, но рекомендую от себя лично если тебя что-то тревожит, просканируй систему тем же Dr.Web CureIt или malwarebytes.
    Ответ написан
    3 комментария
  • Как сделать панель задач для каждого монитора?

    @DukeSpontaneous
    > Параметры панели задач
    > > Несколько дисплеев
    > > > Показать панель задач на всех дисплеях
    > > > > Панель задач, в которой открыто окно
    622855c95dee1130830070.png
    622855e0a7d25597452260.png
    Ответ написан
    Комментировать
  • Как сделать панель задач для каждого монитора?

    @chifth
    В настройках есть пункт "отображать на панели только окна с этого экрана"
    Ответ написан
    Комментировать
  • Как сделать панель задач для каждого монитора?

    GavriKos
    @GavriKos
    https://www.windowscentral.com/how-connect-and-set...
    пункт "How to show taskbar across multiple displays on Windows 10"
    Ответ написан
    Комментировать
  • Имеет ли вес хеш сумма в юридической практике?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Почему бы и нет? Главное - укажите это в договоре, как подтверждение того, что обе стороны принмают этот способ контроля целостности передаваемых файлов.
    В договоре необходимо указать :
    - что именно передаётся, с материальной точки зрения. В Вашем случае - указывается перечень файлов, и их основные описательные характеристики;
    - как именно передаются файлы (например - на носителе), согласно акта приёма-передачи. Стороны договорились о том, что целостность файлов подтверждается контрольной (хеш) суммой, которая рассчитыватся согласно алгоритма (MD5, SHA и т.д.) применительно к каждому бинарному файлу. Соответственно, в акте приёма-передачи указываете эти контрольные суммы, фразу что принимающая сторона проверила файлы и подтверждает что хеш суммы соответствуют указанным.
    Ответ написан
    Комментировать
  • Как заполнить таблицу случайными значениями времени?

    Enokin
    @Enokin
    Full-stack разработчик
    INSERT INTO goals (ID_матча, ID_стадиона, ID_команды, ID_игрока, Время)
    VALUES 
    (9, 1, 1, 1, DATEADD(SECOND, RAND()*(86400), '00:00:00')),
    (10, 2, 2, 2, DATEADD(SECOND, RAND()*(86400), '00:00:00')),
    (11, 3, 3, 3, DATEADD(SECOND, RAND()*(86400), '00:00:00')),
    (12, 4, 4, 4, DATEADD(SECOND, RAND()*(86400), '00:00:00')),
    (13, 5, 5, 5, DATEADD(SECOND, RAND()*(86400), '00:00:00')),
    (14, 6, 6, 6, DATEADD(SECOND, RAND()*(86400), '00:00:00')),
    (15, 7, 7, 7, DATEADD(SECOND, RAND()*(86400), '00:00:00'))

    В этом запросе RAND() * 86400 генерирует случайное число от 0 до 86400 (количество секунд в сутках), а DATEADD () преобразует это число в формат времени.
    Ответ написан
    5 комментариев
  • Понимание аспектов JavaScript?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Строковый примитив преобразуется в объект только при выполнении методов объекта, причём при преобразовании используется копия значения примитива, сама переменная не меняется.
    x = 'foo'
    x // "foo"
    x.length // 3
    x === 'foo' // true
    
    x = new String('foo')
    x // String { "foo" }
    x.length // 3
    x === 'foo' // false

    При этом методы, как правило, возвращают не объекты, а примитивы.
    x = new String('foo')
    x === 'foo' // false
    x.substring(0, 3) // 'foo'
    x.substring(0, 3) === 'foo' // true
    Ответ написан
    Комментировать
  • Замыкания не существует?

    Stalker_RED
    @Stalker_RED
    Я немного добавил наглядности
    function one() {
      const oneVar = 'Hello!'
      let counter = 0;
      console.log('функция one работает прямо сейчас, в счетчике', counter)
    
      function two() {
        console.log(oneVar, ++counter)
      }
      
      console.log('функция one почти завершилась, в счетчике все еще ', counter);
      return two
    }
    
    const three = one();
    console.log('функция one точно завершилась, даже return сработал');
    console.log('в переменной three сейчас функция two()');
    console.log(three);
    
    
    three();
    three();
    three();
    console.log('обожемой, мы видим как менялась переменная в уже завершенной функции. чераная магия? нет - это называется замыкание!');

    выхлоп:
    "функция one работает прямо сейчас, в счетчике", 0
    "функция one почти завершилась, в счетчике все еще ", 0
    "функция one точно завершилась, даже return сработал"
    "в переменной three сейчас функция two()"
    function two() {
      console.log(oneVar, ++counter)
    }
    "Hello!", 1
    "Hello!", 2
    "Hello!", 3
    "обожемой, мы видим как менялась переменная в уже завершенной функции. чераная магия? нет - это называется замыкание!"
    Ответ написан
    Комментировать
  • Связаны ли JS-селекторы в функциях поиска по элементам с поддержкой их в CSS?

    modelair
    @modelair
    unsocial
    это не js-селекторы, а css-селекторы, поэтому - да, будет работать как предполагается.
    почитайте документацию к querySelector
    Ответ написан
    Комментировать
  • Как следить за версионностью в клиент-серверном приложении, в выпускаемых фичах продукта?

    Вы пытаетесь решить несуществующую проблему.
    1. Нет никакой проблемы в том что два разных приложения (клиент и сервер) имеют разную нумерацию.
    2. semver нужен только если у тебя есть какой-то контракт, который тебе нужно соблюдать. Если контракта нет - можно использовать просто номера релизов.
    Ответ написан
    3 комментария
  • Есть ли какие-нибудь СУБД, которые могут уведомлять клиентов об изменении данных?

    DevMan
    @DevMan
    сомневаюсь, что это возможно в ваших хотелках/представлении.
    где сервисы размещены рояля не играет - сама задача решается ивентами и слушателями.
    Ответ написан
    2 комментария
  • Что посоветуете изучать дальше?

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

    "Разработчик ПО" - таким термином можно буквально любую вакансию разработчика описать (исключение - железячники)

    Какой у тебя выбор:
    1. Посмотреть, где востребован язык Си и C++, выбрать то что тебе интересно, продолжать учёбу в этом направлении.

    2. Раз уже упомянуто winapi - значит ты хочешь разрабатывать десктопные приложения под Windows. Тут действительно очень популярен C#, хотя саму сферу я бы очень уж большой не назвал. Тогда изучай C# и какой-нибудь WPF.
    winapi и WinUI, в принципе, можно изучать и с C++.

    3. Раз уже прозвучал C#, то тут могу посоветовать более популярное направление в нём - разработка бэкенда (серверного ПО) на asp net core.
    Ответ написан
    2 комментария
  • Как Вы импортируете изображения в NextJS?

    @iljaGolubev
    public/img/icon.png - действительно относительный урл?
    host:port/public/img/icon.png доступен?

    А так?
    import icom from '../public/img/icon.png'
    import {B} from 'B';
    export const Page = () => <B imgPath={icon}/>
    Ответ написан
    Комментировать