Программа++ — митапы, мастер-классы, встречи
Повышаем гибкость кода с помощью оценки цикломатической сложности и модульных тестов
В докладе я разберу такой показатель, как цикломатическая сложность системы. Низкая цикломатическая сложность методов обеспечивает хорошую читаемость кода, но хранит в себе подводные камни. Я выработал алгоритмический подход к структурированию кода, который основывается на оценке цикломатической сложности и модульном тестировании. Этот подход позволяет писать такой код, который легко поддается даже масштабным изменениям со стороны бизнеса и не теряет стабильности даже после многих циклов рефакторинга.
Этот подход прекрасно себя показал как в разработке нового функционала, так и при рефакторинге старого запутанного кода.
Модульный Laravel, или как собрать фичу в кучу
1. Структура файлов, генерируемая при создании Laravel-проекта, проблематична для проектов сложнее набора CRUD-ов. Файлы складываются по типам, и при работе с одной фичей приходится перелопатить несколько папок. Необходимость частичного выделения функционала в отдельный сервис превращается в головную боль.
2. Предлагается новый feature-based подход, основывающийся на группировке кода и шаблонов по фичам.
3. Для реализации этого подхода докладчиком создана библиотека, о которой речь также пойдёт в выступлении.
Laravel "на максималках"
Разработчики языка, баз данных и фрэймворков предоставляют широкий набор инструментов для увеличения производительности, позволяя при разработке коммерческих приложений сосредоточиться на бизнес логике.
Часть из этих инструментов - "бесплатны", другими словами, не накладывающими никаких дополнительных ограничений и требуют лишь правильного использования. Другие - представляют из себя компромисс с некоторыми ограничениями и увеличенной сложностью.
Laravel считается фрэймворком с "тяжёлым" bootstrap'ом, однако его можно значительно ускорить и даже полностью исключить необходимость bootstrap'а на каждый запрос.