web-dev-qa-db-fra.com

Si la transformation des données doit-elle être à l'avant ou à l'arrière de ce scénario?

Disons que j'ai des données dans un format JSON. Disons que le format JSON est le suivant:

{title,
resources[] }

Le tableau des ressources contient des informations sur un graphique. Mais il devrait être itéré et converti à un format différent.

Le problème

Compte tenu de la taille de la matrice de ressources est de 100 ans, cela devrait être bon et raisonnable pour que la conversion se produise à l'avant. Qu'en est-il de si la taille des matrices de ressources est beaucoup plus grande? Pourrait-il y avoir un seuil dans lequel l'itération et la conversion des données d'un format à un autre devrait-il se produire à l'arrière?

J'ai un raisonnement substantiel pour réussir la responsabilité de la conversion à l'avant, mais je me demande si cela va échouer?

Question complémentaire

Quels sont les principaux axes ma décision où cette conversion devrait résider sur le point? J'ai trouvé quelques réponses ici et ici qui étaient de bonnes réponses mais je pourrais utiliser quelques arguments plus solides.

6
Cap Barracudas

La décision de transformer la transformation sur le front-end ou le backend devrait dépendre beaucoup plus sur le type de transformation que vous souhaitez faire plutôt que le nombre d'éléments impliqués dans la transformation.

Comme mentionné dans la Réponse de @ewan , sauf si vous savez que votre utilisateur utilisera des périphériques à faible consommation pour accéder à votre application, vos utilisateurs auront suffisamment de puissance de traitement pour faire presque toute transformation que vous les jetez.

D'autre part, si la transformation implique la suppression de données sensibles, cela devrait vraiment être effectué sur le backend.

De plus, si la transformation réduit considérablement la quantité de données, il serait préférable de le faire sur le backend et de réduire la bande passante de réseau dont vous avez besoin.

Transformer les données est pleine fonctionnalité soufflée en soi. En fait, on pourrait soutenir que tous les logiciels utilisent des données. Je présume que nous parlons de transformer ce que le front nous donne à quel terme les besoins en arrière.

Vous définissez un point de performance indiquant que le front-end peut gérer un tableau de taille 100. C'est bon à savoir, mais nous ne manquons toujours pas d'informations pour faire appel à l'appel. Nous avons besoin d'un autre point de performance indiquant que le back-end peut gérer un tableau de taille X (avec des utilisateurs simultanés Y).

Avec ces informations, nous pourrions prendre des décisions qui augmenteraient la capacité globale du système. Sans cela, nous tenons juste à nos dogmes et que nous espérons.

Il y a de bons dogmes, bien sûr, qui vous donnent de bons objectifs pour diriger, mais que votre question indique que la performance est votre principale préoccupation, je vous conseille de cesser de penser à quoi et concentrez-vous sur le montant.

Avec qui répondit, regardez ce que la poursuite de la performance a coûté votre conception. Nous avons ces dogmes pour une raison. Ewan a une bonne raison de mettre la charge de travail sur l'utilisateur. Quand y est gros, c'est une raison vraiment bonne raison. Mais les coûts se présentent sous de nombreuses formes. Perte de lisibilité et de flexibilité Coût Développeur Délai qui peut facilement l'emporter sur les coûts du centre de données. La perte de sécurité peut vous coûter la société.

Chaque pièce de code réussi jamais écrit est un compromis. Je n'ai jamais rien vu de vivre aux idéaux. J'ai vu des cauchemars qui ont désespérément besoin d'idéaux. N'utilisez pas de performance comme une excuse pour vous cacher à partir de ces idéaux.

2
candied_orange