Задать вопрос
  • Что такое распределенная система?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal.


    Мне кажется более чем понятное определение.

    Если простым языком, представьте себе что вы разделили ваше приложение на куски и раскидали эти куски по разным физическим машинам. Что бы что-то сделать каждый кусочек общается с другими отправляя им сообщения и получая ответы. Если на какую-то часть системы приходится большая нагрузка чем на остальные - можно продублировать этот кусочек на нескольких серверах и т.д. Так же в случае больших объемах данных удобно хранить данные по частям на разных серверах.

    Это один из основных подходов при построении реально больших проектов. Можеет так же почитать про микросервисы и другие схожие подходы.
    Ответ написан
    Комментировать
  • В чем моя ошибка с empty?

    @akeinhell
    Не забывай проверять файл на существование
    Смотри относительные и абсолютные пути к файлу
    $img = '/images/photo/photo.jpg';
    
    if ($img !== '' && file_exists($img)) 
    {
       echo '<img src="'.$img.'" width=400 height=400>'; 
    }
    Ответ написан
    1 комментарий
  • Алгоритм общения клиента с сервером, запросы к базе. Что из этого перехватит хакер?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    https решает многие проблемы.
    Ответ написан
    Комментировать
  • Какую книгу выбрать по javascript?

    smidl
    @smidl
    WordPress-разработчик
    Д.Флэнаган | JavaScript. Подробное руководство

    Выразительный JavaScript

    Посоветовал бы еще видео-курс Sorax

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

    petermzg
    @petermzg
    Самый лучший программист
    Процесс совершенствования сайта вечен. По мере роста нагрузки вы и фронтэнд переписывать будете.
    Заморочтесь лучше на удобстве и полезности сайта для пользователя.
    Ответ написан
    Комментировать
  • Почему Js не извлекает значение у инпута по id?

    DevMan
    @DevMan
    ваш код рабочий, https://jsfiddle.net/3njqp9Lo/
    возможно, js вызывается до создания input'a.
    Ответ написан
    Комментировать
  • Как передать результат в переменную?

    Stalker_RED
    @Stalker_RED
    Никак, нужно использовать callback или промисы.
    Это асинхронные запросы, console.log выполняется до того, как успеет сработать child_process.exec.
    Ответ написан
    1 комментарий
  • Какие есть различия между ' ' и " " в PHP?

    muhammad_97
    @muhammad_97
    PHP-разработчик
    Никогда не слышал о "весе" строки. Различаются они тем, что в строку с двойными кавычками можно вставлять переменные и управляющие символы (\n , \r, \t и т.д.):

    $name = 'Vasya';
    
    // выведет "My name is $name"
    echo 'My name is $name';
    
    // выведет "My name is Vasya"
    echo "My name is $name";


    Хотя лучше сделать через sprintf:

    echo sprintf('My name is %s', $name);

    + если я не ошибаюсь, строки в одинарных кавычках обрабатываются чуть быстрее чем в двойных.
    Ответ написан
    2 комментария
  • JS: Почему метод класса, вызванный через коллбэк, не имеет контекста?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    потому что в JS нет классов и их методов, есть объекты и функции. Передавая "метод" объекта в качестве колбэка вы делаете его просто функцией, и она теряет свой контекст.

    То есть this будет равен тому, в каком контексте мы вызываем функцию. Вызывая foo.bar() у нас контекст будет указывать на foo, но мы можем присвоить эту функцию любому объекту и таким образом сменить контекст.

    Читайте про контекст вызова в JS и обретете счастье.
    Ответ написан
    1 комментарий
  • Какой ЯП выбрать для фронтэнда?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Но многие говорят, что с приходом webassembly javascript уже не будет так востребован.


    Те кто это говорят считают javascript плохим языком программированием и верят что есть хорошие. Не слушайте их.

    Javascript будет не "менее востребован", а просто перестанет быть "единственным" вариантом. webassembly просто позволит делать вещи, которые ранее делать было очень тяжело. Писать же приложения в 99% случаев будут всеравно на JS.
    Ответ написан
    11 комментариев
  • Как оставить единственный активный div, не используя z-index и подобное полное перекрытие?

    savostin
    @savostin
    Еще один программист
    Скрыть все остальные
    Ответ написан
    Комментировать
  • Сравнение значений переменных?

    t-alexashka
    @t-alexashka
    Сразу пишу legacy код
    Неужели все это нужно для примера?

    Сделайте
    console.log(sran, ravno);
    и посмотрите может это очевидно. Либо укоротите пример, в таком очень долго разбираться.
    Ответ написан
    Комментировать
  • Почему после удаления элементов не изменяется длина массива?

    @teslor
    Ваш код не совсем корректен. Оператор delete не предназначен для работы с массивами, т.к. не обновляет длину. То же касается и присвоения arr[4] = 'four'. Такое присвоение используется только если 4-й элемент уже есть и его нужно изменить.
    Для удаления/добавления элементов нужно использовать только методы, специально предназначенные для массивов: push/pop, shift/unshift, splice. Только в этом случае длина будет правильной.
    Т.е. для определения длины вполне можно использовать свойство length (оно для этого и предназначено), но нужно использовать методы массива для добавления/удаления элементов.
    Например:
    var arr = ["test", "two", 3];
    console.log(arr.length); // 3
    arr.shift(0);
    console.log(arr.length); // 2
    arr.push('four');
    console.log(arr.length); // 3
    arr.splice(0, 3);
    console.log(arr.length); // 0
    Ответ написан
    Комментировать
  • Как увеличить определённую область изображения?

    @roman01la
    Отрисовать изображение целиком в canvas и вырезать ту его часть, которая вам нужна. Для всего этого у canvas есть методы.

    Еще проще: задать overflow: hidden на контейнер, внутрь положить изображение и задать ему координаты так, что бы в контейнере показалась только та его часть, которая вам нужна.
    Ответ написан
    Комментировать
  • Какова практическая ценность магистратуры в IT?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Профильное ВО в IT полезно в 2х случаях:
    1) Вы занимаетесь enterprise разработкой: крупные интеграторы, банки, нефтянка, итд. Они любят всяко-разные сертификаты.
    2) Вы задались целью эммигрировать (usa, европа, etc)

    Во всех остальных случаях всем глубоко плевать какое у Вас образование и есть ли оно вообще.
    Важны навыки и портфолио как их заочное подтверждение.
    Ответ написан
    8 комментариев
  • Ошибка в node.js, как решить?

    @kgorozhanov
    Front-End Developer
    в ошибке же написано из за чего она возникла "expiresIn должно быть количеством секунд..."
    Ответ написан
    Комментировать
  • Как использовать одну виртуальную машину для нескольких приложений?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Docker это то что мне нужно? А может я хочу невозможного?


    У Docker чуть отличается концепция, но оно даже лучше подходит.

    Основная идея - каждый сервис в своем контейнере. То есть у базы данных свой контейнер, у приложения - свой, у nginx - свой отдельный контейнер. В среднем одно простенькое приложение требует 3 контейнера (приложение, база данных и web-сервер в качестве прокси). Если у вас 10 проектов то это будет 30 контейнеров. Ну и да, не забываем про data-only контейнеры, они не несут дополнительного расхода ресурсов и нужны только для удобной организации сохранения данных. Если вы используете контейнер с базой данных - то это сразу +1 data-only контейнер. Приложение может аплоадить файлы - еще один контейнер-пустышка. Звучит страшно, да?

    Каждый контейнер основан на другом контейнере, например все ваши контейнеры могут базироваться на одном образе, например Debian или Ubuntu. А особенность архитектуры файловой системы контейнеров позволяет реюзать оные, что значит что у нас будет всего один базовый контейнер с убунтой на остальные 30. Ну и далее, база данных обычно у нас так же частенько одна и та же (например в моем случае это postgresql), так что 10 контейнеров для 10-ти приложений превращаются в один контейнер с базой данных и 10 контейнеров-пустышек для сохранения данных приложения.

    Ну и далее, все общие вещи реюзаются между контейнерами (то есть смотрим по базовому образу).

    В случае же с виртуалками у нас 10 виртуалок в которых крутится 10 операционных систем (в докере только окружение, но ядро используется на уровне хоста), 10 баз данных ну и тд. То есть докер существенно сокращает количество необходимых ресурсов и вообще прикольно.

    Docker НЕ работает на windows. Точнее microsoft планирует сделать поддержку оного (если еще не сделала), но только для win server-ов. Что не ок. Так что linux в виртулку поставить придется, но только одну на все проекты. Что же до возни с самбами и прочим - тут уж как хотите. В целом же производительности обычных шаред фолдеров должно хватать (так как мы всеравно мэпим данные по большому счету на файловую систему виртуалки).

    Так что можно просто скачать Docker Toolbox и работать. Для Mac OS есть еще штука под названием dinghy, которая добавляет прозрачную поддержку NFS и т.д. но для винды такого нет (только черзе vagrant). Ишус на эту тему висит в репозитории docker-machine и возможно в скором времени и это запилят.

    мне не нужны танцы с виртуалками, самбой, настройкой хостов и тп?

    Вообще-то это никогда не нужно, все уже придумано до нас. Есть такая штука как vagrant которая полностью решает вопрос оркестрации виртуальными машинами для изоляции окружения. Но оверхэда оно дает сильно больше.
    Ответ написан
    8 комментариев
  • Зачем дизайнер рисует сайт, если верстальщик всеравно описывает его на HTML?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Зачем архитектор чертит чертёж дома, если строитель всё равно его потом строит?
    Ответ написан
    1 комментарий
  • Как задать необязательные параметры в mysql?

    @Joysi75
    1. Что мешает перед запросом проверить наличие параметра через if (или еще как) и в зависимости от наличия построить необходимый запрос ?
    2. Если только через SQL-выражение без применения if и т.п. и поле f1 в таблице строковое можно в запросе select * from t1 where ... and f1 like '%param%'
    3. Если поле f1 в таблице числовое то можно сколхозить через select * from t1 where ... and f1>=ifnull(param,минимально возможное значение столбца)

    и т.п. с другими типами
    Но во избежание ненужной загрузки для СУБД лучше строить правильный запрос.
    Ответ написан
    Комментировать