Задать вопрос
  • Двойной слеш вместо одного?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    let str = 'D:\number\folder';

    в этой строке уже нет слешей. Тут есть "\n" (новая строка) и "\f" ещё какой-то спецсивол. Просто выведите str без изменений, чтобы убедиться.

    По-хорошему, в исходной строке слеши уже должны быть экранированы ("escaped")
    let str = 'D:\\number\\folder';

    Откуда берёте эту строку? Дело в браузере или в NodeJS? Если в Node – можно использовать модуль Path – он умеет работать с путями и использовать правильный разделитель, в зависимости от платформы Windows / ???
    let str = path.join('D:', 'number', 'folder');
    Ответ написан
    Комментировать
  • Rust мёртв, или только развивается?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    на данное время крупных проектов использующие его (кроме дискорда) нет

    Чеееегооо? Mozilla очень активно использет Rust, активно идут обсуждения о том, чтобы переписать ядро Linux на Rust, да огромное количество как новых, так и старых проектов используют Rust. Это один из самых быстрорастущих языков.
    Ответ написан
  • Какой объем знаний и навыков нужно для того чтобы стать middle Rust разработчиком?

    vabka
    @vabka Куратор тега Rust
    Сейчас редко нанимают чистых растаманов, тк язык молодой.
    Обычно нанимают тех, кто переходит с других, более традиционных языков.
    Так что тебе сначала надо стать мидлом/сеньором в C++/Java/C#/C а потом дотянуть знания раста, чтобы уметь на нём решать задачи, аналогичные тем, которые ты решаешь с основным языком.

    Ну и соответствующий коммерческий опыт ~5 лет.
    Учитывай ещё и специфику Rust-проектов: это что-то новое, что требует безопасности и эффективности, где нельзя/нежелательно/невозможно использовать "Традиционные" языки.
    Так что и уровень ответственности и требуемых знаний будет выше, чем на аналогичную, например Java-позицию.
    Ответ написан
    1 комментарий
  • Можно ли вызвать ошибку времени компиляции в макросе?

    vabka
    @vabka Куратор тега Rust
    Ну if ты не можешь туда впихнуть, но ты можешь сделать что-то типа
    macro_rules! macro {
     (5) => {compile_error! ("5 is unacceptable")}
    }

    https://doc.rust-lang.org/std/macro.compile_error.html

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

    WblCHA
    @WblCHA
    type Keys = 'line' | 'abzac' | 'text'
    
    type IEX = Record<string, string>
    
    type AntiKey = IEX & Partial<Record<Keys, never>>
    // or
    type AntiKey = IEX & { [Key in Keys]?: never }
    
    // валидное значение
    let znac: AntiKey = {
      oneline: 'anytext',
      otherline: 'othertext'
    }
    // невалидное
    let er: AntiKey = {
      text: 'no',
      other: 'txt'
    }
    Ответ написан
    Комментировать
  • Как защитить сайт от непорядочных заказчиков?

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

    Работа должна делаться наилучшим образом, как вы умеете.
    Оплата, выполнение обязательств — регулируются договором и законами.

    Ваша задача минимизировать свои риски. Для этого бить работу на чёткие этапы, фиксировать выполнение и оплату каждого, прежде, чем приступать к следующему. Хотелки клиента — каждую документировать и включать в «следующий релиз». Срочно-ой-помираю! хотелки — по предоплате. Раз «помирает» – оплатит. Или не было.
    Ответ написан
    2 комментария
  • Детали работы NodeJS?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Во многих источниках говорится о том, что NodeJS не подходит для сложных вычислений, ведь он однопоточный

    Либо это очень старые источники, либо их авторы мудаки. Многопоточность в ноде есть с 10 версии.
    Ответ написан
    Комментировать
  • Как правильно использовать for in в typescript?

    interface IMain {
    	user: string;
    	val1: number;
    	val2: number;
    	val3: number;
    }
    
    type IShort = Partial<Omit<IMain, 'user'>>;
    
    function sum(a: IMain, b: IShort) {
    	const keys = Object.keys(b) as (keyof IShort)[];
    	for (const key of keys) {
    		b[key] = a[key] - (b[key] ?? 0);
    	}
    	
    	return b;
    }
    Ответ написан
    Комментировать
  • Как написать десктопное приложение на javascript?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    4 комментария
  • Существуют ли компании, где нет перерывов в работе?

    Natebash
    @Natebash
    React, Vue, Angular, Navite JS, Python / Node JS
    Похоже на описание концлагеря) Сейчас большинство айтишных компаний практикуют удаленную работу, тем самым снижая финансовую нагрузку(условие наличия большого офиса, снеков, и прочего). У адекватной компании - вы закрываете таски - вы молодец, когда вы их закрываете - ваше дело. У нас условие - 4 часа пересечения общего времени с командой. К примеру я встаю в 5, в 6 уже на работе, в 2 заканчиваю работать. Далее "свободное время"

    Ищите компанию где не будет такого идиотизма)
    Ответ написан
    1 комментарий
  • Существуют ли компании, где нет перерывов в работе?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В нормальных компаниях не следят с секундомером за работой сотрудников. Если от вас ждут нажимания кнопок 40 часов в неделю, а не выдачу запланированного объёма продуктов/решений, то надо бежать.
    Ответ написан
    1 комментарий
  • Будет ли ИБП работать в случае нагрузки меньше той минимальной, что указано в его спецификации?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Тысячник для одного роутера - это из пушки по воробьям. Для роутера хватит и 300.
    А в идеале, если там будет только роутер, то брать не ИБП а ББП (блок бесперебойного питания) от сигнализации - они какраз рассчитаны на долгую жизнь от батареи, тогда как ИБП на "корректно завершить работу компа"

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

    1. Да, можно.
    2. Ту, которая точно стабильно работает с твоим ПО и которую ты умеешь администрировать.
    3. Зависит от твоего провайдера.
    Обычно это сводится к покупке статичного белого IP и проброс портов на твоём домашнем маршрутизаторе (инструкций достаточно)

    Но для надёжности лучше всё-таки воспользоваться услугами colocation, а не размещать сервер в квартире.
    Ответ написан
    Комментировать
  • Как исправить ошибку TypeScript?

    @wonderingpeanut
    Когда в джаваскрипте появился такой интересный синтаксис?))
    if (0 < something && something < 90) {
      doSomething();
    }


    upd. технически это будет работать, но совсем не так, как ты думаешь.
    Сначала выполнится выражение 0 < windDeg, результат этого выражения будет boolean. Потом булевое значение сравнивается с числом. Отсюда ошибка.
    Ответ написан
    1 комментарий
  • Делегаты, зачем?

    MSerhio
    @MSerhio
    Вхожу в IT
    Делегат позволяет ослабить связность кода, а рассматривать их стоит вместе с событиями.
    Я объясню на примере игростроя.
    Популярный в сети пример: во врага попала пуля. Должно случиться сразу много вещей - нужно снять здоровье врага, выяснить, не погиб ли он, проиграть анимацию, уничтожить пулю, начислить очки игроку и еще что-то.
    Если мы будем всё это вызывать напрямую, то быстро запутаемся и ошибемся. А когда будем переделывать, сломаем всё окончательно.
    Вот тут нас выручат делегаты и события. Мы определим событие, которое срабатывает (вызывает свой делегат) в момент попадания пули. И соответственно, определим делегат для этого события.
    Теперь каждый метод, которому это событие интересно, может подписаться на его делегат (внести себя в список вызываемых делегатом методов - их может быть больше одного).
    И теперь мы можем переделывать что угодно. Главное, не забывать подписываться и отписываться.
    Делегат, это как автолавка в деревне: приезжает и сигналит. Кому надо - выходит. При этом ни автолавке ни покупателям не интересно, что происходит у каждой из сторон в отдельности.
    Ответ написан
    Комментировать
  • Как отправлять fetch запросы рекурсионно (или, возможно, через цикл)?

    Судя по описанию, обычного цикла должно хватить

    // Массив для получаемых объектов
    const result = [];
    // Переменная для следующего URL (изначально содержит первый адрес)
    let previousURL = "http://site.com/";
    
    
    // Цикл
    for (let i = 0; i < 10; i++) {
      // Получение данных
      const response = await fetch(previousURL);
      const data = await response.json();
    
      // Добавление полученных данных в общий массив
      result.push(data);
    
      // Обновление переменной со следующим URL
      previousURL = data.previousURL;
    }
    
    // Демонстрация получивлегося массива
    console.log( result )
    Ответ написан
    1 комментарий
  • Замена MongoDB?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Отличный повод избавиться от этого нелепого недоразумения и начать использовать нормальную БД.
    Если речь идёт о базе данных, то выбор огромный: mysql, postgres, sqlite, sql-server, oracle
    Можно выбрать себе СУБД по вкусу, спланировать структуру БД вместо той оргии с гетерами, которая применяется в Монге и начать пользоваться.
    Если речь идет об in-memory key-value storage то выбор поменьше, о тоже есть - redis или подзабытый уже нынче мемкеш.
    Ответ написан
    Комментировать
  • Задачка на циклы в JavaScript?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const chars = [' ', '#'];
    const size = 8;
    str = '';
    for (let i = 0; i < size; i++) {
      for (let j = 0; j < size; j++) {
        str += chars[(i + j) % 2];
      }
      str += '\n';
    }
    console.log(str);
    Ответ написан
    7 комментариев
  • Стоит ли использовать Eslint вместе Prettier для typescript?

    Лично я не вижу смысла их совмещать.
    Гораздо проще настроить только eslint.
    Tslint вообще устарел
    Ответ написан
    9 комментариев
  • Как переписать небольшой скрипт на чистый js?

    @n1ksON
    мидл
    Ответ написан
    Комментировать