Search
Write a publication
Pull to refresh
4
0
Негрей Сергей @snegprog

Пользователь

Send message

Статический анализ. PHPStan

Level of difficultyEasy
Reading time4 min
Views11K

Цель статьи - помочь разработчикам которые много слышали про статический анализ, но пока что так и не поняли что это такое и с чем его едят.

Статический анализ

Анализ программного обеспечения, производимый без реального выполнения исследуемых программ, процесс выявления ошибок и недочетов в исходном коде программ. Список языков для которых существуют статические анализаторы кода достаточно велик - Си, Си++, C#, Java, Ada, Fortran, Perl, Ruby и т.д.  Компиляторы различных языков программирования во время своей работы так же запускают статические анализаторы (как правило усеченные версии) которые находят ошибки. Т.о. использование статичского анализа, в поисках ошибок, приравнивает (а может даже и превосходит, все зависит от используемого анализатора и стиле написания приложения) PHP к компилируемым языкам программирования.

Сообщество PHP прикладывает значительные усилия в сторону развития статического анализа, так типы mixed и never были добавлены для лучшего анализа программами статического анализа.

Необходимость статического анализа

Статический анализ позволяет найти уйму различных проблем в коде, начиная от неправильного использования конструкций языка, заканчивая опечатками.  При проведении code review позволяет сосредоточиться на просмотре реализации логики программы, а не на поиске синтаксических ошибок, опечаток, ошибок в данных, мертвый код и т.п.

Читать далее

Качество кода, инструменты в помощь

Reading time2 min
Views5K
Добрый день, уважаемые хабровчане!

В последнее время в сообществе PHP часто слышу обсуждения по поводу code review, решил внести свой вклад, хочу рассказать о возможностях которые предназначены упростить вам жизнь и улучшить качество кода в вашем проекте. Актуально не только для PHP, подобные инструменты, описанным здесь, существуют также и для других языков программирования, например я узнал о таковых когда участвовал в проекте на NodeJS.
Читать дальше →

Абстрактный тип данных. Часть 2: Управление данными

Reading time5 min
Views2.3K

В первой части описал чем руководствоваться при определении Типа Данных (далее ТД). В данной части хочу рассказать что такое Абстрактный Тип Данных (далее АТД), как это помогает решать логически сложные задачи (что подразумевается под логически сложными задачами смотрите первую статью) и какие мы получаем преимущества.

Читать дальше →

Абстрактный тип данных. Часть 1: Данные (Тип Данных)

Reading time9 min
Views15K
imageВ данном цикле статье хочу поделиться приемом, который помогает мне решать весьма и весьма сложные логические задачи. Под сложной логической задачей подразумевается задача с большим количеством исходных параметров которые влияют на итоговый результат и так же могут влиять друг на друга, где сложно организовать корректное взаимодействие этих параметров и просто можно запутаться как в них, так и в логике организации кода. Начать хочу с данных, а управление данными будет во второй части.

Читать дальше →

Information

Rating
10,269-th
Date of birth
Registered
Activity