Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Продолжение темы о том, как не надо писать код
Форумы портала PHP.SU » Разное » Обсуждение статей » Продолжение темы о том, как не надо писать код

Страниц (1): [1]
 

1. esterio - 30 Марта, 2013 - 13:23:31 - перейти к сообщению
Продолжение темы о том, как не надо писать код ...

Недавно взяли большой проект, в котором различные части написаны на CacePHP, Yii, Wordpress, PhpBB (все написано в разное время и разными фрилансерами).
На данный момент в моих задачах стоит часть написана на Yii. О том с какими трудностями мне приходится сталкиваться я хотел написать.

Замена основной части ядра
- Было унаслидовано главные классы ядра, причем значительно изменен основной функционал. Поэтому не были доступны фильтры для доступа в контроллерах. Также удалена значительная часть фреймворка, что также не позволяло использовать встроенные возможности фреймворка.

Один контроллер административной части
- Все действия в административной части происходили в одном контроллере. Не были использованы встроенные возможности Yii для контоль доступа. Зато были частые проверки на то или это администратор, способствовало значительному дублирования кода. Для функций редактирования создание и удаление было использовано одно и то же action контроллера также влияло на дублирование кода. Также не было логического разделения клиенськои и административной частей.

Неграмотная проверка пользователя
- Так как основная таблица пользователей ввидносится к PhpBB, это было нагло зашито базу данных с таблицей пользователей (phpbb.phpbb_users), не позволяло легко менять название таблицы и базы.

Лишние проверки пользовательских данных способствовало лишним запросам к базе данных.
- В компоненте по работе с пользователем при каждом обращении по данные выполнялся запрос. Вместо того, чтобы один раз занести данные пользователя в защищенное свойство и использовать его в дальнейшей работе скрипта.

Массовое подавление ошибок
- Все данные, которые поступали извне (мисивы GET, POST, COOKIE, SESSION) брались без проверки на существование (было использовано подавления ошибок @). Это также часто способствовало лишним запросам и трудностям в видслидковувани ошибок.

PRIMARY KEY сричкою.
- Как известно гораздо лучше выбирать данные по числовым значениям в которых доступен также AUTO_INCREMENT

Дорогие программисты уважайте работу Ваших коллег. Старайтесь писать так, чтобы за вами можно было легко наращивать функционал.

П.С. предыдущий программист справился со своей задачей, но мысли про "линейкой по пальцам" не покидают меня.

 

Powered by ExBB FM 1.0 RC1