Переделка движка + чистка кода

Иван20 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
20.04.2005

Требуется переписать движок сайта .

Сроки: ASAP, желательно уложиться в две-три недели. Данная работа является первичной переделкой системы, есть потребность в большом объеме последующих работ на постоянной основе, так что непременным условием является Ваше желание и возможность поддерживать и развивать систему в дальнейшем.

Что не устраивает?

1. Система писалась без единого плана, тремя начинающими кодерами, со всеми вытекающими последствиями...

Нет единого стандарта кодирования (имена констант, функций, переменных и т.п.), значения задаются прямо в коде, сообщения об ошибках выдаются разными способами (то отдельной страницей, то отдельным сообщением, то страницей, вложенной в страницу), вместо выноса в отдельные переменные многие моменты написаны неоптимально и видно что писались разными людьми.

SQL запросы неоптимальны (например SELECT * вместо SELECT field_1,..., field_n). Подозреваю, что кое-что может быть не в порядке и с безопасностью, возможно какие-то дополнительные проверки данных форм и т.п надо сделать или что-то еще.

Что еще не так с точки зрения профессионала - жду замечаний от Вас, от Вас же ожидаю и исправлений.

2. Нет разделения кода и дизайна, нет выноса текста в языковые файлы, нет выноса других важных настраиваемых параметров (названий файлов, шаблонов урлов для вызова страниц) в отдельные конфигурационные файлы. Все это не позволяет быстро порождать клоны сайта с другим дизайном, текстами и названиями файлов.

3. Возможно структура базы данных неоптимальна. В частности, таблица user содержит слишком много столбцов и может быть разделена на 3-4 таблицы.

4. Нет разделения пользователей на группы с разными полномочиями.

5. Для записи статических файлов на диск используются разные функции, проще будет использовать кэширование в Smarty.

Итак, что нужно сделать, кратко.

1. Как уже писал, стандартизовать код ( возможно, PEAR, хотя мне больше нравится http://docs.phpgroupware.org/contrib/coding_standard.txt ) и оптимизировать на предмет безопасности, скорости, \"красоты\" (лаконичности, читабельности, удобства). Вам же в последующем с этим кодом должно быть удобно работать.

2. Вынести все тексты в переменные сгруппированные в отдельные языковые файлы.

3. Отделить html от php - дизайн всех страниц должен парситься из шаблонов (Smarty).

4. Создать группы пользователей, задать права доступа к модулям (см. след. пункт) для разных групп пользователей.

5. Присвоить каждому скрипту принадлежность к определенному модулю, для авторизации доступа по группам пользователей.

6. На данный момент динамические урлы переписываются в статические через apache rewrite. Нужно создать функцию, которая по заданному шаблону создает и парсит в html код ссылок статические урлы. Например, вместо /index.php?cat_name=north_west&sexюmale подставит /escorts/female/north_west.html. Шаблон должен определять какие слова, в какой последовательности, через какие разделители, будут использованы в статическом урле.

Например, изменением двух-трех переменных в конфигурационном файле должен легко порождаться любой из следующих урлов для подстановки на страницы

/escorts/female/north_west.html

/female_providers/north_west.html

/female_escort_service/north_west.html

/north_west/female_escorts/

7. Включить кэширование файлов в Smarty, вместо существующих функций сохранения файлов. При заходе поискового робота (googlebot, slurp), выдавать страницу без проверки ее давности.

8. Аутентификацию пользователя вести по id, а не по email. Email и пароль не писать в cookies, сделать через php сессии.

9. Разделить таблицу user на несколько (user_login, user_data, user_stats).

Более развернутое задание (детали по каждому пункту) сообщу после договоренности о работе.

Как делать

Возможны любые целесообразные изменения системы (переименования, перемещения, слияния, добавления, удаление переменных/функций/файлов и т.п.). Важным является то, чтобы конечный вид для посетителя оставался неизменным и функциональность сайта не уменьшалась.

Первым этапом работы является переделка ядра и общедоступных скриптов. Вторым этапом, переделка административной части (это уже отдельная история с отдельной оплатой).

Первичное тестирование системы должно быть осуществлено Вами (в смысле, после написания кода, Вы хотя бы должны пройтись по установленной системе и убедиться что формы отсылаются, ссылки работают, тексты все врезаны и т.п.). Я в данном случае выступаю заказчиком, а не тестором.

От Вас ожидаю

Для выбора исполнителя от Вас ожидаю следующие данные:

Ориентировочные сроки исполнения (от и до, в зависимости от).

Ориентировочная цена (от и до, в зависимости от).

Ваши расценки за час рабочего времени.

Примеры Ваших работ, краткое описание опыта. Наличие опыта работы со Smarty.

Ваше географическое положение.