Skip to content

Instantly share code, notes, and snippets.

@vgoodvin
Last active August 29, 2015 14:04
Show Gist options
  • Save vgoodvin/e15b9f657adb903f4217 to your computer and use it in GitHub Desktop.
Save vgoodvin/e15b9f657adb903f4217 to your computer and use it in GitHub Desktop.
facepalm
* Composer не используется.
* Namespaces не используются.
* Лямбды не используются.
* Большинство таблиц в БД хранятся в MyISAM. Соответственно транзакций нет.
* Миграции БД не используются. (Запилить http://phinx.org/)
* Слой для работы с БД написан вручную, по коду рассыпаны вызовы устаревшей функции mysql_query
* Тесты не пишутся.
* Все построено на глобальных функциях, которые располагаются во включаемых файлах.
* Полным полно глобальных переменных.
* XSS как минимум на странице логина (/market) `"><script>alert('xss')</script><b style="`
* XSS на странице профиля провадейра и водителя. В любом поле ("><script>alert('xss')</script><b style=")
* SQL-injections
* Пароли в БД хранятся в отрытом виде
* Используется устаревшая функция mysql_query
* Заданы константы, но вместо них по прежнему используются magic numbers
* Классов нет, вместо них просто файлы с функциями.
* Комментариев к функциям примерно 0.0001%
* Захардкожен адрес сайта и возможно еще много чего
* По ходу выполнения несколько раз выполняется require на один и тот же файл
* MVC нет, другого удобного подхода нет, как и вообще здравого смысла
* Относительные пути к файлам везде где только можно
* CSS-стили скопированы с intraservice
* Подключили библиотеку pusher-php-server и добавили кастомный код в Pusher::trigger()
* Встретил функцию для перевода аргументов командной строки в $_GET-массив.
* Личный кабинет и админка не закрыты через https
* Нашел пример класса на php4.
* БД не нормализована, толковых индексов нет, внешних ключей нет, полно дубликатов. Дубликаты внутри таблицы и между разными таблицами. В таблице пользователей поле логина не является уникальным и содержит кучу дубликатов.
* Истерика вместо конструктивной критики.
* Ужасное высталение задач. Многочисленные ошибки и опечатки из-за чего трудно читать и понимать задачу.
Пример:
список водителей - телфонов линейный, если мы делаем схему, что в карточки водителя он можем ссылаться - добавлять телефон диспетчерской, по по признаку можем выявлять "диспетчерские" которые владеют нескольки машинами,
например есть собственник нескольких машин, он их купил они у него в собствернности, и есть например 5 водителей ,
соответственно в системе доабвлено 6 телефон = 1 собстенника (диспетчера) + 5 телефоно исполнителей по машинам
если конечные исполнители указывают что у них есть "главный" и они указывают телефон " собстенника (диспетчера)
цепочка замывкается базируясь на этой информации мы можем решать все послующие задачи
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment