Describe architecture and code problems

ПроблемыРешениеВыгода
Неправильная структура файлов и наличие лишних (ненужных) файлов. (помойка) Усложняет поиск нужных модулей кода.Провести структуризациюУдобство в поиске (все лежит на своем месте).
Наличие "файлов-монстров" типа museums_db_wrapper.py, script_file.js. Усложняет читабельность кода, все валяется в одном месте, затрудняя поиск нужных модулей кодаРазбить большие файлы на логические модулиУлучшит скорость интеграции нового Back-end, поиск по коду.
Проблема с кэшем (точнее нынешнее его состояние). Чтобы объект из hypertext-admin попал в hypertext-mobaile необходимо перезагружать hypertext-mobaile, при этом загрузка происходит более 2 мин, а объектов в базе при этом ничтожное количество.Возможно проблема решится сама собой, если решить проблему ниже.Увеличится скорость, не придется перегружать постоянно сервер
Функции БД выполняются в python. Дублирование функций БД, как минимум не разумно, лишняя нагрузка на сервер, плюс тормоза, лишний код.Использовать возможности mongoDB.В разы увеличит скорость, избавимся от лишнего кода. Возможно сразу решит проблему с кэшем.
Проблема с редактором описаний в hypertext-admin. Все проблемы с кареткой, подсветкой тегов, вылезают из неправильного использования редактора. А точнее мы используем wysiwyg редактор, но не используем его функции. При этом, дублируем некоторый функционал, который идет в разрез с функционалом реализованным в wysiwyg. Это порождает все проблемы.
  1. Убрать редактор и написать свой.
  2. Переписать существующий редактор, изменив его логику для наших целей.
  3. отказаться от него вовсе.
  1. Решит проблему с кареткой
  2. Решит проблему с подсветкой тегов

 

Отсутствие комментариев в коде, замедляет разработку, если приходится копаться в чужом коде, либо в своем, написанным давным давно.Комментировать код, перед функцией (что делает, что принимает на вход, что возвращает), комментировать не очевидные строки кода.Улучшит скорость интеграции нового Back-end. И читабельность кода.
Неправильное использование Объектно-ориентированного языка python. Так как язык ОО, то следует его использовать как ООЯ.Использовать как ООЯУлучшит логику кода, разделения на модули, что позволит легче масштабировать систему.

Время: предположительно, чтобы решить данные проблемы, потребуется 6-8 полных рабочих дней

Итог:

Произведя рефакторинг проекта получим:

  • Удобную структуризацию файлов проекта
  • Читабельность кода
  • Поиск по коду
  • Масштабируем системы без лишних временных затрат
  • Увеличение производительности системы
  • Увеличение производительности работников
  • Уменьшится вероятность появления багов, и уменьшится время их исправления
  • Красивый легко поддерживаемый код

Не произведя рефакторинг проекта получим:

  • Сложность интеграции новых фич. С каждой новой фичей, все сложнее и сложнее интегрировать.
  • Увеличится вероятность возникновения багов, которые отнимут много времени при исправление
  • В перспективе, когда закончим проект, и реши произвести такой же рефакторинг, это отнимет чудовищное количество времени
  • Разработка проекта будет замедлятся из-за неудобной структуры, помойки в коде, и из-за отсутствие желания копаться в нем (отсутствие желание работать над проектом)
  • Потеря производительности системы, при увеличении функциональности