Philosophy of Software Design.epub
703.9 KB
#advanced #book
Замечательная книга на тему разработки правильного ПО. В книге вы узнаете про сложность ПО и как ее контролировать, про модульность (что такое хороший модуль), какие бывают абстракции, что такое сокрытие информации и почему это важно, а также почему нейминг - одна из сложных и важных вещей в разработке программ с хорошим дизайном.
Замечательная книга на тему разработки правильного ПО. В книге вы узнаете про сложность ПО и как ее контролировать, про модульность (что такое хороший модуль), какие бывают абстракции, что такое сокрытие информации и почему это важно, а также почему нейминг - одна из сложных и важных вещей в разработке программ с хорошим дизайном.
#laravel #junior
Роадмап для начинающих Laravel разработчиков от 2020-го года, но актуален также и для нынешнего.
https://raw.githubusercontent.com/Hasnayeen/laravel-developer-roadmap/master/images/roadmap.png
Роадмап для начинающих Laravel разработчиков от 2020-го года, но актуален также и для нынешнего.
https://raw.githubusercontent.com/Hasnayeen/laravel-developer-roadmap/master/images/roadmap.png
#advanced #laravel
Советы по оптимизации запросов к бд, если вы используете Laravel.
https://dudi.dev/optimize-laravel-database-queries/
Советы по оптимизации запросов к бд, если вы используете Laravel.
https://dudi.dev/optimize-laravel-database-queries/
dudi.dev
18 Tips to optimize laravel database queries | dudi.dev
These 18 laravel performance optimization tips for optimizing database queries will help you sky rocket your laravel application performance.
#advanced #composer
Надоело ждать PR в ваш любимый фреймворк или библиотеку? Особенно, если это PR в Laravel? Используйте плагин cweagans/composer-patches, который позволяет скачать патч из PR и начать его использовать как часть кода. Статья в поддержку идеи:
https://www.rias.be/blog/using-composer-patches
Надоело ждать PR в ваш любимый фреймворк или библиотеку? Особенно, если это PR в Laravel? Используйте плагин cweagans/composer-patches, который позволяет скачать патч из PR и начать его использовать как часть кода. Статья в поддержку идеи:
https://www.rias.be/blog/using-composer-patches
rias.be
Using composer patches | Rias.be
When you use software that is open source, you'll sometimes run into issues or small bugs that have already been fixed by the community in a PR or an issue, but have yet to be merged and/or released. If you're impatient and need that fix now, composer patches…
#laravel #middle
Интеграция MeiliSearch с Laravel Scout для реализации полнотекстового поиска.
https://tighten.co/blog/full-text-search-with-meilisearch-and-scout/
Интеграция MeiliSearch с Laravel Scout для реализации полнотекстового поиска.
https://tighten.co/blog/full-text-search-with-meilisearch-and-scout/
Tighten
Full-Text Search with MeiliSearch and Laravel Scout
Learn how to add full-text search to your Eloquent models using the free, self-hosted search engine MeiliSearch and Laravel Scout.
#advanced
Если ваш проект чуть больше, чем простой круд, то вы могли задуматься о правильном разделении зависимостей. Deptrac может помочь вам следить за тем, чтобы вы и разработчики из вашей команды не нарушали границ модулей вашего приложения.
https://github.com/sensiolabs-de/deptrac
Если ваш проект чуть больше, чем простой круд, то вы могли задуматься о правильном разделении зависимостей. Deptrac может помочь вам следить за тем, чтобы вы и разработчики из вашей команды не нарушали границ модулей вашего приложения.
https://github.com/sensiolabs-de/deptrac
GitHub
GitHub - deptrac/deptrac: Keep your architecture clean.
Keep your architecture clean. Contribute to deptrac/deptrac development by creating an account on GitHub.
#advanced #rfc
Черновик от Никиты Попова по добавлению аксессоров к свойствам объектов. Например, так может быть реализован доступ для получения свойства, но нельзя будет установить значение вне класса:
User {
public string $name { get; private set; }
public function __construct(string $name) {
$this->name = $name;
}
}
Больше примеров в rfc:
https://wiki.php.net/rfc/property_accessors
Черновик от Никиты Попова по добавлению аксессоров к свойствам объектов. Например, так может быть реализован доступ для получения свойства, но нельзя будет установить значение вне класса:
User {
public string $name { get; private set; }
public function __construct(string $name) {
$this->name = $name;
}
}
Больше примеров в rfc:
https://wiki.php.net/rfc/property_accessors
#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.