l'architecture en couches Internet, pourquoi vous voulez séparer l'extrémité avant et arrière?

Après l'entreprise commune de service, l'extrémité arrière d'une structure typique du système décrit ci-dessus:

  • serveur web Obtenir des données de l'entreprise générale des services RPC Interface
  • biz service Grâce à l'interface RPC, des données de service acquises à partir d'une pluralité de données de base
  • service de données de base Récupérer des données à partir d'un db / cache séparé par DAO
  • db / cache stockage des données

Au fil du temps, l'architecture du système ne pas immuable, des affaires plus complexes, de plus en plus la révision, cette fois-couche serveur web, bien que l'utilisation de l'architecture MVC, mais beaucoup moins points de douleur Vous connaissez?

  • La poursuite effet brillant, et les exigences de compatibilité des périphériques élevées, ces exigences sont constamment tourmentés par l'utilisation de Java MVC Ingénieurs (Java, par exemple du papier)
  • Que ce soit un PC ou un téléphone mobile H5 ou APP, l'application d'affichage frontal des changements dans la fréquence beaucoup plus grande que la variation de la fréquence de la logique back-end (grâce à ceux qui aiment faire la révision du chef de produit), changer le modèle de vitesse ne sont pas comme les ingénieurs Java et bon travail

A cette époque, afin d'atténuer ces problèmes, en général La mise en place de front-end séparé secteur FE Pour être responsable de l'interaction avec le développement de l'émission, ses fonctions et back-end Java ingénieurs séparés, mais ne résout pas complètement les points de douleur:

  • Afficher un peu de changement, les ingénieurs en Java recompiler, paquet, en ligne, redémarrer tomcat, très faible efficacité
  • MVC Ingénieur Java d'origine est responsable de toute la recherche et le développement, est maintenant divisé en deux FE et Java, comme avant et arrière sont nécessaires à la recherche et le développement complet, afin de déboguer l'effet global ensemble, non seulement augmente le coût de la communication, tout élément du problème, peut conduire à projet extension

Plus précisément, regardez un exemple, le début du produit Seule la version PC , À laquelle le système suit une architecture en couches:

Client, serveur web, le service, très clair.

Comme le développement des affaires, Les produits doivent ajouter la version mobile , La version mobile et la version PC de la plupart de la logique d'affaires sont les mêmes, la seule La différence est relativement faible écran :

  • Informations indiquant le nombre de pièces sera relativement faible, qui est, lorsque le service d'appel de service, les paramètres entrants seront différents
  • Caractéristiques du produit sont relativement faibles, comme la plupart de l'appel de service, pas besoin d'appeler quelques services
  • Montrer, l'interaction sera différent

Étant donné que le calendrier est serré, la version mobile du serveur web est généralement comment venir?

Oui, La version PC de la copie du projet, puis faire une petite quantité de modification :

  • service de paramètres d'appel quelques changements
  • Comme la plupart des appels de service, appels de service pour se débarrasser de quelques
  • Modifié pour montrer l'interaction code correspondant

Affaires continue de se développer, produits APP dont ils ont besoin nouvelle version , La version APP et la version mobile exactement la même logique métier, la seule différence est la suivante:

  • La version mobile des données est renvoyée format html, la version retour APP format de données JSON, puis rendue localement

En raison d'un calendrier serré, la version APP du serveur Web est généralement comment venir?

Oui, La version mobile de la copie du projet, puis faire une petite quantité de modification :

  • L'assemblage de code des données HTML, modifier les données json assemblé

Ainsi, itérations, l'évolution, le développement, l'architecture deviendra comme ceci:

  • fin Est-PC, Mobile, APP
  • l'accès à serveur web Est une station PC, station de M, la station APP
  • Couche de service , Des services d'affaires générales et des services de données de base

Dépendance diagramme de cette architecture est pas correcte?

  • Les raccordements d'extrémité entre serveur web est très clair
  • La connexion entre le serveur Web et le service dans une toile d'araignée

PC / H5 / couche serveur Web La plupart des activités de l'APP est le même, ne sont pas les mêmes quelques logiques / présentation / interaction:

  • Une fois une interface de service RPC de légères variations, tous les systèmes serveur Web doivent être mis à jour pour modifier
  • Il y a beaucoup de code entre la copie serveur web
  • Une fois la copie de code, l'émergence d'un bug, une pluralité de sous-systèmes doivent mettre à jour la modification

