• Почему миллиардные компании используют электрон, а не создают нативные приложения?

    @Kirill-Gorelov
    С ума с IT
    Не знаю, на сколько прав буду или нет, но мне кажется там тоже сидят не дураки и деньги тоже умеют считать, даже с миллиардными доходами.
    Но основная причина, как я думаю, в скорости разработки ......
    У них же тоже есть дедлайны, планы, да и поддерживать проще один код, чем 2-3 версии его.

    И дополню еще тем, что многое зависит от самое задачи и ПО, что и электрон один хорошо справляется со всеми задачами.
    Ответ написан
    Комментировать
  • Где здесь ошибка?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Во второй строке ты говоришь class B extends A {} ты говоришь "В наследник А".
    В третьей строке class C<T extends B> {}ты говоришь "класс С параметризован типом В или его наследником".
    В четвертой строке class D extends C<A> {} ты говоришь "класс D - наследник С, параметризованного типом А".

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

    0xD34F
    @0xD34F Куратор тега JavaScript
    Какие есть способы создания массива:

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

    Что делать при попытке создать массив с длиной больше указанного интервала:

    • Кидать ошибку.
    • Создавать массив с длиной меньше указанной.

    Вот как-то так:

    function createRandomArr(length, min, max) {
      if (length > max - min + 1) {
        throw 'такого массива быть не может';
      }
    
      const values = new Set;
      for (; values.size < length; values.add(min + Math.random() * (max - min + 1) | 0)) ;
      return [...values];
    }

    const createRandomArr = (length, min, max) => Array
      .from({ length }, function() {
        return this.splice(Math.random() * this.length | 0, 1);
      }, Array.from({ length: max - min + 1 }, (n, i) => i + min))
      .flat();

    function createRandomArr(length, min, max) {
      const arr = Array.from({ length: max - min + 1 }, (n, i) => min + i);
    
      for (let i = arr.length; --i > 0;) {
        const j = Math.random() * (i + 1) | 0;
        [ arr[i], arr[j] ] = [ arr[j], arr[i] ];
      }
    
      return arr.slice(0, length);
    }
    Ответ написан
    Комментировать
  • Писать вирусы на фрилансе?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Чувак, ты наверное не понимаешь, что суд не оперирует понятиями буковок и функций. А вот понятием "умысел" он оперирует и очень даже.
    Ты был осведомлен, что ведешь противоправную деятельность. Но от заказа не отказался. И с этого момента ты - соучастник, и пойдешь не по УК 273.1, а по более тяжелой УК 273.2
    Ответ написан
    Комментировать
  • Нужен ли Linux для C# разработчиков?

    profesor08
    @profesor08
    возненавидел Linux

    А что плохого сделал тебе линукс? Если не нравится консоль, то на любой другой операционке придется работать с ней, придется привыкнуть и осознать, что это тупо проще, быстрее, работает везде +- одинаково.

    По словам коллег, если я собираюсь развиваться в вебе, то мне никуда не деться

    Чушь. Все необходимые инструменты для фронтенда - кроссплатформенные, либо вообще онлайн в браузере. Разрабатывай хоть на linux, хоть на windows, хоть на macOS, если приложить некоторые усилия и смириться с неудобствами - на любом планшете используя только онлайн инструменты (figma, codesandbox)
    Ответ написан
    3 комментария
  • Где Pycharm хранит плагины в системе?

    Комментировать
  • Как работают циклы с таймаутом?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Первое что нужно понять, таймер работает асинхронно, а значит будет выполнен после цикла.
    Второе - let имеет блочную область видимости (переменная видна в том блоке, где была объявлена, при этом первый операнд for считается тем же блоком, что и тело цикла)
    Третье - циклы создают новый скоуп на каждую итерацию (на каждой итерации будет свой let i, при условии что этот оператор внутри цикла)

    Ну и еще, в Ваших примерах 1000 относится не к таймауту, это просто бесполезная операция, а таймаут получит значение по умолчанию - 0, думаю это не совсем то, что Вы ожидаете.

    Еще один важный момент, функциональное выражение (а стрелочная функция - это тоже функциональное выражение) внутри цикла будет создавать по функции на каждой итерации цикла. Это очень плохо и по памяти и по производительности (такие функции еще и компилироваться и оптимизироваться будут раздельно). И если в случае с let внутри цикла функции хотя бы будут отличаться замыканием (каждая замкнет свою i), то в первом случае будет 5 абсолютно идентичных функций.
    Тут можно очень хорошо показать себя, если помимо объяснения принципов работы вспомнить, что setTimeout умеет передавать аргументы в свой колбэк:
    const f = i => {
      console.log(i);
    };
    for (let i = 0; i < 5; i++) {
      setTimeout(f, 1000, i);
    }
    Ответ написан
    Комментировать
  • Зачем нужен GitHub?

    Lynn
    @Lynn
    nginx, js, css
    Если тебе «просто нужно надежное хранилище кода и программ», то тебе нет нужды ходить в веб-интерфейс.
    Завёл аккаунт, прописал ssh-ключ и всё.
    git commit, git push, git pull вот и все твои команды.
    Ответ написан
    Комментировать
  • Как научиться самоорганизации?

    svob
    @svob
    Фрилансер, текстовик широкого профиля
    Список дел на бумажке.
    Но только честно составленный конкретно на этот день. Тогда у вас будет внутреннее ощущение, что как сделаете - так будете свободны.
    А если список не конкретный или условно бесконечный, то такой не годится.
    Ответ написан
    Комментировать
  • Как изменить Class.prototype в JS6?

    MvcBox
    @MvcBox
    Software Engineer [C/C++/JS(for Node.js)/etc]
    Потому, что:
    function Rabbit() {}
    console.log(Object.getOwnPropertyDescriptor(Rabbit, 'prototype'));  // { value: {}, writable: true, enumerable: false, configurable: false }

    class Rabbit {}
    console.log(Object.getOwnPropertyDescriptor(Rabbit, 'prototype')); // { value: {}, writable: false, enumerable: false, configurable: false }

    Найдите разницу :)

    А если бы использовали
    'use strict';
    то сразу бы увидели в чем проблема, так как при попытке выполнить
    Rabbit.prototype = {};
    получили бы ошибку:
    TypeError: Cannot assign to read only property 'prototype' of function 'class Rabbit {}'
    Ответ написан
    1 комментарий
  • Курс или полный гайдлайн по git?

    Griboks
    @Griboks
    Ответ написан
    Комментировать
  • Какой лёгкий редактор кода выбрать?

    Zoominger
    @Zoominger Куратор тега Windows
    System Integrator
    Ответ написан
    Комментировать
  • Как разбить массив на массивы?

    0xD34F
    @0xD34F Куратор тега JavaScript
    arr.reduce((acc, n, i) => (
      (!i || n === 1) && acc.push([]),
      acc[acc.length - 1].push(n),
      acc
    ), [])
    Ответ написан
    2 комментария
  • Нужно ли Python Backend разработчику знать JavaScript?

    @Golosov
    По моему скромному мнению, если хотите узнать как работает front end:
    1. Начните с базовых вещей, а не инструментов. Нужно понимать (хотя бы суть) как работают протоколы передачи данных, браузер и прочие чудеса. Начать можно с этого. Поверьте, время, которое вы потратите на изучение основ, окупится сторицей.
    2. Изучая какую-нибудь новую популярную штуку, обязательно задавайтесь вопросами: Какую проблему это решает? Каким образом?


    Можете также посмотреть дорожные карты, чтобы понять масштаб и составить свой маршрут развития.

    Успехов!
    Ответ написан
    1 комментарий
  • Что эта запись в консоли значит?

    profesor08
    @profesor08 Куратор тега JavaScript
    Не надо паниковать. В JavaScript все объекты передаются по ссылкам со всеми вытекающими.
    Это значит, что после вывод в консоль значение массива изменилось. И когда ты разворачиваешь, чтоб посмотреть что внутри, ты видишь актуальные значения на момент раскрытия.

    Просто выполни код в консоли, и раскрой потом.
    const arr = [false, false, false];
    console.log(arr);
    arr[2] = "test";
    Ответ написан
    Комментировать
  • Пишут ли в компаниях коммиты в git на русском?

    Aetae
    @Aetae
    Тлен
    Ну, юзается логика. Если проект будет работать только в рамках России без вариантов - и комменты и коммиты - на русском. Иначе - на английском.
    Ответ написан
    Комментировать
  • Пишут ли в компаниях коммиты в git на русском?

    BorLaze
    @BorLaze
    Java developer
    ИМХО, в этом случае лучше плохой английский, чем хороший русский.

    UPD: вот представь сам - смотришь ты гит соискателя, и там коммент "сдес я делаль пузырек сортировка". Плохо? ну, но фонтан, конечно, но гораздо лучше абсолютно грамотного комментария на монгольском "бзых дащщь бызынг клангмы".

    Вот точно так же твоему "потенциальному работодателю" из-за бугра будут смотреться твои комменты на русском :-)
    Ответ написан
    6 комментариев
  • Влияют ли строгие рамки режима рабочего дня на продуктивность у удаленщика?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    На компьютер установлен трекер, отслеживающий твою работа над проектом.

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

    Работа подразумевает ежедневное участие в проекте по 8 часов.

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

    DevMan
    @DevMan
    на планерке/митинге должны присутствовать все.
    а когда они работают - их личное дело. при условии, что не страдают коммуникации с другими участниками.
    Ответ написан
    9 комментариев
  • Способы блокировки программ на фрилансе?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Поэтапная предоплата
    Ответ написан
    Комментировать