![Article cover](https://habrastorage.org/webt/ma/se/wg/masewg6woq-rezruujq7hcqs4kg.png)
Imagine the situation. Your service or site was launched several years ago. It is constantly evolving, making a profit, users love it. The code base is growing every year, the infrastructure is becoming more complicated. The service daily competes with competitors and is regularly updated with new features.
. , . , . , .
? , . , legacy.
, :
, , , .
. . , , ยซยป, . , .
. 19 . , , . .
XSLT
XSLT. JS- , UI- . C XScript โ , XSL-.
![Yandex Market homepage on XSLT](https://habrastorage.org/webt/yn/ow/mx/ynowmxnlapinrqx9lf4g_hxqgvo.png)
http- 2015 :
<w.resource id="market-touch:models-top">
<x:http>
<x:guard type="StateArg">market:models-top.ids</x:guard>
<x:method>getHttp</x:method>
<x:param type="StateArg">market:config.some-host</x:param>
<x:param type="String">GetCards?ids=</x:param>
<x:param type="StateArg" as="Long">market:models-top.ids</x:param>
<x:param type="String">&type=micro</x:param>
<x:param type="String">PopularModels?</x:param>
<x:param type="String">&region=</x:param>
<x:param type="String">&n=</x:param>
<x:param type="StateArg" as="Long">market:models-top.count</x:param>
<x:param type="StateArg" as="String">market:exp.guru-params</x:param>
</x:http>
</w.resource>
:
<xscript_invoke_failed reason="UNKNOWN"
object="Yandex/Example/Example :
exampleRequestAuth /usr/local/www/assessor-ng/test.xml"/>
, , 2020 . .
NodeJS
2016 . NodeJS. . , . NodeJS , : . . . .
. JS- Yate (Yet Another Template Engine). XSLT. , , XSLT. . Yate - GitHub playground. , .
![Yandex Market Home 2015](https://habrastorage.org/webt/-a/gl/zn/-aglznoe_zmfkpilygpinatsus0.png)
2019 . (Flow), , . .
- , , , . , . , , . โ .
![Widgets on the Yandex Market category page](https://habrastorage.org/webt/8e/mn/gi/8emngimziqn22ro4jsjyaif0k-k.png)
, html- GET- () , . :
![Diagram of a classic model for loading a web page](https://habrastorage.org/webt/cz/tb/rx/cztbrxa_v7rjmormfufa_tbpebc.png)
, , , , . - , . . , GET-/.
JPEG. .
(), () :
![Progressive web page loading model diagram](https://habrastorage.org/webt/4h/ft/oq/4hftoqykpnl6kvkfefedo3yzw5m.png)
.
web- React + Redux. Vue.js? . . React . .
. โ . โ .
. H . , , ยซยป ยซยป, . .
, .
, . , โ , - .
. โ , , .
. . .
, , . , - . . . , .
. , , , SLA, , . ? .
: Grafana, Graphite , .
. . . , , . , : , , - .
React . , โ .
, . , . , , , . , .
: , , . , .
. . . .
. . . , .
. , ( ), - . . .
React -, . , , . . , - , -, , UI . .
. . , , , , .
, . .
. : unit, , e2e. , . โ . , . .
: TTI, TTR, TTFB, TTLB . . , , .
SLA : TTI (time to interaction), TTR (time to render) . React . SLA , .
A/B- . โ . - , .
web- React, 200 . A/B . , , , - .
. . , . .
, . , โ . React- Yate-.
, . , . , , . , , React- Yate-.
, . , , . .