Задать вопрос
  • Стоит ли изучать паттерны проектирования, если ты всю жизнь будешь писать на фреймворках?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Фреймворки это просто каркас. Чтоб все это сооружение имело смысл, в нем должна быть бизнес-логика. И вот там-то паттерны как раз нужнее всего.
    Ответ написан
    2 комментария
  • Стоит ли изучать паттерны проектирования, если ты всю жизнь будешь писать на фреймворках?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Стоит ли изучать паттерны проектирования, если ты всю жизнь будешь писать на фреймворках?

    Стоит ли пить вино, если всю жизнь будешь есть сыр?

    Изучать стоит, что бы понимать, зачем в том, или ином фреймворке использован подход А, а не подход Б. Или почему, например, laravel - сборник антипрактик.
    Ответ написан
    Комментировать
  • Как выполнить обмен между двумя высоконагружеными сервисами, если их количестов соеденений больше 65556?

    @lega
    с помощью протокола http
    Нет смысла в таком кол-ве портов, переходите на keep-alive (напр zmq), и 1-10 портов хватит чтобы загрузить на 100% железо/сеть
    Ответ написан
    Комментировать
  • Как узнать какие есть git репозитории на устройстве?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Никак.
    репозитории не устанавливаются в какой-то спец список, так что только поиск.
    Но для поиска не нужно ставить какойто everything, просто встроенный поиск подойдет не хуже
    Ответ написан
    2 комментария
  • Чем отличаеться promise от обычных коллбэков?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Не то же самое

    function ajax() {
      return fetch(target, fetchOptions)
        .then((response) => {
          if (!target) throw new Error('Invalid url');
          if (response.ok) return response.json();
          throw new Error(`${response.status} ${response.statusText}`);
        })
        .then((json) => {
            if (json['statusOk']) return json;
            throw new Error(json['message'] || 'Server response was not ok');
        });
    }
    
    ajax(action, { body: formData })
      .then((json) => {
        console.log('RESPONSE', json);
      })
      .catch((error) => {
        console.error(error);
      });


    Мы можем писать сколько угодно зенов, в каждом что-то делать с данными.
    Если в любом месте вылетит ошибка, она будет нормально обработана в кэтче.
    Код при этом линейный, без дикой вложенности.
    С коллбэками вам нужно на каждом этапе отслеживать ошибки и возвращать их. Легко потеряться, что откуда всплыло или где пропало.
    Альтернатива обработки ошибок — трай/кэтч. Но это не работает на асинхронном коде.
    function myFunc(cb){
      var err = true;
      // имитируем асинхронную операцию
      setTimeout(function(){
        cb(err);
      }, 10);
    }
    
    try {
      myFunc(function(err){
        if (err) throw new Error('Oops');
      });
      alert('Всё как бы хорошо!');
    } catch(e) {
      alert(e.message);
    }

    Этот код выведет сообщение 'Всё как бы хорошо!', хотя всё плохо, была ошибка. https://jsfiddle.net/r3zfa4ee/

    С промисами иначе:
    function myFunc(){
      let promise = new Promise((resolve, reject) => {
        let err = true;
      
        // имитируем асинхронную операцию
        setTimeout(() => {
          if (err) {
            reject('Ooops!');
          } else {
            resolve(123);
          }
        }, 10);
      });
      
      return promise;
    }
    
    myFunc()
      .then(data => {
        alert('Всё точно хорошо!');
      })
      .catch(e => {
        alert(e);
      });

    Здесь уже ошибка будет обработана как надо и мы увидим сообщение 'Ooops!' https://jsfiddle.net/43yh8jad/

    Мы можем выполнить промисы последовательно. Мы можем выполнить их параллельно. Мы можем запустить их на параллельное выполнение, но дождаться только первого отработавшего (так называемая promise race). Разумеется всё это можно и без промисов написать, но какая будет разница в объеме кода и в сложности его понимания?

    А еще есть async/await...
    Ответ написан
    Комментировать
  • Как правильно называется вакансия?

    @protven
    Он на взлете (опять) зарубежом, используется как правило аналитиками (data scientist). Взлет связан в основном с хайпом вокруг анализа данных, машинного обучения и бигдаты. R очень хорош для быстрого прототипирования на небольшом наборе данных или уже для "окончательного" анализа и визуализации, опять же на небольшом или среднем наборе данных, которые прошли предварительную обработку и очистку. Много библиотек связанных с матстатистикой, машинным обучением, анализом данных, визуализацией. Оракл обещал вставить возможность писать хранимки на R в свою базу данных, но я не следил сделали ли.
    Я проходил в свое время курсы на Coursera по анализу данных, мне R как сам язык понравился средне. Сейчас идет конкуренция между R и питоном с библиотеками типа numpy, pandas, sklearn и тд за звание лучшего инструмента для анализа данных. Плюс есть вендорские инструменты, типа SPSS, которые предлагают ту же возможность.
    Что касаемо вакансий в вашем регионе, то они есть, но их мало. Вот пример https://hh.ru/vacancy/20496633?query=%D0%B0%D0%BD%...
    Я бы не стал расчитывать что в России вообще, а тем более за пределами Москвы вы сможете легко найти работу аналитиком данных, не имея реального опыта и успехов в этой области. Но, повторюсь, за рубежом профессия Аналитка Данных сейчас очень популярна и язык R часто считается одним из необходимых инструментов, которым он должен владеть (см. ремарку про питон).
    Ответ написан
    2 комментария
  • Как побороть страх?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Ну смотри, у тебя есть два варианта: продолжать бояться и остаться там, где ты есть, или попробовать и с большой вероятностью добиться того, чего хочешь. Ни один вариант не гарантирует успех, но первый гарантирует провал. Да и вообще, чего бояться то? Что тебе укажут на то, что ты не знаешь? Так это же наоборот хорошо, можно доучить и попробовать ещё раз!
    Ответ написан
    Комментировать
  • Как побороть страх?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    1. Беря на работу новичка, работодатель никогда не ждет от него умения справиться с первой задачей полностью самостоятельно. Есть испытательный срок, никто не банит вас от гугла, никто не заставляет работать в одиночку над проектом. На техническом интервью вас спросят достаточно, чтобы понять хватит ли у вас технических знаний чтобы работать, или чтобы разобраться.

    2. Ваш страх - гораздо опаснее, чем недостаток квалификации. Поскольку если вы боитесь показать недостаток знаний, это может затем проявиться, что вы будете бояться показать свою работу, будете бояться сказать что не поспеваете в срок, что в конечном счете может вылиться в фейле дедлайнов. А бояться не нужно. Страх обычно возникает от неизвестности. Так не бойтесь эту неизвестность уничтожать - прямо спрашивайте - кто будет куратором, к кому обращаться, если вы чувствуете, что не понимаете задачу, или если не успеваете в срок, и обращайтесь.
    Это же не институт, где вас хотят завалить. Это работа, где кроме вас вся команда работает на результат, и заказчику не важно кто именно выполнит задачу - вы сами, или вы с помощью. Вот вообще невыполненная задача - важно на кого свесить грехи.

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

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

    Все от бизнеса зависит, от продукта. В софтверных компаниях, где делают именно продукт, полагаю, вклад выше. Но опять же, в условном гугле несколько десятков тысяч программистов. Из которых добрая половина латает дыры и в принципе занимается monkey job. А, например, 20% спецов работают над продуктами, которые приносят большую часть прибыли.
    Ответ написан
    Комментировать
  • Как получить список IP, с которых происходят подключения к базе?

    @feanor7
    Системный администратор
    1. список можно получить в реальном времени через netstat
    2. можно включить лог по порту в iptables
    Ответ написан
    1 комментарий
  • Как лучше организовать 2 сайта на одном хостинге?

    tema_sun
    @tema_sun
    Это не так. На любом shared хостинге будет не одна сотня сайтов с одинаковым ip.
    Ответ написан
    Комментировать
  • Как лучше организовать 2 сайта на одном хостинге?

    saboteur_kiev
    @saboteur_kiev Куратор тега Сетевое администрирование
    software engineer
    Где слышал? Приведи источник, а то "слышал".
    Размещай сколько угодно.
    Ответ написан
    Комментировать
  • Мёртв ли QML? Стоит ли забыть раз и навсегда о кроссплатформенных гибридных приложениях на Qt?

    Nipheris
    @Nipheris Куратор тега C++
    Моё мнение таково:
    1) популярность QML на "том же Upwork" зависит от популярности C++ на "том же Upwork";
    2) C++ - язык крупномасштабной командной разработки, либо же разработки узкоспециализированной;
    3) заказы на крупномасштабную командную разрабоку всегда будут составлять лишь небольшую часть заказов на Upwork ввиду природы этого ресурса (т.к. на этом ресурсе не только крупные заказы а ЛЮБЫЕ заказы);
    4) вывод: Upwork - плохой критерий оценки пригодности QML для продакшена.

    Что касается React Native - это инструмент для задействования frontend-рабочей силы в сфере, где специалист QML/C++ будет более дорогим. Это разумный выбор для приложений и компаний, где ещё нет C++ разработчиков но есть JS разработчики, и где ещё нет C++ кодобазы, но есть JS, либо ещё нет никакой вообще.

    Примерно с таким же успехом я могу заявить, что Electron - лучший инструмент для продакшен-десктопа. Ну понятно наверное о чём я говорю.
    Ответ написан
    1 комментарий
  • Social NetWork | Как реализовать роутинг PHP?

    @D3lphi
    Чем маршрутизация для социальной сети принципиально отличается от маршрутизации интернет-магазина, например?

    Не нужно ничего реализовывать. Все уже сделали за вас. В интернете полно готовых роутеров. Вот, как вариант, "симфонический роутер".
    Ответ написан
    Комментировать
  • Потоковый JSON парсер, какой использовать?

    @D3lphi
    Стесняюсь спросить, json_decode() вас чем не устраивает?
    У меня на ПК обработка json-файла размером в 130 мб занимает чуть больше секунды.
    Ответ написан
    Комментировать
  • Известно, что 70% data scientists владеют Python. Василий владеет Python. С какой вероятностью он data scientist?

    longclaps
    @longclaps
    Известно, что 70% data scientists владеют ногами (у остальных, возможно, плавники или щупальцы). Василий владеет ногами. С какой вероятностью он data scientist?
    Ответ написан
    Комментировать
  • Почему скрипт время от времени отключается?

    qlkvg
    @qlkvg
    python backend developer
    Лига гадалок на кофейной куще предлагает:
    1) Прикрутить логирование
    2) Попробовать крутить скрипт где-то еще
    Ответ написан
    5 комментариев
  • Как закрыть PDO соединение mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Немедленно выкинуть на помойку этот ад кромешный, извращающий все принципы программирования. Использовать оригинальный ПДО. Прочитать Error reporting basics.
    Сделать обработку ошибок общую для всего РНР.

    Заодно пропадет и проблема с закрытием соединения.
    Ответ написан
    Комментировать
  • Может ли одноядерный процессор выполнять несколько команд одновременно?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1) Может ли одноядерный процессор выполнять несколько команд одновременно
    Нет, одно ядро может выполнять только одну команту за такт.

    2), иметь нессколько потоков? если да, то каким образом может это происходить?
    Да, например в такой технологии как hyper-threading. Реализовано тем, что в процессоре есть два набора регистров для двух потоков, ОС видит процессор с двумя логическими ядрами.
    Если один поток что-то ожидает, то процессор может переключиться и выполнить команду другого потока.
    Понятно, что это не так быстро, как реальные два ядра - просто процессор просто не будет простаивать, если один поток чего-то ожидает, и не будет затрачивать время для переключения с одного потока на другой, так как необходимые для работы данные - во втором наборе регистров.
    Ответ написан
    6 комментариев
  • Как набраться опыта?

    longclaps
    @longclaps
    Да, непросто научиться ездить на велосипеде, штудируя теорию. Даже гугл не помогает...
    Ответ написан
    2 комментария