subject: Об используемых технологиях
08.11.2021 16:02
Esenin Pavel (tgi,1)
Немного об используемых технологиях. Все данные, необходимые для работы, генерируются на лету. Никаких статических файлов нет. Станция работает на Django 3 + sqlite. ОС - Ubuntu 20.04 LTS (да, возможно, кто-то скажет, что это "не серверная ось" и все такое прочее - не собираюсь никому ничего доказывать). Все это хозяйство живет на VPS (4 Gb ram/60 GB hdd). На том же VPS имеются и другие проекты, но все сосуществуют мирно, да и ресурсы особо не едят.
Сообщения хранятся в базе как в кодированном виде (base64), так и открытым текстом. Сделано так для совмещения приятного с полезным: с одной стороны, станция может отдавать кодированные сообщения практически мгновенно и в любых количествах, т.к. они уже есть в готовом виде. С другой стороны, наличие тех же сообщений в открытом виде дает возможность быстрого доступа непосредственно к тексту сообщения и остальным его полям, что позволяет производить сортировку, делать различные выборки и аналитику. Конечно, можно было бы дополнительно задействовать и такие вещи как Elasticsearch, например, но такой необходимости пока не вижу. Может быть, когда количество сообщений в сети достигнет нескольких миллионов (ну вдруг), тогда может быть. Но не сейчас.
Хранение паролей организовано достаточно секьюрно - хеш + salt. Ничего не хранится в открытом виде. Но и, как следствие, восстановить забытый пароль невозможно - только задать новый. В приципе все готово для создания регистрации на станции. Сейчас можно это сделать вручную, а в будущем планируется вынести ее в веб-интерфейс. Не знаю насколько это будет востребовано, но если есть такая возможность - почему бы и не сделать.
По поводу кода - скорее всего я его выложу на github в свободный доступ, мне не жалко поделиться с хорошими людьми :) Но для этого, во-первых, надо реализовать все возможности, положенные по документации и, во-вторых, привести код к более-менее приличному виду, т.к. то как есть сейчас выкладывать просто неприлично. Не то, чтобы оно совсем страшно, но как-то корявенько, как мне кажется.
--------------------------------------------------------------------------------