Comment faire l'acquisition de données plus efficace, la façon de rendre la production de données et le découplage de la présentation des données séparent?

séparés avant et arrière d'abstraction hiérarchique est impératif.

Extrémités avant et arrière séparés par abstraction hiérarchique:

  • couche de présentation du site Afficher l'interaction avec Node.js, responsable des données, maintenu par FE
  • Couche de données du site , Web-serveur, responsable de la logique métier qui fournit une interface avec les données JSON, maintenu par l'ingénieur Java

Ces avantages sont les suivants:

  • la logique métier complexe et génération de données, que lors de l'écriture d'une couche de données sur le site, pas de code Copier
  • Les changements dans les interfaces de service sous-jacent, une seule station doit être mis à jour pour modifier la couche de données
  • S'il y a un service de sous-jacentes bogue, un seul site doit être mis à jour pour modifier la couche de données
  • couche de présentation du site peut être basée sur une forme différente du produit, en passant des paramètres différents, invoqué une interface de couche de données de site différent

En outre:

  • L'effet brillant de poursuite, et les exigences de compatibilité de l'appareil haute, pas plus troublé par l'ingénieur Java, accoster par un FE plus professionnel
  • Afficher un peu de changement, ne nécessite plus d'ingénieurs Java recompiler, paquet, en ligne, redémarrer tomcat
  • Après un bon accord interfaces JSON, développement séparé Java et FE, simulacres d'auto-test interfaces FE ne peut plus attendre que le FBI ensemble

conclusion :

quand Affaires plus complexes, de plus en plus de produits à la fin de la couche de présentation change plus vite, de plus en plus il y a beaucoup de code pour copier le niveau du site, la complexité de l'acquisition de données deviennent des points de douleur commune temps Extrémité avant et arrière du séparateur doivent être posés abstraite et de simplifier le processus d'acquisition de données, d'améliorer l'efficacité de l'acquisition des données, la complexité de l'amont de blindage sous-jacent.

Enfin, pour mettre l'accent sur deux points:

  • La nécessité d'une séparation de l'extrémité avant et arrière, et la complexité de l'entreprise, et le stade de développement liés aux entreprises, ne peut pas être généralisé
  • La séparation de l'extrémité avant et arrière l'idée de mettre l'accent sur cet article, il existe plusieurs façons de réaliser des cas pratiques, l'article ne se sont pas déroulées les détails de mise en uvre complète

Conception de l'architecture de toute entreprise, l'intimidation .

Penser plus important que les détails.

-------------------------------------------------- ---------------------------

Transfert du nombre de micro-chaîne publique architecte route

Order Center, comment faire la base de données de capacité illimitée
Précédent
2499 première femme Xiaolong 835 rouges jeux de libération de téléphone Nubian
Prochain
Li Ka-shing de l'exposition "Nouvel An"! Un repas, voir une éducation familiale
« Wandering la Terre » au box-office la première contre-attaque! Ng Man Tat: Quand vous lisez le script, ne croyons pas qu'il est écrit en chinois
annotations d'utilisation « Java » et de réflexion pour réaliser une injection de dépendance de version « faible »
bible pittoresque automne beauté gorge Shaanxi
Roi et trois autres sociétés le droit d'auteur Agent: Music Association n'a pas droit à la chanson suppression KTV
nosql MongoDB exemple typique de l'opération de fonctionnement et de polymérisation basique
foule Transporté d'urgence! 2019 Fête du Printemps a annoncé 10 grands oeufs cachés! Le premier a été choqué ...
58 conception de l'architecture du système recommandée et la mise en uvre de la ville (de 58 architectes de la ville)
Excellent gestionnaire d'investissement quantitatif est ce genre d'existence?
Habillez l'air froid traversant le ciel bleu ville du nord de la glace
Alerte! Ces enveloppes rouges sont faux, ne pointent pas! Rapidement transféré à la famille et les amis
Qu'est-ce que l'école vous êtes un professionnel? Votre travail est en train de faire? La nouvelle année répondra, vous êtes prêt à répondre encore