Расскажу, как нам удалось написать линтер, который получился достаточно быстрым, чтобы проверять изменения во время каждого git push и делать это за 5−10 секунд при кодовой базе в 5 миллионов строк на PHP. Мы назвали его NoVerify. NoVerify поддерживает базовые вещи вроде перехода к определению
Для PHP есть хорошие утилиты статического анализа: PHPStan, Psalm, Phan, Exakat. Линтеры хорошо выполняют свою работу, но очень медленно, потому что почти все написаны на PHP (или Java). Для личного использования или небольшого проекта это нормально, но для сайта с миллионами пользователей…
В статическом анализаторе NoVerify появилась киллер-фича: декларативный способ описания инспекций, который не требует программирования на Go и компиляции кода. Чтобы вас заинтриговать, покажу описание простой, но полезной инспекции: /** @warning duplicated sub-expressions inside boolean expression */ $x && $x;…
6 ноября 2014 года, Москва – Сбербанк запустил легкую версию своего интернет-банка «Сбербанк Онлайн» в социальной сети «ВКонтакте». Теперь пользователи «ВКонтакте» могут, не выходя из своего аккаунта, переводить деньги с карты на карту Сбербанка по номеру телефона, оплачивать мобильную связь, приобретать «валюту» социальной сети для себя и друзей «ВКонтакте». Чтобы воспользоваться «Сбербанк Онлайн» в «ВКонтакте», [...]