Salut, je m'appelle Vanya. Je résous des problèmes d'architecture sur le frontend dans Tinkoff Business et maintenant je vais vous parler de l'un d'entre eux.
Il y a plusieurs années, nous avions une grande application monolithique qui est devenue une douzaine d'applications plus petites au fil du temps. Dans cet article, je vais vous dire quels problèmes nous avons régulièrement rencontrés dans le monolithe, comment nous les avons résolus et s'il vaut la peine de "scier" notre frontend.
Synchronisation
«» , , -. , iframe . .
(- ), . , -.
, : « - !». .
?
, , - . :
|
| |
, | , . | |
| , — , — | , . |
(ownership) . , . - 5, 10, - (), | , . , , - | , . git flow |
| — , state-, , , . « » |
|
| , , , , . — - ? — . , , . ? :) | , , , . |
| , . , ( ). :
| , , codemod . 100% |
, — | - , , . , | - |
, «» , . , , , - , «» , .
?
- , :-) , :
. -, . Frame Manager, .
. , , window.myVar .my-bar. , - . , .
. : . vendor.js , vendor1.js, vendor2.js . . , — . № 4, , , url' .
, , , , , . : , ?
. , :
. , . , , . , .
foundation. () libs . : - , ?
— . , . , Nx Workspace. , . , . , , .
: foundation package.json. . , , tsconfig.json.
git submodule / subtree — , , , - . : . — .
— npm-, . , . : auth 1.0.0 2.0.0, , - , 2.0.1, , , - . -, -/ . . — Lerna.
SPA. SPA, , , , , . , . , Frame Manager, . , , . : window.myVar, localStorage, sessionStorage, CustomEvent, postMessage .
(SSR), . . . , , iframe, SSR.
.
. . , npm-.
, , - , , , . : « , , ?» :
. , ? , . ?
.
ci pipeline, .
: Nx. apps/, libs/. , . ci pipeline pipeline , IaC.
tl;dr
, Frame Manager.
. , . tips&tricks, :
, ? , , , , , :)
«», . , , , , , , .
, . -, , — , , : .
— , , , . /.
, . , , , . , .
P. S.
, , , , , .