Nginx
- Не используется сжатие запроса (gzip)
- Много мусора (дубль параметры, параметры по умолчанию)
- Часть настроек (относительно приложения) вероятно являются артефактами т.к, не выполняются / не используются
App:
В целом приложение написано грязно, конфиденциальные данные закоммичены в VCS (например, robotPassword в configs/application.ini)
(Например, AdminModel->searchByUser). Скорее всего это частично связано с некорректной схемой БД
- Почти везде отсутствует стандартная документация входящих/исходящих параметров с помощью PHPDoc (или аналогичных)
- Часть документации неконсистентная
- Объявление переменных в разных стилях (underscore / camelCase)
- Код грязный и написан в разных стилях - пробелы и отступы где как, комментарии не по делу. Вероятно не пользовались линтером.
- В шаблон часто пробрасывается больше данных чем нужно, в некоторых местах хардкодом вычищаются (“чтобы не мозолили глаза в шаблонах”) (не специальной выборки для рендеринга)
- ООП реализовано формально, Про наследование ничего не слышали, много однотипной дубль логики. Часть геттеров и сеттеров отсутствует. (Например,
- GridcancelModel)
- Работа с сфинксом - хардкод. Нет singleton’a соединения - создается каждый раз новое. Параметры подключения насыпаны прямо в коде (ArticleModel)
- Код всего проекта не соответствует общепринятым стандартам PSR
- Функции слишком раздутые (реализации >= 100 строк)
- Работа с zend-db в некоторых местах расходится с рекомендациями и ограничениями офф. документации -> появление sql-инъекций и неоптималые выборки
- Отсутствуют Unit, Acceptance тесты.
- Нет нормальных скриптов автосборки (увидел часть для деплоя на прод, но это хардкод на коленке - пользоваться нормально невозможно)
- Модель MVC размыта, логика во вьюхах намешана. Современный подход преполагает использование какого-либо шаблонизатора c пробрасыванимаем в него параметров для последующей отрисовки. Вызов функций из шаблонов - bad practice.
- Отсутствует система для билда статики. (gulp, webpack, bower и т.п.)
- Качество js widget’ов оставляет желать лучшего - практически невозможно переиспользовать.
- Некорректная подгрузка шрифтов (должны подгружаться через font-face с 3 разными расширениями. нужно для того что максимальное количество браузеров смогло это поддерживать)
- В верстке намешаны вендорские (или их кастомизация) и пользовательские стили -> поддерживать также крайне сложно.
- Нет файла composer.lock