Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🦸⚡ 9 способов настройки градиента цели для поддержания мотивации
Разбираемся, как настроить себя идти до конца, преодолевая препятствия и лень.
Читать статью
#саморазвитие
Разбираемся, как настроить себя идти до конца, преодолевая препятствия и лень.
Читать статью
#саморазвитие
🥱8👍2
#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
👍2❤1
Принятие разумной политики поддержки версий PHP
Важность установления и соблюдения политики поддержки версий PHP для PHP-приложений и PHP-пакетов связано с тем, что PHP регулярно выпускает новые версии и прекращает поддержку старых. Автор предлагает следующие рекомендации:
✅Политика поддержки версий PHP для PHP-приложений:
Разработчики PHP-приложений должны определить, как часто они обновляют свои приложения до новых версий PHP в соответствии с жизненным циклом PHP.
Политика может определять, что приложение будет обновлено до новой версии PHP в течение определенного срока после ее выпуска.
Эта политика может быть ужесточена по мере улучшения навыков и способностей команды.
✅Политика поддержки версий PHP для PHP-пакетов:
Разработчики PHP-пакетов также должны определить, какие версии PHP они поддерживают и как часто добавляют и удаляют поддержку для этих версий.
Поддержка нескольких версий PHP в пакете может упростить обновление PHP-приложений, использующих этот пакет.
Добавление и удаление поддержки версий PHP может требовать разработки и учета изменений в новых версиях PHP.
Статья также обсуждает пользу и сложности, связанные с обновлением PHP-пакетов и приложений, а также воздействие на окружающую среду и пользователей. Автор подчеркивает важность управления ожиданиями и коммитмента к политике поддержки версий PHP для облегчения обновлений и продвижения экосистемы PHP вперед.
Важность установления и соблюдения политики поддержки версий PHP для PHP-приложений и PHP-пакетов связано с тем, что PHP регулярно выпускает новые версии и прекращает поддержку старых. Автор предлагает следующие рекомендации:
✅Политика поддержки версий PHP для PHP-приложений:
Разработчики PHP-приложений должны определить, как часто они обновляют свои приложения до новых версий PHP в соответствии с жизненным циклом PHP.
Политика может определять, что приложение будет обновлено до новой версии PHP в течение определенного срока после ее выпуска.
Эта политика может быть ужесточена по мере улучшения навыков и способностей команды.
✅Политика поддержки версий PHP для PHP-пакетов:
Разработчики PHP-пакетов также должны определить, какие версии PHP они поддерживают и как часто добавляют и удаляют поддержку для этих версий.
Поддержка нескольких версий PHP в пакете может упростить обновление PHP-приложений, использующих этот пакет.
Добавление и удаление поддержки версий PHP может требовать разработки и учета изменений в новых версиях PHP.
Статья также обсуждает пользу и сложности, связанные с обновлением PHP-пакетов и приложений, а также воздействие на окружающую среду и пользователей. Автор подчеркивает важность управления ожиданиями и коммитмента к политике поддержки версий PHP для облегчения обновлений и продвижения экосистемы PHP вперед.
Andreas Möller
Adopting a reasonable PHP version support policy
What is a PHP version support policy and why should you have one?
👍3❤2
Руководство по call-site variance
Гайд описывает концепцию "call-site variance" (вариантность на момент вызова) в контексте использования языка PHP с использованием инструмента PHPStan для статической типизации. Он объясняет, как можно управлять вариантностью (ковариантностью и контравариантностью) в интерфейсах и функциях, чтобы обеспечить безопасность типов данных.
Гайд описывает концепцию "call-site variance" (вариантность на момент вызова) в контексте использования языка PHP с использованием инструмента PHPStan для статической типизации. Он объясняет, как можно управлять вариантностью (ковариантностью и контравариантностью) в интерфейсах и функциях, чтобы обеспечить безопасность типов данных.
phpstan.org
A guide to call-site generic variance
👍3❤1
Используете ли Copilot или ChatGPT в работе? Если да, то когда использовали последний раз?
🥱8👍3
Laravel 11: дата выпуска и новые возможности
С нетерпением ждем релиза Laravel 11, запланированного на первый квартал 2024 года. Есть информация о том, что дата релиза будет 6 февраля 2024 года.
Главное изменение в Laravel 11 - это упрощенная структура проекта (skeleton). Будут внесены изменения в конфигурацию, middleware, обработку ошибок в API и многое другое.
Что касается упрощенной структуры проекта, все файлы конфигурации будут иметь аналоги в ядре фреймворка, что позволит более гибко настраивать приложение с использованием переменных окружения.
✔️В middleware будут добавлены новые методы, включая возможность перенаправления с использованием замыканий, а также улучшена обработка запросов, ожидающих JSON.
✔️Artisan команды получат псевдонимы и команду для планирования выполнения замыканий.
✔️Сервис-провайдеры получат новые функции для загрузки дополнительных провайдеров.
✔️Будет введен ApplicationBuilder для упрощения настройки различных функций фреймворка, а также Middleware application builder class для определения новых групп middleware.
✔️Существующие middleware будут обогащены новыми методами для настройки исключений и дополнительных параметров.
Также будут внесены изменения в обработчик исключений и добавлены новые команды для установки дополнительных пакетов.
Общее впечатление - Laravel 11 представляет собой крупное обновление с множеством улучшений и изменений, которые сделают разработку более удобной и производительной.
С нетерпением ждем релиза Laravel 11, запланированного на первый квартал 2024 года. Есть информация о том, что дата релиза будет 6 февраля 2024 года.
Главное изменение в Laravel 11 - это упрощенная структура проекта (skeleton). Будут внесены изменения в конфигурацию, middleware, обработку ошибок в API и многое другое.
Что касается упрощенной структуры проекта, все файлы конфигурации будут иметь аналоги в ядре фреймворка, что позволит более гибко настраивать приложение с использованием переменных окружения.
✔️В middleware будут добавлены новые методы, включая возможность перенаправления с использованием замыканий, а также улучшена обработка запросов, ожидающих JSON.
✔️Artisan команды получат псевдонимы и команду для планирования выполнения замыканий.
✔️Сервис-провайдеры получат новые функции для загрузки дополнительных провайдеров.
✔️Будет введен ApplicationBuilder для упрощения настройки различных функций фреймворка, а также Middleware application builder class для определения новых групп middleware.
✔️Существующие middleware будут обогащены новыми методами для настройки исключений и дополнительных параметров.
Также будут внесены изменения в обработчик исключений и добавлены новые команды для установки дополнительных пакетов.
Общее впечатление - Laravel 11 представляет собой крупное обновление с множеством улучшений и изменений, которые сделают разработку более удобной и производительной.
🥱9⚡7👍7❤4🌚1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💼🖥️ Топ лучших бирж фриланса и платформ для программистов
Где начинающему разработчику найти работу и получить первый коммерческий заказ? В этом могут помочь фриланс-биржи и human-cloud платформы. Но какие именно — расскажем в статье.
📌 Полезные материалы по теме:
🧒 Как найти работу junior-разработчику: 5 самых неочевидных способов
👍 Тесты на собеседовании: как к ним подготовиться и получить оффер
📝 Как правильно составить сопроводительное письмо программисту
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
🤖 40 сервисов на базе AI, которые помогут найти работу в 2023 году
💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Подборка полезных материалов для улучшения профиля на LinkedIn и не только
💾 Список каналов «Библиотеки программиста» с вакансиями
🫶Понравился пост? Проголосуйте за нас, чтобы мы могли публиковать сторис (требуется премиум).
Где начинающему разработчику найти работу и получить первый коммерческий заказ? В этом могут помочь фриланс-биржи и human-cloud платформы. Но какие именно — расскажем в статье.
📌 Полезные материалы по теме:
🧒 Как найти работу junior-разработчику: 5 самых неочевидных способов
👍 Тесты на собеседовании: как к ним подготовиться и получить оффер
📝 Как правильно составить сопроводительное письмо программисту
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
🤖 40 сервисов на базе AI, которые помогут найти работу в 2023 году
💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Подборка полезных материалов для улучшения профиля на LinkedIn и не только
💾 Список каналов «Библиотеки программиста» с вакансиями
🫶Понравился пост? Проголосуйте за нас, чтобы мы могли публиковать сторис (требуется премиум).
👍4🥱4❤2
👍4❤1
Golang глазами PHP-программиста
Автор статьи рассказывает про свой опыт изучения языка программирования Go (Golang). Он начал интересоваться Go из-за его происхождения от Google, компилируемой природы, активного развития и высоких зарплат разработчиков на этом языке. По его мнению, Go легко изучить, и он быстро освоил базовые концепции языка.
Автор отмечает простоту установки и автоформатирование кода в Go. Он также обсуждает обработку ошибок в Go, отмечая, что язык не использует исключения, но вместо этого функции могут возвращать несколько значений, одно из которых может быть ошибкой.
Автор рассматривает работу с типами данных и массивами в Go, обсуждает особенности объектно-ориентированного программирования в языке, отмечая отсутствие классического наследования, и обсуждает многопоточность в Go. Он также подчеркивает, что Go обладает хорошей производительностью, хотя не всегда быстрее некоторых компилируемых языков, таких как C и C++.
Наконец, автор касается сообщества Go, отмечая, что, несмотря на активное развитие языка, сообщество Go не так обширно, как у некоторых других языков программирования, и что поиск готовых решений и ответов на вопросы может быть сложным. В заключение, автор выражает положительное впечатление от языка, но остается вопрос, будет ли это достаточным для утверждения позиции Go среди наиболее популярных языков программирования.
Автор статьи рассказывает про свой опыт изучения языка программирования Go (Golang). Он начал интересоваться Go из-за его происхождения от Google, компилируемой природы, активного развития и высоких зарплат разработчиков на этом языке. По его мнению, Go легко изучить, и он быстро освоил базовые концепции языка.
Автор отмечает простоту установки и автоформатирование кода в Go. Он также обсуждает обработку ошибок в Go, отмечая, что язык не использует исключения, но вместо этого функции могут возвращать несколько значений, одно из которых может быть ошибкой.
Автор рассматривает работу с типами данных и массивами в Go, обсуждает особенности объектно-ориентированного программирования в языке, отмечая отсутствие классического наследования, и обсуждает многопоточность в Go. Он также подчеркивает, что Go обладает хорошей производительностью, хотя не всегда быстрее некоторых компилируемых языков, таких как C и C++.
Наконец, автор касается сообщества Go, отмечая, что, несмотря на активное развитие языка, сообщество Go не так обширно, как у некоторых других языков программирования, и что поиск готовых решений и ответов на вопросы может быть сложным. В заключение, автор выражает положительное впечатление от языка, но остается вопрос, будет ли это достаточным для утверждения позиции Go среди наиболее популярных языков программирования.
Хабр
Golang глазами PHP-программиста
Hello World Как-то появилась причина попробовать пописать на Go. На тот момент я знал, что это язык от Google, язык молодой, язык компилируемый, вроде как активноразвивающийся и с зарплатами выше...
👍13🥱10🌚2❤1😁1
Расскажите, что такое $_GET и $_POST и в чем их разница?
Вопрос классический и основополагающий, если кандидат не отвечает на него, значит скорее всего это «мимо».
$_GET — это великодушно созданный для нас языком суперглобальный ассоциативный массив, в котором находятся расфасованные GET параметры — то есть те, что передались в адресной строке или URL после знака ?
$_POST — такой же ассоциативный массив, но уже собранный из POST параметров — то есть тех, что передаются в теле запроса.
Вопрос на засыпку: (почему-то многие не отвечают) «а как еще можно получить POST параметры в PHP«?
Ответ: $_POST это форматированное и подготовленное для удобной работы тело запроса, но есть вариант получить тело запроса «как есть» с помощью:
file_get_contents('php://input')
#вопросы_с_собеседований
Вопрос классический и основополагающий, если кандидат не отвечает на него, значит скорее всего это «мимо».
$_GET — это великодушно созданный для нас языком суперглобальный ассоциативный массив, в котором находятся расфасованные GET параметры — то есть те, что передались в адресной строке или URL после знака ?
$_POST — такой же ассоциативный массив, но уже собранный из POST параметров — то есть тех, что передаются в теле запроса.
Вопрос на засыпку: (почему-то многие не отвечают) «а как еще можно получить POST параметры в PHP«?
Ответ: $_POST это форматированное и подготовленное для удобной работы тело запроса, но есть вариант получить тело запроса «как есть» с помощью:
file_get_contents('php://input')
#вопросы_с_собеседований
🥱23❤7👍4
Nginx Unit с Laravel и PHP
Nginx Unit - это веб-сервер, который облегчает прямое взаимодействие с вашим кодом, позволяя передавать HTTP-запросы вашему коду так, чтобы он их понимал. Он поддерживает различные языки программирования и имеет отдельные модули для каждого из них. Чтобы использовать его с PHP, вы можете установить PHP, используя репозиторий ppa:ondrej/php. Важно установить php8.2-dev и php8.2-embed, но без php-fpm.
Установка Nginx Unit выполняется в соответствии с его документацией. Для работы с вашей версией PHP вам нужно вручную пересобрать PHP-модуль для Unit. После установки и настройки Unit позволяет запускать ваше приложение без PHP-FPM, что упрощает его контейнеризацию. Похоже, что он эффективен и устойчив, успешно обрабатывая большие объемы запросов.
Тем не менее, существуют некоторые компромиссы. Изменение версий PHP требует повторной компиляции PHP-модуля Unit, что затрудняет одновременный запуск нескольких версий PHP. Кроме того, возможно потребуется дополнительный HTTP-слой перед Unit для обработки определенных конфигураций, таких как сжатие gzip и защита определенных маршрутов.
Nginx Unit - это веб-сервер, который облегчает прямое взаимодействие с вашим кодом, позволяя передавать HTTP-запросы вашему коду так, чтобы он их понимал. Он поддерживает различные языки программирования и имеет отдельные модули для каждого из них. Чтобы использовать его с PHP, вы можете установить PHP, используя репозиторий ppa:ondrej/php. Важно установить php8.2-dev и php8.2-embed, но без php-fpm.
Установка Nginx Unit выполняется в соответствии с его документацией. Для работы с вашей версией PHP вам нужно вручную пересобрать PHP-модуль для Unit. После установки и настройки Unit позволяет запускать ваше приложение без PHP-FPM, что упрощает его контейнеризацию. Похоже, что он эффективен и устойчив, успешно обрабатывая большие объемы запросов.
Тем не менее, существуют некоторые компромиссы. Изменение версий PHP требует повторной компиляции PHP-модуля Unit, что затрудняет одновременный запуск нескольких версий PHP. Кроме того, возможно потребуется дополнительный HTTP-слой перед Unit для обработки определенных конфигураций, таких как сжатие gzip и защита определенных маршрутов.
Fideloper
Nginx Unit with Laravel and PHP
I came across Nginx Unit recently. Turns out, it's really cool! We can get rid of PHP-FPM, and run our apps more efficient. Let's see how, and go over the pros and cons.
❤5🌚3👍1
Почему отслеживание ошибок имеет решающее значение для вашего приложения
Ошибка в приложении - неизбежное явление. Однако, когда приложение уже запущено, и не только вы вызываете ошибки, самые важные из них могут остаться незамеченными. Здесь на помощь приходят программы отслеживания ошибок, такие как Flare.
Почему это важно? Когда происходит ошибка в продакшене, вы узнаете о ней из журналов или сообщений пользователей. Зачем тогда нужен еще один инструмент? Во-первых, вы хотите знать об ошибках как можно скорее: что произошло, почему это произошло и нужно ли это немедленно исправить? Чтобы ответить на эти вопросы, нужно получить информацию о произошедшей ошибке в первые минуты после возникновения. Не стоит ждать, пока пользователи сообщат о проблеме, потому что, скорее всего, они этого не сделают.
Это важно, потому что вы хотите знать о своих ошибках как можно скорее, чтобы исправить их и связаться с пользователем до того, как он обратится к вам. Вот почему нужны bug trackers. Они уведомляют вас об ошибках, независимо от того, кто их вызвал, и предоставляют подробные сведения, необходимые для их устранения. Flare - это один из таких bug trackers, предназначенный специально для Laravel.
Flare предоставляет обширные сведения для отладки проблем. Он не только перечисляет все ошибки, вызванные всеми пользователями, но и предоставляет необходимые инсайты для устранения проблем. Кроме отслеживания ошибок, Flare имеет отличную интеграцию с GitHub, обширные настройки уведомлений и возможности организации проектов и команд.
Для начала работы с Flare в проекте Laravel нужно всего лишь выполнить три шага: установить Ignition, клиент Flare; настроить API-ключ; настроить Laravel для отправки ошибок в Flare. После этого вы можете отслеживать ошибки вашего приложения и получать уведомления о них в реальном времени.
Flare также предлагает решения для ряда часто возникающих ошибок и включает интеграцию с GitHub, автоматическое определение зарегистрированных пользователей, расширенные настройки уведомлений и многое другое.
Таким образом, Flare облегчает отслеживание ошибок в ваших приложениях и позволяет вам быстро реагировать на проблемы, улучшая опыт пользователей и экономя вам время и ресурсы.
Ошибка в приложении - неизбежное явление. Однако, когда приложение уже запущено, и не только вы вызываете ошибки, самые важные из них могут остаться незамеченными. Здесь на помощь приходят программы отслеживания ошибок, такие как Flare.
Почему это важно? Когда происходит ошибка в продакшене, вы узнаете о ней из журналов или сообщений пользователей. Зачем тогда нужен еще один инструмент? Во-первых, вы хотите знать об ошибках как можно скорее: что произошло, почему это произошло и нужно ли это немедленно исправить? Чтобы ответить на эти вопросы, нужно получить информацию о произошедшей ошибке в первые минуты после возникновения. Не стоит ждать, пока пользователи сообщат о проблеме, потому что, скорее всего, они этого не сделают.
Это важно, потому что вы хотите знать о своих ошибках как можно скорее, чтобы исправить их и связаться с пользователем до того, как он обратится к вам. Вот почему нужны bug trackers. Они уведомляют вас об ошибках, независимо от того, кто их вызвал, и предоставляют подробные сведения, необходимые для их устранения. Flare - это один из таких bug trackers, предназначенный специально для Laravel.
Flare предоставляет обширные сведения для отладки проблем. Он не только перечисляет все ошибки, вызванные всеми пользователями, но и предоставляет необходимые инсайты для устранения проблем. Кроме отслеживания ошибок, Flare имеет отличную интеграцию с GitHub, обширные настройки уведомлений и возможности организации проектов и команд.
Для начала работы с Flare в проекте Laravel нужно всего лишь выполнить три шага: установить Ignition, клиент Flare; настроить API-ключ; настроить Laravel для отправки ошибок в Flare. После этого вы можете отслеживать ошибки вашего приложения и получать уведомления о них в реальном времени.
Flare также предлагает решения для ряда часто возникающих ошибок и включает интеграцию с GitHub, автоматическое определение зарегистрированных пользователей, расширенные настройки уведомлений и многое другое.
Таким образом, Flare облегчает отслеживание ошибок в ваших приложениях и позволяет вам быстро реагировать на проблемы, улучшая опыт пользователей и экономя вам время и ресурсы.
👍5🥱5
Как оптимизировать производительность проекта Symfony
Статья рассказывает о том, как оптимизировать производительность проектов, созданных с использованием Symfony.
Автор предоставляет шаги и рекомендации для улучшения производительности приложений, включая установку необходимых компонентов, ограничение числа локалей, оптимизацию контейнера сервисов, использование кэширования и профилирования приложения для выявления узких мест в работе.
Также статья обсуждает продвинутые техники, такие как настройка кэша путей PHP и использование предварительной загрузки классов с помощью OPcache. Автор подчеркивает важность оптимизации запросов к базе данных и подчеркивает, что оптимизация производительности является постоянным процессом, требующим внимания к новым технологиям и методам.
Статья рассказывает о том, как оптимизировать производительность проектов, созданных с использованием Symfony.
Автор предоставляет шаги и рекомендации для улучшения производительности приложений, включая установку необходимых компонентов, ограничение числа локалей, оптимизацию контейнера сервисов, использование кэширования и профилирования приложения для выявления узких мест в работе.
Также статья обсуждает продвинутые техники, такие как настройка кэша путей PHP и использование предварительной загрузки классов с помощью OPcache. Автор подчеркивает важность оптимизации запросов к базе данных и подчеркивает, что оптимизация производительности является постоянным процессом, требующим внимания к новым технологиям и методам.
DEV Community
How to optimize Symfony project performance 👨💻
Looking for that extra boost in your Symfony projects? Symfony framework is ideal for building...
👍4
Forwarded from PHP jobs — вакансии по PHP, Symfony, Laravel
#дайджест #phpdevjob
Вакансии недели для Москвы 👨🏻🏫
PHP разработчик в BeGroup
Москва. Маркетплейс нативной рекламы в социальных сетях.
Подробнее
PHP разработчик в Нескучные Финансы
Москва. Компания по аутсорсингу управленческого учета.
Подробнее
Программист в ЧОП Центавр
Москва. Частное охранное предприятие.
Подробнее
PHP full stack разработчик в AgencyxX
Москва. Работе со средними и крупными ecommerce проектами.
Подробнее
Junior PHP-разработчик в Roistat
Москва. Разработка сервиса сквозной аналитики и комплексного управления интернет-маркетингом.
Подробнее
Понравились вакансии?
👍 — да
👎 — нет
Вакансии недели для Москвы 👨🏻🏫
PHP разработчик в BeGroup
Москва. Маркетплейс нативной рекламы в социальных сетях.
Подробнее
PHP разработчик в Нескучные Финансы
Москва. Компания по аутсорсингу управленческого учета.
Подробнее
Программист в ЧОП Центавр
Москва. Частное охранное предприятие.
Подробнее
PHP full stack разработчик в AgencyxX
Москва. Работе со средними и крупными ecommerce проектами.
Подробнее
Junior PHP-разработчик в Roistat
Москва. Разработка сервиса сквозной аналитики и комплексного управления интернет-маркетингом.
Подробнее
Понравились вакансии?
👍 — да
👎 — нет
hh.ru
Вакансия PHP разработчик (Laravel) в Москве, работа в компании BeGroup / BeSeed (вакансия в архиве c 24 октября 2023)
Зарплата: не указана. Москва. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 22.10.2023.
🥱5❤3👍2
На каком фреймворке сейчас пишите
Anonymous Poll
55%
Laravel
32%
Symfony
14%
Yii
3%
CodeIgniter
1%
Cake
2%
Zend
12%
Другой(в комментарии)
⚡️Помогите «Библиотеке программиста» начать публиковать сторис
Каналы могут публиковать сторис в телеграм — правда, для этого им нужно набрать достаточно голосов пользователей. А голосовать могут только те, у кого есть премиум.
Что мы будем публиковать в сторис?
🧠Логические задачки — чтобы тренировать мозги
📰Только важные новости — оперативно
👨🏫Истории компаний, инструментов и софта по особым поводам (например, историю Linux в честь его дня создания)
❗Анонсы наших вебинаров и самых интересных статей
Если вы хотите увидеть наши сторисы в «Библиотеке программиста», вот что нужно сделать:
1️⃣ обновить телеграм на телефоне
2️⃣ перейти по ссылке ➡️ https://t.iss.one/proglibrary?boost
3️⃣ нажать кнопку «голосовать»
Каналы могут публиковать сторис в телеграм — правда, для этого им нужно набрать достаточно голосов пользователей. А голосовать могут только те, у кого есть премиум.
Что мы будем публиковать в сторис?
🧠Логические задачки — чтобы тренировать мозги
📰Только важные новости — оперативно
👨🏫Истории компаний, инструментов и софта по особым поводам (например, историю Linux в честь его дня создания)
❗Анонсы наших вебинаров и самых интересных статей
Если вы хотите увидеть наши сторисы в «Библиотеке программиста», вот что нужно сделать:
1️⃣ обновить телеграм на телефоне
2️⃣ перейти по ссылке ➡️ https://t.iss.one/proglibrary?boost
3️⃣ нажать кнопку «голосовать»
🌚3👍2