• Как повесить Observable на DOM элемент в Angular 2?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Комментировать
  • Как реализовать очередь выполнения операций?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    www.yiiframework.com/extension/yii2-beanstalk - если не хотите тянуть с собой java для gearman или erlang для rabbitmq.

    Все операции ставим в очередь, обрабатываем в воркерах в фоне.
    Ответ написан
    2 комментария
  • Скорость работы сайта на php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    require_once - влияет ли на скорость работы сайт если этих подключений много?


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

    Не занимайтесь микрооптимизациями.
    Ответ написан
    Комментировать
  • Как точно подсчитать время создания программного продукта?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    это примерно то же самое что научиться абсолютно точно предсказывать погоду на месяцы вперед.

    Есть хорошая мантра:

    таски на 4 часа мы делаем за 4 часа, таски на 8 часов мы делаем за 12, таски на 16 часов мы делаем за 24, таски на 40 часов мы не делаем никогда.

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    храним все важные документы в облаке, а серсы у нас и так в GIT.
    Ответ написан
    Комментировать
  • Как организовать обновление php модулей?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    composer

    Как при этом вынести настройки под конкретный сайт?


    Просто вынесите настройки, они же в git не хранятся. Если планируете автодеплой налаживать - то все различия в ENV переменные и разруливать все на уровне CI-сервера (у меня например так разруливается, по джобе на сервер, что бы все секьюрные штуки спрятать и не хранить при этом в GIT-е)
    Ответ написан
    Комментировать
  • Что почитать по веб-серверам?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    официальная документация, википедия в отношении HTTP.
    Ответ написан
    Комментировать
  • Для чего метод bind с решении задачи?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    А именно как именно происходит потеря контекста?


    Достаточно вызвать функцию в другом контексте:

    var foo = {
        bar: function () {
            console.log(this);
        }
    };
    var bar = { bar: foo.bar };
    foo.bar(); // вызываем функцию в контексте foo.
    bar.bar(); // вызываем функцию но уже в контексте bar


    В вашем случае вам нужно явно передать контекст во вложенную анонимную функцию.
    Ответ написан
    Комментировать
  • Чем нарисовать ось времени в javascript?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    d3.js
    Ответ написан
    Комментировать
  • В каком месте правильно писать запросы в symfony 3?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В репозиториях.
    Ответ написан
    Комментировать
  • Разумно ли здесь применить redis?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    По мере выполнения со счёта юзера должны списываться деньги.


    Храните счета пользователей как лог транзакций:

    |  user_id | amount | 
    | 1        |  1000  |
    | 1        |  -150  |
    | 1        |  -240  |


    и тогда и на производительность это никак сказываться не будет (последовательная запись штука ооочень быстрая.

    и данные вы никогда не потеряете. А остаток на счету пользователя всегда можно вычислить как SUM(amount).

    Что до вашего вопроса - проще будет использовать rabbitmq, но для начала - у вас есть проблемы с производительностью или вы просто развлекаетесь?
    Ответ написан
    6 комментариев
  • Как работать с картой google на swift?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Комментировать
  • Разработка: что должно быть впереди фронтэнд или бекенд?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В идеале второй вариант, если это возможно.

    Скажем я на своих проектах пытаюсь делать так насколько это возможно. Перед началом разработки какой-то фичи разработчики просто договариваются между собой как будет организовано взаимодействие с сервером (по сути пишется описание API на каком api blueprint, сейчас будем переходить на raml).

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

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

    p.s. этот подход я форсирую еще и потому, что при таком варианте можно легко наладить кодогенерацию как для клиента так и для бэкэнда. Скажем валидация запросов, маршрутизация, мэппинги и т.д. - все можно сгенерировать. RAML в этом плане дает из всех форматов максимальную гибкость, и поэтому я и планирую на него переходить. В очень простых случаях можно сгенерировать код хоть всего бэкэнда, но и так в целом скорость разработки неслабо увеличивается.
    Ответ написан
    6 комментариев
  • Как подписать файл по ГОСТ 34.11-94 в Laravel?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Используйте openssl. Там все есть, правда предлагаю вам актуальную версию: https://rt.openssl.org/Ticket/Display.html?id=3311...
    Ответ написан
    Комментировать
  • Могут ли в PHP сокеты работать асинхронно?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Могут ли в PHP сокеты работать асинхронно?


    Да. Это называется non blocking sockets а не "асинхронно".

    но не понятно как дальше с этим работать.


    socket_select.
    Ответ написан
    1 комментарий
  • Найдена ли реальная альтернатива Parse?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Все знают, что parse.com скоро закроется.


    Да, и они выложили все в опенсурс. Можете развернуть себе свой parse.

    Firebase? Я правильно понимаю, что у него нет серверных скриптов?


    Можно через app engine.

    За остальное говорить не берусь.
    Ответ написан
    Комментировать
  • Как работает взаимосвязь Nginx, php-fpm и php.ini?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Используется для загрузки XMLHttpRequest.


    XmlHTTPRequest это часть API брауера, PHP ничего о нем не знает и не отличает от остальных HTTP запросов (заголовок который по дефолту ставится можно убрать). То есть уберите в своем представлении разницу между ajax и обычными запросами.

    Как это происходит вся эта взаимосвязь?


    nginx проксирует HTTP запрос на php-fpm. Вот и все. Он с ним больше ничего не делает и настройки ограничивающие что можно орабатывать у него свои.

    То есть мы грузим файл в 1 гиг, тело запроса буферизуется (по умолчанию, можно отключить директивой fastcgi_request_buffering но тогда свои ограничения, хотя думаю вам оно не особо важно) и потом прокидывается в пых, где тот смотрим что тело запроса слишком большое (больше сотни мегабайт) и грустит.
    Ответ написан
  • Стоит ли обновлять feature-branch в git, если фича реализуется очень долго?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    стоит ли периодически вливать их в feature-ветку, дабы упростить слияние в будущем


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

    Есть неплохое правило, что фичабрэнчи должны всегда фастфорвардиться в мастер.
    Ответ написан
    Комментировать
  • Как лучше всего настроить роутер или какие готовые решения можно использовать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я давно уже хочу опробовать MVC


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

    Запомните, смысл этих аббривиатур (MVC, MVVM, MVP, HMVC) не в самих буквах (компонентах которые они предлагают) а в отношениях между ними. Например в оригинальном MVC вьюшка это не шаблончики, а полноценный кусок кода который сам отвечает за себя. На бэкэнде же вьюшка это обычно пассивна, ее формируют контроллеры. Они же обрабатывают пользовательский ввод. Так что это уже явно не MVC. Ищим другие паттерны и они подойдут. Но отсутствие понимания зачем это все делать обычно приводит к непониманию и плохим решениям.

    Скажем то что вы подразумеваете под MVC на самом деле завется Model2 (насколько я понимаю то что вы хотите сделать) и это абсолютно разные вещи.

    единственный вопрос, который мешает это сделать - это написание самого роутера.


    Возьмите готовый.

    Я искал решение, и единственное что нашел это подключить модуль от Symfony.


    Плохо искали. Вот где нужно искать: packagist.org

    https://github.com/nikic/FastRoute
    Ответ написан
    5 комментариев
  • Имеет ли смысл начинать с Си?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Плюсы:

    Си это сила. У него пока нет конкурентов в системном программировании (разве что rust подкрадывается и D, но они чуть на другие вещи ориентированы).

    Минусы:

    Сегодня Си это специфика. Это либо системное программирование (разработка драйверов, низкоуровневых вещей, баз данных, интерпритаторов, компиляторов) либо микроконтроллеры и т.д. Так же есть определенные задачи для которых критически важна производительность, там и ассемблер иногда используют, но скоро перейдут на FPGA.

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

    Если же вас интересуют более мэйнстрим вещи вроде web или мобильная разработка - проще сразу брать какой-нибудь современный динамический язык (python, javascript) и радоваться жизни.
    Ответ написан
    12 комментариев