Найти тему
Я познаю Питон

Баги, лаги и говнокод - первые результаты работы моего сайта

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

Визуализация программного бага
Визуализация программного бага

Сначала общие, небольшие итоги за неполных 5 дней:

  • 12 аккаунтов зарегистрировано на сайте (+ мои три аккаунта)
  • 8 пользователей решили хотя бы одну задачу
  • один человек решил все задачи

Хоть результаты небольшие, но пищу для размышления, а так же повод для изменений кода они мне приготовили.

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

Комикс про баги программирования
Комикс про баги программирования

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

Вторая ошибка связана с комментариями и сообщениями от пользователей. Оказалось, что ограничения длины полей в таблицах Джанго никак не регулируют возможность записать туда полотна длиной в один том "Войны и мира". А после такого эпоса, блок комментариев начинал безбожно лагать. Поэтому пришлось сделать ограничения на длину сообщения в html-коде и прикрутить, на всякий случай, обрезку сообщений на сервере.

Есть ещё пара неприятностей, которые пока не исправил, но знаю о них. Как их исправить, пока не придумал.

Инструкция по багам
Инструкция по багам

В целом, интересный получился опыт первого "релиза". В силу отсутствия опыта я не учел многих деталей. Забыл тестировать некоторые элементы так, будто хочу их сломать. В итоге, получил баги, лаги.. и обвинения в говнокоде от моих фанатов.=D

Не такое использование я планировал для сообщений об ошибках
Не такое использование я планировал для сообщений об ошибках

P.S. Спасибо всем, кто поучаствовал. А тем, кто хочет посмотреть на мое первое приложение - ТЫК.