заполнение данных и манипулирование ими во внешнем и внутреннем интерфейсе

У меня очень общий вопрос. Например, у меня есть таблица сотрудников, которая включает имя, адрес, возраст, пол, отдел и т. д. Когда пользователь хочет увидеть общую информацию о сотрудниках, мне не нужно извлекать целые столбцы из БД. Сначала я хочу показать общую информацию о сотрудниках, сгруппировав имена сотрудников по отделам. И затем пользователь может выбрать одного конкретного сотрудника, если он/она более заинтересован. Чтобы реализовать это, какой подход будет лучше.

1) Примените два разных API, которые будут давать два разных результата данных, применяя разные запросы. Поэтому, если я выберу этот подход, даже несмотря на то, что мне придется вызывать два разных API, он кажется эффективным.

2) Применить один API, который будет давать один результат данных, включая целые столбцы, относящиеся к сотруднику, даже если общая информация о сотруднике не требует полной подробной информации о сотруднике. Как только я получу эти данные, я могу переформатировать информацию о сотрудниках, манипулируя уже извлеченными данными из внешнего интерфейса в соответствии с различными потребностями.

Обычно какой подход используют разработчики между 1) и 2)? Я думаю, 1) имеет смысл, но API будет слишком специализированным, а не обобщенным. Желателен ли способ манипулирования данными, полученными с внутренней стороны (RESTful), на внешней стороне (Angular 2)? Какой подход предпочтительнее: создавать относительно большее количество специализированных API или манипулировать данными во внешнем интерфейсе сразу после получения всех данных? Если есть какие-то критерии, какой подход, на каком основании я должен учитывать? Это правильное мышление? Если у кого-то есть какое-то представление об этом, не могли бы вы дать какое-то руководство?


person Anna Lee    schedule 12.01.2017    source источник


Ответы (1)


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

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

Что касается второго варианта, как вы указали, наличие обобщенных API-интерфейсов - это хорошо, поэтому, чтобы ускорить процесс разработки и получить более чистый набор API-интерфейсов, вы можете взамен тратить немного интернет-трафика.

Вам нужно сбалансировать свои потребности.

  • Это оптимизация ресурсов? Как скорость с точки зрения запросов к базе данных и интернет-запросов.
  • Или это время разработки? Хватит ли у вас времени, чтобы внедрить все эти штуки и оптимизации?
person Marcelo Henrique    schedule 12.01.2017