• Как сделать множество хостов в одном docker контейнере?

    akelsey
    @akelsey
    Не нужно делать как обычно в убунту, в убунту для вм или барметал хороший менеджемент конф файлов не спорю, но в докере свои нюансы, плюс зависит от образа.
    Но обычно используется образ nginx напрямую по имени, и там конфигурационные файлы лежат /etc/nginx/conf.d/ - там лежит файл default.conf в котором и собраны все секции server:
    server {
        listen       80;
        server_name  first.internal.local;
    ...
    server {
        listen       80;
        server_name  second.internal.local;
    ...

    либо разделить на два файла:
    first.internal.local.conf & second.internal.local.conf

    Сами выбираете как вам будет удобнее.
    Ответ написан
    2 комментария
  • Docker: принято ли ставить на продакшене?

    @vitaly_il1
    DevOps Consulting
    Согласен с Saboteur - все зависит.
    При изучении докера
    - я советую исходить не из инструментов, а из требования проекта.
    Важно, чтобы программа бежала быстро, надежно, с воспроизводимой конфигурацией и деплоем. Этого можно добиться на "железе" (bare metal), виртуалках, контейнерах и проч. (serverless, например).
    Ответ написан
    Комментировать
  • Как сделать кэширование запросов в Mysql 8?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Redis - после исполнения запроса записываем в Redis в виде:
    ключ - хэш запроса
    значение - сеарилизованный ответ бызы данных
    время жизни - время валидности данных

    При каждом новом запросе сначала проверяем Redisку. Нашли - возвращаем из кэша, нет - лезем в базу и кэшируем результат
    Ответ написан
    3 комментария
  • Какое окружение вы используете для разработки php?

    DevMan
    @DevMan
    phpstorm для основной разработки, любой редактор под руками (vsc, atom, sublime, nano, vim...) для посмотреть/быстрых маленьких правок.

    сервер: все (за редким исключением) ставлю из пакетов, затем допиливаю ручками.

    phpmyadmin/аналоги–для–других–баз последний раз видел году в 2010. с тех пор использую либо консоль, либо гуевые тулзы (для удаленного доступа через ssh/http–тунель).

    докеры, вагранты, "идентичное проду окружение", "сборки – гавно" – это все типичный булшит и базвордс.
    иногда перечисленное реально нужно и полезно (сам пользую где надо), но далеко не всегда/везде и не всем.

    разрабатываете в одиночку – вообще пофигу на чем, лишь бы вас устраивало и было вам удобно.
    разрабатываете в команде – пока ваш код запускается у других участников (что не проблема, если понимать что делаешь/особенности языка под разные платформы/следование принятым соглашениям), всем плевать на чем вы его у себя крутите. хоть стоя в лыжах в гамаке и на утюге.
    Ответ написан
    12 комментариев
  • Как понять на что расходуется память в linux?

    @unseriously
    не благодари:
    ps axo rss,comm,pid | awk '{ proc_list[$2] += $1; } END { for (proc in proc_list) { printf("%d\t%s\n", proc_list[proc],proc); }}' | sort -n | tail -n 10 | sort -rn | awk '{$1/=1024;printf "%.0fMB\t",$1}{print $2}'
    Ответ написан
    1 комментарий
  • Как найти проекты или репозитории, где показана правильная разработка?

    printf
    @printf
    Ем детей.
    Правильная означает близка к реальной разработке на каком-нибудь из перечисленных фреймворках.

    1. «Реальная» разработка часто полный антоним «правильной». Причин тому много: фантастические дедлайны, талантливые сотрудники, проверенный временем легаси код, эффективные менеджеры. Худший код, с которым я сталкивался, был в самых дорогих b2b энтерпрайз решениях — реальнее некуда.

    2. Перечисленные фреймворки к вопросу не приложились, но т.к. в тегах жаваскрипт, будем считать, что реакт.

    Из последнего, на что натыкался, мне понравился Doctocat — это сделанный в Гитхабе шаблон для Gatsby. На мой взгляд, это реально классный пример интеграции реакт-компонент. Используется в продакшене, так что реальная разработка, все дела.

    На что обратить внимание:

    – Собственно компоненты, их композиция.
    – Как задается тема (цвета, шрифты), и как это попадает в стили
    – Интеграция с third parties: подсветка кода, поиск
    – Кастомизация: через shadowing и всякий ad-hoc
    – Работа с MDX, реэкспорт layouts и т.п.

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

    Ну и да, не бывает идеальной архитектуры, везде свои плюсы и минусы.

    С радостью отвечу на вопросы, тут же есть ЛС, правда?

    Удачи!
    Ответ написан
    Комментировать
  • Как защитить JS код?

    @Froggyweb
    сохранить в файл
    shame.js
    Ответ написан
    Комментировать
  • Как правило организовать рабочее окружение web разработчика?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Самый простой вариант для PHP-WEB-DEV под винду: https://www.easyphp.org/
    Ответ написан
    Комментировать
  • Как выводить заглушку на сайте при отсутствии интернет соединения?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Ребята, это не пинг и не NavigatorOnLine, так делать нельзя, ибо пользователь может читать статью, а вы ему при потере интернета все обломаете. Такая плашка работает на сайтах, чей контент грузится по ajax, без перезагрузки страницы. Плашка должна показываться при неудачном ajax запросе получения страницы, и в идеальном случае, предлагать посмотреть оффлайн страницы (предварительно загруженные в хранилище). Если же сайт не ajax, можно при помощи того же NavigatorOnLine делать проверку, что если сайт в оффлайне, превентить переходы по ссылкам, и показывать эту плашку только в случае клика на ссылку.
    Ответ написан
    Комментировать
  • Как правильно фильтровать и мапить данные при реализации API на Symfony?

    BoShurik
    @BoShurik Куратор тега Symfony
    Symfony developer
    1. symfony/validator
    $violations = $this->get('validator')->validate($dto);


    2. symfony/serializer
    $dto = $this->get('serializer')->deserialize(
        $request->getContent(),
        DTO::class
    );


    Все это можно красиво обернуть в Action Argument Resolving, т.о. код будет выглядеть что-то вроде
    public function editAction(DTO $dto)
    {
    
    }

    где в $dto уже будет валидный объект
    Ответ написан
    9 комментариев