Как правильно разделить задачи между внешним и внутренним интерфейсом? - PullRequest
0 голосов
/ 25 апреля 2020

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

Сначала я реализовал логику c в Python. Он работает в терминале, печатая заметки построчно и затем ожидая команды.

Это хорошая идея, чтобы хранить все логи c на сервере и использовать JS только для рендеринга элементов и отправки команд на сервер?

Например, если я хочу переместить всю папку в другую папку, есть два способа сделать это:

  • Способ 1: с Python, который получает команда из JS 'переместить папку x в папку y', обработать ее и отправить результат для рендеринга.

  • Способ 2: С JS, который затем должен понять все структура папок и лог c. В этом случае приложение будет использовать сервер только для хранения данных.

У меня такое ощущение, что способ 2 (использование JS для понимания всех логи c и Python только для сохранения данных) более уместен, но это означает, что я приходится переписывать все с нуля.

Является ли способ 1 также разумным?

Большое спасибо заранее!

1 Ответ

1 голос
/ 25 апреля 2020

Это зависит от приложения, которое вы создаете.

Например, если вы хотите отобразить тысячи данных в файле html, а данные хранятся в файле json. Если вы отправите файл html и файл json клиенту с сервера, то на стороне клиента вы запустите скрипт, который читает файл json и отображает его в html, тогда он будет работать медленнее, поскольку клиентское устройство может быть не таким мощным, как сервер.

Так что для повышения производительности используйте тяжелые задачи на стороне сервера, это может привести к немного большему использованию inte rnet, поскольку, поскольку у клиента нет данных в отформатированном виде, всякий раз, когда должно быть выполнено новое задание на данные, вы должны запросить сервер снова.

Но в противном случае вы можете сохранить inte rnet и немного снизить производительность. Здесь вы можете выполнять некоторые сложные задачи на стороне клиента.

Это также зависит от того, какое устройство используется на стороне клиента.

...