• Как понять статистику клонирования репозиториев?

    @sergiodev
    Может быть у вас CI настроен, и проект клонируется оттуда?

    Другая теория - всякие сторонние сайты, индексирующие код на GitHub, например какой-ниудь gitmemory.com
    Ответ написан
    2 комментария
  • Nginx + php-fpm: где накапливается очередь для процессов и можно ли мониторить эту очередь?

    karabanov
    @karabanov
    Системный администратор
    Есть у Nginx нативный мониторинг NGINX Monitoring, в частности видно количество активных и ожидающих соединений.
    Ответ написан
    Комментировать
  • Терминология: почему контейнеры называют микросервисами?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Нет, контейнер может содержать и монолит и группу сервисов, но это «не принято в приличном обществе».

    Задача контейнеризации - повторяемость и изоляция среды исполнения

    Задача микросервисов - изоляция доступа по контракту и независимый цикл разработки/деплоймента
    Ответ написан
    Комментировать
  • Как можно ускорить работу Exception?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    на расходы конкретно на исключения для 15 000 вызовов (на каждую строку по 1 исключению) будут около 0.01 секунды (сотая секунды крч) для моего локального компа (много, но и данных много)
    Пруф

    618e769ee759d433078044.png


    $error = $this->handle($json);
    if ($error === '') {
    // логируем что все ок
    } else {
    // логируем ошибку
    }

    Тут заменено не только это, а заменено что-то внутри в handle(), тк не летит исключение

    возможно в описании задачи вы не указали, что валидируете возможно через что-то симфовое, не отключив finger cross, который собирает весь стек-трейс или еще что-то... кажется, не хватает контекста для понимания проблемы

    в 15 тыс новых объектов проблемы может не быть. Такие задержки по времени выглядят как проблема на уровне логирования исключений, тк I/O операции над файлом долгие, а сбор трейса исключений и его запись — долгие потенциально.
    Уйдя от исключений вы возможно ушли и от логирования исключений.
    Ответ написан
  • Что такого хорошего в иммутабельности?

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

    Вот тупой пример:
    let today = now().date
    let tomorrow = today.addDays(1)
    assert(today != tomorrow)

    И вот если DateTime мутабельный, то мы можем словить ошибку в этой ситуации.
    Иммутабельность же позволяет на корню этого избежать.

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

    А отстутсвие сайд-эффектов позволяет делать вычисления ленивыми, и тоже даёт возможность безопасно распараллеливать, тк нет привязки к порядку операций.
    Ответ написан
    Комментировать
  • "Умение профилировать и отлаживать свой код без использования функции dd/var_dump" - это как?

    karabanov
    @karabanov
    Системный администратор
    Это о xdebug
    Ответ написан
    Комментировать
  • Увеличивали ли вы продажи Push уведомлениями?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Push-уведомления нужны для оперативной доставки пользователю важных для него сообщений. Реклама к таковым определенно не относится, поэтому такое использование вызовет только негатив.
    Конкретно мой сценарий - я вообще превентивно блокирую все пуши от любых приложений, кроме банков и мессенджеров, причем банки тоже подумываю заблокировать, а то один зеленый немного замучал рекламой своей экосистемы.
    Если же приложение спамит рекламой в пушах и оно не то чтобы жизненно необходимо, то, как верно отметили в комментарии, путь такому приложению сразу в корзину.
    Ответ написан
    1 комментарий
  • Как правильно сархитектурить graphQL в микросервисах?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Не надо так делать. Graphql это только gateway. Использовать его как интерфейс к базе данных, даже через бизнес-логику это такое себе решение. Хотя можно, конечно, кто же спорит. Федерации это удобно, но на масштабе проще застрелиться, чем заниматься этим. Сам aplollo ничего не сделает за вас - это фреймворк, не больше) ну и большое комьюнити с готовыми модулями
    Ответ написан
    4 комментария
  • Docker: принято ли ставить на продакшене?

    1. принято. Если кто-то станет шикать на вас за это — это их проблемы, а у нас свободные нравы!
    2. правильно.

    С монтированием – по-разному. Как удобнее. Варианты:
    • в проекте папка /docker под ней в подпапке /docker/nginx – конфиги nginx, которые биндятся в контейнер по одному, или всей подпапкой. Удобно, если захочется по-живому редактить конфиги;
    • в контейнер при его билде, инструкциями в его Dockerfile, копируются файлы из папки;
    • прилетает уже готовый-собранный образ, из которого поднимается рабочий контейнер, не запариваясь расположением конфигов и какими-то настройками.

    Логи направляются в Stdout контейнера и хранятся Docker'ом. Посмотреть хвост: docker logs --tail 50 имя_контейнера
    Ответ написан
    Комментировать
  • Возможно ли связать нынешние знания с вхождением в IT сферу?

    @calculator212
    Lampapuc, на hh зайдите и промониторьте вакансии. Но если вы за 18 часов в неделю зарабатываете от 40 до 100к будучи студентом, то в разработке вы вряд ли сможете заработать не на много больше, т.к. у многих 40к зп это должность джуна на фултайм. около 170к медиана по Москве (т.е. крепкий мидл мб сеньор/лид в обычной компании). Так что если я правильно понял, то когда вы устроитесь на фултайм, то уже будете зарабатывать как хороший мидл.
    Хочу начать изучать C# и автоматизировать процессы.

    Ну тут есть особенность в том, что у c# есть хорошие средства для автоматизации работы с десктопом, но реальность такова, что вы либо бэкенд будете разрабатывать, либо писать игры на юнити, если хотите быть именно проф. разработчиком.

    Хочу начать изучать C# и автоматизировать процессы.
    Вы можете начать изучать и скорее всего для вас это будет большим плюсом(ряд вещей проще делать через программирование), если revit это популярная программа и вы уверены, что будете долго с ней работать, то это будет преимуществом перед другими.
    Но если хотите перекатиться в IT, то вам проще будет перекатиться на менеджерские должности. Т.к. для разрабов больше решает насколько хорошо ты умеешь прогать, а разобраться в предметной области обычно быстрее чем научиться программировать.
    P.S. работать в программе и разрабатывать это слишком разные вещи, многие прогеры часто вообще толком не знают что делает программа, а просто фиксят баги например(и в целом это +/- нормально).
    Ответ написан
    3 комментария
  • Git и два вопроса о работе?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых задания запрещены правилами. Не по тому что жалко ответить, а такова политика ресурса, дать подсказку и показать путь решения, чтобы человек сделал сам и разобрался как работает, ну и ответ был полезен не только автору вопроса, а давал способ решения похожих задач.

    Во вторых вам нужен preg_replace(), а не preg_match_all(). Вот тут можно попробовать подобрать паттерн для вашего выражения.

    И в третьих - Ирохи Исики, так как в России и русскоязычных сообществах используется транскрипция Поливанова.
    Ответ написан
    1 комментарий
  • Docker и php-fpm: почему рекомендуют не пробрасывать ip?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Самое главное не высунуть php-fpm порт наружу в интернет что бы никто не запустит на нем какой-нибудь зловред.

    Если же порт торчит из докера и прикрыт с наружи файр-волом то занчит вы знаете что делаете и принимаете на себя управление рисками you know exactly what you are doing (and are willing to accept the extreme risk)

    Ели же у Вас из докера в интернет торчит неважно кто рнр, база данных или еще какой-нибудь сервис - повертье желающих его взломать достаточно
    Ответ написан
    Комментировать
  • PHP обрезает строку, хотя strlen выдаёт правильную длину, как это исправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.php.net/manual/ru/function.strlen.php
    Замечание:
    Функция strlen() возвратит количество байт, а не число символов в строке.
    ...
    mb_strlen() - Получает длину строки
    Ответ написан
    Комментировать
  • 301 редирект как сократить нагрузку?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Ложится он явно не из-за нгинкса, поэтому уберите соответствующий тэг (как и серверное оборудование, кстати).

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

    web_Developer_Victor
    @web_Developer_Victor
    Что такое google?
    Делайте как у других сервисов. Например: если сегодня 03.11.2021 21:33, подписка на 1 месяц будет к 03.12.2021 21:33, на 3 месяца — 03.02.2022, на пол года (6 месяцев) — 03.05.2022 и т.д. Я считаю это за стандарт и, честно говоря, даже не знаю сервисов, которые работают по-другому.
    Ответ написан
    3 комментария
  • Конфигурация проекта: где и как лучше хранить?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Использовать .env - нормальный вариант
    В репозитории как-правило ложится .env.example из которого каждый разработчик может сделать себе .env и настроить переменные окружения под свою среду разработки
    И дальше в PHP конфигах используете тот же getenv()
    Естественно часть переменных для конфигурации можно не выносить в .env если это какие-то константы, и оставить их просто в PHP

    По поводу деплоя prod/dev то как-раз переменные окружения можно задать извне, если используется ci/cd и тот же docker.

    Касательно кастинга типов: bool, null, empty string то легко можно написать свой хэлпер или подсмотреть у других
    https://github.com/laravel/framework/blob/8.x/src/...
    Ответ написан
    Комментировать
  • Как заставить Laravel Octane (Swoole) кэшировать скрипты и стили?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    https://laravel.com/docs/8.x/octane#serving-your-a...
    In production environments, you should serve your Octane application behind a traditional web server such as a Nginx or Apache. Doing so will allow the web server to serve your static assets such as images and stylesheets, as well as manage your SSL certificate termination.

    Ответ написан
    1 комментарий
  • На сколько хорошо нужно знать разговорный английский для работы на удаленную компанию?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Именно разговорный английский нужен не так часто, сейчас большая часть общения в мессенджерах, плюс в реальной жизни в английской речи очень лояльно относятся к ошибкам, главное, чтобы понять друг друга могли.
    Из личного опыта - тяжело общаться с англичанами и очень тяжело общаться с индусами, европейцы обычно говорят очень понятно. С индусами, к слову, за три разные попытки общения так и не смог поговорить, у нас совсем разный английский)
    Ответ написан
    Комментировать
  • Есть ли такая книга-учебник по PHP, в которой описан стиль программирования близкий к эталону?

    При этом, ревьювер зачастую ссылается на какие-то неведомые мне стандарты и правила, которые, дескать, "и так все знают" :-)

    Это плохое ревью, и на какие-либо стандарты и нормы надо ссылаться.

    - А существует ли где-то книга-учебник с такими вот правилами, следуя которым можно писать такой код, к которому уж точно никто не придерется?

    Нет, тк не существует эталона.

    Есть общие правила, про архитектуру, и ООП: чистая архитектура, порты и адаптеры, MVC, CQRS, SOLID, GRASP
    Есть общие правила про оформление кода: чистый код, совершенный код (они немного противоречат друг другу), KISS, DRY, YAGNI.

    А чтобы было меньше придирок на ревью:
    1. Внедри кодстайл, и контролируй его при помощи всяких автоматических инструментов
    2. Опиши архитектуру в каких-нибудь внутренних документах в проекте (можно прямо в репу запихать), и при реализации фич опирайся на эти документы.
    3. Давай нормальные имена переменным, и избегай всяких code smell-ов, и антипаттернов
    4. Пиши тесты
    Ответ написан