#junior #jsonrpc
При реализации нового API многие, не задумываясь, реализуют RESTful API (или json over http). А слышали ли вы про json-rpc протокол? Его спецификация намного проще, чем у REST, но возможностей не меньше: это и батч запросы, и нотификации, и отсутствие привязки к конкретному транспорту. Зато это действительно протокол, который определяет все случаи клиент-серверного взаимодействия: как должны выглядеть ошибки, как должен выглядеть успешный ответ и так далее.
Для PHP не так много библиотек, реализующих json-rpc стандарт:
https://github.com/datto/php-json-rpc – самая популярная, реализующая одновременно и клиент, и сервер. Однако библиотека давно не обновлялась.
https://github.com/operation-hardcode/php-rpc-server – свежая библиотека для php 8.1, реализующая исключительно сервер. Из преимуществ: хорошо типизирована и позволяет легко расширять возможности сервера.
При реализации нового API многие, не задумываясь, реализуют RESTful API (или json over http). А слышали ли вы про json-rpc протокол? Его спецификация намного проще, чем у REST, но возможностей не меньше: это и батч запросы, и нотификации, и отсутствие привязки к конкретному транспорту. Зато это действительно протокол, который определяет все случаи клиент-серверного взаимодействия: как должны выглядеть ошибки, как должен выглядеть успешный ответ и так далее.
Для PHP не так много библиотек, реализующих json-rpc стандарт:
https://github.com/datto/php-json-rpc – самая популярная, реализующая одновременно и клиент, и сервер. Однако библиотека давно не обновлялась.
https://github.com/operation-hardcode/php-rpc-server – свежая библиотека для php 8.1, реализующая исключительно сервер. Из преимуществ: хорошо типизирована и позволяет легко расширять возможности сервера.
GitHub
GitHub - datto/php-json-rpc: Fully unit-tested JSON-RPC 2.0 for PHP
Fully unit-tested JSON-RPC 2.0 for PHP. Contribute to datto/php-json-rpc development by creating an account on GitHub.
Год назад мы поддержали первый большой опрос PHP-сообщества. Сейчас коллеги снова собирают лучшие статьи, видео и инструменты по мнению сообщества, выясняют, кто с какими технологиями провел год, - а в конце разыграют фирменного слоника, крутую механическую клавиатуру, мерч и другие подарки.
Найди 5 минут, чтобы подвести итоги своего PHP-года: https://phpsurvey.typeform.com/to/OXCszf85
Найди 5 минут, чтобы подвести итоги своего PHP-года: https://phpsurvey.typeform.com/to/OXCszf85
Typeform
Explore Typeform | Create your own surveys, quizzes, forms
Experience a slick way of creating forms with Typeform. Try templates for quizzes, surveys, forms and more.
#advanced
Frank de Jonge, автор популярного пакета flysystem, отвечает на популярный вопрос «Где держать валидацию?» в своей новой статье https://blog.frankdejonge.nl/where-does-validation-live.
Frank de Jonge, автор популярного пакета flysystem, отвечает на популярный вопрос «Где держать валидацию?» в своей новой статье https://blog.frankdejonge.nl/where-does-validation-live.
Frank on Software
Where does my validation live?
This is a question I've received over and over again, a question that does not
have a single answer. Sometimes when I explain how I approach this I get
surprised reactions, so I figure I might as well share it in a blog post and see
what other people think.
have a single answer. Sometimes when I explain how I approach this I get
surprised reactions, so I figure I might as well share it in a blog post and see
what other people think.
Забавные, странные и провокационные вопросы/ответы и ситуации на собеседованиях, с которыми вы сталкивались
От каких ответов вы недоуменно поднимали брови, как ловко уворачивались от провокационных вопросов, а над чем посмеялись и забыли? Поделитесь своими самыми интересными историями, с которыми сталкивались на собеседованиях.
https://proglib.io/w/a617a55c
От каких ответов вы недоуменно поднимали брови, как ловко уворачивались от провокационных вопросов, а над чем посмеялись и забыли? Поделитесь своими самыми интересными историями, с которыми сталкивались на собеседованиях.
https://proglib.io/w/a617a55c
Google Docs
Забавные, странные и провокационные вопросы/ответы и ситуации на собеседованиях, с которыми вы сталкивались
От каких ответов вы недоуменно поднимали брови, как ловко уворачивались от провокационных вопросов, а над чем посмеялись и забыли? Поделитесь своими самыми интересными историями, с которыми сталкивались на собеседованиях.
Отвечать могут как соискатели,…
Отвечать могут как соискатели,…
Инновационные ноутбуки на базе передового процессора AMD Ryzen™ 5000-й серии - универсальный ключ к решению высокотехнологичных задач!
💡Интеллектуальная энергоэффективность - до 12 часов непрерывной работы в режиме многопоточности;
💡До 8 усовершенствованных ядер - для молниеносной скорости отклика, моментального запуска и загрузки ресурсоёмких приложений;
💡Графика Radeon нового поколения - наслаждайтесь контентом сразу на нескольких мониторах с разрешением до 4K в режиме HDR!
Узнать больше и приобрести по выгодной цене можно тут ⬇️
💡Интеллектуальная энергоэффективность - до 12 часов непрерывной работы в режиме многопоточности;
💡До 8 усовершенствованных ядер - для молниеносной скорости отклика, моментального запуска и загрузки ресурсоёмких приложений;
💡Графика Radeon нового поколения - наслаждайтесь контентом сразу на нескольких мониторах с разрешением до 4K в режиме HDR!
Узнать больше и приобрести по выгодной цене можно тут ⬇️
Решайте IT-задачи любой сложности с технологиями Сбера
💻 SmartMarket — это единая точка доступа ко всем технологическим платформам Сбера. С помощью SmartMarket вы сможете:
— Использовать десятки современных инструментов — от веб-хостинга до нейросетевых решений;
— Подключить к готовому проекту NLP-платформу и распознавание жестов;
— Создать виртуального персонажа или чат-бот;
— Монетизировать бизнес в один клик;
— Организовать облачное хранение данных;
— Пользоваться документацией, API и спецификациями для всех сервисов и многое другое!
А еще вы получите доступ к аудитории Сбера в 100 млн человек и сообществу из 2500+ разработчиков, сможете общаться с ними в Telegram-канале и посещать регулярные митапы.
Подробности по ссылке.
💻 SmartMarket — это единая точка доступа ко всем технологическим платформам Сбера. С помощью SmartMarket вы сможете:
— Использовать десятки современных инструментов — от веб-хостинга до нейросетевых решений;
— Подключить к готовому проекту NLP-платформу и распознавание жестов;
— Создать виртуального персонажа или чат-бот;
— Монетизировать бизнес в один клик;
— Организовать облачное хранение данных;
— Пользоваться документацией, API и спецификациями для всех сервисов и многое другое!
А еще вы получите доступ к аудитории Сбера в 100 млн человек и сообществу из 2500+ разработчиков, сможете общаться с ними в Telegram-канале и посещать регулярные митапы.
Подробности по ссылке.
👍1
👋 Этот новый онлайн-самоучитель поможет узнать об основах Kubernetes и научиться доставлять свой код в кластер!
Курс создан инженерами DevOps-компании «Флант» специально для разработчиков и сочетает в себе теорию и практику. С ним ты научишься собирать Docker-образ своего приложения и деплоить в Kubernetes, подготавливая необходимую для него инфраструктуру, — для этих задач будет использоваться Open Source-утилита werf. Попутно узнаешь об основах «кубернетизации» приложения — т.е. его адаптации под запуск в Kubernetes, на одном из практических примеров, среди которых есть и PHP/Laravel.
Самоучитель бесплатен и разрабатывается в публичном GitHub-репозитории. Попробуй!
Курс создан инженерами DevOps-компании «Флант» специально для разработчиков и сочетает в себе теорию и практику. С ним ты научишься собирать Docker-образ своего приложения и деплоить в Kubernetes, подготавливая необходимую для него инфраструктуру, — для этих задач будет использоваться Open Source-утилита werf. Попутно узнаешь об основах «кубернетизации» приложения — т.е. его адаптации под запуск в Kubernetes, на одном из практических примеров, среди которых есть и PHP/Laravel.
Самоучитель бесплатен и разрабатывается в публичном GitHub-репозитории. Попробуй!
Привет! «Библиотека программиста» проводит мини-исследование по теме: «Чему вы бы хотели научиться в сфере кибербезопасности?».
🔍Как известно, информационная безопасность – это набор технологий, процедур и практик, направленных на предотвращение атак, повреждений и незаконного доступа к сетям, устройствам, программам и данным. Профессионалы в области кибербезопасности защищают компании от утечек данных и прочих угроз. Потребность в экспертах растет с головокружительной скоростью. Чтобы стать хорошим специалистом по кибербезопасности, требуется немало сил и времени.
Предлагаем вам пройти наш опрос об опыте разработчиков в данном направлении. Опрос займет не более 10 минут вашего времени.
Пройти его можно по ссылке.
🔍Как известно, информационная безопасность – это набор технологий, процедур и практик, направленных на предотвращение атак, повреждений и незаконного доступа к сетям, устройствам, программам и данным. Профессионалы в области кибербезопасности защищают компании от утечек данных и прочих угроз. Потребность в экспертах растет с головокружительной скоростью. Чтобы стать хорошим специалистом по кибербезопасности, требуется немало сил и времени.
Предлагаем вам пройти наш опрос об опыте разработчиков в данном направлении. Опрос займет не более 10 минут вашего времени.
Пройти его можно по ссылке.
#advanced
Что такое Cohesion и Coupling? Почему это сложно и что из этого важнее?
https://simpleprogrammer.com/back-to-basics-cohesion-and-coupling-part-1/
https://simpleprogrammer.com/back-to-basics-cohesion-and-coupling-part-2/
Что такое Cohesion и Coupling? Почему это сложно и что из этого важнее?
https://simpleprogrammer.com/back-to-basics-cohesion-and-coupling-part-1/
https://simpleprogrammer.com/back-to-basics-cohesion-and-coupling-part-2/
Simple Programmer
Clean Code Principles: Be a Better Programmer - Simple Programmer
Clean code matters, and using clean code principles will go a long way toward advancing your career and making you a better programmer.
#advanced
Новый роутер на PHP. Автор рассказывает, как у него получилось сделать роутер быстрее, чем symfony/router.
http://kaloyan.info/writing/2021/12/22/ertuo-php-routing.html
Новый роутер на PHP. Автор рассказывает, как у него получилось сделать роутер быстрее, чем symfony/router.
http://kaloyan.info/writing/2021/12/22/ertuo-php-routing.html
Kaloyan.info
“Ertuo”, allegedly the fastest PHP routing library — kaloyan.info
“Ertuo”, allegedly the fastest PHP routing library: Let's use a different approach to routing then regular expressions and make it several times faster and more flexible
🔥1
#symfony
Новый компонент Symfony. Помогает очищать html документ для его безопасного использования.
https://github.com/symfony/html-sanitizer
Новый компонент Symfony. Помогает очищать html документ для его безопасного использования.
https://github.com/symfony/html-sanitizer
GitHub
GitHub - symfony/html-sanitizer: Provides an object-oriented API to sanitize untrusted HTML input for safe insertion into a document's…
Provides an object-oriented API to sanitize untrusted HTML input for safe insertion into a document's DOM. - symfony/html-sanitizer
#library
Новая библиотека от Frank de Jonge. Позволяет гидрировать сырые данные в объект. Поддерживает вложенные объекты, тайп-касты и алиасы полей.
https://github.com/EventSaucePHP/ObjectHydrator#object-hydrator
Новая библиотека от Frank de Jonge. Позволяет гидрировать сырые данные в объект. Поддерживает вложенные объекты, тайп-касты и алиасы полей.
https://github.com/EventSaucePHP/ObjectHydrator#object-hydrator
GitHub
GitHub - EventSaucePHP/ObjectHydrator: Object Hydration library to create Command and Query objects.
Object Hydration library to create Command and Query objects. - EventSaucePHP/ObjectHydrator
Быстрый старт во Frontend-разработке: с нуля до первого интернет-магазина!
💻На курсе «Библиотеки программиста» «Основы веб-разработки: принцип работы современного веба» вы:
– сверстаете свой первый адаптивный макет с учетом семантики и множество декоративных элементов на HTML и CSS;
– поймете, как с помощью JavaScript разрабатывать пользовательские интерфейсы;
– разберетесь, как JavaScript используется в работе с Backend и создадите свой первый обмен данными сервером;
– углубитесь в более сложную разработку на React.js и напишете свой первый интернет-магазин.
Вас ждут:
– 4 проекта в портфолио после курса;
– изучение HTML, CSS, JavaScript, React – стек технологий, который позволит начать работать в любой компании на любом проекте;
– опция персонального менторства.
🎁Новый год – самый подходящий момент учиться новому. Для наших подписчиков действует скидка 65% до 31 декабря. Остался один день!
Посмотреть тарифы и записаться можно здесь.
💻На курсе «Библиотеки программиста» «Основы веб-разработки: принцип работы современного веба» вы:
– сверстаете свой первый адаптивный макет с учетом семантики и множество декоративных элементов на HTML и CSS;
– поймете, как с помощью JavaScript разрабатывать пользовательские интерфейсы;
– разберетесь, как JavaScript используется в работе с Backend и создадите свой первый обмен данными сервером;
– углубитесь в более сложную разработку на React.js и напишете свой первый интернет-магазин.
Вас ждут:
– 4 проекта в портфолио после курса;
– изучение HTML, CSS, JavaScript, React – стек технологий, который позволит начать работать в любой компании на любом проекте;
– опция персонального менторства.
🎁Новый год – самый подходящий момент учиться новому. Для наших подписчиков действует скидка 65% до 31 декабря. Остался один день!
Посмотреть тарифы и записаться можно здесь.
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🎄2️⃣0️⃣2️⃣2️⃣🎁
Чего только не было в этом году: нашествие нейросетевых алгоритмов и ARM-процессоров, GitHub Copilot и автодополнение кода, сражение с чёрной дырой пандемии и рождение метавселенных — всего и не припомнишь.
Под занавес принято подводить итоги. В 2021 году редакция «Библиотеки программиста» выпустила 448 статей, а сайт proglib.io посетили 4.7 миллиона читателей. Суммарное число подписчиков наших сообществ превысило 500 тысяч. Наконец, мы открыли собственный образовательный центр — proglib.academy.
Мы сердечно поздравляем всех читателей и членов нашего IT-коммьюнити с Новым годом. Желаем лёгкого кодинга, добра, счастья, здоровья и удачных проектов! Оставайтесь с нами, впереди много интересного! 😉
Чего только не было в этом году: нашествие нейросетевых алгоритмов и ARM-процессоров, GitHub Copilot и автодополнение кода, сражение с чёрной дырой пандемии и рождение метавселенных — всего и не припомнишь.
Под занавес принято подводить итоги. В 2021 году редакция «Библиотеки программиста» выпустила 448 статей, а сайт proglib.io посетили 4.7 миллиона читателей. Суммарное число подписчиков наших сообществ превысило 500 тысяч. Наконец, мы открыли собственный образовательный центр — proglib.academy.
Мы сердечно поздравляем всех читателей и членов нашего IT-коммьюнити с Новым годом. Желаем лёгкого кодинга, добра, счастья, здоровья и удачных проектов! Оставайтесь с нами, впереди много интересного! 😉
🎉12❤3👍3
#video
5 книг, которые должен прочитать каждый разработчик, по мнению Дейва Фарли, автора книги «Непрерывное развертывание ПО».
https://youtu.be/RfOYWeu5pGk
5 книг, которые должен прочитать каждый разработчик, по мнению Дейва Фарли, автора книги «Непрерывное развертывание ПО».
https://youtu.be/RfOYWeu5pGk
YouTube
5 Books That Can Change A Developer’s Career
What are the best software developer books? This is obviously a subjective question. The best books for a software engineer or developer are always going to be a personal choice, and vary by their interests and maybe the technology that they work in, but…
👍2
#testing
Приложение, которое может помочь протестировать входящие http запросы: например, вебхуки. Написано на PHP, кстати. Можно посмотреть исходный код по ссылке.
https://httpdump.app/
Приложение, которое может помочь протестировать входящие http запросы: например, вебхуки. Написано на PHP, кстати. Можно посмотреть исходный код по ссылке.
https://httpdump.app/
GitHub
GitHub - beyondcode/httpdump: Easily inspect incoming HTTP Requests
Easily inspect incoming HTTP Requests. Contribute to beyondcode/httpdump development by creating an account on GitHub.
👍3💩2
#advanced
Анна Филина рассуждает про null как о возвращаемом типе.
https://afilina.com/learn/nulls/return-types
Анна Филина рассуждает про null как о возвращаемом типе.
https://afilina.com/learn/nulls/return-types
👎12👍3💩1