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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Продолжение темы о том, как не надо писать код

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
esterio
Отправлено: 30 Марта, 2013 - 13:23:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Продолжение темы о том, как не надо писать код ...

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

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

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

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

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

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

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

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

П.С. предыдущий программист справился со своей задачей, но мысли про "линейкой по пальцам" не покидают меня.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Обсуждение статей »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB