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