Здравствуйте!
Я начинающий Python-программист и недавно я столкнулся с проблемой оценки собственной работы.
Я имею дело с интернет магазином, который построен на Django иодной CMS для Django. Он очень медленно работает и моя задача в том, чтобы оптимизировать производительность сайта.
Еще замечу, что все модули на которых построен сайт довольно устаревшие, например используется Django 1.3. А так же используются довольно “нестандартные” приемы в написании кода - например Django-приложение у сайта имет имя с дефисом, тогда как в Python запрещено импортировать имена с дефисами (это вызывает Syntax error). И вот все же сайт каким то образом работает, и вся система построена в обход этого ограничения. Или например в один из сторонних модулей, использующихся на сайте, внесены многочисленные изменения и т.о миграция на новую версию становится многократно более сложной.
Кое что я уже сделал по этому проекту - в ходе просмотра кода я обнаружил что в проекте есть одна подозрительная функция, которая используется для того чтобы делать параметризованные запросы к каталогу товаров. Там был цикл, внутри которого было несколько запросов к базе. В ходе профайлинга мои подозрения подтвердились - в результате своей работы он мог генерировать до 15 тысяч запросов для загрузки одной страницы. Это было нужно для сопоставление данных о товаре из одной таблицы с данными из двух других. Я вышел из положения, вставив “ручное” кеширование перед циклом и запросы внутри цикла заменив на обращения к этому кешу. И соответственно количество запросов нормализовалось.
И за эту оптимизацию я взял 2к рублей.
Теперь же мне предстоит обновить модули сайта - то есть сладить с изменениями в структуре БД в новых версиях модулей, как то решить проблему с обновлением кастомизированного модуля, и плюс еще куча неодиданных проблем, которые скорее всего возникнут при обновлении системы построенной на очень старых модулях.
Как вы думаете - нормальной ли была цена за первую работу? И какого порядка должна быть цена второй?