#advanced #video
Интересный доклад про будущее сетевого стека.
https://www.youtube.com/watch?v=aXYJlizk3CQ
Интересный доклад про будущее сетевого стека.
https://www.youtube.com/watch?v=aXYJlizk3CQ
YouTube
UDP против TCP, или Будущее сетевого стека / Александр Тоболь (Одноклассники)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Saint HighLoad++ 2019
Тезисы и презентация:
https://www.highload.ru/spb…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
Saint HighLoad++ 2019
Тезисы и презентация:
https://www.highload.ru/spb…
#advanced #library
Если вы переживаете за типы и следите за их соответствие ожидаемым, можете воспользоваться библиотекой php-matcher. PhpMatcher позволяет вам описать, какие типы вы ожидаете, описать объединенные типы и проверить различные паттерны.
https://github.com/coduo/php-matcher
Если вы переживаете за типы и следите за их соответствие ожидаемым, можете воспользоваться библиотекой php-matcher. PhpMatcher позволяет вам описать, какие типы вы ожидаете, описать объединенные типы и проверить различные паттерны.
https://github.com/coduo/php-matcher
GitHub
GitHub - coduo/php-matcher: The easiest way to match data structures like JSON/PlainText/XML against readable patterns. Sandbox:
The easiest way to match data structures like JSON/PlainText/XML against readable patterns. Sandbox: - coduo/php-matcher
#advanced #security
Как Psalm помогает находить ошибки безопасности в коде.
https://psalm.dev/articles/detect-security-vulnerabilities-with-psalm
Как Psalm помогает находить ошибки безопасности в коде.
https://psalm.dev/articles/detect-security-vulnerabilities-with-psalm
psalm.dev
Detect PHP security vulnerabilities with Psalm
Security vulnerabilities are often pretty hard to spot manually. While a null-pointer error can make itself known very quickly, you can execute code…
#library
Если у вас легаси и вам очень хочется перейти на новую версию php, но нет времени, используйте Rector. Если разработчики из вашей команды не могут договориться об общем code-style, а тратить время на ревью не хочется, используйте Rector.
https://github.com/rectorphp/rector
Если у вас легаси и вам очень хочется перейти на новую версию php, но нет времени, используйте Rector. Если разработчики из вашей команды не могут договориться об общем code-style, а тратить время на ревью не хочется, используйте Rector.
https://github.com/rectorphp/rector
GitHub
GitHub - rectorphp/rector: Instant Upgrades and Automated Refactoring of any PHP 5.3+ code
Instant Upgrades and Automated Refactoring of any PHP 5.3+ code - rectorphp/rector
#advanced
В последнее время тема статического анализа очень популярна среди php разработчиков. Есть популярные инструменты вроде psalm, phpstan, phan и другие, которые помогают следить за выводом типов, за наличием безопасных проверок и многим другим. Но зачем это нужно разработчикам на языке с динамической типизацией? Об этом и многом другом вы узнаете из доклада.
https://www.youtube.com/watch?v=sf39f2q15cU
В последнее время тема статического анализа очень популярна среди php разработчиков. Есть популярные инструменты вроде psalm, phpstan, phan и другие, которые помогают следить за выводом типов, за наличием безопасных проверок и многим другим. Но зачем это нужно разработчикам на языке с динамической типизацией? Об этом и многом другом вы узнаете из доклада.
https://www.youtube.com/watch?v=sf39f2q15cU
#junior
Отрывок из книги Матьяса Нобака "PHP для веба" про исключения и обработку ошибок. Будет полезно в основном начинающим разработчикам.
https://matthiasnoback.nl/2021/02/excerpt-php-for-the-web-error-handling/
Отрывок из книги Матьяса Нобака "PHP для веба" про исключения и обработку ошибок. Будет полезно в основном начинающим разработчикам.
https://matthiasnoback.nl/2021/02/excerpt-php-for-the-web-error-handling/
matthiasnoback.nl
Excerpt from PHP for the Web: Error handling
Chapter 11: Error handling | Producing an error | Using different configuration settings in production | PHP errors | Summary
#junior
Почему лучше не использовать функцию empty и какие есть альтернативы.
https://beberlei.de/2021/02/19/when_to_use_empty_in_php_i_say_never.html
Почему лучше не использовать функцию empty и какие есть альтернативы.
https://beberlei.de/2021/02/19/when_to_use_empty_in_php_i_say_never.html
www.beberlei.de
When to use empty in PHP? I'd say never
This article contains a list of alternatives to use instead of empty expression.
#advanced #oop
Как на самом деле должны выглядеть объекты, чтобы они отличались от структур и процедур. Рассказывает и показывает Дмитрий Елисеев.
https://elisdn.ru/blog/142/structs-or-objects
Как на самом деле должны выглядеть объекты, чтобы они отличались от структур и процедур. Рассказывает и показывает Дмитрий Елисеев.
https://elisdn.ru/blog/142/structs-or-objects
elisdn.ru
Структуры с процедурами или объекты?
Сравнение процедурной, функциональной и объектно-ориентированной парадигмы. Отделение объектов от структур и процедур. Введение понятия сервиса.
#advanced #refactoring
Пару советов от Матьяса Нобака о том, как начинать что-то рефакторить.
https://matthiasnoback.nl/2021/02/refactoring-prepare-to-stop/
https://matthiasnoback.nl/2021/02/refactoring-set-the-right-goal/
Пару советов от Матьяса Нобака о том, как начинать что-то рефакторить.
https://matthiasnoback.nl/2021/02/refactoring-prepare-to-stop/
https://matthiasnoback.nl/2021/02/refactoring-set-the-right-goal/
matthiasnoback.nl
Successful refactoring projects - Prepare to stop at any time
Refactoring projects | Short-lived branches | What if we have to stop now? | Conclusion
#advanced #refactoring
Продолжение темы рефакторинга от Матьяса Нобака: метод Микадо.
https://matthiasnoback.nl/2021/02/refactoring-the-mikado-method/
Продолжение темы рефакторинга от Матьяса Нобака: метод Микадо.
https://matthiasnoback.nl/2021/02/refactoring-the-mikado-method/
matthiasnoback.nl
Successful refactoring projects - The Mikado Method
Bottom-up development | Top-down development | The Mikado Method | You can stop at any time | Cleaning up and modernizing code: not a prerequisite | Conclusion
#advanced
Сейчас активно развивается тренд про DDD, чистую архитектуру и другие методологии, частично или полностью проповедующие «очищение» бизнес-кода от инфраструктуры. Может показаться, что такие требования принуждают отказаться от фреймворка, однако это не так. Преимущества использования фреймворков хорошо описал Матьяс Нобак:
https://matthiasnoback.nl/2021/02/should-we-use-a-framework/
Сейчас активно развивается тренд про DDD, чистую архитектуру и другие методологии, частично или полностью проповедующие «очищение» бизнес-кода от инфраструктуры. Может показаться, что такие требования принуждают отказаться от фреймворка, однако это не так. Преимущества использования фреймворков хорошо описал Матьяс Нобак:
https://matthiasnoback.nl/2021/02/should-we-use-a-framework/
matthiasnoback.nl
Should we use a framework?
Matthias Noback - Blog | About software development
#advanced #library
Список стандартных функций из нестандартной библиотеки. В данной библиотеке реализованы практически все стандартные PHP функции, но с улучшенной типизацией, полностью покрытые статическим анализом и с некоторыми дополнительными возможностями: ассерт типов, проверка инвариантов и обработка ошибок.
https://github.com/azjezz/psl
Список стандартных функций из нестандартной библиотеки. В данной библиотеке реализованы практически все стандартные PHP функции, но с улучшенной типизацией, полностью покрытые статическим анализом и с некоторыми дополнительными возможностями: ассерт типов, проверка инвариантов и обработка ошибок.
https://github.com/azjezz/psl
GitHub
GitHub - azjezz/psl: 📚 PHP Standard Library - a modern, consistent, centralized, well-typed, non-blocking set of APIs for PHP programmers
📚 PHP Standard Library - a modern, consistent, centralized, well-typed, non-blocking set of APIs for PHP programmers - azjezz/psl
#library
Если вы выбираете для себя библиотеку по конвертации html в markdown и обратно, в этой статье вы найдете список наиболее популярных библиотек со сравнительными характеристиками: самая быстрая, самая гибкая и наиболее поддерживающая все теги маркдауна библиотека.
https://php.watch/articles/php-markdown-libraries
Если вы выбираете для себя библиотеку по конвертации html в markdown и обратно, в этой статье вы найдете список наиболее популярных библиотек со сравнительными характеристиками: самая быстрая, самая гибкая и наиболее поддерживающая все теги маркдауна библиотека.
https://php.watch/articles/php-markdown-libraries
PHP.Watch
Best Markdown libraries for PHP
A comparison of features and performance of Markdown processing libraries for PHP.
#advanced
Матьяс Нобак учит, как тестировать контроллеры, если вы соблюдаете архитектуру Портов и Адаптеров в своем приложении.
https://matthiasnoback.nl/2021/03/testing-controllers-when-you-have-a-decoupled-core/
Матьяс Нобак учит, как тестировать контроллеры, если вы соблюдаете архитектуру Портов и Адаптеров в своем приложении.
https://matthiasnoback.nl/2021/03/testing-controllers-when-you-have-a-decoupled-core/
matthiasnoback.nl
Testing your controllers when you have a decoupled core
Ports and adapters | Left-side adapter tests | Three alternatives | Using the application mock when testing
#advanced #rfc
Наконец-то. Rfc от Никиты Попова предлагает использовать выражения с new в свойствах (статических и нет):
class Test {
public static $prop = new Foo;
public $prop = new Foo;
}
https://wiki.php.net/rfc/new_in_initializers
Наконец-то. Rfc от Никиты Попова предлагает использовать выражения с new в свойствах (статических и нет):
class Test {
public static $prop = new Foo;
public $prop = new Foo;
}
https://wiki.php.net/rfc/new_in_initializers
#advanced #video
Антон Титов, автор RoadRunner и Spiral, рассказывает про temporal.io (сервис для оркестрации сложными и продолжительными бизнес-операциями) и их php sdk.
https://www.youtube.com/watch?v=0NCMEaFMj_M
Антон Титов, автор RoadRunner и Spiral, рассказывает про temporal.io (сервис для оркестрации сложными и продолжительными бизнес-операциями) и их php sdk.
https://www.youtube.com/watch?v=0NCMEaFMj_M
YouTube
Оркестрируй это! Описываем сложные бизнес процессы на PHP - Антон Титов (Spiral Scout)
В современной разработке мы постоянно сталкиваемся с микросервисной архитектурой. Но вскоре после старта разработки (особенно на масштабировании проекта) гарантированно возникают проблемы, о которых умалчивают евангелисты подхода, тем не менее поиск по ним…
#junior
Многие начинающие разработчики сталкиваются с непониманием работы сессий. И неудивительно, выбрав для первого изучения фреймворк, а не язык, разработчики упускают из виду самые основы веб-разработки. Эта исчерпывающая статья расскажет про нативный механизм сессий, про распространённые ошибки, про нестандартные возможности и многом другом.
https://anton.shevchuk.name/php/php-for-beginners-session/
Многие начинающие разработчики сталкиваются с непониманием работы сессий. И неудивительно, выбрав для первого изучения фреймворк, а не язык, разработчики упускают из виду самые основы веб-разработки. Эта исчерпывающая статья расскажет про нативный механизм сессий, про распространённые ошибки, про нестандартные возможности и многом другом.
https://anton.shevchuk.name/php/php-for-beginners-session/
Anton Shevchuk
PHP для начинающих. Сессия
Всем хорошего дня. Перед вами первая статья из серии PHP для начинающих разработчиков. Это будет необычная серия статей, тут не будет echo "Hello World", тут будет hardcore из жизни PHP программистов с небольшой примесью "домашней работы" для закрепления…
#advanced
Нужны ли настраивать статический анализ на максимум в тестах?
https://matthiasnoback.nl/2021/03/do-tests-need-static-analysis-level-max/
Нужны ли настраивать статический анализ на максимум в тестах?
https://matthiasnoback.nl/2021/03/do-tests-need-static-analysis-level-max/
matthiasnoback.nl
Do tests need static analysis level max?
Why not? | 1. Tests are messy in terms of types | 2. Static analysis is slow | 3. Production code is more important because it gets deployed | Why yes? | 1. Mock types can easily be improved | 2. Static analysers have a cache | 3. Test code is just as important…
#advanced
FFI уже давно зарелижен и используется самыми отъявленными разработчиками. Если вы не успеваете за событиями, предлагаем к прочтению исчерпывающую статью на данную тему:
https://thephp.website/en/issue/php-ffi/
FFI уже давно зарелижен и используется самыми отъявленными разработчиками. Если вы не успеваете за событиями, предлагаем к прочтению исчерпывающую статью на данную тему:
https://thephp.website/en/issue/php-ffi/
thephp.website
Complete guide to FFI in PHP
By using FFI your PHP programs will be able to use libraries written in C, Rust, Golang or any other language capable of producing an ABI. Here's how!
#advanced #rfc
PHP все больше соответствует требованиям современных языков. Недавно в него добавили юнион-типы, укороченный конструктор, атрибуты. Теперь есть предложение добавить пересечение типов и короткие функции, как в котлине.
https://github.com/Girgias/intersection-types
https://wiki.php.net/rfc/short-functions
PHP все больше соответствует требованиям современных языков. Недавно в него добавили юнион-типы, укороченный конструктор, атрибуты. Теперь есть предложение добавить пересечение типов и короткие функции, как в котлине.
https://github.com/Girgias/intersection-types
https://wiki.php.net/rfc/short-functions
GitHub
GitHub - Girgias/intersection-types: PHP RFC for pure intersection types
PHP RFC for pure intersection types. Contribute to Girgias/intersection-types development by creating an account on GitHub.
#advanced
Подробная серия постов про паттерн посетитель и цель его применения на примере PHP.
https://lorisleiva.com/nodes-and-the-visitor-pattern
Подробная серия постов про паттерн посетитель и цель его применения на примере PHP.
https://lorisleiva.com/nodes-and-the-visitor-pattern
Loris
Nodes and the Visitor pattern
Learn why, when and how to structure your data as a cluster of nodes and how to execute various operations on that cluster via external visitors.