Задать вопрос
  • Почему node.js runtime есть столько памяти?

    @KandiDev
    Непонятно в какой системе запускается процесс, на разных ОС по разному надо анализировать потребление памяти. Но факт в том, что NodeJS любит память так же как любит её Chrome. Если приложение падает при максимальном потреблением памяти машины, значит есть утечки памяти и их надо искать и удалять. Если приложение продолжает работать и никаких проблем нет (оно не падает) и нет линейного графика потребления памяти на сервере (в виде пилы, где снижение памяти - это падение приложения), значит всё хорошо, оно работает стабильно и проблем нет, просто чем больше памяти потребляет NodeJS, тем ей проще выполнять работу.

    Попробуйте использовать NodeJS версии LTS для вашей OS.
    Вроде бы в NodeJS есть какой-то процент, по которому она запрашивает память у системы - это можно погуглить. Ограничить размер кучи (head) можно с помощью флагов:
    node --max-old-space-size=2048 app.js
    и
    node --max-semi-space-size=2048 app.js
    по этим флагам читайте документацию и изучайте вопрос глубже
    Ответ написан
    Комментировать
  • Профориентация и выбор дальнейших путей развития?

    @KandiDev
    Всё же брокеры сообщений (Kafka, RabbitMQ) это больше про разработку, а не DevOps. Да, сейчас многие двигаются в микросервисы, имеют уже несколько или переделывают свои монолиты, поэтому и спрашивают про них.
    Вы должны понять, что вы слишком много всего попробовали за 3-4 года в PHP, то есть вы не знаете глубоко что-то одно, а знаете только поверхностно всего по не многу. Так что без глубоких знаний framework'ов (Symfony/Laravel/Yii2), с расплывчатым опытом работы на разных CMS и framework'ах, без знания брокеров, докера и паттернов проектирования и паттернов для микросервисов скорее всего вы просто Джун, даже не Джун++. Таковы реалии рынка в данный момент, в 17 году надо было знать на мидла, что такое PHP и url адрес документации php, а сейчас требований стало больше в несколько раз для всех направлений, вкатунов куча набежала. Джуны уже никому не нужны, либо работа за 30-50к и то если заметят твой отклик из 1000. В Go залететь можно только с хорошим опытом (хорошим мидлом) и там только микросервисы, то есть там Kafka надо знать. Если ты не писал на Java несколько средних проектов, то ты её не знаешь, потому что там много всего надо знать и много разных подводных камней в языке надо понимать и помнить, иначе можно накосячить в проекте. В системах на Java тоже используют брокеры, паттерны и прочее, то есть их нужно знать. Короче, если ты не можешь пройти интервью на Go/Java, то скорее всего ты не тянешь и тебе надо подтягивать знания

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

    @KandiDev
    Если это больше вопрос опыта, а не денег, тогда можно пойти на фриланс биржу с двумя буквами в названии (или другую) и там бывают "заказы для всех", то есть бесплатные. Создаёте профиль и мониторите заказы, это будет долго, но всё же реально найти свой заказ для заработка и получения опыта. Можно создать платный профиль и откликаться больше, так будет больше шанса, но придётся работать за копейки, пока не будет прокаченного профиля и опыта. Можно пойти в Telegram, найти тематические чаты по html/css/дизайну и в них тоже бывают заказы по вёрстке. Если нужны прям деньги, то лучше искать оффлайн работу, например, в студии/типографии города и прочие галеры. Но если честно верстальщики никому не нужны были ещё в 16 году, а сейчас и подавно. Нужны скилы повыше, например для frontend'ера, знание HTML/CSS/SCSS, Webpack/Vite, React/Vue/Angular (JS/NodeJS) и желательно это всё ещё уметь в докер с nginx упаковывать. Увы, но таковы реалии 2025 года
    Ответ написан
    Комментировать
  • Не работает вебхук телеграм бота?

    @KandiDev
    Проблема в типе сжатия ответа вашего сервера. Скорее всего ваш сервер возвращает:

    Content-Encoding: br

    Сервер Telegram не может распарсить ответ используя gzip, в конечном итоге возвращает ошибку связанную с zlib.

    Решение: изменить тип сжатия вашего сервер на gzip или использовать PHP код для сжатия:

    function compress($data) {
    
        $supportsGzip = strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) !== false;
    
        if ( $supportsGzip ) {
            $content = gzencode( trim( preg_replace( '/\s+/', ' ', $data ) ), 9);
            header('Content-Encoding: gzip');
        } else {
            $content = $data;
        }
    
        $offset = 60 * 60;
        $expire = "expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
    
        header("content-type: text/html; charset: UTF-8");
        header("cache-control: must-revalidate");
        header( $expire );
        header( 'Content-Length: ' . strlen( $content ) );
        header('Vary: Accept-Encoding');
    
        echo $content;
    }
    
    compress(""); //Сжимаем пустой ответ в gzip
    Ответ написан
    Комментировать