From c4bbe5a85f787a8b2f441177053105392c734af9 Mon Sep 17 00:00:00 2001 From: illright Date: Thu, 27 Jun 2024 18:38:50 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20feature-?= =?UTF-8?q?sliced/documentation@53b06c15acd4cbf5b188073881b822eddf1c57c1?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 +- assets/js/0499e362.6068d54a.js | 1 + assets/js/0499e362.6d99d0cb.js | 1 - assets/js/066221cc.746776ad.js | 1 + assets/js/0a4ee302.2a8a86d7.js | 1 + assets/js/0a4ee302.db6db567.js | 1 - assets/js/287b7fe4.229735b3.js | 1 + assets/js/287b7fe4.47f25170.js | 1 - assets/js/2f764a0f.7e289af0.js | 1 - assets/js/2f764a0f.7eabf988.js | 1 + ...1f8ae.92393e58.js => 3121f8ae.deff2b61.js} | 2 +- assets/js/350d1c3d.6b08c578.js | 1 + assets/js/350d1c3d.70adb0b8.js | 1 - assets/js/370f8845.9c3ade9a.js | 1 - assets/js/370f8845.a497de80.js | 1 + assets/js/3d2652fb.960fe546.js | 1 + assets/js/3d2652fb.aed492be.js | 1 - ...5053a.7ef76141.js => 3ef5053a.17663f92.js} | 2 +- assets/js/40babe1d.a42d205c.js | 1 + assets/js/40babe1d.d5a88d35.js | 1 - assets/js/480f28a3.3887a983.js | 1 - assets/js/480f28a3.87c620ba.js | 1 + assets/js/488b6464.4a8965e6.js | 1 + assets/js/488b6464.d1b1fb5a.js | 1 - assets/js/49161156.447a368e.js | 1 - assets/js/49161156.7fb1217c.js | 1 + assets/js/5187bed2.26258e9b.js | 1 + assets/js/5187bed2.a82f8cb7.js | 1 - ...8e831.3f1ed9da.js => 53f8e831.edd81232.js} | 2 +- assets/js/55fbebd6.34d7f778.js | 1 + ...d98cc.7e780f60.js => 590d98cc.196f4a55.js} | 2 +- ...61d3b.d3b1e75e.js => 5bd61d3b.c31ebc2a.js} | 2 +- assets/js/5f7e5f34.31b57c2e.js | 1 + assets/js/5f7e5f34.60a5240e.js | 1 - assets/js/6636c8dc.84cfd898.js | 1 + assets/js/6636c8dc.fbb85fe9.js | 1 - ...a648d.455c4095.js => 664a648d.8e622bd9.js} | 2 +- assets/js/7313bf7a.298913e9.js | 1 - assets/js/7313bf7a.51341830.js | 1 + assets/js/7a790ed0.906ddc5f.js | 1 - assets/js/7a790ed0.a06f3414.js | 1 + ...10bd0.2bcd4e05.js => 7c110bd0.7c496ae9.js} | 2 +- assets/js/84a0dbae.9c283c63.js | 1 - assets/js/84a0dbae.c6f49573.js | 1 + assets/js/857ae1bf.af0dea00.js | 1 - assets/js/857ae1bf.d2dd1982.js | 1 + ...5c187.809afb8d.js => 87e5c187.f5ded5b9.js} | 2 +- ...a42c3.b00aa543.js => 8b5a42c3.98d1d7b6.js} | 2 +- assets/js/8c1e6152.d30bda87.js | 1 + assets/js/8c1e6152.f34460ee.js | 1 - ...83ff6.6e35b81c.js => 8ce83ff6.dffecbc1.js} | 2 +- ...3d7f4.17804e8e.js => 9b83d7f4.27c807fd.js} | 2 +- assets/js/9f1dcbb0.40a7672b.js | 1 + assets/js/9f1dcbb0.7e610ab3.js | 1 - ...21a63.edd1b06e.js => a1521a63.4f3d9519.js} | 2 +- assets/js/a386f730.8faa7f66.js | 1 - assets/js/a386f730.b56f6855.js | 1 + ...c55ce.21048edc.js => a61c55ce.72b65c63.js} | 2 +- ...f5b8a.ca6cc999.js => acaf5b8a.5b6bd5bf.js} | 2 +- assets/js/b1248e9a.bec71ee2.js | 1 + assets/js/b1248e9a.cc0d5677.js | 1 - assets/js/b496b084.a37a210b.js | 1 + assets/js/b496b084.ef77059f.js | 1 - assets/js/ba8bb0f7.2ec4e40a.js | 1 - assets/js/ba8bb0f7.8b61fae4.js | 1 + ...6474c.99965305.js => c0c6474c.2fc60ac0.js} | 2 +- ...0faae.61b3c4b8.js => c4d0faae.e67709fe.js} | 2 +- ...66f39.38c7858e.js => c5666f39.aebf099d.js} | 2 +- assets/js/cb388a7b.1d66d0ad.js | 1 + assets/js/cb388a7b.449ba221.js | 1 - ...cbfb8.2891df2a.js => d13cbfb8.36cb570f.js} | 2 +- assets/js/d25889e1.f69dabde.js | 1 - ...aea7e.77fc98a2.js => d7baea7e.b0c4f0d4.js} | 2 +- ...9437a.df650ad1.js => d999437a.401ea0fb.js} | 2 +- ...5ecdf.f3915daf.js => dfe5ecdf.8344ca8f.js} | 2 +- assets/js/e01c2047.e1274bb5.js | 1 - assets/js/e01c2047.fb75fe7f.js | 1 + assets/js/e1003eab.064044f7.js | 1 - assets/js/e1003eab.a047eba6.js | 1 + assets/js/e1c0d304.9c7907e9.js | 1 + assets/js/e1c0d304.d78d29d8.js | 1 - ...dcfcb.9aa275e4.js => ed3dcfcb.05b53b3e.js} | 2 +- assets/js/f21d8499.4a2a380e.js | 1 + assets/js/f21d8499.aafa003d.js | 1 - ...67325.39267a10.js => f2567325.b8fd7868.js} | 2 +- assets/js/fe129f8e.e5097940.js | 1 - assets/js/fe129f8e.fe58486f.js | 1 + assets/js/fe347612.59be4a90.js | 1 - assets/js/fe347612.a1d4aaa9.js | 1 + assets/js/main.146c380b.js | 2 - assets/js/main.3a7a5834.js | 2 + ...CENSE.txt => main.3a7a5834.js.LICENSE.txt} | 0 assets/js/runtime~main.38932758.js | 1 - assets/js/runtime~main.8ce993b8.js | 1 + blog.html | 4 +- blog/archive.html | 4 +- blog/international-community.html | 4 +- blog/rebranding-stable.html | 4 +- blog/tags.html | 4 +- blog/tags/brand.html | 4 +- blog/tags/community.html | 4 +- blog/tags/discord.html | 4 +- blog/tags/promo.html | 4 +- community.html | 6 +- community/team.html | 6 +- docs.html | 6 +- docs/about.html | 6 +- docs/about/alternatives.html | 6 +- docs/about/mission.html | 6 +- docs/about/motivation.html | 6 +- docs/about/promote/for-company.html | 6 +- docs/about/promote/for-team.html | 6 +- docs/about/promote/integration.html | 6 +- docs/about/promote/partial-application.html | 6 +- docs/about/understanding/abstractions.html | 6 +- docs/about/understanding/architecture.html | 6 +- docs/about/understanding/knowledge-types.html | 6 +- docs/about/understanding/naming.html | 6 +- docs/about/understanding/needs-driven.html | 6 +- docs/about/understanding/signals.html | 6 +- docs/branding.html | 6 +- docs/get-started.html | 6 +- docs/get-started/cheatsheet.html | 6 +- docs/get-started/faq.html | 6 +- docs/get-started/overview.html | 145 ++++++++++------- docs/get-started/tutorial.html | 6 +- docs/guides.html | 6 +- docs/guides/examples.html | 6 +- docs/guides/examples/auth.html | 6 +- docs/guides/examples/autocompleted.html | 6 +- docs/guides/examples/browser-api.html | 6 +- docs/guides/examples/cms.html | 6 +- docs/guides/examples/feedback.html | 6 +- docs/guides/examples/i18n.html | 6 +- docs/guides/examples/metric.html | 6 +- docs/guides/examples/monorepo.html | 6 +- docs/guides/examples/page-layout.html | 6 +- docs/guides/examples/platforms.html | 6 +- docs/guides/examples/ssr.html | 6 +- docs/guides/examples/theme.html | 6 +- docs/guides/examples/types.html | 6 +- docs/guides/examples/white-labels.html | 6 +- docs/guides/issues/cross-imports.html | 6 +- docs/guides/issues/desegmented.html | 6 +- docs/guides/issues/routes.html | 6 +- docs/guides/migration/from-legacy.html | 6 +- docs/guides/migration/from-v1.html | 6 +- docs/guides/tech/with-nextjs.html | 6 +- docs/guides/tech/with-nuxtjs.html | 6 +- docs/guides/tech/with-react-query.html | 6 +- docs/privacy.html | 6 +- docs/reference.html | 6 +- docs/reference/isolation.html | 6 +- .../isolation/coupling-cohesion.html | 6 +- .../isolation/decouple-entities.html | 6 +- docs/reference/layers.html | 6 +- docs/reference/public-api.html | 6 +- docs/reference/slices-segments.html | 6 +- examples.html | 4 +- index.html | 4 +- nav.html | 4 +- ru/404.html | 4 +- ru/assets/js/04b1b9d4.1ba99e73.js | 1 + ru/assets/js/04b1b9d4.e86d4084.js | 1 - ru/assets/js/07deeff8.09e87342.js | 1 + ru/assets/js/07deeff8.c8ab4350.js | 1 - ru/assets/js/1232fa31.3cb7890e.js | 1 - ru/assets/js/1232fa31.e4519e80.js | 1 + ...650ce.5b05adf3.js => 17f650ce.0655fd0f.js} | 2 +- ru/assets/js/1c0a16b8.158cb794.js | 1 + ru/assets/js/1c0a16b8.1dc232cb.js | 1 - ru/assets/js/1d3222b5.8adc4c87.js | 1 + ru/assets/js/1d3222b5.9a2b9db3.js | 1 - ...5a0f6.04b3c33d.js => 20c5a0f6.442f9772.js} | 2 +- ru/assets/js/2bd07bfd.40c1d9bc.js | 1 - ru/assets/js/2bd07bfd.ebdc3b6e.js | 1 + ru/assets/js/352bcbef.2937138c.js | 1 - ru/assets/js/352bcbef.3551b327.js | 1 + ru/assets/js/35c5367b.dd317b45.js | 1 - ru/assets/js/35c5367b.f94b0e62.js | 1 + ru/assets/js/3b64669e.45544329.js | 1 - ru/assets/js/3b64669e.a83e77ec.js | 1 + ru/assets/js/44775544.1b9e8f09.js | 1 - ru/assets/js/44775544.d25ab30f.js | 1 + ru/assets/js/457d5840.40d08842.js | 1 - ru/assets/js/457d5840.5ff0732c.js | 1 + ...4eeb7.b13470ef.js => 4584eeb7.f75487b2.js} | 2 +- ...a1952.e8f2f9d4.js => 4eea1952.630119ea.js} | 2 +- ru/assets/js/58b64b99.2a9b780a.js | 1 - ru/assets/js/58b64b99.fb1646a9.js | 1 + ru/assets/js/62f42e37.3171c86c.js | 1 - ru/assets/js/62f42e37.7412c92c.js | 1 + ...5b372.100de938.js => 6545b372.b915c31e.js} | 2 +- ru/assets/js/670340e2.8f93eaf4.js | 1 - ru/assets/js/670340e2.cffd2d98.js | 1 + ru/assets/js/6b00c549.821cc00f.js | 1 + ru/assets/js/6b00c549.bb95c71d.js | 1 - ru/assets/js/6b834e87.71786efe.js | 1 - ru/assets/js/6b834e87.dc20738c.js | 1 + ...cfc1a.fa539b1c.js => 6becfc1a.91273893.js} | 2 +- ...557b2.d5f54745.js => 6ee557b2.f3735b29.js} | 2 +- ru/assets/js/71d20f43.961fc372.js | 1 + ru/assets/js/71d20f43.e8d132a3.js | 1 - ru/assets/js/7313bf7a.3269e675.js | 1 - ru/assets/js/7313bf7a.daa02aa8.js | 1 + ru/assets/js/7b31d677.1d2b08fb.js | 1 + ru/assets/js/7b31d677.f8645c38.js | 1 - ru/assets/js/808aa0e6.13ef8dd9.js | 1 + ru/assets/js/808aa0e6.4c1d6145.js | 1 - ru/assets/js/81cb5b69.3ae19105.js | 1 - ru/assets/js/81cb5b69.ecf36bd8.js | 1 + ...c10e1.4e609543.js => 8edc10e1.3b00eaf2.js} | 2 +- ru/assets/js/90c52043.57833454.js | 1 + ru/assets/js/90c52043.a5f6503f.js | 1 - ru/assets/js/9aa2bb4a.8e80a3ef.js | 1 - ru/assets/js/9b6dbc63.294afa5e.js | 1 - ru/assets/js/9b6dbc63.74fa1c0f.js | 1 + ru/assets/js/9fc8add1.cec79ebc.js | 1 + ru/assets/js/9fc8add1.cf2322de.js | 1 - ru/assets/js/a01ebdbc.c0412c23.js | 1 - ru/assets/js/a01ebdbc.f4933728.js | 1 + ru/assets/js/a41378e3.68694caf.js | 1 - ru/assets/js/a41378e3.c93dcf9c.js | 1 + ...c55ce.392b2bcc.js => a61c55ce.647a698d.js} | 2 +- ...7d4fc.0cfe4bed.js => a657d4fc.b5c34dd6.js} | 2 +- ru/assets/js/a6bb2b9f.18e9f3cb.js | 1 + ru/assets/js/a6bb2b9f.5af6548f.js | 1 - ru/assets/js/b48c1c89.2c2659b8.js | 1 - ru/assets/js/b48c1c89.329982dc.js | 1 + ru/assets/js/b9d2a7aa.60c3adb2.js | 1 + ru/assets/js/b9d2a7aa.f975b738.js | 1 - ru/assets/js/bce03a1b.80232060.js | 1 + ru/assets/js/bce03a1b.c388c605.js | 1 - ru/assets/js/c0c4bf5d.b8410d49.js | 1 + ru/assets/js/c0c4bf5d.d7f40bcf.js | 1 - ru/assets/js/cb36866c.80e97068.js | 1 - ru/assets/js/cb36866c.cdbe353a.js | 1 + ru/assets/js/ce6f052d.e736021f.js | 1 - ru/assets/js/ce6f052d.f492ce3c.js | 1 + ru/assets/js/cf699f5e.62894526.js | 1 + ru/assets/js/d178dcf5.87c81b7d.js | 1 + ru/assets/js/d178dcf5.cca87939.js | 1 - ru/assets/js/d1f19b62.7edef90d.js | 1 + ru/assets/js/d1f19b62.bcb30bd8.js | 1 - ru/assets/js/d595dc26.08ff73f7.js | 1 + ru/assets/js/d595dc26.b3572d2d.js | 1 - ru/assets/js/dd4fd790.65376df8.js | 1 - ru/assets/js/dd4fd790.e546ce6a.js | 1 + ru/assets/js/e38a3126.2d47e32b.js | 1 - ru/assets/js/e38a3126.c3636513.js | 1 + ...c891f.a9d047d7.js => e9dc891f.da43ccfe.js} | 2 +- ru/assets/js/eadbf91d.bd7e3860.js | 1 + ru/assets/js/eadbf91d.f5ae500d.js | 1 - ...bed87.73adb053.js => eb8bed87.165f0d07.js} | 2 +- ru/assets/js/f39d466e.726c6cdd.js | 1 - ru/assets/js/f39d466e.b6af1186.js | 1 + ru/assets/js/fcc88823.395bc845.js | 1 + ru/assets/js/fcc88823.709a3116.js | 1 - ru/assets/js/fee408fa.204961b6.js | 1 - ru/assets/js/fee408fa.3a9357f4.js | 1 + ru/assets/js/ffe50de1.074ab543.js | 1 + ru/assets/js/ffe50de1.4122bb5a.js | 1 - ru/assets/js/main.d0dc96d8.js | 2 - ru/assets/js/main.fda495be.js | 2 + ...CENSE.txt => main.fda495be.js.LICENSE.txt} | 0 ru/assets/js/runtime~main.8f26838f.js | 1 - ru/assets/js/runtime~main.b281fd0e.js | 1 + ru/blog.html | 4 +- ru/blog/archive.html | 4 +- ru/blog/international-community.html | 4 +- ru/blog/rebranding-stable.html | 4 +- ru/blog/tags.html | 4 +- ru/blog/tags/brand.html | 4 +- ru/blog/tags/community.html | 4 +- ru/blog/tags/discord.html | 4 +- ru/blog/tags/promo.html | 4 +- ru/community.html | 6 +- ru/community/team.html | 6 +- ru/docs.html | 6 +- ru/docs/about.html | 6 +- ru/docs/about/alternatives.html | 6 +- ru/docs/about/mission.html | 6 +- ru/docs/about/motivation.html | 6 +- ru/docs/about/promote/for-company.html | 6 +- ru/docs/about/promote/for-team.html | 6 +- ru/docs/about/promote/integration.html | 6 +- .../about/promote/partial-application.html | 6 +- ru/docs/about/understanding/abstractions.html | 6 +- ru/docs/about/understanding/architecture.html | 6 +- .../about/understanding/knowledge-types.html | 6 +- ru/docs/about/understanding/naming.html | 6 +- ru/docs/about/understanding/needs-driven.html | 6 +- ru/docs/about/understanding/signals.html | 6 +- ru/docs/branding.html | 6 +- ru/docs/get-started.html | 6 +- ru/docs/get-started/cheatsheet.html | 6 +- ru/docs/get-started/faq.html | 6 +- ru/docs/get-started/overview.html | 152 +++++++++++------- ru/docs/get-started/tutorial.html | 6 +- ru/docs/guides.html | 6 +- ru/docs/guides/examples.html | 6 +- ru/docs/guides/examples/auth.html | 6 +- ru/docs/guides/examples/autocompleted.html | 6 +- ru/docs/guides/examples/browser-api.html | 6 +- ru/docs/guides/examples/cms.html | 6 +- ru/docs/guides/examples/feedback.html | 6 +- ru/docs/guides/examples/i18n.html | 6 +- ru/docs/guides/examples/metric.html | 6 +- ru/docs/guides/examples/monorepo.html | 6 +- ru/docs/guides/examples/page-layout.html | 6 +- ru/docs/guides/examples/platforms.html | 6 +- ru/docs/guides/examples/ssr.html | 6 +- ru/docs/guides/examples/theme.html | 6 +- ru/docs/guides/examples/types.html | 6 +- ru/docs/guides/examples/white-labels.html | 6 +- ru/docs/guides/issues/cross-imports.html | 6 +- ru/docs/guides/issues/desegmented.html | 6 +- ru/docs/guides/issues/routes.html | 6 +- ru/docs/guides/migration/from-legacy.html | 6 +- ru/docs/guides/migration/from-v1.html | 6 +- ru/docs/guides/tech/with-nextjs.html | 6 +- ru/docs/guides/tech/with-nuxtjs.html | 6 +- ru/docs/guides/tech/with-react-query.html | 6 +- ru/docs/privacy.html | 6 +- ru/docs/reference.html | 6 +- ru/docs/reference/isolation.html | 6 +- .../isolation/coupling-cohesion.html | 6 +- .../isolation/decouple-entities.html | 6 +- ru/docs/reference/layers.html | 6 +- ru/docs/reference/public-api.html | 6 +- ru/docs/reference/slices-segments.html | 6 +- ru/examples.html | 4 +- ru/index.html | 4 +- ru/nav.html | 4 +- ru/search.html | 4 +- ru/versions.html | 4 +- search.html | 4 +- uz/404.html | 4 +- ...a3ac7.7984ee1b.js => 022a3ac7.01adf61c.js} | 2 +- uz/assets/js/0499e362.2b3eea58.js | 1 + uz/assets/js/0499e362.bc23354e.js | 1 - uz/assets/js/066221cc.1a9c0b6d.js | 1 + uz/assets/js/0a4ee302.3ab7939f.js | 1 - uz/assets/js/0a4ee302.c5727fd4.js | 1 + uz/assets/js/287b7fe4.20e58ee6.js | 1 + uz/assets/js/287b7fe4.2c06354e.js | 1 - uz/assets/js/2f764a0f.279ddee1.js | 1 - uz/assets/js/2f764a0f.e59521d8.js | 1 + ...1f8ae.eb5ea9fc.js => 3121f8ae.52ece445.js} | 2 +- uz/assets/js/350d1c3d.5b01c2cb.js | 1 + uz/assets/js/350d1c3d.8a91a8c1.js | 1 - uz/assets/js/370f8845.0fec1591.js | 1 - uz/assets/js/370f8845.d3f00172.js | 1 + uz/assets/js/3d2652fb.5d1f9fb6.js | 1 + uz/assets/js/3d2652fb.cce4abf4.js | 1 - uz/assets/js/4044d4ea.f45e4eed.js | 1 + uz/assets/js/4044d4ea.f77e8412.js | 1 - uz/assets/js/480f28a3.6b5bfbab.js | 1 - uz/assets/js/480f28a3.b39af645.js | 1 + uz/assets/js/488b6464.290a30cd.js | 1 - uz/assets/js/488b6464.7eac75f7.js | 1 + uz/assets/js/49161156.44f551f2.js | 1 - uz/assets/js/49161156.db3ab3db.js | 1 + uz/assets/js/5187bed2.0da28657.js | 1 - uz/assets/js/5187bed2.b1f79d35.js | 1 + ...8e831.9c9e0769.js => 53f8e831.4b16228d.js} | 2 +- ...d98cc.b682ead6.js => 590d98cc.e51fa657.js} | 2 +- ...61d3b.5f039fed.js => 5bd61d3b.3c99ae36.js} | 2 +- uz/assets/js/5f7e5f34.8e7d2d5a.js | 1 - uz/assets/js/5f7e5f34.d7fde307.js | 1 + uz/assets/js/6636c8dc.16b7fbb2.js | 1 + uz/assets/js/6636c8dc.371976c6.js | 1 - ...a648d.9126bc1a.js => 664a648d.7316b42c.js} | 2 +- ...2aa25.52fda518.js => 70e2aa25.43cd3328.js} | 2 +- uz/assets/js/7313bf7a.776d7bb7.js | 1 + uz/assets/js/7313bf7a.a055a10b.js | 1 - uz/assets/js/7a790ed0.07bf6109.js | 1 + uz/assets/js/7a790ed0.a77d546a.js | 1 - uz/assets/js/84a0dbae.05770008.js | 1 + uz/assets/js/84a0dbae.5f91a537.js | 1 - uz/assets/js/857ae1bf.b19239b3.js | 1 + uz/assets/js/857ae1bf.bfecf453.js | 1 - uz/assets/js/8651fb1e.99dbe9b3.js | 1 - uz/assets/js/8651fb1e.e6adb76d.js | 1 + ...5c187.68a4a881.js => 87e5c187.c6efa71f.js} | 2 +- ...a42c3.8d19d97e.js => 8b5a42c3.7719eb78.js} | 2 +- uz/assets/js/8c1e6152.0e324c3d.js | 1 - uz/assets/js/8c1e6152.bcfb4462.js | 1 + ...83ff6.c022f39f.js => 8ce83ff6.1b0cbfa0.js} | 2 +- ...3d7f4.4a4f0708.js => 9b83d7f4.ac13edc2.js} | 2 +- ...21a63.ec3fca4a.js => a1521a63.84d3ccb5.js} | 2 +- uz/assets/js/a386f730.1bf08bc6.js | 1 - uz/assets/js/a386f730.c7f3a9b3.js | 1 + ...c55ce.98fa9e67.js => a61c55ce.f7de0304.js} | 2 +- ...f5b8a.23a47d35.js => acaf5b8a.02828b7e.js} | 2 +- uz/assets/js/b1248e9a.3c1cac19.js | 1 + uz/assets/js/b1248e9a.786cec5d.js | 1 - uz/assets/js/b49b8edb.d0d8ba98.js | 1 + uz/assets/js/b49b8edb.fa7473c2.js | 1 - uz/assets/js/ba8bb0f7.4c534fa2.js | 1 - uz/assets/js/ba8bb0f7.ed1412af.js | 1 + ...6474c.2b91f88e.js => c0c6474c.f67d6947.js} | 2 +- ...0faae.a2a4587b.js => c4d0faae.f225a33d.js} | 2 +- ...66f39.6a9ea9d7.js => c5666f39.14e45723.js} | 2 +- uz/assets/js/cb388a7b.aa9a54ed.js | 1 + uz/assets/js/cb388a7b.ff2c174d.js | 1 - ...cbfb8.a103d7ed.js => d13cbfb8.b22513de.js} | 2 +- uz/assets/js/d25889e1.a271fe3d.js | 1 - ...aea7e.e5c1473e.js => d7baea7e.a8dcb78e.js} | 2 +- ...9437a.e13e5417.js => d999437a.aa2449ce.js} | 2 +- ...5ecdf.ec31e389.js => dfe5ecdf.76905950.js} | 2 +- uz/assets/js/e01c2047.6dea109f.js | 1 - uz/assets/js/e01c2047.932f0f06.js | 1 + uz/assets/js/e1003eab.00dfdd75.js | 1 - uz/assets/js/e1003eab.0e1be527.js | 1 + uz/assets/js/e1c0d304.66f8cedc.js | 1 - uz/assets/js/e1c0d304.870440af.js | 1 + .../assets/js/e3309638.2753e3b5.js | 2 +- uz/assets/js/e3309638.f2813f9b.js | 1 - ...dcfcb.ce1cac77.js => ed3dcfcb.ddd0ba5a.js} | 2 +- uz/assets/js/f21d8499.40627402.js | 1 - uz/assets/js/f21d8499.e659f6e9.js | 1 + ...67325.201e336e.js => f2567325.071d8327.js} | 2 +- uz/assets/js/fe129f8e.65dbf879.js | 1 + uz/assets/js/fe129f8e.7ae5a6f3.js | 1 - uz/assets/js/fe347612.6ef98e42.js | 1 + uz/assets/js/fe347612.cacddfb9.js | 1 - uz/assets/js/main.080f46be.js | 2 - uz/assets/js/main.16b5c213.js | 2 + ...CENSE.txt => main.16b5c213.js.LICENSE.txt} | 0 uz/assets/js/runtime~main.14008dd1.js | 1 + uz/assets/js/runtime~main.4799c7d1.js | 1 - uz/blog.html | 4 +- uz/blog/archive.html | 4 +- uz/blog/international-community.html | 4 +- uz/blog/rebranding-stable.html | 4 +- uz/blog/tags.html | 4 +- uz/blog/tags/brand.html | 4 +- uz/blog/tags/community.html | 4 +- uz/blog/tags/discord.html | 4 +- uz/blog/tags/promo.html | 4 +- uz/community.html | 6 +- uz/community/team.html | 6 +- uz/docs.html | 6 +- uz/docs/about.html | 6 +- uz/docs/about/alternatives.html | 6 +- uz/docs/about/mission.html | 6 +- uz/docs/about/motivation.html | 6 +- uz/docs/about/promote/for-company.html | 6 +- uz/docs/about/promote/for-team.html | 6 +- uz/docs/about/promote/integration.html | 6 +- .../about/promote/partial-application.html | 6 +- uz/docs/about/understanding/abstractions.html | 6 +- uz/docs/about/understanding/architecture.html | 6 +- .../about/understanding/knowledge-types.html | 6 +- uz/docs/about/understanding/naming.html | 6 +- uz/docs/about/understanding/needs-driven.html | 6 +- uz/docs/about/understanding/signals.html | 6 +- uz/docs/branding.html | 6 +- uz/docs/get-started.html | 6 +- uz/docs/get-started/cheatsheet.html | 6 +- uz/docs/get-started/faq.html | 6 +- uz/docs/get-started/overview.html | 145 ++++++++++------- uz/docs/get-started/tutorial.html | 6 +- uz/docs/guides.html | 6 +- uz/docs/guides/examples.html | 6 +- uz/docs/guides/examples/auth.html | 6 +- uz/docs/guides/examples/autocompleted.html | 6 +- uz/docs/guides/examples/browser-api.html | 6 +- uz/docs/guides/examples/cms.html | 6 +- uz/docs/guides/examples/feedback.html | 6 +- uz/docs/guides/examples/i18n.html | 6 +- uz/docs/guides/examples/metric.html | 6 +- uz/docs/guides/examples/monorepo.html | 6 +- uz/docs/guides/examples/page-layout.html | 6 +- uz/docs/guides/examples/platforms.html | 6 +- uz/docs/guides/examples/ssr.html | 6 +- uz/docs/guides/examples/theme.html | 6 +- uz/docs/guides/examples/types.html | 6 +- uz/docs/guides/examples/white-labels.html | 6 +- uz/docs/guides/issues/cross-imports.html | 6 +- uz/docs/guides/issues/desegmented.html | 6 +- uz/docs/guides/issues/routes.html | 6 +- uz/docs/guides/migration/from-legacy.html | 6 +- uz/docs/guides/migration/from-v1.html | 6 +- uz/docs/guides/tech/with-nextjs.html | 6 +- uz/docs/guides/tech/with-nuxtjs.html | 6 +- uz/docs/guides/tech/with-react-query.html | 6 +- uz/docs/privacy.html | 6 +- uz/docs/reference.html | 6 +- uz/docs/reference/isolation.html | 6 +- .../isolation/coupling-cohesion.html | 6 +- .../isolation/decouple-entities.html | 6 +- uz/docs/reference/layers.html | 6 +- uz/docs/reference/public-api.html | 6 +- uz/docs/reference/slices-segments.html | 6 +- uz/examples.html | 4 +- uz/index.html | 4 +- uz/nav.html | 4 +- uz/search.html | 4 +- uz/versions.html | 4 +- versions.html | 4 +- 502 files changed, 1027 insertions(+), 921 deletions(-) create mode 100644 assets/js/0499e362.6068d54a.js delete mode 100644 assets/js/0499e362.6d99d0cb.js create mode 100644 assets/js/066221cc.746776ad.js create mode 100644 assets/js/0a4ee302.2a8a86d7.js delete mode 100644 assets/js/0a4ee302.db6db567.js create mode 100644 assets/js/287b7fe4.229735b3.js delete mode 100644 assets/js/287b7fe4.47f25170.js delete mode 100644 assets/js/2f764a0f.7e289af0.js create mode 100644 assets/js/2f764a0f.7eabf988.js rename assets/js/{3121f8ae.92393e58.js => 3121f8ae.deff2b61.js} (65%) create mode 100644 assets/js/350d1c3d.6b08c578.js delete mode 100644 assets/js/350d1c3d.70adb0b8.js delete mode 100644 assets/js/370f8845.9c3ade9a.js create mode 100644 assets/js/370f8845.a497de80.js create mode 100644 assets/js/3d2652fb.960fe546.js delete mode 100644 assets/js/3d2652fb.aed492be.js rename assets/js/{3ef5053a.7ef76141.js => 3ef5053a.17663f92.js} (63%) create mode 100644 assets/js/40babe1d.a42d205c.js delete mode 100644 assets/js/40babe1d.d5a88d35.js delete mode 100644 assets/js/480f28a3.3887a983.js create mode 100644 assets/js/480f28a3.87c620ba.js create mode 100644 assets/js/488b6464.4a8965e6.js delete mode 100644 assets/js/488b6464.d1b1fb5a.js delete mode 100644 assets/js/49161156.447a368e.js create mode 100644 assets/js/49161156.7fb1217c.js create mode 100644 assets/js/5187bed2.26258e9b.js delete mode 100644 assets/js/5187bed2.a82f8cb7.js rename assets/js/{53f8e831.3f1ed9da.js => 53f8e831.edd81232.js} (57%) create mode 100644 assets/js/55fbebd6.34d7f778.js rename assets/js/{590d98cc.7e780f60.js => 590d98cc.196f4a55.js} (52%) rename assets/js/{5bd61d3b.d3b1e75e.js => 5bd61d3b.c31ebc2a.js} (50%) create mode 100644 assets/js/5f7e5f34.31b57c2e.js delete mode 100644 assets/js/5f7e5f34.60a5240e.js create mode 100644 assets/js/6636c8dc.84cfd898.js delete mode 100644 assets/js/6636c8dc.fbb85fe9.js rename assets/js/{664a648d.455c4095.js => 664a648d.8e622bd9.js} (64%) delete mode 100644 assets/js/7313bf7a.298913e9.js create mode 100644 assets/js/7313bf7a.51341830.js delete mode 100644 assets/js/7a790ed0.906ddc5f.js create mode 100644 assets/js/7a790ed0.a06f3414.js rename assets/js/{7c110bd0.2bcd4e05.js => 7c110bd0.7c496ae9.js} (65%) delete mode 100644 assets/js/84a0dbae.9c283c63.js create mode 100644 assets/js/84a0dbae.c6f49573.js delete mode 100644 assets/js/857ae1bf.af0dea00.js create mode 100644 assets/js/857ae1bf.d2dd1982.js rename assets/js/{87e5c187.809afb8d.js => 87e5c187.f5ded5b9.js} (65%) rename assets/js/{8b5a42c3.b00aa543.js => 8b5a42c3.98d1d7b6.js} (54%) create mode 100644 assets/js/8c1e6152.d30bda87.js delete mode 100644 assets/js/8c1e6152.f34460ee.js rename assets/js/{8ce83ff6.6e35b81c.js => 8ce83ff6.dffecbc1.js} (51%) rename assets/js/{9b83d7f4.17804e8e.js => 9b83d7f4.27c807fd.js} (58%) create mode 100644 assets/js/9f1dcbb0.40a7672b.js delete mode 100644 assets/js/9f1dcbb0.7e610ab3.js rename assets/js/{a1521a63.edd1b06e.js => a1521a63.4f3d9519.js} (62%) delete mode 100644 assets/js/a386f730.8faa7f66.js create mode 100644 assets/js/a386f730.b56f6855.js rename assets/js/{a61c55ce.21048edc.js => a61c55ce.72b65c63.js} (59%) rename assets/js/{acaf5b8a.ca6cc999.js => acaf5b8a.5b6bd5bf.js} (52%) create mode 100644 assets/js/b1248e9a.bec71ee2.js delete mode 100644 assets/js/b1248e9a.cc0d5677.js create mode 100644 assets/js/b496b084.a37a210b.js delete mode 100644 assets/js/b496b084.ef77059f.js delete mode 100644 assets/js/ba8bb0f7.2ec4e40a.js create mode 100644 assets/js/ba8bb0f7.8b61fae4.js rename assets/js/{c0c6474c.99965305.js => c0c6474c.2fc60ac0.js} (65%) rename assets/js/{c4d0faae.61b3c4b8.js => c4d0faae.e67709fe.js} (53%) rename assets/js/{c5666f39.38c7858e.js => c5666f39.aebf099d.js} (58%) create mode 100644 assets/js/cb388a7b.1d66d0ad.js delete mode 100644 assets/js/cb388a7b.449ba221.js rename assets/js/{d13cbfb8.2891df2a.js => d13cbfb8.36cb570f.js} (50%) delete mode 100644 assets/js/d25889e1.f69dabde.js rename assets/js/{d7baea7e.77fc98a2.js => d7baea7e.b0c4f0d4.js} (55%) rename assets/js/{d999437a.df650ad1.js => d999437a.401ea0fb.js} (66%) rename assets/js/{dfe5ecdf.f3915daf.js => dfe5ecdf.8344ca8f.js} (56%) delete mode 100644 assets/js/e01c2047.e1274bb5.js create mode 100644 assets/js/e01c2047.fb75fe7f.js delete mode 100644 assets/js/e1003eab.064044f7.js create mode 100644 assets/js/e1003eab.a047eba6.js create mode 100644 assets/js/e1c0d304.9c7907e9.js delete mode 100644 assets/js/e1c0d304.d78d29d8.js rename assets/js/{ed3dcfcb.9aa275e4.js => ed3dcfcb.05b53b3e.js} (55%) create mode 100644 assets/js/f21d8499.4a2a380e.js delete mode 100644 assets/js/f21d8499.aafa003d.js rename assets/js/{f2567325.39267a10.js => f2567325.b8fd7868.js} (57%) delete mode 100644 assets/js/fe129f8e.e5097940.js create mode 100644 assets/js/fe129f8e.fe58486f.js delete mode 100644 assets/js/fe347612.59be4a90.js create mode 100644 assets/js/fe347612.a1d4aaa9.js delete mode 100644 assets/js/main.146c380b.js create mode 100644 assets/js/main.3a7a5834.js rename assets/js/{main.146c380b.js.LICENSE.txt => main.3a7a5834.js.LICENSE.txt} (100%) delete mode 100644 assets/js/runtime~main.38932758.js create mode 100644 assets/js/runtime~main.8ce993b8.js create mode 100644 ru/assets/js/04b1b9d4.1ba99e73.js delete mode 100644 ru/assets/js/04b1b9d4.e86d4084.js create mode 100644 ru/assets/js/07deeff8.09e87342.js delete mode 100644 ru/assets/js/07deeff8.c8ab4350.js delete mode 100644 ru/assets/js/1232fa31.3cb7890e.js create mode 100644 ru/assets/js/1232fa31.e4519e80.js rename ru/assets/js/{17f650ce.5b05adf3.js => 17f650ce.0655fd0f.js} (62%) create mode 100644 ru/assets/js/1c0a16b8.158cb794.js delete mode 100644 ru/assets/js/1c0a16b8.1dc232cb.js create mode 100644 ru/assets/js/1d3222b5.8adc4c87.js delete mode 100644 ru/assets/js/1d3222b5.9a2b9db3.js rename ru/assets/js/{20c5a0f6.04b3c33d.js => 20c5a0f6.442f9772.js} (52%) delete mode 100644 ru/assets/js/2bd07bfd.40c1d9bc.js create mode 100644 ru/assets/js/2bd07bfd.ebdc3b6e.js delete mode 100644 ru/assets/js/352bcbef.2937138c.js create mode 100644 ru/assets/js/352bcbef.3551b327.js delete mode 100644 ru/assets/js/35c5367b.dd317b45.js create mode 100644 ru/assets/js/35c5367b.f94b0e62.js delete mode 100644 ru/assets/js/3b64669e.45544329.js create mode 100644 ru/assets/js/3b64669e.a83e77ec.js delete mode 100644 ru/assets/js/44775544.1b9e8f09.js create mode 100644 ru/assets/js/44775544.d25ab30f.js delete mode 100644 ru/assets/js/457d5840.40d08842.js create mode 100644 ru/assets/js/457d5840.5ff0732c.js rename ru/assets/js/{4584eeb7.b13470ef.js => 4584eeb7.f75487b2.js} (56%) rename ru/assets/js/{4eea1952.e8f2f9d4.js => 4eea1952.630119ea.js} (61%) delete mode 100644 ru/assets/js/58b64b99.2a9b780a.js create mode 100644 ru/assets/js/58b64b99.fb1646a9.js delete mode 100644 ru/assets/js/62f42e37.3171c86c.js create mode 100644 ru/assets/js/62f42e37.7412c92c.js rename ru/assets/js/{6545b372.100de938.js => 6545b372.b915c31e.js} (55%) delete mode 100644 ru/assets/js/670340e2.8f93eaf4.js create mode 100644 ru/assets/js/670340e2.cffd2d98.js create mode 100644 ru/assets/js/6b00c549.821cc00f.js delete mode 100644 ru/assets/js/6b00c549.bb95c71d.js delete mode 100644 ru/assets/js/6b834e87.71786efe.js create mode 100644 ru/assets/js/6b834e87.dc20738c.js rename ru/assets/js/{6becfc1a.fa539b1c.js => 6becfc1a.91273893.js} (51%) rename ru/assets/js/{6ee557b2.d5f54745.js => 6ee557b2.f3735b29.js} (59%) create mode 100644 ru/assets/js/71d20f43.961fc372.js delete mode 100644 ru/assets/js/71d20f43.e8d132a3.js delete mode 100644 ru/assets/js/7313bf7a.3269e675.js create mode 100644 ru/assets/js/7313bf7a.daa02aa8.js create mode 100644 ru/assets/js/7b31d677.1d2b08fb.js delete mode 100644 ru/assets/js/7b31d677.f8645c38.js create mode 100644 ru/assets/js/808aa0e6.13ef8dd9.js delete mode 100644 ru/assets/js/808aa0e6.4c1d6145.js delete mode 100644 ru/assets/js/81cb5b69.3ae19105.js create mode 100644 ru/assets/js/81cb5b69.ecf36bd8.js rename ru/assets/js/{8edc10e1.4e609543.js => 8edc10e1.3b00eaf2.js} (50%) create mode 100644 ru/assets/js/90c52043.57833454.js delete mode 100644 ru/assets/js/90c52043.a5f6503f.js delete mode 100644 ru/assets/js/9aa2bb4a.8e80a3ef.js delete mode 100644 ru/assets/js/9b6dbc63.294afa5e.js create mode 100644 ru/assets/js/9b6dbc63.74fa1c0f.js create mode 100644 ru/assets/js/9fc8add1.cec79ebc.js delete mode 100644 ru/assets/js/9fc8add1.cf2322de.js delete mode 100644 ru/assets/js/a01ebdbc.c0412c23.js create mode 100644 ru/assets/js/a01ebdbc.f4933728.js delete mode 100644 ru/assets/js/a41378e3.68694caf.js create mode 100644 ru/assets/js/a41378e3.c93dcf9c.js rename ru/assets/js/{a61c55ce.392b2bcc.js => a61c55ce.647a698d.js} (59%) rename ru/assets/js/{a657d4fc.0cfe4bed.js => a657d4fc.b5c34dd6.js} (59%) create mode 100644 ru/assets/js/a6bb2b9f.18e9f3cb.js delete mode 100644 ru/assets/js/a6bb2b9f.5af6548f.js delete mode 100644 ru/assets/js/b48c1c89.2c2659b8.js create mode 100644 ru/assets/js/b48c1c89.329982dc.js create mode 100644 ru/assets/js/b9d2a7aa.60c3adb2.js delete mode 100644 ru/assets/js/b9d2a7aa.f975b738.js create mode 100644 ru/assets/js/bce03a1b.80232060.js delete mode 100644 ru/assets/js/bce03a1b.c388c605.js create mode 100644 ru/assets/js/c0c4bf5d.b8410d49.js delete mode 100644 ru/assets/js/c0c4bf5d.d7f40bcf.js delete mode 100644 ru/assets/js/cb36866c.80e97068.js create mode 100644 ru/assets/js/cb36866c.cdbe353a.js delete mode 100644 ru/assets/js/ce6f052d.e736021f.js create mode 100644 ru/assets/js/ce6f052d.f492ce3c.js create mode 100644 ru/assets/js/cf699f5e.62894526.js create mode 100644 ru/assets/js/d178dcf5.87c81b7d.js delete mode 100644 ru/assets/js/d178dcf5.cca87939.js create mode 100644 ru/assets/js/d1f19b62.7edef90d.js delete mode 100644 ru/assets/js/d1f19b62.bcb30bd8.js create mode 100644 ru/assets/js/d595dc26.08ff73f7.js delete mode 100644 ru/assets/js/d595dc26.b3572d2d.js delete mode 100644 ru/assets/js/dd4fd790.65376df8.js create mode 100644 ru/assets/js/dd4fd790.e546ce6a.js delete mode 100644 ru/assets/js/e38a3126.2d47e32b.js create mode 100644 ru/assets/js/e38a3126.c3636513.js rename ru/assets/js/{e9dc891f.a9d047d7.js => e9dc891f.da43ccfe.js} (63%) create mode 100644 ru/assets/js/eadbf91d.bd7e3860.js delete mode 100644 ru/assets/js/eadbf91d.f5ae500d.js rename ru/assets/js/{eb8bed87.73adb053.js => eb8bed87.165f0d07.js} (61%) delete mode 100644 ru/assets/js/f39d466e.726c6cdd.js create mode 100644 ru/assets/js/f39d466e.b6af1186.js create mode 100644 ru/assets/js/fcc88823.395bc845.js delete mode 100644 ru/assets/js/fcc88823.709a3116.js delete mode 100644 ru/assets/js/fee408fa.204961b6.js create mode 100644 ru/assets/js/fee408fa.3a9357f4.js create mode 100644 ru/assets/js/ffe50de1.074ab543.js delete mode 100644 ru/assets/js/ffe50de1.4122bb5a.js delete mode 100644 ru/assets/js/main.d0dc96d8.js create mode 100644 ru/assets/js/main.fda495be.js rename ru/assets/js/{main.d0dc96d8.js.LICENSE.txt => main.fda495be.js.LICENSE.txt} (100%) delete mode 100644 ru/assets/js/runtime~main.8f26838f.js create mode 100644 ru/assets/js/runtime~main.b281fd0e.js rename uz/assets/js/{022a3ac7.7984ee1b.js => 022a3ac7.01adf61c.js} (63%) create mode 100644 uz/assets/js/0499e362.2b3eea58.js delete mode 100644 uz/assets/js/0499e362.bc23354e.js create mode 100644 uz/assets/js/066221cc.1a9c0b6d.js delete mode 100644 uz/assets/js/0a4ee302.3ab7939f.js create mode 100644 uz/assets/js/0a4ee302.c5727fd4.js create mode 100644 uz/assets/js/287b7fe4.20e58ee6.js delete mode 100644 uz/assets/js/287b7fe4.2c06354e.js delete mode 100644 uz/assets/js/2f764a0f.279ddee1.js create mode 100644 uz/assets/js/2f764a0f.e59521d8.js rename uz/assets/js/{3121f8ae.eb5ea9fc.js => 3121f8ae.52ece445.js} (65%) create mode 100644 uz/assets/js/350d1c3d.5b01c2cb.js delete mode 100644 uz/assets/js/350d1c3d.8a91a8c1.js delete mode 100644 uz/assets/js/370f8845.0fec1591.js create mode 100644 uz/assets/js/370f8845.d3f00172.js create mode 100644 uz/assets/js/3d2652fb.5d1f9fb6.js delete mode 100644 uz/assets/js/3d2652fb.cce4abf4.js create mode 100644 uz/assets/js/4044d4ea.f45e4eed.js delete mode 100644 uz/assets/js/4044d4ea.f77e8412.js delete mode 100644 uz/assets/js/480f28a3.6b5bfbab.js create mode 100644 uz/assets/js/480f28a3.b39af645.js delete mode 100644 uz/assets/js/488b6464.290a30cd.js create mode 100644 uz/assets/js/488b6464.7eac75f7.js delete mode 100644 uz/assets/js/49161156.44f551f2.js create mode 100644 uz/assets/js/49161156.db3ab3db.js delete mode 100644 uz/assets/js/5187bed2.0da28657.js create mode 100644 uz/assets/js/5187bed2.b1f79d35.js rename uz/assets/js/{53f8e831.9c9e0769.js => 53f8e831.4b16228d.js} (57%) rename uz/assets/js/{590d98cc.b682ead6.js => 590d98cc.e51fa657.js} (52%) rename uz/assets/js/{5bd61d3b.5f039fed.js => 5bd61d3b.3c99ae36.js} (50%) delete mode 100644 uz/assets/js/5f7e5f34.8e7d2d5a.js create mode 100644 uz/assets/js/5f7e5f34.d7fde307.js create mode 100644 uz/assets/js/6636c8dc.16b7fbb2.js delete mode 100644 uz/assets/js/6636c8dc.371976c6.js rename uz/assets/js/{664a648d.9126bc1a.js => 664a648d.7316b42c.js} (64%) rename uz/assets/js/{70e2aa25.52fda518.js => 70e2aa25.43cd3328.js} (65%) create mode 100644 uz/assets/js/7313bf7a.776d7bb7.js delete mode 100644 uz/assets/js/7313bf7a.a055a10b.js create mode 100644 uz/assets/js/7a790ed0.07bf6109.js delete mode 100644 uz/assets/js/7a790ed0.a77d546a.js create mode 100644 uz/assets/js/84a0dbae.05770008.js delete mode 100644 uz/assets/js/84a0dbae.5f91a537.js create mode 100644 uz/assets/js/857ae1bf.b19239b3.js delete mode 100644 uz/assets/js/857ae1bf.bfecf453.js delete mode 100644 uz/assets/js/8651fb1e.99dbe9b3.js create mode 100644 uz/assets/js/8651fb1e.e6adb76d.js rename uz/assets/js/{87e5c187.68a4a881.js => 87e5c187.c6efa71f.js} (65%) rename uz/assets/js/{8b5a42c3.8d19d97e.js => 8b5a42c3.7719eb78.js} (54%) delete mode 100644 uz/assets/js/8c1e6152.0e324c3d.js create mode 100644 uz/assets/js/8c1e6152.bcfb4462.js rename uz/assets/js/{8ce83ff6.c022f39f.js => 8ce83ff6.1b0cbfa0.js} (51%) rename uz/assets/js/{9b83d7f4.4a4f0708.js => 9b83d7f4.ac13edc2.js} (58%) rename uz/assets/js/{a1521a63.ec3fca4a.js => a1521a63.84d3ccb5.js} (62%) delete mode 100644 uz/assets/js/a386f730.1bf08bc6.js create mode 100644 uz/assets/js/a386f730.c7f3a9b3.js rename uz/assets/js/{a61c55ce.98fa9e67.js => a61c55ce.f7de0304.js} (59%) rename uz/assets/js/{acaf5b8a.23a47d35.js => acaf5b8a.02828b7e.js} (51%) create mode 100644 uz/assets/js/b1248e9a.3c1cac19.js delete mode 100644 uz/assets/js/b1248e9a.786cec5d.js create mode 100644 uz/assets/js/b49b8edb.d0d8ba98.js delete mode 100644 uz/assets/js/b49b8edb.fa7473c2.js delete mode 100644 uz/assets/js/ba8bb0f7.4c534fa2.js create mode 100644 uz/assets/js/ba8bb0f7.ed1412af.js rename uz/assets/js/{c0c6474c.2b91f88e.js => c0c6474c.f67d6947.js} (65%) rename uz/assets/js/{c4d0faae.a2a4587b.js => c4d0faae.f225a33d.js} (53%) rename uz/assets/js/{c5666f39.6a9ea9d7.js => c5666f39.14e45723.js} (58%) create mode 100644 uz/assets/js/cb388a7b.aa9a54ed.js delete mode 100644 uz/assets/js/cb388a7b.ff2c174d.js rename uz/assets/js/{d13cbfb8.a103d7ed.js => d13cbfb8.b22513de.js} (50%) delete mode 100644 uz/assets/js/d25889e1.a271fe3d.js rename uz/assets/js/{d7baea7e.e5c1473e.js => d7baea7e.a8dcb78e.js} (55%) rename uz/assets/js/{d999437a.e13e5417.js => d999437a.aa2449ce.js} (65%) rename uz/assets/js/{dfe5ecdf.ec31e389.js => dfe5ecdf.76905950.js} (56%) delete mode 100644 uz/assets/js/e01c2047.6dea109f.js create mode 100644 uz/assets/js/e01c2047.932f0f06.js delete mode 100644 uz/assets/js/e1003eab.00dfdd75.js create mode 100644 uz/assets/js/e1003eab.0e1be527.js delete mode 100644 uz/assets/js/e1c0d304.66f8cedc.js create mode 100644 uz/assets/js/e1c0d304.870440af.js rename assets/js/55fbebd6.40af11f9.js => uz/assets/js/e3309638.2753e3b5.js (70%) delete mode 100644 uz/assets/js/e3309638.f2813f9b.js rename uz/assets/js/{ed3dcfcb.ce1cac77.js => ed3dcfcb.ddd0ba5a.js} (55%) delete mode 100644 uz/assets/js/f21d8499.40627402.js create mode 100644 uz/assets/js/f21d8499.e659f6e9.js rename uz/assets/js/{f2567325.201e336e.js => f2567325.071d8327.js} (57%) create mode 100644 uz/assets/js/fe129f8e.65dbf879.js delete mode 100644 uz/assets/js/fe129f8e.7ae5a6f3.js create mode 100644 uz/assets/js/fe347612.6ef98e42.js delete mode 100644 uz/assets/js/fe347612.cacddfb9.js delete mode 100644 uz/assets/js/main.080f46be.js create mode 100644 uz/assets/js/main.16b5c213.js rename uz/assets/js/{main.080f46be.js.LICENSE.txt => main.16b5c213.js.LICENSE.txt} (100%) create mode 100644 uz/assets/js/runtime~main.14008dd1.js delete mode 100644 uz/assets/js/runtime~main.4799c7d1.js diff --git a/404.html b/404.html index ddc943c5cc..1d8005d8a3 100644 --- a/404.html +++ b/404.html @@ -22,8 +22,8 @@ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/0499e362.6068d54a.js b/assets/js/0499e362.6068d54a.js new file mode 100644 index 0000000000..a35380b0ea --- /dev/null +++ b/assets/js/0499e362.6068d54a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[4005],{4474:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=s(6070),n=s(7468);const o={unlisted:!0},r="Decomposition cheatsheet",a={id:"get-started/cheatsheet",title:"Decomposition cheatsheet",description:"Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow.",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx",sourceDirName:"get-started",slug:"/get-started/cheatsheet",permalink:"/docs/get-started/cheatsheet",draft:!1,unlisted:!0,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,frontMatter:{unlisted:!0},sidebar:"getstartedSidebar"},c={},d=[{value:"Choosing a layer",id:"choosing-a-layer",level:2},{value:"Examples",id:"examples",level:2},{value:"Tweet",id:"tweet",level:3},{value:"GitHub",id:"github",level:3},{value:"See also",id:"see-also",level:2}];function l(e){const t={a:"a",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"decomposition-cheatsheet",children:"Decomposition cheatsheet"}),"\n",(0,i.jsx)(t.p,{children:"Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow."}),"\n",(0,i.jsx)(t.h2,{id:"choosing-a-layer",children:"Choosing a layer"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(735).A+"",children:"Download PDF"})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Definitions of all layers and self-check questions",src:s(9337).A+"",width:"1684",height:"1190"})}),"\n",(0,i.jsx)(t.h2,{id:"examples",children:"Examples"}),"\n",(0,i.jsx)(t.h3,{id:"tweet",children:"Tweet"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"decomposed-tweet-bordered-bgLight",src:s(2208).A+"",width:"1200",height:"2364"})}),"\n",(0,i.jsx)(t.h3,{id:"github",children:"GitHub"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"decomposed-github-bordered",src:s(2688).A+"",width:"2291",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"see-also",children:"See also"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4262",children:"(Thread) General logic for features and entities"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4210",children:"(Thread) Decomposition of swollen logic"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4088",children:"(Thread) About understanding the areas of responsibility during decomposition"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3828",children:"(Thread) Decomposition of the Product List widget"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.pluralsight.com/guides/how-to-organize-your-react-+-redux-codebase",children:"(Article) Different approaches to the decomposition of logic"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3776",children:"(Thread) About the difference between features and entities"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3248",children:"(Thread) About the difference between things and entities (2)"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3833",children:"(Thread) About the application of criteria for decomposition"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},735:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/files/choosing-a-layer-en-12fdf3265c8fc4f6b58687352b81fce7.pdf"},9337:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/choosing-a-layer-en-5b67f20bb921ba17d78a56c0dc7654a9.jpg"},2688:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/decompose-github-a0eeb839a4b5ef5c480a73726a4451b0.jpg"},2208:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/decompose-twitter-7b9a50f879d763c49305b3bf0751ee35.png"},7468:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>a});var i=s(758);const n={},o=i.createContext(n);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0499e362.6d99d0cb.js b/assets/js/0499e362.6d99d0cb.js deleted file mode 100644 index 8464e7e1f2..0000000000 --- a/assets/js/0499e362.6d99d0cb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[4005],{4474:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=s(6070),n=s(7468);const o={unlisted:!0},r="Decomposition cheatsheet",a={id:"get-started/cheatsheet",title:"Decomposition cheatsheet",description:"Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow.",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx",sourceDirName:"get-started",slug:"/get-started/cheatsheet",permalink:"/docs/get-started/cheatsheet",draft:!1,unlisted:!0,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,frontMatter:{unlisted:!0},sidebar:"getstartedSidebar"},c={},d=[{value:"Choosing a layer",id:"choosing-a-layer",level:2},{value:"Examples",id:"examples",level:2},{value:"Tweet",id:"tweet",level:3},{value:"GitHub",id:"github",level:3},{value:"See also",id:"see-also",level:2}];function l(e){const t={a:"a",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"decomposition-cheatsheet",children:"Decomposition cheatsheet"}),"\n",(0,i.jsx)(t.p,{children:"Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow."}),"\n",(0,i.jsx)(t.h2,{id:"choosing-a-layer",children:"Choosing a layer"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(735).A+"",children:"Download PDF"})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Definitions of all layers and self-check questions",src:s(9337).A+"",width:"1684",height:"1190"})}),"\n",(0,i.jsx)(t.h2,{id:"examples",children:"Examples"}),"\n",(0,i.jsx)(t.h3,{id:"tweet",children:"Tweet"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"decomposed-tweet-bordered-bgLight",src:s(2208).A+"",width:"1200",height:"2364"})}),"\n",(0,i.jsx)(t.h3,{id:"github",children:"GitHub"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"decomposed-github-bordered",src:s(2688).A+"",width:"2291",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"see-also",children:"See also"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4262",children:"(Thread) General logic for features and entities"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4210",children:"(Thread) Decomposition of swollen logic"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4088",children:"(Thread) About understanding the areas of responsibility during decomposition"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3828",children:"(Thread) Decomposition of the Product List widget"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.pluralsight.com/guides/how-to-organize-your-react-+-redux-codebase",children:"(Article) Different approaches to the decomposition of logic"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3776",children:"(Thread) About the difference between features and entities"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3248",children:"(Thread) About the difference between things and entities (2)"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3833",children:"(Thread) About the application of criteria for decomposition"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},735:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/files/choosing-a-layer-en-12fdf3265c8fc4f6b58687352b81fce7.pdf"},9337:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/choosing-a-layer-en-5b67f20bb921ba17d78a56c0dc7654a9.jpg"},2688:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/decompose-github-a0eeb839a4b5ef5c480a73726a4451b0.jpg"},2208:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/decompose-twitter-7b9a50f879d763c49305b3bf0751ee35.png"},7468:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>a});var i=s(758);const n={},o=i.createContext(n);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/066221cc.746776ad.js b/assets/js/066221cc.746776ad.js new file mode 100644 index 0000000000..06c69aa89d --- /dev/null +++ b/assets/js/066221cc.746776ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[3120],{6301:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=s(6070),t=s(7468);const r={sidebar_position:1},o="Overview",a={id:"get-started/overview",title:"Overview",description:"Feature-Sliced Design (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and stable in the face of ever-changing business requirements.",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/get-started/overview.mdx",sourceDirName:"get-started",slug:"/get-started/overview",permalink:"/docs/get-started/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/en/docusaurus-plugin-content-docs/current/get-started/overview.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"getstartedSidebar",previous:{title:"\ud83d\ude80 Get Started",permalink:"/docs/get-started/"},next:{title:"Tutorial",permalink:"/docs/get-started/tutorial"}},l={},c=[{value:"Is it right for me?",id:"is-it-right-for-me",level:2},{value:"Basic example",id:"basic-example",level:2},{value:"Concepts",id:"concepts",level:2},{value:"Layers",id:"layers",level:3},{value:"Slices",id:"slices",level:3},{value:"Segments",id:"segments",level:3},{value:"Advantages",id:"advantages",level:2},{value:"Incremental adoption",id:"incremental-adoption",level:2},{value:"Next steps",id:"next-steps",level:2}];function d(e){const n={a:"a",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"overview",children:"Overview"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Feature-Sliced Design"})," (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and stable in the face of ever-changing business requirements."]}),"\n",(0,i.jsxs)(n.p,{children:["Apart from a set of conventions, FSD is also a toolchain. We have a ",(0,i.jsx)(n.a,{href:"https://github.com/feature-sliced/steiger",children:"linter"})," to check your project's architecture, ",(0,i.jsx)(n.a,{href:"https://github.com/feature-sliced/awesome?tab=readme-ov-file#tools",children:"folder generators"})," through a CLI or IDEs, as well as a rich library of ",(0,i.jsx)(n.a,{href:"/examples",children:"examples"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"is-it-right-for-me",children:"Is it right for me?"}),"\n",(0,i.jsx)(n.p,{children:"FSD can be implemented in projects and teams of any size. It is right for your project if:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["You're doing ",(0,i.jsx)(n.strong,{children:"frontend"})," (UI on web, mobile, desktop, etc.)"]}),"\n",(0,i.jsxs)(n.li,{children:["You're building an ",(0,i.jsx)(n.strong,{children:"application"}),", not a library"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"And that's it! There are no restrictions on what programming language, UI framework, or state manager you use. You can also adopt FSD incrementally, use it in monorepos, and scale to great lengths by breaking your app into packages and implementing FSD individually within them."}),"\n",(0,i.jsxs)(n.p,{children:["If you already have an architecture and you're considering a switch to FSD, make sure that the current architecture is ",(0,i.jsx)(n.strong,{children:"causing trouble"})," in your team. For example, if your project has grown too large and inter-connected to efficiently implement new features, or if you're expecting a lot of new members to join the team. If the current architecture works, maybe it's not worth changing. But if you do decide to migrate, see the ",(0,i.jsx)(n.a,{href:"/docs/guides/migration/from-legacy",children:"Migration"})," section for guidance."]}),"\n",(0,i.jsx)(n.h2,{id:"basic-example",children:"Basic example"}),"\n",(0,i.jsx)(n.p,{children:"Here is a simple project that implements FSD:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 app"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 pages"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 shared"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["These top-level folders are called ",(0,i.jsx)(n.em,{children:"layers"}),". Let's look deeper:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"\ud83d\udcc2 app"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 routes"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 analytics"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"\ud83d\udcc2 pages"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 home"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"\ud83d\udcc2 article-reader"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 ui"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 api"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 settings"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"\ud83d\udcc2 shared"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 ui"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 api"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Folders inside ",(0,i.jsx)(n.code,{children:"\ud83d\udcc2 pages"})," are called ",(0,i.jsx)(n.em,{children:"slices"}),". They divide the layer by domain (in this case, by pages)."]}),"\n",(0,i.jsxs)(n.p,{children:["Folders inside ",(0,i.jsx)(n.code,{children:"\ud83d\udcc2 app"}),", ",(0,i.jsx)(n.code,{children:"\ud83d\udcc2 shared"}),", and ",(0,i.jsx)(n.code,{children:"\ud83d\udcc2 pages/article-reader"})," are called ",(0,i.jsx)(n.em,{children:"segments"}),", and they divide slices (or layers) by technical purpose, i.e. what the code is for."]}),"\n",(0,i.jsx)(n.h2,{id:"concepts",children:"Concepts"}),"\n",(0,i.jsx)(n.p,{children:"Layers, slices, and segments form a hierarchy like this:"}),"\n",(0,i.jsxs)("figure",{children:[(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Hierarchy of FSD concepts, described below",src:s(1075).A+"",width:"1355",height:"754"})}),(0,i.jsxs)("figcaption",{style:{fontStyle:"italic",fontSize:"0.9em"},children:[(0,i.jsx)("p",{children:'Pictured above: three pillars, labeled left to right as "Layers", "Slices", and "Segments" respectively.'}),(0,i.jsx)("p",{children:'The "Layers" pillar contains seven divisions arranged top to bottom and labeled "app", "processes", "pages", "widgets", "features", "entities", and "shared". The "processes" division is crossed out. The "entities" division is connected to the second pillar "Slices" in a way that conveys that the second pillar is the content of "entities".'}),(0,i.jsx)("p",{children:'The "Slices" pillar contains three divisions arranged top to bottom and labeled "user", "post", and "comment". The "post" division is connected to the third pillar "Segments" in the same way such that it\'s the content of "post".'}),(0,i.jsx)("p",{children:'The "Segments" pillar contains three divisions, arranged top to bottom and labeled "ui", "model", and "api".'})]})]}),"\n",(0,i.jsx)(n.h3,{id:"layers",children:"Layers"}),"\n",(0,i.jsx)(n.p,{children:"Layers are standardized across all FSD projects. You don't have to use all of the layers, but their names are important. There are currently seven of them (from top to bottom):"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"App* \u2014 everything that makes the app run \u2014 routing, entrypoints, global styles, providers."}),"\n",(0,i.jsx)(n.li,{children:"Processes (deprecated) \u2014 complex inter-page scenarios."}),"\n",(0,i.jsx)(n.li,{children:"Pages \u2014 full pages or large parts of a page in nested routing."}),"\n",(0,i.jsx)(n.li,{children:"Widgets \u2014 large self-contained chunks of functionality or UI, usually delivering an entire use case."}),"\n",(0,i.jsxs)(n.li,{children:["Features \u2014 ",(0,i.jsx)(n.em,{children:"reused"})," implementations of entire product features, i.e. actions that bring business value to the user."]}),"\n",(0,i.jsxs)(n.li,{children:["Entities \u2014 business entities that the project works with, like ",(0,i.jsx)(n.code,{children:"user"})," or ",(0,i.jsx)(n.code,{children:"product"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Shared* \u2014 reusable functionality, especially when it's detached from the specifics of the project/business, though not necessarily."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"* \u2014 these layers, App and Shared, unlike the other layers, don't have slices, and are made up of segments directly."})}),"\n",(0,i.jsx)(n.p,{children:"The trick with layers is that modules on one layer can only know about and import from modules from the layers strictly below."}),"\n",(0,i.jsx)(n.h3,{id:"slices",children:"Slices"}),"\n",(0,i.jsx)(n.p,{children:"Next up are slices, which partition the code by business domain. You're free to choose any names for them, and create as many as you wish. Slices make your codebase easier to navigate by keeping logically related modules close together."}),"\n",(0,i.jsx)(n.p,{children:"Slices cannot use other slices on the same layer, and that helps with high cohesion and low coupling."}),"\n",(0,i.jsx)(n.h3,{id:"segments",children:"Segments"}),"\n",(0,i.jsx)(n.p,{children:"Slices, as well as layers App and Shared, consist of segments, and segments group your code by its purpose. Segment names are not constrained by the standard, but there are several conventional names for the most common purposes:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ui"})," \u2014 everything related to UI display: UI components, date formatters, styles, etc."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"api"})," \u2014 backend interactions: request functions, data types, mappers, etc."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"model"})," \u2014 the data model: schemas, interfaces, stores, and business logic."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"lib"})," \u2014 library code that other modules on this slice need."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"config"})," \u2014 configuration files and feature flags."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Usually these segments are enough for most layers, you would only create your own segments in Shared or App, but this is not a rule."}),"\n",(0,i.jsx)(n.h2,{id:"advantages",children:"Advantages"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Uniformity"}),(0,i.jsx)(n.br,{}),"\n","Since the structure is standardized, projects become more uniform, which makes onboarding new members easier for the team."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Stability in face of changes and refactoring"}),(0,i.jsx)(n.br,{}),"\n","A module on one layer cannot use other modules on the same layer, or the layers above.",(0,i.jsx)(n.br,{}),"\n","This allows you to make isolated modifications without unforeseen consequences to the rest of the app."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Controlled reuse of logic"}),(0,i.jsx)(n.br,{}),"\n","Depending on the layer, you can make code very reusable or very local.",(0,i.jsx)(n.br,{}),"\n","This keeps a balance between following the ",(0,i.jsx)(n.strong,{children:"DRY"})," principle and practicality."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Orientation to business and users needs"}),(0,i.jsx)(n.br,{}),"\n","The app is split into business domains and usage of the business language is encouraged in naming, so that you can do useful product work without fully understanding all other unrelated parts of the project."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"incremental-adoption",children:"Incremental adoption"}),"\n",(0,i.jsx)(n.p,{children:"If you have an existing codebase that you want to migrate to FSD, we suggest the following strategy. We found it useful in our own migration experience."}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Start by slowly shaping up the App and Shared layers module-by-module to create a foundation."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Distribute all of the existing UI across Widgets and Pages using broad strokes, even if they have dependencies that violate the rules of FSD."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Start gradually resolving import violations and also extracting Entities and possibly even Features."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"It's advised to refrain from adding new large entities while refactoring or refactoring only certain parts of the project."}),"\n",(0,i.jsx)(n.h2,{id:"next-steps",children:"Next steps"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Want to get a good grasp of how to think in FSD?"})," Check out the ",(0,i.jsx)(n.a,{href:"/docs/get-started/tutorial",children:"Tutorial"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Prefer to learn from examples?"})," We have a lot in the ",(0,i.jsx)(n.a,{href:"/examples",children:"Examples"})," section."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Have questions?"})," Drop by our ",(0,i.jsx)(n.a,{href:"https://t.me/feature_sliced",children:"Telegram chat"})," and get help from the community."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1075:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/visual_schema-e826067f573946613dcdc76e3f585082.jpg"},7468:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var i=s(758);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0a4ee302.2a8a86d7.js b/assets/js/0a4ee302.2a8a86d7.js new file mode 100644 index 0000000000..19c7a65413 --- /dev/null +++ b/assets/js/0a4ee302.2a8a86d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[5977],{9863:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var s=n(6070),i=n(7468);const o={sidebar_position:10},r="Usage with NuxtJS",c={id:"guides/tech/with-nuxtjs",title:"Usage with NuxtJS",description:"It is possible to implement FSD in a NuxtJS project, but conflicts arise due to differences between the NuxtJS project structure requirements and FSD principles:",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/guides/tech/with-nuxtjs.mdx",sourceDirName:"guides/tech",slug:"/guides/tech/with-nuxtjs",permalink:"/docs/guides/tech/with-nuxtjs",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/en/docusaurus-plugin-content-docs/current/guides/tech/with-nuxtjs.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:10,frontMatter:{sidebar_position:10},sidebar:"guidesSidebar",previous:{title:"Usage with NextJS",permalink:"/docs/guides/tech/with-nextjs"},next:{title:"Usage with React Query",permalink:"/docs/guides/tech/with-react-query"}},a={},d=[{value:"Adding an alias for the src directory",id:"adding-an-alias-for-the-src-directory",level:2},{value:"Move file routing to src/app",id:"move-file-routing-to-srcapp",level:2},{value:"What to do with layouts?",id:"what-to-do-with-layouts",level:2},{value:"See also",id:"see-also",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"usage-with-nuxtjs",children:"Usage with NuxtJS"}),"\n",(0,s.jsx)(t.p,{children:"It is possible to implement FSD in a NuxtJS project, but conflicts arise due to differences between the NuxtJS project structure requirements and FSD principles:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Initially, NuxtJS offers a project file structure without a ",(0,s.jsx)(t.code,{children:"src"})," folder, i.e. in the root of the project."]}),"\n",(0,s.jsxs)(t.li,{children:["The file routing is in the ",(0,s.jsx)(t.code,{children:"pages"})," folder, while in FSD this folder is reserved for the flat slice structure."]}),"\n"]}),"\n",(0,s.jsxs)(t.h2,{id:"adding-an-alias-for-the-src-directory",children:["Adding an alias for the ",(0,s.jsx)(t.code,{children:"src"})," directory"]}),"\n",(0,s.jsxs)(t.p,{children:["Add an ",(0,s.jsx)(t.code,{children:"alias"})," object to your config:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ts",metastring:'title="nuxt.config.ts"',children:"export default defineNuxtConfig({\n devtools: { enabled: true }, // Not related to FSD, enabled at project startup\n alias: {\n \"@\": '~/src'\n },\n})\n"})}),"\n",(0,s.jsxs)(t.h2,{id:"move-file-routing-to-srcapp",children:["Move file routing to ",(0,s.jsx)(t.code,{children:"src/app"})]}),"\n",(0,s.jsxs)(t.p,{children:["First of all, create a ",(0,s.jsx)(t.code,{children:"src"})," directory in the root of the project, and create app and pages layers inside this directory and a routes folder inside the app layer.\nThus, your file structure should look like this:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app\n\u2502 \u2502 \u251c\u2500\u2500 routes\n\u2502 \u251c\u2500\u2500 pages # The pages folder assigned to FSD\n"})}),"\n",(0,s.jsxs)(t.p,{children:["In order for NuxtJS to use the ",(0,s.jsx)(t.code,{children:"app"})," layer for file routing, you need to modify ",(0,s.jsx)(t.code,{children:"nuxt.config.ts"})," as follows:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ts",metastring:'title="nuxt.config.ts"',children:"export default defineNuxtConfig({\n devtools: { enabled: true }, // Not FSD related, enabled at project startup\n alias: {\n \"@\": '~/src'\n },\n dir: {\n pages: './src/app/routes'\n }\n})\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Now, you can create roots for pages within ",(0,s.jsx)(t.code,{children:"app"})," and connect pages from ",(0,s.jsx)(t.code,{children:"pages"})," to them."]}),"\n",(0,s.jsxs)(t.p,{children:["For example, to add a ",(0,s.jsx)(t.code,{children:"Home"})," page to your project, you need to do the following steps:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Add a page slice inside the ",(0,s.jsx)(t.code,{children:"pages"})," layer"]}),"\n",(0,s.jsxs)(t.li,{children:["Add the corresponding root inside the ",(0,s.jsx)(t.code,{children:"app"})," layer"]}),"\n",(0,s.jsx)(t.li,{children:"Align the page from the slice with the root"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["To create a page slice, let's use the ",(0,s.jsx)(t.a,{href:"https://github.com/feature-sliced/cli",children:"CLI"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",children:"fsd pages home\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Create a ",(0,s.jsx)(t.code,{children:"home-page.vue"})," file inside the ui segment, access it using the Public API"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ts",metastring:'title="src/pages/home/index.ts"',children:"export { default as HomePage } from './ui/home-page';\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Create a root for this page inside the ",(0,s.jsx)(t.code,{children:"app"})," layer:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"\n\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app\n\u2502 \u2502 \u251c\u2500\u2500 routes\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 index.vue\n\u2502 \u251c\u2500\u2500 pages\n\u2502 \u2502 \u251c\u2500\u2500 home\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 ui\n\u2502 \u2502 \u2502 \u2502 \u251c\u2500\u2500 home-page.vue\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 index.ts\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Add your page component inside the ",(0,s.jsx)(t.code,{children:"index.vue"})," file:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",metastring:'title="src/app/routes/index.vue"',children:" - - + +
Skip to main content

๐ŸŒŽ FSD international community

ยท 2 min read
Anton Medvedev
FSD core-team member
post-cover
diff --git a/blog/archive.html b/blog/archive.html index 926d5bba6e..a399bb0824 100644 --- a/blog/archive.html +++ b/blog/archive.html @@ -22,8 +22,8 @@ - - + + diff --git a/blog/international-community.html b/blog/international-community.html index c415560e39..da4e50cd6c 100644 --- a/blog/international-community.html +++ b/blog/international-community.html @@ -22,8 +22,8 @@ - - + +

๐ŸŒŽ FSD international community

ยท 2 min read
Anton Medvedev
FSD core-team member
post-cover
diff --git a/blog/rebranding-stable.html b/blog/rebranding-stable.html index d7123dacdc..b516329b98 100644 --- a/blog/rebranding-stable.html +++ b/blog/rebranding-stable.html @@ -22,8 +22,8 @@ - - + +

๐Ÿ’ฅ FSD rebranding!

ยท 2 min read
Ilya Azin
FSD core-team member
logo-primary
diff --git a/blog/tags.html b/blog/tags.html index bb2d94e3ab..a43bb47a57 100644 --- a/blog/tags.html +++ b/blog/tags.html @@ -22,8 +22,8 @@ - - + + diff --git a/blog/tags/brand.html b/blog/tags/brand.html index 3af69c2501..7c6a34eb15 100644 --- a/blog/tags/brand.html +++ b/blog/tags/brand.html @@ -22,8 +22,8 @@ - - + +

One post tagged with "brand"

View All Tags

๐Ÿ’ฅ FSD rebranding!

ยท 2 min read
Ilya Azin
FSD core-team member
logo-primary
diff --git a/blog/tags/community.html b/blog/tags/community.html index ede31b3a3f..81725d1f77 100644 --- a/blog/tags/community.html +++ b/blog/tags/community.html @@ -22,8 +22,8 @@ - - + +

One post tagged with "community"

View All Tags

๐ŸŒŽ FSD international community

ยท 2 min read
Anton Medvedev
FSD core-team member
post-cover
diff --git a/blog/tags/discord.html b/blog/tags/discord.html index 109fad4a5d..e05d324da1 100644 --- a/blog/tags/discord.html +++ b/blog/tags/discord.html @@ -22,8 +22,8 @@ - - + +

One post tagged with "discord"

View All Tags

๐ŸŒŽ FSD international community

ยท 2 min read
Anton Medvedev
FSD core-team member
post-cover
diff --git a/blog/tags/promo.html b/blog/tags/promo.html index f98b784f57..d398475731 100644 --- a/blog/tags/promo.html +++ b/blog/tags/promo.html @@ -22,8 +22,8 @@ - - + +

2 posts tagged with "promo"

View All Tags

๐ŸŒŽ FSD international community

ยท 2 min read
Anton Medvedev
FSD core-team member
post-cover
diff --git a/community.html b/community.html index 90421ab29a..2ce2625311 100644 --- a/community.html +++ b/community.html @@ -22,8 +22,8 @@ - - + + +
Contributing

HowTo, Workflow, Support

\ No newline at end of file diff --git a/community/team.html b/community/team.html index 1172b6d0ad..5e3ab78409 100644 --- a/community/team.html +++ b/community/team.html @@ -22,8 +22,8 @@ - - + + +

Companiesโ€‹

\ No newline at end of file diff --git a/docs.html b/docs.html index a2cf392886..acac91eb72 100644 --- a/docs.html +++ b/docs.html @@ -22,8 +22,8 @@ - - + + +
๐Ÿ›  Examples

Projects built with Feature-Sliced Design

\ No newline at end of file diff --git a/docs/about.html b/docs/about.html index a6eded9f68..391d5b38d4 100644 --- a/docs/about.html +++ b/docs/about.html @@ -22,8 +22,8 @@ - - + + +
Promote

About promotion and integration FSD at companies

Integration โ€ข Promoting in team โ€ข Promoting in company
\ No newline at end of file diff --git a/docs/about/alternatives.html b/docs/about/alternatives.html index beb8feaf21..311ee4a336 100644 --- a/docs/about/alternatives.html +++ b/docs/about/alternatives.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/mission.html b/docs/about/mission.html index 1db88657af..811ac16a76 100644 --- a/docs/about/mission.html +++ b/docs/about/mission.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/motivation.html b/docs/about/motivation.html index ea1aefbe31..beb4e27a16 100644 --- a/docs/about/motivation.html +++ b/docs/about/motivation.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/promote/for-company.html b/docs/about/promote/for-company.html index 22e035658a..80323ce05d 100644 --- a/docs/about/promote/for-company.html +++ b/docs/about/promote/for-company.html @@ -22,8 +22,8 @@ - - + +
Skip to main content

Promote in company

@@ -33,6 +33,6 @@

How can I submit a methodology to a business?โ€‹

-

How to prepare and justify a plan to move to the methodology?โ€‹

+

How to prepare and justify a plan to move to the methodology?โ€‹

Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/promote/for-team.html b/docs/about/promote/for-team.html index e631a241ce..8fdd21c3ba 100644 --- a/docs/about/promote/for-team.html +++ b/docs/about/promote/for-team.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/promote/integration.html b/docs/about/promote/integration.html index 685346aefc..7b149103ca 100644 --- a/docs/about/promote/integration.html +++ b/docs/about/promote/integration.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/promote/partial-application.html b/docs/about/promote/partial-application.html index 8d56204dc2..4f8a14c95a 100644 --- a/docs/about/promote/partial-application.html +++ b/docs/about/promote/partial-application.html @@ -22,14 +22,14 @@ - - + +
Skip to main content

Partial Application

WIP

The article is in the process of writing

To bring the release of the article closer, you can:


๐Ÿฐ Stay tuned!

How to partially apply the methodology? Does it make sense? What if I ignore it?

-
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/understanding/abstractions.html b/docs/about/understanding/abstractions.html index abe27089eb..0b646b5d89 100644 --- a/docs/about/understanding/abstractions.html +++ b/docs/about/understanding/abstractions.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/understanding/architecture.html b/docs/about/understanding/architecture.html index c8333f29e5..21ca0848fc 100644 --- a/docs/about/understanding/architecture.html +++ b/docs/about/understanding/architecture.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/understanding/knowledge-types.html b/docs/about/understanding/knowledge-types.html index c0897d89ab..c4a3abee45 100644 --- a/docs/about/understanding/knowledge-types.html +++ b/docs/about/understanding/knowledge-types.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/understanding/naming.html b/docs/about/understanding/naming.html index 9001a42432..d66663b804 100644 --- a/docs/about/understanding/naming.html +++ b/docs/about/understanding/naming.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/understanding/needs-driven.html b/docs/about/understanding/needs-driven.html index 7a1be9d19b..f6099b1780 100644 --- a/docs/about/understanding/needs-driven.html +++ b/docs/about/understanding/needs-driven.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/about/understanding/signals.html b/docs/about/understanding/signals.html index 1dfc76ef60..dc170cfeae 100644 --- a/docs/about/understanding/signals.html +++ b/docs/about/understanding/signals.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/branding.html b/docs/branding.html index 22966f9dd0..c862e1ac00 100644 --- a/docs/branding.html +++ b/docs/branding.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/get-started.html b/docs/get-started.html index de516b9f86..a46be9fc99 100644 --- a/docs/get-started.html +++ b/docs/get-started.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/get-started/cheatsheet.html b/docs/get-started/cheatsheet.html index 3f9b71f8ef..9f795157ce 100644 --- a/docs/get-started/cheatsheet.html +++ b/docs/get-started/cheatsheet.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/get-started/faq.html b/docs/get-started/faq.html index adc7e355e1..4893baf893 100644 --- a/docs/get-started/faq.html +++ b/docs/get-started/faq.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+

Answered here

Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/get-started/overview.html b/docs/get-started/overview.html index 9a2fcfddb7..9aa3b63836 100644 --- a/docs/get-started/overview.html +++ b/docs/get-started/overview.html @@ -3,7 +3,7 @@ -Overview | Feature-Sliced Design +Overview | Feature-Sliced Design @@ -22,91 +22,126 @@ - - + +
Skip to main content

Overview

-

Feature-Sliced Design (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and structured in the face of ever-changing business requirements.

+

Feature-Sliced Design (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and stable in the face of ever-changing business requirements.

+

Apart from a set of conventions, FSD is also a toolchain. We have a linter to check your project's architecture, folder generators through a CLI or IDEs, as well as a rich library of examples.

Is it right for me?โ€‹

-

FSD can be implemented in projects and teams of any size, but there are a few things to keep in mind:

+

FSD can be implemented in projects and teams of any size. It is right for your project if:

    -
  • This methodology is for front-end projects only. If you're looking for a back-end architecture, consider Clean Architecture.
  • -
  • This methodology is for user-facing applications only, not for libraries or UI kits. If you're looking for an architecture for a UI kit, see Material UI for inspiration.
  • -
  • A very simple app of a single page might not need the benefits of FSD and suffer from the overhead. However, FSD promotes a nice way of thinking, so feel free to use it on the tiniest projects if you want.
  • -
  • A huge app, the size of the Google Cloud admin dashboard, will require a custom architecture. It could still be based on FSD, by the way.
  • +
  • You're doing frontend (UI on web, mobile, desktop, etc.)
  • +
  • You're building an application, not a library
-

FSD doesn't enforce a particular programming language, UI framework or state manager โ€” bring your own or see some examples.

-

If you have an existing project, fear not โ€” FSD can be adopted incrementally. Just make sure that your team is inย pain from the current architecture, otherwise a switch might not be worth it. For migration guidance, see the Migration section.

-

Basicsโ€‹

-

In FSD, a project consists of layers, each layer is made up of slices and each slice is made up of segments.

-

themed--scheme

-

The layers are standardized across all projects and vertically arranged. Modules on one layer can only interact with modules from the layers strictly below. There are currently seven of them (from top to bottom):

-
    -
  1. app โ€” app-wide settings, styles and providers.
  2. -
  3. processes (deprecated) โ€” complex inter-page scenarios. -(e.g., authentication).
  4. -
  5. pages โ€” compositional layer to construct full pages from entities, features and widgets.
  6. -
  7. widgets โ€” compositional layer to combine entities and features into meaningful blocks. -(e.g. IssuesList, UserProfile).
  8. -
  9. features โ€” user interactions, actions that bring business value to the user. -(e.g. SendComment, AddToCart, UsersSearch).
  10. -
  11. entities โ€” business entities. -(e.g., User, Product, Order).
  12. -
  13. shared โ€” reusable functionality, detached from the specifics of the project/business. -(e.g. UIKit, libs, API)/.
  14. -
-

Then there are slices, which partition the code by business domain. This makes your codebase easy to navigate by keeping logically related modules close together. Slices cannot use other slices on the same layer, and that helps with high cohesion and low coupling.

-

Each slice, in turn, consists of segments. These are tiny modules that are meant to help with separating code within a slice by its technical purpose. The most common segments are ui, model (store, actions), api and lib (utils/hooks), but you can omit some or add more, as you see fit.

-
note

In most cases, it is recommended to place api and config only in the shared layer, unless your API client is also your storage (GraphQL, TanStack Query, etc.)

-

Exampleโ€‹

-

Let's consider a social network application.

+

And that's it! There are no restrictions on what programming language, UI framework, or state manager you use. You can also adopt FSD incrementally, use it in monorepos, and scale to great lengths by breaking your app into packages and implementing FSD individually within them.

+

If you already have an architecture and you're considering a switch to FSD, make sure that the current architecture is causing trouble in your team. For example, if your project has grown too large and inter-connected to efficiently implement new features, or if you're expecting a lot of new members to join the team. If the current architecture works, maybe it's not worth changing. But if you do decide to migrate, see the Migration section for guidance.

+

Basic exampleโ€‹

+

Here is a simple project that implements FSD:

+
    +
  • ๐Ÿ“ app
  • +
  • ๐Ÿ“ pages
  • +
  • ๐Ÿ“ shared
  • +
+

These top-level folders are called layers. Let's look deeper:

+
    +
  • ๐Ÿ“‚ app +
      +
    • ๐Ÿ“ routes
    • +
    • ๐Ÿ“ analytics
    • +
    +
  • +
  • ๐Ÿ“‚ pages +
      +
    • ๐Ÿ“ home
    • +
    • ๐Ÿ“‚ article-reader
        -
      • app/ contains setup of routing, store and global styles.
      • -
      • pages/ contains the route components for each page in the app, mostly composition, hardly any logic.
      • +
      • ๐Ÿ“ ui
      • +
      • ๐Ÿ“ api
      -

      Within that application, let's consider a post card in a news feed.

      +
    • +
    • ๐Ÿ“ settings
    • +
    +
  • +
  • ๐Ÿ“‚ shared
      -
    • widgets/ contains the "assembled" post card, with content and interactive buttons that are wired up to the relevant calls on the back-end.
    • -
    • features/ contains the interactivity of the card (e.g., like button) and the logic of processing those interactions.
    • -
    • entities/ contains the shell of the card with slots for content and the interactive elements. The tile representing the post author is also here, but in a different slice.
    • +
    • ๐Ÿ“ ui
    • +
    • ๐Ÿ“ api
    +
  • +
+

Folders inside ๐Ÿ“‚ pages are called slices. They divide the layer by domain (in this case, by pages).

+

Folders inside ๐Ÿ“‚ app, ๐Ÿ“‚ shared, and ๐Ÿ“‚ pages/article-reader are called segments, and they divide slices (or layers) by technical purpose, i.e. what the code is for.

+

Conceptsโ€‹

+

Layers, slices, and segments form a hierarchy like this:

+

Hierarchy of FSD concepts, described below

Pictured above: three pillars, labeled left to right as "Layers", "Slices", and "Segments" respectively.

The "Layers" pillar contains seven divisions arranged top to bottom and labeled "app", "processes", "pages", "widgets", "features", "entities", and "shared". The "processes" division is crossed out. The "entities" division is connected to the second pillar "Slices" in a way that conveys that the second pillar is the content of "entities".

The "Slices" pillar contains three divisions arranged top to bottom and labeled "user", "post", and "comment". The "post" division is connected to the third pillar "Segments" in the same way such that it's the content of "post".

The "Segments" pillar contains three divisions, arranged top to bottom and labeled "ui", "model", and "api".

+

Layersโ€‹

+

Layers are standardized across all FSD projects. You don't have to use all of the layers, but their names are important. There are currently seven of them (from top to bottom):

+
    +
  1. App* โ€” everything that makes the app run โ€” routing, entrypoints, global styles, providers.
  2. +
  3. Processes (deprecated) โ€” complex inter-page scenarios.
  4. +
  5. Pages โ€” full pages or large parts of a page in nested routing.
  6. +
  7. Widgets โ€” large self-contained chunks of functionality or UI, usually delivering an entire use case.
  8. +
  9. Features โ€” reused implementations of entire product features, i.e. actions that bring business value to the user.
  10. +
  11. Entities โ€” business entities that the project works with, like user or product.
  12. +
  13. Shared* โ€” reusable functionality, especially when it's detached from the specifics of the project/business, though not necessarily.
  14. +
+

* โ€” these layers, App and Shared, unlike the other layers, don't have slices, and are made up of segments directly.

+

The trick with layers is that modules on one layer can only know about and import from modules from the layers strictly below.

+

Slicesโ€‹

+

Next up are slices, which partition the code by business domain. You're free to choose any names for them, and create as many as you wish. Slices make your codebase easier to navigate by keeping logically related modules close together.

+

Slices cannot use other slices on the same layer, and that helps with high cohesion and low coupling.

+

Segmentsโ€‹

+

Slices, as well as layers App and Shared, consist of segments, and segments group your code by its purpose. Segment names are not constrained by the standard, but there are several conventional names for the most common purposes:

+
    +
  • ui โ€” everything related to UI display: UI components, date formatters, styles, etc.
  • +
  • api โ€” backend interactions: request functions, data types, mappers, etc.
  • +
  • model โ€” the data model: schemas, interfaces, stores, and business logic.
  • +
  • lib โ€” library code that other modules on this slice need.
  • +
  • config โ€” configuration files and feature flags.
  • +
+

Usually these segments are enough for most layers, you would only create your own segments in Shared or App, but this is not a rule.

Advantagesโ€‹

  • Uniformity
    -The code is organized by scope of influence (layers), by domain (slices), and by technical purpose (segments).
    -This creates a standardized architecture that is easy to comprehend for newcomers.

    +Since the structure is standardized, projects become more uniform, which makes onboarding new members easier for the team.

  • -

    Controlled reuse of logic
    -Each architectural component has its purpose and predictable dependencies.
    -This keeps a balance between following the DRY principle and adaptation possibilities.

    +

    Stability in face of changes and refactoring
    +A module on one layer cannot use other modules on the same layer, or the layers above.
    +This allows you to make isolated modifications without unforeseen consequences to the rest of the app.

  • -

    Stability in face of changes and refactoring
    -A module on a particular layer cannot use other modules on the same layer, or the layers above.
    -This enables isolated modifications without unforeseen consequences.

    +

    Controlled reuse of logic
    +Depending on the layer, you can make code very reusable or very local.
    +This keeps a balance between following the DRY principle and practicality.

  • Orientation to business and users needs
    -When the app is split into business domains, you can navigate the code to discover and deeper understand all the project features.

    +The app is split into business domains and usage of the business language is encouraged in naming, so that you can do useful product work without fully understanding all other unrelated parts of the project.

Incremental adoptionโ€‹

-

The power of FSD lies in structured decomposition. At its finest, it enables to locate any part of code near-deterministically. However, the level of decomposition is a parameter, and each team can tweak it to strike a balance between simple adoption and the amount of benefits.

-

Here's a proposed strategy to migrate an existing codebase to FSD, based on experience:

+

If you have an existing codebase that you want to migrate to FSD, we suggest the following strategy. We found it useful in our own migration experience.

  1. -

    Start by outlining the app and shared layers to create a foundation. Usually, these layers are the smallest.

    +

    Start by slowly shaping up the App and Shared layers module-by-module to create a foundation.

  2. -

    Distribute all of the existing UI across widgets and pages, even if they have dependencies that violate the rules of FSD.

    +

    Distribute all of the existing UI across Widgets and Pages using broad strokes, even if they have dependencies that violate the rules of FSD.

  3. -

    Start gradually increasing the precision of decomposition by separating features and entities, turning pages and widgets from logic-bearing layers into purely compositional layers.

    +

    Start gradually resolving import violations and also extracting Entities and possibly even Features.

-

It's advised to refrain from adding new large entities while refactoring or refactoring only certain parts of the project.

+

It's advised to refrain from adding new large entities while refactoring or refactoring only certain parts of the project.

+

Next stepsโ€‹

+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/get-started/tutorial.html b/docs/get-started/tutorial.html index d122b5415a..789d85f9d0 100644 --- a/docs/get-started/tutorial.html +++ b/docs/get-started/tutorial.html @@ -22,8 +22,8 @@ - - + +
Skip to main content

Tutorial

@@ -285,6 +285,6 @@

Article edito
app/routes/editor._index.tsx, app/routes/editor.$slug.tsx (same content)
import { ArticleEditPage } from "pages/article-edit";

export { loader, action } from "pages/article-edit";

export default ArticleEditPage;

Weโ€™re done now! Log in and try creating a new article. Or โ€œforgetโ€ to write the article and see the validation kick in.

The Conduit article editor, with the title field saying โ€œNew articleโ€ and the rest of the fields empty. Above the form there are two errors: โ€œDescribe what this article is aboutโ€ and โ€œWrite the article itselfโ€.

The Conduit article editor, with the title field saying โ€œNew articleโ€ and the rest of the fields empty. Above the form there are two errors: โ€œDescribe what this article is aboutโ€ and โ€œWrite the article itselfโ€.
-

The profile and settings pages are very similar to the article reader and editor, they are left as an exercise for the reader, thatโ€™s you :)

+

The profile and settings pages are very similar to the article reader and editor, they are left as an exercise for the reader, thatโ€™s you :)

Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides.html b/docs/guides.html index 345172269b..1a66157e9c 100644 --- a/docs/guides.html +++ b/docs/guides.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Code Issues (Smells)

General architecture issues for legacy code

Desegmented โ€ข Routing โ€ข Cross-imports
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples.html b/docs/guides/examples.html index 9d3a8447f1..6b3dcd65f6 100644 --- a/docs/guides/examples.html +++ b/docs/guides/examples.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Types

Where should we locate types? Which kind of types exists in the context of FSD?

Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/auth.html b/docs/guides/examples/auth.html index 28f0c4f189..379b99620b 100644 --- a/docs/guides/examples/auth.html +++ b/docs/guides/examples/auth.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/autocompleted.html b/docs/guides/examples/autocompleted.html index 719f920116..095baf8e95 100644 --- a/docs/guides/examples/autocompleted.html +++ b/docs/guides/examples/autocompleted.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/browser-api.html b/docs/guides/examples/browser-api.html index 456f451872..cafc564685 100644 --- a/docs/guides/examples/browser-api.html +++ b/docs/guides/examples/browser-api.html @@ -22,8 +22,8 @@ - - + +
Skip to main content

Browser API

@@ -31,6 +31,6 @@

About working with the Browser API: localStorage, audio Api, bluetooth API, etc.

You can ask about the idea in more detail @alex_novi

-
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/cms.html b/docs/guides/examples/cms.html index e7f17ebd11..3c0fb9aafe 100644 --- a/docs/guides/examples/cms.html +++ b/docs/guides/examples/cms.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/feedback.html b/docs/guides/examples/feedback.html index ce58f103b8..5f03b280f4 100644 --- a/docs/guides/examples/feedback.html +++ b/docs/guides/examples/feedback.html @@ -22,14 +22,14 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/i18n.html b/docs/guides/examples/i18n.html index 783c4f202d..b8c34c8798 100644 --- a/docs/guides/examples/i18n.html +++ b/docs/guides/examples/i18n.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/metric.html b/docs/guides/examples/metric.html index 935f8f3c8a..70a3e4d8d2 100644 --- a/docs/guides/examples/metric.html +++ b/docs/guides/examples/metric.html @@ -22,14 +22,14 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/monorepo.html b/docs/guides/examples/monorepo.html index 7ca3e7ef36..fa66395c20 100644 --- a/docs/guides/examples/monorepo.html +++ b/docs/guides/examples/monorepo.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/page-layout.html b/docs/guides/examples/page-layout.html index 3ae9533eea..ef69eab5b6 100644 --- a/docs/guides/examples/page-layout.html +++ b/docs/guides/examples/page-layout.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/platforms.html b/docs/guides/examples/platforms.html index 9737e64ddd..02b76c4433 100644 --- a/docs/guides/examples/platforms.html +++ b/docs/guides/examples/platforms.html @@ -22,14 +22,14 @@ - - + +
Skip to main content

Desktop/Touch platforms

WIP

The article is in the process of writing

To bring the release of the article closer, you can:


๐Ÿฐ Stay tuned!

About the application of the methodology for desktop/touch

-
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/ssr.html b/docs/guides/examples/ssr.html index 320ea8ab38..3f93751186 100644 --- a/docs/guides/examples/ssr.html +++ b/docs/guides/examples/ssr.html @@ -22,14 +22,14 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/theme.html b/docs/guides/examples/theme.html index 49a0b6c563..a5d1f077ce 100644 --- a/docs/guides/examples/theme.html +++ b/docs/guides/examples/theme.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/types.html b/docs/guides/examples/types.html index 0713d2b411..980b93252c 100644 --- a/docs/guides/examples/types.html +++ b/docs/guides/examples/types.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/examples/white-labels.html b/docs/guides/examples/white-labels.html index 3a1f62d0f4..363e5b8554 100644 --- a/docs/guides/examples/white-labels.html +++ b/docs/guides/examples/white-labels.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/issues/cross-imports.html b/docs/guides/issues/cross-imports.html index 21fbbb98ff..683c86b3b4 100644 --- a/docs/guides/issues/cross-imports.html +++ b/docs/guides/issues/cross-imports.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/issues/desegmented.html b/docs/guides/issues/desegmented.html index 7264d02cc6..50bc23d9f2 100644 --- a/docs/guides/issues/desegmented.html +++ b/docs/guides/issues/desegmented.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/issues/routes.html b/docs/guides/issues/routes.html index 8387f73757..541e3dbe1d 100644 --- a/docs/guides/issues/routes.html +++ b/docs/guides/issues/routes.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/migration/from-legacy.html b/docs/guides/migration/from-legacy.html index 77404d1838..4a80e7cc41 100644 --- a/docs/guides/migration/from-legacy.html +++ b/docs/guides/migration/from-legacy.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/migration/from-v1.html b/docs/guides/migration/from-v1.html index 40a815d33b..bab392ec09 100644 --- a/docs/guides/migration/from-v1.html +++ b/docs/guides/migration/from-v1.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/tech/with-nextjs.html b/docs/guides/tech/with-nextjs.html index ae81f081e9..63efb7493b 100644 --- a/docs/guides/tech/with-nextjs.html +++ b/docs/guides/tech/with-nextjs.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/tech/with-nuxtjs.html b/docs/guides/tech/with-nuxtjs.html index 55a8913b27..b23b403264 100644 --- a/docs/guides/tech/with-nuxtjs.html +++ b/docs/guides/tech/with-nuxtjs.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/guides/tech/with-react-query.html b/docs/guides/tech/with-react-query.html index ec52805238..182a7af0c8 100644 --- a/docs/guides/tech/with-react-query.html +++ b/docs/guides/tech/with-react-query.html @@ -22,8 +22,8 @@ - - + +
Skip to main content
+
Was this page helpful?
Your feedback helps us improve the docs
\ No newline at end of file diff --git a/docs/privacy.html b/docs/privacy.html index 5b3959a753..d24d1d9799 100644 --- a/docs/privacy.html +++ b/docs/privacy.html @@ -22,8 +22,8 @@ - - + +
Skip to main content

Privacy

@@ -36,6 +36,6 @@
  • Google Analytics, which we rely on for analyze service usage (more...)
  • Hotjar, which we rely on for collect usage feedback (more...)
  • -

    feature-sliced-banner

    +

    feature-sliced-banner

    Was this page helpful?
    Your feedback helps us improve the docs
    \ No newline at end of file diff --git a/docs/reference.html b/docs/reference.html index a450309c67..3d529ceae6 100644 --- a/docs/reference.html +++ b/docs/reference.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content
    +
    Public API

    Practices for designing scalable and easy-to-integrate modules

    Was this page helpful?
    Your feedback helps us improve the docs
    \ No newline at end of file diff --git a/docs/reference/isolation.html b/docs/reference/isolation.html index 964c81e990..645fb08522 100644 --- a/docs/reference/isolation.html +++ b/docs/reference/isolation.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content
    +
    Was this page helpful?
    Your feedback helps us improve the docs
    \ No newline at end of file diff --git a/docs/reference/isolation/coupling-cohesion.html b/docs/reference/isolation/coupling-cohesion.html index 877159ead6..3f8aa14063 100644 --- a/docs/reference/isolation/coupling-cohesion.html +++ b/docs/reference/isolation/coupling-cohesion.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content
    +
    Was this page helpful?
    Your feedback helps us improve the docs
    \ No newline at end of file diff --git a/docs/reference/isolation/decouple-entities.html b/docs/reference/isolation/decouple-entities.html index 1bba77224a..53408af924 100644 --- a/docs/reference/isolation/decouple-entities.html +++ b/docs/reference/isolation/decouple-entities.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content
    +
    Was this page helpful?
    Your feedback helps us improve the docs
    \ No newline at end of file diff --git a/docs/reference/layers.html b/docs/reference/layers.html index 89eb495dc7..3a562b8488 100644 --- a/docs/reference/layers.html +++ b/docs/reference/layers.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content
    +
    Was this page helpful?
    Your feedback helps us improve the docs
    \ No newline at end of file diff --git a/docs/reference/public-api.html b/docs/reference/public-api.html index ae874a24aa..9bef2f85b6 100644 --- a/docs/reference/public-api.html +++ b/docs/reference/public-api.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content
    +
    Was this page helpful?
    Your feedback helps us improve the docs
    \ No newline at end of file diff --git a/docs/reference/slices-segments.html b/docs/reference/slices-segments.html index d9593a01dc..719b01501d 100644 --- a/docs/reference/slices-segments.html +++ b/docs/reference/slices-segments.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content

    Slices and segments

    @@ -51,6 +51,6 @@

    SegmentsExamplesโ€‹

    -
    Layeruimodellibapi
    SharedUI kitUsually not usedUtility modules of several related files.
    If you need to use individual helpers, consider using utility libraries such as lodash-es.
    Rudimentary API client with additional features like authentication or caching.
    EntitiesSkeleton of a business entity with slots for interactive elementsData storage of instances of this entity as well as functions for manipulating that data.
    This segment is most fit for storing server-side data. If you use TanStack Query or other methods of implicit storage, you may choose to omit this segment.
    Functions for manipulating instances of this entity that aren't related to storageAPI methods using the API client from Shared for easy communication with the backend
    FeaturesInteractive elements that enable users to use this featureBusiness logic and infrastructure data storage, if needed (e.g., current app theme). This is the code that actually produces value for the user.Infrastructural code that helps to concisely describe the business logic in the model segmentAPI methods that represent this feature on the backend.
    May compose API methods from Entities.
    WidgetsComposition of Entities and Features into self-contained UI blocks.
    Can also contain error boundaries and loading states.
    Infrastructure data storage, if neededNon-business interactions (e.g., gestures) and other necessary code for the block to function on a pageUsually not used, but can contain data loaders in nested routing contexts (e.g., Remix)
    PagesComposition of Entities, Features and Widgets into complete pages.
    Can also contain error boundaries and loading states.
    Usually not usedNon-business interactions (e.g., gestures) and other necessary code for the page to deliver a complete user experienceData loaders for SSR-oriented frameworks
    +
    Layeruimodellibapi
    SharedUI kitUsually not usedUtility modules of several related files.
    If you need to use individual helpers, consider using utility libraries such as lodash-es.
    Rudimentary API client with additional features like authentication or caching.
    EntitiesSkeleton of a business entity with slots for interactive elementsData storage of instances of this entity as well as functions for manipulating that data.
    This segment is most fit for storing server-side data. If you use TanStack Query or other methods of implicit storage, you may choose to omit this segment.
    Functions for manipulating instances of this entity that aren't related to storageAPI methods using the API client from Shared for easy communication with the backend
    FeaturesInteractive elements that enable users to use this featureBusiness logic and infrastructure data storage, if needed (e.g., current app theme). This is the code that actually produces value for the user.Infrastructural code that helps to concisely describe the business logic in the model segmentAPI methods that represent this feature on the backend.
    May compose API methods from Entities.
    WidgetsComposition of Entities and Features into self-contained UI blocks.
    Can also contain error boundaries and loading states.
    Infrastructure data storage, if neededNon-business interactions (e.g., gestures) and other necessary code for the block to function on a pageUsually not used, but can contain data loaders in nested routing contexts (e.g., Remix)
    PagesComposition of Entities, Features and Widgets into complete pages.
    Can also contain error boundaries and loading states.
    Usually not usedNon-business interactions (e.g., gestures) and other necessary code for the page to deliver a complete user experienceData loaders for SSR-oriented frameworks
    Was this page helpful?
    Your feedback helps us improve the docs
    \ No newline at end of file diff --git a/examples.html b/examples.html index b4d372233e..35cb16b04b 100644 --- a/examples.html +++ b/examples.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content

    Examples

    List of websites people are building with Feature-Sliced Design

    v2
    Roke.to Business

    Business branch of Roketo, a crypto streaming service which allows paying people by the second

    reacteffectortailwindcssturbo
    v2
    Roke.to dApp

    A crypto streaming service which allows paying people by the second

    reacteffectortailwindcss
    v2
    IT bookstore

    Catalog for viewing and searching information technology books

    reactredux toolkittypescriptreact routervitescss
    v2
    Moke Smoke (React Native example)

    An application that helps you quit smoking, published in the App Store and Google. Developed with React Native

    reactrtkpersisttypescriptfirebase
    v2
    Moonlogs (Effector + Forest example)

    Moonlogs is a business-event logging tool with a built-in user-friendly web interface for easy access to events

    foresteffectortailwindtypescriptgo
    v2
    Posts (React Query example)

    Example of using FSD with React Query (Mutation, Query, Pagination)

    reactreact-querytypescriptmaterial ui
    v2
    FalkChat

    FalkChat is your go-to destination for seamless and engaging online conversations.

    reactnextprettierclerktypescripttailwindshadcn/uizustand
    v2
    Polka

    The application is a bookshelf where you can add your favorite books. The application works with the Google Books API.

    vue3piniatypescriptvue-routereslintprettiervitevuetify
    v2
    Fake Cyber Web Store

    Example web store on Vue3

    vue3piniatypescriptfirebasevue-routereslintprettiervite
    v2
    VK Audiopad

    Chrome extension for VK Music

    reactvkuitypescript
    v2
    ะกryptolight

    Cryptocurrency review site based on Feature-Sliced Design (Architectural methodology for frontend projects).

    reacteffectornextuitypescriptvite
    v2
    Money Flow

    A mobile application for tracking your expenses and incomes.

    capacitorjsreactreact-routerzustandvitetypescriptmobileandroidios
    v2
    E-Commerce

    This project is an online store built using React. It provides the ability to view the product catalog and product pages

    reactmobxwebpacktypescriptssr
    v2
    Todo app (Vue 3 + Pinia)

    QuickStart todo-app example for Vue developers with pinia store

    vue 3piniavitetypescript
    v2
    Conduit

    A social blogging site powered by Feature-Sliced Design architectural methodology.

    reactreact-routerreact-queryzustandvitetypescript
    v2
    Kinomore (React+Effector)

    Large project on the effector/fsd stack

    reacteffectortypescriptnextjsreact-testing-library
    v2
    Sudoku (React+Effector)

    A simple crossword of numbers on effector / fsd

    reacteffectortypescriptvitetailwindatomic-router
    v2
    Nukeapp (React+ReduxToolkit)

    Shopping app build on React/ReduxToolkit stack

    reactredux-toolkittypescriptvite
    v2
    Simple Greenhouse App (React+MobX)

    Simple demonstration of how FSD can be implemented with TypeScript, React.js, MobX and Firebase

    reactmobxtypescriptfirebasemuivite
    v2
    Todo App (ReactNative+Redux)

    QuickStart todo-app example for ReactNative(Expo) developers

    react-nativeexporedux
    v2
    Rastrr

    A simple and free graphic editor for novice artists

    svelte
    v2
    Draw, I'll Help

    A drawing app with shape correction powered by ML

    svelte
    v2
    Cast

    A podcast listening PWA with automated quality assurance

    svelte
    v2
    Loripsum generator

    Simple fish text generator

    reacteffector
    v2
    Projentry (demo)

    Assistant for your projects

    reactantd
    v2
    Todo App (Angular 13)

    QuickStart todo-app example for Angular developers

    angularrxjs
    v2
    Todo App (Vue 3)

    QuickStart todo-app example for Vue developers

    vuevuexantd
    v2
    Todo App (React+Redux)

    QuickStart todo-app example for React developers (Redux version)

    reactreduxantd
    v2
    Todo App (React+Effector)

    QuickStart todo-app example for React developers (Effector version)

    reacteffectorantd
    v2
    Github Client

    React & GraphQL powered github web-client

    reactgraphqlantd
    v2
    Cardbox

    The best solutions from developers in one place

    reacteffector
    diff --git a/index.html b/index.html index cd2563f1b7..e71197f79f 100644 --- a/index.html +++ b/index.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content

    Feature-Sliced Design

    Architectural methodology for frontend projects

    Features

    Explicit business logic

    Easily discoverable architecture thanks to domain scopes

    Adaptability

    Architecture components can be flexibly replaced and added for new requirements

    Tech debt & Refactoring

    Each module can be independently modified / rewritten without side effects

    Explicit code reuse

    A balance is maintained between DRY and local customization

    Concepts

    Public API

    Each module must have a declaration of its public API at the top level

    Isolation

    The module should not depend directly on other modules of the same layer or overlying layers

    Needs Driven

    Orientation to business and user needs

    Scheme

    Companies using FSD

    FSD is used in your company? Tell us
    diff --git a/nav.html b/nav.html index d372965274..4c3b488288 100644 --- a/nav.html +++ b/nav.html @@ -22,8 +22,8 @@ - - + +
    Skip to main content

    ๐Ÿงญ Navigation

    Legacy routes

    After the restructuring of the documentation, some routes were changed. Below you can find the page you may have been looking for.

    But there are redirects from old links for compatibility

    ๐Ÿš€ Get Started

    โšก๏ธ Simplified and merged

    Tutorial

    old: /docs/get-started/quick-start
    new: /docs/get-started/tutorial

    Basics

    old: /docs/get-started/basics
    new: /docs/get-started/overview

    Decompose Cheatsheet

    old: /docs/get-started/tutorial/decompose; diff --git a/ru/404.html b/ru/404.html index e746b8bea5..ccd88ec66c 100644 --- a/ru/404.html +++ b/ru/404.html @@ -22,8 +22,8 @@ - - + +

    ะกั‚ั€ะฐะฝะธั†ะฐ ะฝะต ะฝะฐะนะดะตะฝะฐ

    ะš ัะพะถะฐะปะตะฝะธัŽ, ะผั‹ ะฝะต ัะผะพะณะปะธ ะฝะฐะนั‚ะธ ะทะฐะฟั€ะฐัˆะธะฒะฐะตะผัƒัŽ ะฒะฐะผะธ ัั‚ั€ะฐะฝะธั†ัƒ.

    ะŸะพะถะฐะปัƒะนัั‚ะฐ, ะพะฑั€ะฐั‚ะธั‚ะตััŒ ะบ ะฒะปะฐะดะตะปัŒั†ัƒ ัะฐะนั‚ะฐ, ั ะบะพั‚ะพั€ะพะณะพ ะฒั‹ ะฟะตั€ะตัˆะปะธ ะฝะฐ ัั‚ัƒ ััั‹ะปะบัƒ, ั‡ั‚ะพะฑั‹ ัะพะพะฑั‰ะธั‚ัŒ ะตะผัƒ ััั‹ะปะบะฐ ะฝะต ั€ะฐะฑะพั‚ะฐะตั‚.

    diff --git a/ru/assets/js/04b1b9d4.1ba99e73.js b/ru/assets/js/04b1b9d4.1ba99e73.js new file mode 100644 index 0000000000..40057e5f06 --- /dev/null +++ b/ru/assets/js/04b1b9d4.1ba99e73.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[5263],{1800:(e,s,i)=>{i.d(s,{Ay:()=>l,RM:()=>c});var t=i(6070),n=i(7468),r=(i(758),i(2992)),d=i(3920);const a=e=>{let{ticket:s}=e;const i=`https://github.com/feature-sliced/documentation/issues/${s}`;return(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{children:(0,d.T)({id:"shared.wip.title"})}),(0,t.jsx)("p",{children:(0,d.T)({id:"shared.wip.subtitle"})}),(0,t.jsxs)("ul",{children:[(0,t.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.feedback.base"}),(0,t.jsx)(r.A,{to:i,children:(0,d.T)({id:"shared.wip.var.feedback.link"})})]}),(0,t.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.material.base"}),(0,t.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,d.T)({id:"shared.wip.var.material.link"})})]}),(0,t.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.contribute.base"}),(0,t.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,d.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,t.jsx)("br",{}),(0,t.jsx)("p",{children:(0,t.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},c=[];function o(e){const s={admonition:"admonition",...(0,n.R)(),...e.components};return(0,t.jsx)(s.admonition,{title:"WIP",type:"caution",children:(0,t.jsx)(a,{ticket:e.ticket})})}function l(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},2470:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>c,toc:()=>l});var t=i(6070),n=i(7468),r=i(1800);const d={sidebar_position:3,sidebar_class_name:"sidebar-item--wip"},a="\u0420\u043e\u0443\u0442\u0438\u043d\u0433",c={id:"guides/issues/routes",title:"\u0420\u043e\u0443\u0442\u0438\u043d\u0433",description:"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/issues/routes.mdx",sourceDirName:"guides/issues",slug:"/guides/issues/routes",permalink:"/ru/docs/guides/issues/routes",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/issues/routes.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_class_name:"sidebar-item--wip"},sidebar:"guidesSidebar",previous:{title:"\u0414\u0435\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f",permalink:"/ru/docs/guides/issues/desegmented"},next:{title:"\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b",permalink:"/ru/docs/guides/issues/cross-imports"}},o={},l=[...r.RM,{value:"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f",id:"situation",level:2},{value:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430",id:"problem",level:2},{value:"\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c",id:"if-you-ignore-it",level:2},{value:"\u0420\u0435\u0448\u0435\u043d\u0438\u0435",id:"solution",level:2},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function u(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"\u0440\u043e\u0443\u0442\u0438\u043d\u0433",children:"\u0420\u043e\u0443\u0442\u0438\u043d\u0433"}),"\n",(0,t.jsx)(r.Ay,{ticket:"169"}),"\n",(0,t.jsx)(s.h2,{id:"situation",children:"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f"}),"\n",(0,t.jsx)(s.p,{children:"\u0423\u0440\u043b\u044b \u043a \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u0445\u0430\u0440\u0434\u043a\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u043b\u043e\u044f\u0445 \u043d\u0438\u0436\u0435 pages"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-tsx",metastring:'title="entities/post/card"',children:"\n\n \n ...\n\n"})}),"\n",(0,t.jsx)(s.h2,{id:"problem",children:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430"}),"\n",(0,t.jsx)(s.p,{children:"\u0423\u0440\u043b\u044b \u043d\u0435 \u0441\u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0441\u043b\u043e\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0433\u0434\u0435 \u0438\u043c \u0438 \u043c\u0435\u0441\u0442\u043e \u043f\u043e \u0441\u043a\u043e\u0443\u043f\u0443 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438"}),"\n",(0,t.jsx)(s.h2,{id:"if-you-ignore-it",children:"\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c"}),"\n",(0,t.jsx)(s.p,{children:"\u0422\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0443\u0440\u043b\u043e\u0432, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u0447\u0442\u043e \u044d\u0442\u0438 \u0443\u0440\u043b\u044b (\u0438 \u043b\u043e\u0433\u0438\u043a\u0430 \u0443\u0440\u043b\u043e\u0432/\u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0432) \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u044f\u0445 \u043a\u0440\u043e\u043c\u0435 pages"}),"\n",(0,t.jsx)(s.p,{children:"\u0410 \u0442\u0430\u043a\u0436\u0435 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u0442\u043e\u0432\u0430\u0440\u0430 \u0431\u0435\u0440\u0435\u0442 \u0447\u0430\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443"}),"\n",(0,t.jsx)(s.h2,{id:"solution",children:"\u0420\u0435\u0448\u0435\u043d\u0438\u0435"}),"\n",(0,t.jsx)(s.p,{children:"\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0443\u0440\u043b\u0430\u043c\u0438/\u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0430\u043c\u0438 \u043e\u0442 \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438 \u0432\u044b\u0448\u0435"}),"\n",(0,t.jsx)(s.p,{children:"\u0412 \u0441\u043b\u043e\u0438 \u043d\u0438\u0436\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e/\u043f\u0440\u043e\u043f\u0441\u044b/\u0444\u0430\u0431\u0440\u0438\u043a\u0438"}),"\n",(0,t.jsx)(s.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://t.me/feature_sliced/4389",children:'(\u0422\u0440\u0435\u0434) \u0427\u0442\u043e \u0435\u0441\u043b\u0438 "\u0437\u0430\u0448\u0438\u0432\u0430\u0442\u044c" \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0432 entities/features/widgets'})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://t.me/feature_sliced/3756",children:"(\u0422\u0440\u0435\u0434) \u041f\u043e\u0447\u0435\u043c\u0443 \u0440\u0430\u0437\u043c\u0430\u0437\u044b\u0432\u0430\u0435 \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u043e\u0443\u0442\u043e\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 pages"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},7468:(e,s,i)=>{i.d(s,{R:()=>d,x:()=>a});var t=i(758);const n={},r=t.createContext(n);function d(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/04b1b9d4.e86d4084.js b/ru/assets/js/04b1b9d4.e86d4084.js deleted file mode 100644 index ec5d0ae52d..0000000000 --- a/ru/assets/js/04b1b9d4.e86d4084.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[5263],{1800:(e,s,i)=>{i.d(s,{Ay:()=>l,RM:()=>c});var t=i(6070),n=i(7468),r=(i(758),i(2992)),d=i(3920);const a=e=>{let{ticket:s}=e;const i=`https://github.com/feature-sliced/documentation/issues/${s}`;return(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{children:(0,d.T)({id:"shared.wip.title"})}),(0,t.jsx)("p",{children:(0,d.T)({id:"shared.wip.subtitle"})}),(0,t.jsxs)("ul",{children:[(0,t.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.feedback.base"}),(0,t.jsx)(r.A,{to:i,children:(0,d.T)({id:"shared.wip.var.feedback.link"})})]}),(0,t.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.material.base"}),(0,t.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,d.T)({id:"shared.wip.var.material.link"})})]}),(0,t.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.contribute.base"}),(0,t.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,d.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,t.jsx)("br",{}),(0,t.jsx)("p",{children:(0,t.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},c=[];function o(e){const s={admonition:"admonition",...(0,n.R)(),...e.components};return(0,t.jsx)(s.admonition,{title:"WIP",type:"caution",children:(0,t.jsx)(a,{ticket:e.ticket})})}function l(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},2470:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>c,toc:()=>l});var t=i(6070),n=i(7468),r=i(1800);const d={sidebar_position:3,sidebar_class_name:"sidebar-item--wip"},a="\u0420\u043e\u0443\u0442\u0438\u043d\u0433",c={id:"guides/issues/routes",title:"\u0420\u043e\u0443\u0442\u0438\u043d\u0433",description:"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/issues/routes.mdx",sourceDirName:"guides/issues",slug:"/guides/issues/routes",permalink:"/ru/docs/guides/issues/routes",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/issues/routes.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_class_name:"sidebar-item--wip"},sidebar:"guidesSidebar",previous:{title:"\u0414\u0435\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f",permalink:"/ru/docs/guides/issues/desegmented"},next:{title:"\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b",permalink:"/ru/docs/guides/issues/cross-imports"}},o={},l=[...r.RM,{value:"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f",id:"situation",level:2},{value:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430",id:"problem",level:2},{value:"\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c",id:"if-you-ignore-it",level:2},{value:"\u0420\u0435\u0448\u0435\u043d\u0438\u0435",id:"solution",level:2},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function u(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"\u0440\u043e\u0443\u0442\u0438\u043d\u0433",children:"\u0420\u043e\u0443\u0442\u0438\u043d\u0433"}),"\n",(0,t.jsx)(r.Ay,{ticket:"169"}),"\n",(0,t.jsx)(s.h2,{id:"situation",children:"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f"}),"\n",(0,t.jsx)(s.p,{children:"\u0423\u0440\u043b\u044b \u043a \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u0445\u0430\u0440\u0434\u043a\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u043b\u043e\u044f\u0445 \u043d\u0438\u0436\u0435 pages"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-tsx",metastring:'title="entities/post/card"',children:"\n\n \n ...\n\n"})}),"\n",(0,t.jsx)(s.h2,{id:"problem",children:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430"}),"\n",(0,t.jsx)(s.p,{children:"\u0423\u0440\u043b\u044b \u043d\u0435 \u0441\u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0441\u043b\u043e\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0433\u0434\u0435 \u0438\u043c \u0438 \u043c\u0435\u0441\u0442\u043e \u043f\u043e \u0441\u043a\u043e\u0443\u043f\u0443 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438"}),"\n",(0,t.jsx)(s.h2,{id:"if-you-ignore-it",children:"\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c"}),"\n",(0,t.jsx)(s.p,{children:"\u0422\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0443\u0440\u043b\u043e\u0432, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u0447\u0442\u043e \u044d\u0442\u0438 \u0443\u0440\u043b\u044b (\u0438 \u043b\u043e\u0433\u0438\u043a\u0430 \u0443\u0440\u043b\u043e\u0432/\u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0432) \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u043e\u044f\u0445 \u043a\u0440\u043e\u043c\u0435 pages"}),"\n",(0,t.jsx)(s.p,{children:"\u0410 \u0442\u0430\u043a\u0436\u0435 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u0442\u043e\u0432\u0430\u0440\u0430 \u0431\u0435\u0440\u0435\u0442 \u0447\u0430\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443"}),"\n",(0,t.jsx)(s.h2,{id:"solution",children:"\u0420\u0435\u0448\u0435\u043d\u0438\u0435"}),"\n",(0,t.jsx)(s.p,{children:"\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0443\u0440\u043b\u0430\u043c\u0438/\u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0430\u043c\u0438 \u043e\u0442 \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438 \u0432\u044b\u0448\u0435"}),"\n",(0,t.jsx)(s.p,{children:"\u0412 \u0441\u043b\u043e\u0438 \u043d\u0438\u0436\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e/\u043f\u0440\u043e\u043f\u0441\u044b/\u0444\u0430\u0431\u0440\u0438\u043a\u0438"}),"\n",(0,t.jsx)(s.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://t.me/feature_sliced/4389",children:'(\u0422\u0440\u0435\u0434) \u0427\u0442\u043e \u0435\u0441\u043b\u0438 "\u0437\u0430\u0448\u0438\u0432\u0430\u0442\u044c" \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0432 entities/features/widgets'})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://t.me/feature_sliced/3756",children:"(\u0422\u0440\u0435\u0434) \u041f\u043e\u0447\u0435\u043c\u0443 \u0440\u0430\u0437\u043c\u0430\u0437\u044b\u0432\u0430\u0435 \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u043e\u0443\u0442\u043e\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 pages"})}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},7468:(e,s,i)=>{i.d(s,{R:()=>d,x:()=>a});var t=i(758);const n={},r=t.createContext(n);function d(e){const s=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),t.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/07deeff8.09e87342.js b/ru/assets/js/07deeff8.09e87342.js new file mode 100644 index 0000000000..6205d6e2d8 --- /dev/null +++ b/ru/assets/js/07deeff8.09e87342.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[230],{3548:(e,t,n)=>{n.d(t,{Ay:()=>r,RM:()=>i});var s=n(6070),c=n(7468),a=n(57);const i=[];function o(e){return(0,s.jsx)(a.A,{...e})}function r(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},2029:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>R,contentTitle:()=>_,default:()=>y,frontMatter:()=>A,metadata:()=>C,toc:()=>w});var s=n(6070),c=n(7468),a=n(3548),i=n(941),o=n(758);const r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"}}]},name:"tool",theme:"outlined"};var l=n(4170),d=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:r}))};const u=o.forwardRef(d);const h={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM653.3 424.6l52.2 52.2a8.01 8.01 0 01-4.7 13.6l-179.4 21c-5.1.6-9.5-3.7-8.9-8.9l21-179.4c.8-6.6 8.9-9.4 13.6-4.7l52.4 52.4 256.2-256.2c3.1-3.1 8.2-3.1 11.3 0l42.4 42.4c3.1 3.1 3.1 8.2 0 11.3L653.3 424.6z"}}]},name:"import",theme:"outlined"};var m=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:h}))};const p=o.forwardRef(m);const f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M841 370c3-3.3 2.7-8.3-.6-11.3a8.24 8.24 0 00-5.3-2.1h-72.6c-2.4 0-4.6 1-6.1 2.8L633.5 504.6a7.96 7.96 0 01-13.4-1.9l-63.5-141.3a7.9 7.9 0 00-7.3-4.7H380.7l.9-4.7 8-42.3c10.5-55.4 38-81.4 85.8-81.4 18.6 0 35.5 1.7 48.8 4.7l14.1-66.8c-22.6-4.7-35.2-6.1-54.9-6.1-103.3 0-156.4 44.3-175.9 147.3l-9.4 49.4h-97.6c-3.8 0-7.1 2.7-7.8 6.4L181.9 415a8.07 8.07 0 007.8 9.7H284l-89 429.9a8.07 8.07 0 007.8 9.7H269c3.8 0 7.1-2.7 7.8-6.4l89.7-433.1h135.8l68.2 139.1c1.4 2.9 1 6.4-1.2 8.8l-180.6 203c-2.9 3.3-2.6 8.4.7 11.3 1.5 1.3 3.4 2 5.3 2h72.7c2.4 0 4.6-1 6.1-2.8l123.7-146.7c2.8-3.4 7.9-3.8 11.3-1 .9.8 1.6 1.7 2.1 2.8L676.4 784c1.3 2.8 4.1 4.7 7.3 4.7h64.6a8.02 8.02 0 007.2-11.5l-95.2-198.9c-1.4-2.9-.9-6.4 1.3-8.8L841 370z"}}]},name:"function",theme:"outlined"};var g=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:f}))};const v=o.forwardRef(g);const x={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 00-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 00-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 01-63 63H232a63 63 0 01-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0022.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 00123.2-149.5A120 120 0 01836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 01308 680V412h408v268z"}}]},name:"bug",theme:"outlined"};var b=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:x}))};const j=o.forwardRef(b),A={hide_table_of_contents:!0,pagination_prev:"get-started/index"},_="\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b",C={id:"guides/index",title:"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b",description:"PRACTICE-ORIENTED",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/index.mdx",sourceDirName:"guides",slug:"/guides/",permalink:"/ru/docs/guides/",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/index.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,frontMatter:{hide_table_of_contents:!0,pagination_prev:"get-started/index"},sidebar:"guidesSidebar",previous:{title:"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442",permalink:"/ru/docs/get-started/"},next:{title:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",permalink:"/ru/docs/guides/examples/"}},R={},w=[{value:"\u0413\u043b\u0430\u0432\u043d\u043e\u0435",id:"main",level:2},...a.RM,...a.RM,...a.RM,...a.RM];function T(e){const t={h1:"h1",h2:"h2",p:"p",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"-\u0433\u0430\u0439\u0434\u044b",children:"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b"}),"\n",(0,s.jsx)("span",{class:"badge badge--primary margin-bottom--md",children:"PRACTICE-ORIENTED"}),"\n",(0,s.jsx)("p",{class:"summary",children:(0,s.jsx)(t.p,{children:'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0433\u0430\u0439\u0434\u044b \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e Feature-Sliced Design. \u0412 \u044d\u0442\u043e\u043c \u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0433\u0430\u0439\u0434\u044b \u043f\u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0445\u0435\u043d\u0434\u0431\u0443\u043a \u043f\u0430\u0433\u0443\u0431\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0438\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044e "\u0432 \u0431\u043e\u044e"'})}),"\n",(0,s.jsx)(t.h2,{id:"main",children:"\u0413\u043b\u0430\u0432\u043d\u043e\u0435"}),"\n","\n",(0,s.jsx)(a.Ay,{title:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",description:"\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438",to:"/docs/guides/examples",Icon:u,tags:["\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f","\u0422\u0438\u043f\u044b","\u041b\u0435\u0439\u0430\u0443\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b"]}),"\n",(0,s.jsx)(a.Ay,{title:"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f",description:"\u0413\u0430\u0439\u0434\u044b \u043f\u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u043b\u0435\u0433\u0430\u0441\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432",to:"/docs/guides/migration/from-v1",Icon:p,tags:["\u041b\u0435\u0433\u0430\u0441\u0438","FSv1"]}),"\n",(0,s.jsx)(a.Ay,{title:"\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438",description:"\u041e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u0433\u0430\u0439\u0434\u044b \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e",to:"/docs/guides/tech/with-nextjs",Icon:v}),"\n",(0,s.jsx)(a.Ay,{title:"Code Issues (Smells)",description:"\u041e\u0431\u0449\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u0435",to:"/docs/guides/issues/desegmented",Icon:j,tags:["\u0414\u0435\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","\u0420\u043e\u0443\u0442\u0438\u043d\u0433","\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b"]})]})}function y(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(T,{...e})}):T(e)}},3240:(e,t,n)=>{n.d(t,{ga:()=>s});var s={};n.r(s),n.d(s,{CATEGORIES:()=>a,sendEvent:()=>c});const c=e=>{let{category:t,action:n,label:s,value:c}=e;if(void 0!==typeof window&&window.ga)return window.ga("send",{hitType:"event",eventCategory:t,eventAction:n,eventLabel:s,eventValue:c})},a={full:"Feedback 1.2 (full)",mixed:"Feedback 1.2 (mixed)",short:"Feedback 1.2 (short)"}},57:(e,t,n)=>{n.d(t,{Y:()=>l,A:()=>u});var s=n(758),c=n(8923),a=n(2992),i=n(3240);const o={root:"root_GfON",rootDisabled:"rootDisabled_SFUB",details:"details_xxkR",detailsTags:"detailsTags_uTQx",icon:"icon_ciqP",title:"title_pSH5",description:"description__Fep",miniTheme:"miniTheme_ePfp",primaryTheme:"primaryTheme_CilO",defaultTheme:"defaultTheme_j3I8"};var r=n(6070);const l=e=>{const{title:t,description:n,to:l,Icon:u,tags:h,className:m,disabled:p,theme:f="default"}=e,g=(0,s.useCallback)((()=>{i.ga.sendEvent({category:i.ga.CATEGORIES.full,action:"NavRow:Click",label:l})}),[l]);return(0,r.jsxs)(a.A,{className:(0,c.A)(o.root,m,p&&o.rootDisabled,o[`${f}Theme`]),to:l,onClick:g,children:[(0,r.jsx)(d,{Icon:u}),(0,r.jsxs)("div",{className:o.details,children:[(0,r.jsxs)("div",{className:o.detailsMain,children:[(0,r.jsx)("span",{className:o.title,children:t}),(0,r.jsx)("p",{className:o.description,children:n})]}),h&&(0,r.jsx)("div",{className:o.detailsTags,children:h.join(" \u2022 ")})]})]})},d=e=>{let{Icon:t}=e;return t?"string"==typeof t?(0,r.jsx)("span",{className:o.icon,children:t}):(0,r.jsx)(t,{className:o.icon}):null},u=l},7468:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var s=n(758);const c={},a=s.createContext(c);function i(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/07deeff8.c8ab4350.js b/ru/assets/js/07deeff8.c8ab4350.js deleted file mode 100644 index a3c2b4c41c..0000000000 --- a/ru/assets/js/07deeff8.c8ab4350.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[230],{3548:(e,t,n)=>{n.d(t,{Ay:()=>r,RM:()=>i});var s=n(6070),c=n(7468),a=n(57);const i=[];function o(e){return(0,s.jsx)(a.A,{...e})}function r(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},2029:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>R,contentTitle:()=>_,default:()=>y,frontMatter:()=>A,metadata:()=>C,toc:()=>w});var s=n(6070),c=n(7468),a=n(3548),i=n(941),o=n(758);const r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"}}]},name:"tool",theme:"outlined"};var l=n(4170),d=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:r}))};const u=o.forwardRef(d);const h={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM653.3 424.6l52.2 52.2a8.01 8.01 0 01-4.7 13.6l-179.4 21c-5.1.6-9.5-3.7-8.9-8.9l21-179.4c.8-6.6 8.9-9.4 13.6-4.7l52.4 52.4 256.2-256.2c3.1-3.1 8.2-3.1 11.3 0l42.4 42.4c3.1 3.1 3.1 8.2 0 11.3L653.3 424.6z"}}]},name:"import",theme:"outlined"};var m=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:h}))};const p=o.forwardRef(m);const f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M841 370c3-3.3 2.7-8.3-.6-11.3a8.24 8.24 0 00-5.3-2.1h-72.6c-2.4 0-4.6 1-6.1 2.8L633.5 504.6a7.96 7.96 0 01-13.4-1.9l-63.5-141.3a7.9 7.9 0 00-7.3-4.7H380.7l.9-4.7 8-42.3c10.5-55.4 38-81.4 85.8-81.4 18.6 0 35.5 1.7 48.8 4.7l14.1-66.8c-22.6-4.7-35.2-6.1-54.9-6.1-103.3 0-156.4 44.3-175.9 147.3l-9.4 49.4h-97.6c-3.8 0-7.1 2.7-7.8 6.4L181.9 415a8.07 8.07 0 007.8 9.7H284l-89 429.9a8.07 8.07 0 007.8 9.7H269c3.8 0 7.1-2.7 7.8-6.4l89.7-433.1h135.8l68.2 139.1c1.4 2.9 1 6.4-1.2 8.8l-180.6 203c-2.9 3.3-2.6 8.4.7 11.3 1.5 1.3 3.4 2 5.3 2h72.7c2.4 0 4.6-1 6.1-2.8l123.7-146.7c2.8-3.4 7.9-3.8 11.3-1 .9.8 1.6 1.7 2.1 2.8L676.4 784c1.3 2.8 4.1 4.7 7.3 4.7h64.6a8.02 8.02 0 007.2-11.5l-95.2-198.9c-1.4-2.9-.9-6.4 1.3-8.8L841 370z"}}]},name:"function",theme:"outlined"};var g=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:f}))};const v=o.forwardRef(g);const x={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 00-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 00-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 01-63 63H232a63 63 0 01-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0022.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 00123.2-149.5A120 120 0 01836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 01308 680V412h408v268z"}}]},name:"bug",theme:"outlined"};var b=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:x}))};const j=o.forwardRef(b),A={hide_table_of_contents:!0,pagination_prev:"get-started/index"},_="\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b",C={id:"guides/index",title:"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b",description:"PRACTICE-ORIENTED",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/index.mdx",sourceDirName:"guides",slug:"/guides/",permalink:"/ru/docs/guides/",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/index.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,frontMatter:{hide_table_of_contents:!0,pagination_prev:"get-started/index"},sidebar:"guidesSidebar",previous:{title:"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442",permalink:"/ru/docs/get-started/"},next:{title:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",permalink:"/ru/docs/guides/examples/"}},R={},w=[{value:"\u0413\u043b\u0430\u0432\u043d\u043e\u0435",id:"main",level:2},...a.RM,...a.RM,...a.RM,...a.RM];function T(e){const t={h1:"h1",h2:"h2",p:"p",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"-\u0433\u0430\u0439\u0434\u044b",children:"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b"}),"\n",(0,s.jsx)("span",{class:"badge badge--primary margin-bottom--md",children:"PRACTICE-ORIENTED"}),"\n",(0,s.jsx)("p",{class:"summary",children:(0,s.jsx)(t.p,{children:'\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0433\u0430\u0439\u0434\u044b \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e Feature-Sliced Design. \u0412 \u044d\u0442\u043e\u043c \u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0433\u0430\u0439\u0434\u044b \u043f\u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0445\u0435\u043d\u0434\u0431\u0443\u043a \u043f\u0430\u0433\u0443\u0431\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0438\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044e "\u0432 \u0431\u043e\u044e"'})}),"\n",(0,s.jsx)(t.h2,{id:"main",children:"\u0413\u043b\u0430\u0432\u043d\u043e\u0435"}),"\n","\n",(0,s.jsx)(a.Ay,{title:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",description:"\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438",to:"/docs/guides/examples",Icon:u,tags:["\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f","\u0422\u0438\u043f\u044b","\u041b\u0435\u0439\u0430\u0443\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b"]}),"\n",(0,s.jsx)(a.Ay,{title:"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f",description:"\u0413\u0430\u0439\u0434\u044b \u043f\u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u043b\u0435\u0433\u0430\u0441\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432",to:"/docs/guides/migration/from-v1",Icon:p,tags:["\u041b\u0435\u0433\u0430\u0441\u0438","FSv1"]}),"\n",(0,s.jsx)(a.Ay,{title:"\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438",description:"\u041e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u0433\u0430\u0439\u0434\u044b \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e",to:"/docs/guides/tech/with-nextjs",Icon:v}),"\n",(0,s.jsx)(a.Ay,{title:"Code Issues (Smells)",description:"\u041e\u0431\u0449\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u0435",to:"/docs/guides/issues/desegmented",Icon:j,tags:["\u0414\u0435\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","\u0420\u043e\u0443\u0442\u0438\u043d\u0433","\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b"]})]})}function y(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(T,{...e})}):T(e)}},3240:(e,t,n)=>{n.d(t,{ga:()=>s});var s={};n.r(s),n.d(s,{CATEGORIES:()=>a,sendEvent:()=>c});const c=e=>{let{category:t,action:n,label:s,value:c}=e;if(void 0!==typeof window&&window.ga)return window.ga("send",{hitType:"event",eventCategory:t,eventAction:n,eventLabel:s,eventValue:c})},a={full:"Feedback 1.2 (full)",mixed:"Feedback 1.2 (mixed)",short:"Feedback 1.2 (short)"}},57:(e,t,n)=>{n.d(t,{Y:()=>l,A:()=>u});var s=n(758),c=n(8923),a=n(2992),i=n(3240);const o={root:"root_GfON",rootDisabled:"rootDisabled_SFUB",details:"details_xxkR",detailsTags:"detailsTags_uTQx",icon:"icon_ciqP",title:"title_pSH5",description:"description__Fep",miniTheme:"miniTheme_ePfp",primaryTheme:"primaryTheme_CilO",defaultTheme:"defaultTheme_j3I8"};var r=n(6070);const l=e=>{const{title:t,description:n,to:l,Icon:u,tags:h,className:m,disabled:p,theme:f="default"}=e,g=(0,s.useCallback)((()=>{i.ga.sendEvent({category:i.ga.CATEGORIES.full,action:"NavRow:Click",label:l})}),[l]);return(0,r.jsxs)(a.A,{className:(0,c.A)(o.root,m,p&&o.rootDisabled,o[`${f}Theme`]),to:l,onClick:g,children:[(0,r.jsx)(d,{Icon:u}),(0,r.jsxs)("div",{className:o.details,children:[(0,r.jsxs)("div",{className:o.detailsMain,children:[(0,r.jsx)("span",{className:o.title,children:t}),(0,r.jsx)("p",{className:o.description,children:n})]}),h&&(0,r.jsx)("div",{className:o.detailsTags,children:h.join(" \u2022 ")})]})]})},d=e=>{let{Icon:t}=e;return t?"string"==typeof t?(0,r.jsx)("span",{className:o.icon,children:t}):(0,r.jsx)(t,{className:o.icon}):null},u=l},7468:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var s=n(758);const c={},a=s.createContext(c);function i(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/1232fa31.3cb7890e.js b/ru/assets/js/1232fa31.3cb7890e.js deleted file mode 100644 index 3bea6be708..0000000000 --- a/ru/assets/js/1232fa31.3cb7890e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[2338],{3548:(e,t,n)=>{n.d(t,{Ay:()=>i,RM:()=>r});var s=n(6070),a=n(7468),c=n(57);const r=[];function o(e){return(0,s.jsx)(c.A,{...e})}function i(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},2388:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>b,contentTitle:()=>_,default:()=>M,frontMatter:()=>x,metadata:()=>j,toc:()=>w});var s=n(6070),a=n(7468),c=n(3548),r=n(941),o=n(758);const i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0162.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1096 0 48 48 0 10-96 0z"}}]},name:"rocket",theme:"outlined"};var d=n(4170),l=function(e,t){return o.createElement(d.A,(0,r.A)({},e,{ref:t,icon:i}))};const u=o.forwardRef(l);const m={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M442.3 677.6l199.4-156.7a11.3 11.3 0 000-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"play-square",theme:"outlined"};var p=function(e,t){return o.createElement(d.A,(0,r.A)({},e,{ref:t,icon:m}))};const h=o.forwardRef(p);const f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};var g=function(e,t){return o.createElement(d.A,(0,r.A)({},e,{ref:t,icon:f}))};const v=o.forwardRef(g),x={hide_table_of_contents:!0,pagination_prev:"intro"},_="\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442",j={id:"get-started/index",title:"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442",description:"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c! \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u0435\u0433\u043b\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c Feature-Sliced Design \u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043f\u043e\u0439\u043c\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f.",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/get-started/index.mdx",sourceDirName:"get-started",slug:"/get-started/",permalink:"/ru/docs/get-started/",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/get-started/index.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,frontMatter:{hide_table_of_contents:!0,pagination_prev:"intro"},sidebar:"getstartedSidebar",previous:{title:"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f",permalink:"/ru/docs/"},next:{title:"\u041e\u0431\u0437\u043e\u0440",permalink:"/ru/docs/get-started/overview"}},b={},w=[...c.RM,...c.RM,...c.RM];function A(e){const t={h1:"h1",p:"p",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"-\u0431\u044b\u0441\u0442\u0440\u044b\u0439-\u0441\u0442\u0430\u0440\u0442",children:"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442"}),"\n",(0,s.jsx)("p",{class:"summary",children:(0,s.jsx)(t.p,{children:"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c! \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u0435\u0433\u043b\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c Feature-Sliced Design \u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043f\u043e\u0439\u043c\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f."})}),"\n",(0,s.jsx)(c.Ay,{title:"\u041e\u0431\u0437\u043e\u0440",description:"\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438, \u0435\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f",to:"/docs/get-started/overview",Icon:u}),"\n",(0,s.jsx)(c.Ay,{title:"\u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b",description:"\u0412\u0432\u043e\u0434\u043d\u044b\u0439 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438",to:"/docs/get-started/tutorial",Icon:h}),"\n",(0,s.jsx)(c.Ay,{title:"FAQ",description:"\u0427\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b",to:"/docs/get-started/faq",Icon:v}),"\n"]})}function M(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(A,{...e})}):A(e)}},3240:(e,t,n)=>{n.d(t,{ga:()=>s});var s={};n.r(s),n.d(s,{CATEGORIES:()=>c,sendEvent:()=>a});const a=e=>{let{category:t,action:n,label:s,value:a}=e;if(void 0!==typeof window&&window.ga)return window.ga("send",{hitType:"event",eventCategory:t,eventAction:n,eventLabel:s,eventValue:a})},c={full:"Feedback 1.2 (full)",mixed:"Feedback 1.2 (mixed)",short:"Feedback 1.2 (short)"}},57:(e,t,n)=>{n.d(t,{Y:()=>d,A:()=>u});var s=n(758),a=n(8923),c=n(2992),r=n(3240);const o={root:"root_GfON",rootDisabled:"rootDisabled_SFUB",details:"details_xxkR",detailsTags:"detailsTags_uTQx",icon:"icon_ciqP",title:"title_pSH5",description:"description__Fep",miniTheme:"miniTheme_ePfp",primaryTheme:"primaryTheme_CilO",defaultTheme:"defaultTheme_j3I8"};var i=n(6070);const d=e=>{const{title:t,description:n,to:d,Icon:u,tags:m,className:p,disabled:h,theme:f="default"}=e,g=(0,s.useCallback)((()=>{r.ga.sendEvent({category:r.ga.CATEGORIES.full,action:"NavRow:Click",label:d})}),[d]);return(0,i.jsxs)(c.A,{className:(0,a.A)(o.root,p,h&&o.rootDisabled,o[`${f}Theme`]),to:d,onClick:g,children:[(0,i.jsx)(l,{Icon:u}),(0,i.jsxs)("div",{className:o.details,children:[(0,i.jsxs)("div",{className:o.detailsMain,children:[(0,i.jsx)("span",{className:o.title,children:t}),(0,i.jsx)("p",{className:o.description,children:n})]}),m&&(0,i.jsx)("div",{className:o.detailsTags,children:m.join(" \u2022 ")})]})]})},l=e=>{let{Icon:t}=e;return t?"string"==typeof t?(0,i.jsx)("span",{className:o.icon,children:t}):(0,i.jsx)(t,{className:o.icon}):null},u=d},7468:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var s=n(758);const a={},c=s.createContext(a);function r(e){const t=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/1232fa31.e4519e80.js b/ru/assets/js/1232fa31.e4519e80.js new file mode 100644 index 0000000000..6e2dcf6fad --- /dev/null +++ b/ru/assets/js/1232fa31.e4519e80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[2338],{3548:(e,t,n)=>{n.d(t,{Ay:()=>i,RM:()=>r});var s=n(6070),a=n(7468),c=n(57);const r=[];function o(e){return(0,s.jsx)(c.A,{...e})}function i(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},2388:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>b,contentTitle:()=>_,default:()=>M,frontMatter:()=>x,metadata:()=>j,toc:()=>w});var s=n(6070),a=n(7468),c=n(3548),r=n(941),o=n(758);const i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0162.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1096 0 48 48 0 10-96 0z"}}]},name:"rocket",theme:"outlined"};var d=n(4170),l=function(e,t){return o.createElement(d.A,(0,r.A)({},e,{ref:t,icon:i}))};const u=o.forwardRef(l);const m={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M442.3 677.6l199.4-156.7a11.3 11.3 0 000-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"play-square",theme:"outlined"};var p=function(e,t){return o.createElement(d.A,(0,r.A)({},e,{ref:t,icon:m}))};const h=o.forwardRef(p);const f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};var g=function(e,t){return o.createElement(d.A,(0,r.A)({},e,{ref:t,icon:f}))};const v=o.forwardRef(g),x={hide_table_of_contents:!0,pagination_prev:"intro"},_="\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442",j={id:"get-started/index",title:"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442",description:"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c! \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u0435\u0433\u043b\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c Feature-Sliced Design \u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043f\u043e\u0439\u043c\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f.",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/get-started/index.mdx",sourceDirName:"get-started",slug:"/get-started/",permalink:"/ru/docs/get-started/",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/get-started/index.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,frontMatter:{hide_table_of_contents:!0,pagination_prev:"intro"},sidebar:"getstartedSidebar",previous:{title:"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f",permalink:"/ru/docs/"},next:{title:"\u041e\u0431\u0437\u043e\u0440",permalink:"/ru/docs/get-started/overview"}},b={},w=[...c.RM,...c.RM,...c.RM];function A(e){const t={h1:"h1",p:"p",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"-\u0431\u044b\u0441\u0442\u0440\u044b\u0439-\u0441\u0442\u0430\u0440\u0442",children:"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442"}),"\n",(0,s.jsx)("p",{class:"summary",children:(0,s.jsx)(t.p,{children:"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c! \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u0435\u0433\u043b\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c Feature-Sliced Design \u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043f\u043e\u0439\u043c\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f."})}),"\n",(0,s.jsx)(c.Ay,{title:"\u041e\u0431\u0437\u043e\u0440",description:"\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438, \u0435\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0439 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f",to:"/docs/get-started/overview",Icon:u}),"\n",(0,s.jsx)(c.Ay,{title:"\u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b",description:"\u0412\u0432\u043e\u0434\u043d\u044b\u0439 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438",to:"/docs/get-started/tutorial",Icon:h}),"\n",(0,s.jsx)(c.Ay,{title:"FAQ",description:"\u0427\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b",to:"/docs/get-started/faq",Icon:v}),"\n"]})}function M(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(A,{...e})}):A(e)}},3240:(e,t,n)=>{n.d(t,{ga:()=>s});var s={};n.r(s),n.d(s,{CATEGORIES:()=>c,sendEvent:()=>a});const a=e=>{let{category:t,action:n,label:s,value:a}=e;if(void 0!==typeof window&&window.ga)return window.ga("send",{hitType:"event",eventCategory:t,eventAction:n,eventLabel:s,eventValue:a})},c={full:"Feedback 1.2 (full)",mixed:"Feedback 1.2 (mixed)",short:"Feedback 1.2 (short)"}},57:(e,t,n)=>{n.d(t,{Y:()=>d,A:()=>u});var s=n(758),a=n(8923),c=n(2992),r=n(3240);const o={root:"root_GfON",rootDisabled:"rootDisabled_SFUB",details:"details_xxkR",detailsTags:"detailsTags_uTQx",icon:"icon_ciqP",title:"title_pSH5",description:"description__Fep",miniTheme:"miniTheme_ePfp",primaryTheme:"primaryTheme_CilO",defaultTheme:"defaultTheme_j3I8"};var i=n(6070);const d=e=>{const{title:t,description:n,to:d,Icon:u,tags:m,className:p,disabled:h,theme:f="default"}=e,g=(0,s.useCallback)((()=>{r.ga.sendEvent({category:r.ga.CATEGORIES.full,action:"NavRow:Click",label:d})}),[d]);return(0,i.jsxs)(c.A,{className:(0,a.A)(o.root,p,h&&o.rootDisabled,o[`${f}Theme`]),to:d,onClick:g,children:[(0,i.jsx)(l,{Icon:u}),(0,i.jsxs)("div",{className:o.details,children:[(0,i.jsxs)("div",{className:o.detailsMain,children:[(0,i.jsx)("span",{className:o.title,children:t}),(0,i.jsx)("p",{className:o.description,children:n})]}),m&&(0,i.jsx)("div",{className:o.detailsTags,children:m.join(" \u2022 ")})]})]})},l=e=>{let{Icon:t}=e;return t?"string"==typeof t?(0,i.jsx)("span",{className:o.icon,children:t}):(0,i.jsx)(t,{className:o.icon}):null},u=d},7468:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>o});var s=n(758);const a={},c=s.createContext(a);function r(e){const t=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/17f650ce.5b05adf3.js b/ru/assets/js/17f650ce.0655fd0f.js similarity index 62% rename from ru/assets/js/17f650ce.5b05adf3.js rename to ru/assets/js/17f650ce.0655fd0f.js index 2b5c085081..e932014450 100644 --- a/ru/assets/js/17f650ce.5b05adf3.js +++ b/ru/assets/js/17f650ce.0655fd0f.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[6008],{1800:(e,t,s)=>{s.d(t,{Ay:()=>u,RM:()=>d});var i=s(6070),n=s(7468),r=(s(758),s(2992)),o=s(3920);const c=e=>{let{ticket:t}=e;const s=`https://github.com/feature-sliced/documentation/issues/${t}`;return(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{children:(0,o.T)({id:"shared.wip.title"})}),(0,i.jsx)("p",{children:(0,o.T)({id:"shared.wip.subtitle"})}),(0,i.jsxs)("ul",{children:[(0,i.jsxs)("li",{children:[(0,o.T)({id:"shared.wip.var.feedback.base"}),(0,i.jsx)(r.A,{to:s,children:(0,o.T)({id:"shared.wip.var.feedback.link"})})]}),(0,i.jsxs)("li",{children:[(0,o.T)({id:"shared.wip.var.material.base"}),(0,i.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,o.T)({id:"shared.wip.var.material.link"})})]}),(0,i.jsxs)("li",{children:[(0,o.T)({id:"shared.wip.var.contribute.base"}),(0,i.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,o.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,i.jsx)("br",{}),(0,i.jsx)("p",{children:(0,i.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},d=[];function a(e){const t={admonition:"admonition",...(0,n.R)(),...e.components};return(0,i.jsx)(t.admonition,{title:"WIP",type:"caution",children:(0,i.jsx)(c,{ticket:e.ticket})})}function u(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},4783:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>d,toc:()=>u});var i=s(6070),n=s(7468),r=s(1800);const o={sidebar_class_name:"sidebar-item--wip"},c="Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b",d={id:"guides/examples/platforms",title:"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b",description:"\u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f desktop/touch",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/platforms.mdx",sourceDirName:"guides/examples",slug:"/guides/examples/platforms",permalink:"/ru/docs/guides/examples/platforms",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/platforms.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,frontMatter:{sidebar_class_name:"sidebar-item--wip"},sidebar:"guidesSidebar",previous:{title:"\u041c\u0435\u0442\u0440\u0438\u043a\u0430",permalink:"/ru/docs/guides/examples/metric"},next:{title:"SSR",permalink:"/ru/docs/guides/examples/ssr"}},a={},u=[...r.RM];function l(e){const t={blockquote:"blockquote",h1:"h1",p:"p",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"desktoptouch-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b",children:"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b"}),"\n",(0,i.jsx)(r.Ay,{ticket:"198"}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"\u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f desktop/touch"}),"\n"]})]})}function p(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},7468:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>c});var i=s(758);const n={},r=i.createContext(n);function o(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[6008],{1800:(e,t,s)=>{s.d(t,{Ay:()=>u,RM:()=>d});var i=s(6070),n=s(7468),r=(s(758),s(2992)),o=s(3920);const c=e=>{let{ticket:t}=e;const s=`https://github.com/feature-sliced/documentation/issues/${t}`;return(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{children:(0,o.T)({id:"shared.wip.title"})}),(0,i.jsx)("p",{children:(0,o.T)({id:"shared.wip.subtitle"})}),(0,i.jsxs)("ul",{children:[(0,i.jsxs)("li",{children:[(0,o.T)({id:"shared.wip.var.feedback.base"}),(0,i.jsx)(r.A,{to:s,children:(0,o.T)({id:"shared.wip.var.feedback.link"})})]}),(0,i.jsxs)("li",{children:[(0,o.T)({id:"shared.wip.var.material.base"}),(0,i.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,o.T)({id:"shared.wip.var.material.link"})})]}),(0,i.jsxs)("li",{children:[(0,o.T)({id:"shared.wip.var.contribute.base"}),(0,i.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,o.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,i.jsx)("br",{}),(0,i.jsx)("p",{children:(0,i.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},d=[];function a(e){const t={admonition:"admonition",...(0,n.R)(),...e.components};return(0,i.jsx)(t.admonition,{title:"WIP",type:"caution",children:(0,i.jsx)(c,{ticket:e.ticket})})}function u(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},4783:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>d,toc:()=>u});var i=s(6070),n=s(7468),r=s(1800);const o={sidebar_class_name:"sidebar-item--wip"},c="Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b",d={id:"guides/examples/platforms",title:"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b",description:"\u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f desktop/touch",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/platforms.mdx",sourceDirName:"guides/examples",slug:"/guides/examples/platforms",permalink:"/ru/docs/guides/examples/platforms",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/platforms.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,frontMatter:{sidebar_class_name:"sidebar-item--wip"},sidebar:"guidesSidebar",previous:{title:"\u041c\u0435\u0442\u0440\u0438\u043a\u0430",permalink:"/ru/docs/guides/examples/metric"},next:{title:"SSR",permalink:"/ru/docs/guides/examples/ssr"}},a={},u=[...r.RM];function l(e){const t={blockquote:"blockquote",h1:"h1",p:"p",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"desktoptouch-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b",children:"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b"}),"\n",(0,i.jsx)(r.Ay,{ticket:"198"}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:"\u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f desktop/touch"}),"\n"]})]})}function p(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},7468:(e,t,s)=>{s.d(t,{R:()=>o,x:()=>c});var i=s(758);const n={},r=i.createContext(n);function o(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/1c0a16b8.158cb794.js b/ru/assets/js/1c0a16b8.158cb794.js new file mode 100644 index 0000000000..b0299409e3 --- /dev/null +++ b/ru/assets/js/1c0a16b8.158cb794.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[6877],{80:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var r=n(6070),o=n(7468);const i={sidebar_position:1},s="\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438",a={id:"about/promote/integration",title:"\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438",description:"\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435?",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/about/promote/integration.mdx",sourceDirName:"about/promote",slug:"/about/promote/integration",permalink:"/ru/docs/about/promote/integration",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/about/promote/integration.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"aboutSidebar",previous:{title:"\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438",permalink:"/ru/docs/about/understanding/abstractions"},next:{title:"\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435",permalink:"/ru/docs/about/promote/partial-application"}},c={},l=[{value:"\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435?",id:"summary",level:2},{value:"\u0422\u0430\u043a\u0436\u0435",id:"also",level:2}];function u(e){const t={a:"a",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h1,{id:"\u0430\u0441\u043f\u0435\u043a\u0442\u044b-\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438",children:"\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438"}),"\n",(0,r.jsx)(t.h2,{id:"summary",children:"\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435?"}),"\n",(0,r.jsx)(t.p,{children:"\u0421\u043c. \u043f\u0435\u0440\u0432\u044b\u0435 5 \u043c\u0438\u043d\u0443\u0442:"}),"\n",(0,r.jsx)("iframe",{className:"youtube",src:"https://www.youtube.com/embed/TFA6zRO_Cl0?start=2110",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),"\n",(0,r.jsx)(t.h2,{id:"also",children:"\u0422\u0430\u043a\u0436\u0435"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430"}),":"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/docs/get-started/overview#advantages",children:"Overview"})}),"\n",(0,r.jsx)(t.li,{children:"CodeReview"}),"\n",(0,r.jsx)(t.li,{children:"Onboarding"}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:"})}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:"\u041c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c"}),"\n",(0,r.jsx)(t.li,{children:"\u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430"}),"\n",(0,r.jsx)(t.li,{children:'"Layers hell"'}),"\n",(0,r.jsx)(t.li,{children:"\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b feature-based \u043f\u043e\u0434\u0445\u043e\u0434\u0430"}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},7468:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>a});var r=n(758);const o={},i=r.createContext(o);function s(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/1c0a16b8.1dc232cb.js b/ru/assets/js/1c0a16b8.1dc232cb.js deleted file mode 100644 index 892fd612f0..0000000000 --- a/ru/assets/js/1c0a16b8.1dc232cb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[6877],{80:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var r=n(6070),o=n(7468);const i={sidebar_position:1},s="\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438",a={id:"about/promote/integration",title:"\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438",description:"\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435?",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/about/promote/integration.mdx",sourceDirName:"about/promote",slug:"/about/promote/integration",permalink:"/ru/docs/about/promote/integration",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/about/promote/integration.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"aboutSidebar",previous:{title:"\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438",permalink:"/ru/docs/about/understanding/abstractions"},next:{title:"\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435",permalink:"/ru/docs/about/promote/partial-application"}},c={},l=[{value:"\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435?",id:"summary",level:2},{value:"\u0422\u0430\u043a\u0436\u0435",id:"also",level:2}];function u(e){const t={a:"a",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h1,{id:"\u0430\u0441\u043f\u0435\u043a\u0442\u044b-\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438",children:"\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438"}),"\n",(0,r.jsx)(t.h2,{id:"summary",children:"\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435?"}),"\n",(0,r.jsx)(t.p,{children:"\u0421\u043c. \u043f\u0435\u0440\u0432\u044b\u0435 5 \u043c\u0438\u043d\u0443\u0442:"}),"\n",(0,r.jsx)("iframe",{className:"youtube",src:"https://www.youtube.com/embed/TFA6zRO_Cl0?start=2110",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),"\n",(0,r.jsx)(t.h2,{id:"also",children:"\u0422\u0430\u043a\u0436\u0435"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430"}),":"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/docs/get-started/overview#advantages",children:"Overview"})}),"\n",(0,r.jsx)(t.li,{children:"CodeReview"}),"\n",(0,r.jsx)(t.li,{children:"Onboarding"}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.strong,{children:"\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:"})}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:"\u041c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c"}),"\n",(0,r.jsx)(t.li,{children:"\u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430"}),"\n",(0,r.jsx)(t.li,{children:'"Layers hell"'}),"\n",(0,r.jsx)(t.li,{children:"\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b feature-based \u043f\u043e\u0434\u0445\u043e\u0434\u0430"}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},7468:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>a});var r=n(758);const o={},i=r.createContext(o);function s(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/1d3222b5.8adc4c87.js b/ru/assets/js/1d3222b5.8adc4c87.js new file mode 100644 index 0000000000..987f77d992 --- /dev/null +++ b/ru/assets/js/1d3222b5.8adc4c87.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[9316],{1800:(e,t,i)=>{i.d(t,{Ay:()=>a,RM:()=>d});var n=i(6070),s=i(7468),r=(i(758),i(2992)),c=i(3920);const o=e=>{let{ticket:t}=e;const i=`https://github.com/feature-sliced/documentation/issues/${t}`;return(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{children:(0,c.T)({id:"shared.wip.title"})}),(0,n.jsx)("p",{children:(0,c.T)({id:"shared.wip.subtitle"})}),(0,n.jsxs)("ul",{children:[(0,n.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.feedback.base"}),(0,n.jsx)(r.A,{to:i,children:(0,c.T)({id:"shared.wip.var.feedback.link"})})]}),(0,n.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.material.base"}),(0,n.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,c.T)({id:"shared.wip.var.material.link"})})]}),(0,n.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.contribute.base"}),(0,n.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,c.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,n.jsx)("br",{}),(0,n.jsx)("p",{children:(0,n.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},d=[];function l(e){const t={admonition:"admonition",...(0,s.R)(),...e.components};return(0,n.jsx)(t.admonition,{title:"WIP",type:"caution",children:(0,n.jsx)(o,{ticket:e.ticket})})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},5913:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>c,metadata:()=>d,toc:()=>a});var n=i(6070),s=i(7468),r=i(1800);const c={sidebar_position:2,sidebar_class_name:"sidebar-item--wip"},o="Decouple entities",d={id:"reference/isolation/decouple-entities",title:"Decouple entities",description:"\u041f\u0440\u043e \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0442\u0438\u043f\u043e\u0432, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b \u0438 \u043f\u0440\u043e \u0442\u043e - \u043a\u0430\u043a \u044f\u0432\u043d\u043e \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/reference/isolation/decouple-entities.mdx",sourceDirName:"reference/isolation",slug:"/reference/isolation/decouple-entities",permalink:"/ru/docs/reference/isolation/decouple-entities",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/reference/isolation/decouple-entities.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:2,frontMatter:{sidebar_position:2,sidebar_class_name:"sidebar-item--wip"},sidebar:"referenceSidebar",previous:{title:"Low Coupling & High Cohesion",permalink:"/ru/docs/reference/isolation/coupling-cohesion"}},l={},a=[...r.RM,{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function u(e){const t={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"decouple-entities",children:"Decouple entities"}),"\n",(0,n.jsx)(r.Ay,{ticket:"202"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"\u041f\u0440\u043e \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0442\u0438\u043f\u043e\u0432, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b \u0438 \u043f\u0440\u043e \u0442\u043e - \u043a\u0430\u043a \u044f\u0432\u043d\u043e \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438"}),"\n"]}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u043e \u043c\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 absolutely-decoupled entities"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://t.me/feature_sliced/3633",children:"(\u0422\u0440\u0435\u0434) \u041f\u0430\u043c\u044f\u0442\u043a\u0430 \u043f\u0440\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c \u0438 \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u044f\u0432\u043d\u044b\u0445 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://t.me/feature_sliced/3316",children:'(\u0422\u0440\u0435\u0434) \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0434\u043b\u044f "\u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439" (users/pets/friends)'})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://t.me/feature_sliced/4276",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0442\u0438\u043f\u043e\u0432/\u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u0432 \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u0445"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://t.me/feature_sliced/4521",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u0444\u0438\u0447"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},7468:(e,t,i)=>{i.d(t,{R:()=>c,x:()=>o});var n=i(758);const s={},r=n.createContext(s);function c(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/1d3222b5.9a2b9db3.js b/ru/assets/js/1d3222b5.9a2b9db3.js deleted file mode 100644 index e3d9e2ed8e..0000000000 --- a/ru/assets/js/1d3222b5.9a2b9db3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[9316],{1800:(e,t,i)=>{i.d(t,{Ay:()=>a,RM:()=>d});var n=i(6070),s=i(7468),r=(i(758),i(2992)),c=i(3920);const o=e=>{let{ticket:t}=e;const i=`https://github.com/feature-sliced/documentation/issues/${t}`;return(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{children:(0,c.T)({id:"shared.wip.title"})}),(0,n.jsx)("p",{children:(0,c.T)({id:"shared.wip.subtitle"})}),(0,n.jsxs)("ul",{children:[(0,n.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.feedback.base"}),(0,n.jsx)(r.A,{to:i,children:(0,c.T)({id:"shared.wip.var.feedback.link"})})]}),(0,n.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.material.base"}),(0,n.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,c.T)({id:"shared.wip.var.material.link"})})]}),(0,n.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.contribute.base"}),(0,n.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,c.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,n.jsx)("br",{}),(0,n.jsx)("p",{children:(0,n.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},d=[];function l(e){const t={admonition:"admonition",...(0,s.R)(),...e.components};return(0,n.jsx)(t.admonition,{title:"WIP",type:"caution",children:(0,n.jsx)(o,{ticket:e.ticket})})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},5913:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>c,metadata:()=>d,toc:()=>a});var n=i(6070),s=i(7468),r=i(1800);const c={sidebar_position:2,sidebar_class_name:"sidebar-item--wip"},o="Decouple entities",d={id:"reference/isolation/decouple-entities",title:"Decouple entities",description:"\u041f\u0440\u043e \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0442\u0438\u043f\u043e\u0432, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b \u0438 \u043f\u0440\u043e \u0442\u043e - \u043a\u0430\u043a \u044f\u0432\u043d\u043e \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/reference/isolation/decouple-entities.mdx",sourceDirName:"reference/isolation",slug:"/reference/isolation/decouple-entities",permalink:"/ru/docs/reference/isolation/decouple-entities",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/reference/isolation/decouple-entities.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:2,frontMatter:{sidebar_position:2,sidebar_class_name:"sidebar-item--wip"},sidebar:"referenceSidebar",previous:{title:"Low Coupling & High Cohesion",permalink:"/ru/docs/reference/isolation/coupling-cohesion"}},l={},a=[...r.RM,{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function u(e){const t={a:"a",blockquote:"blockquote",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"decouple-entities",children:"Decouple entities"}),"\n",(0,n.jsx)(r.Ay,{ticket:"202"}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"\u041f\u0440\u043e \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0442\u0438\u043f\u043e\u0432, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b \u0438 \u043f\u0440\u043e \u0442\u043e - \u043a\u0430\u043a \u044f\u0432\u043d\u043e \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438"}),"\n"]}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsx)(t.p,{children:"\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u043e \u043c\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 absolutely-decoupled entities"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://t.me/feature_sliced/3633",children:"(\u0422\u0440\u0435\u0434) \u041f\u0430\u043c\u044f\u0442\u043a\u0430 \u043f\u0440\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c \u0438 \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u044f\u0432\u043d\u044b\u0445 \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://t.me/feature_sliced/3316",children:'(\u0422\u0440\u0435\u0434) \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0434\u043b\u044f "\u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439" (users/pets/friends)'})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://t.me/feature_sliced/4276",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0442\u0438\u043f\u043e\u0432/\u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u0432 \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u0445"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://t.me/feature_sliced/4521",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u0444\u0438\u0447"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},7468:(e,t,i)=>{i.d(t,{R:()=>c,x:()=>o});var n=i(758);const s={},r=n.createContext(s);function c(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/20c5a0f6.04b3c33d.js b/ru/assets/js/20c5a0f6.442f9772.js similarity index 52% rename from ru/assets/js/20c5a0f6.04b3c33d.js rename to ru/assets/js/20c5a0f6.442f9772.js index 722ef6ebda..b0eac7e750 100644 --- a/ru/assets/js/20c5a0f6.04b3c33d.js +++ b/ru/assets/js/20c5a0f6.442f9772.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[2538],{1800:(e,t,i)=>{i.d(t,{Ay:()=>l,RM:()=>c});var s=i(6070),n=i(7468),r=(i(758),i(2992)),d=i(3920);const a=e=>{let{ticket:t}=e;const i=`https://github.com/feature-sliced/documentation/issues/${t}`;return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{children:(0,d.T)({id:"shared.wip.title"})}),(0,s.jsx)("p",{children:(0,d.T)({id:"shared.wip.subtitle"})}),(0,s.jsxs)("ul",{children:[(0,s.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.feedback.base"}),(0,s.jsx)(r.A,{to:i,children:(0,d.T)({id:"shared.wip.var.feedback.link"})})]}),(0,s.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.material.base"}),(0,s.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,d.T)({id:"shared.wip.var.material.link"})})]}),(0,s.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.contribute.base"}),(0,s.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,d.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,s.jsx)("br",{}),(0,s.jsx)("p",{children:(0,s.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},c=[];function o(e){const t={admonition:"admonition",...(0,n.R)(),...e.components};return(0,s.jsx)(t.admonition,{title:"WIP",type:"caution",children:(0,s.jsx)(a,{ticket:e.ticket})})}function l(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8051:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>c,toc:()=>l});var s=i(6070),n=i(7468),r=i(1800);const d={sidebar_position:6,sidebar_class_name:"sidebar-item--wip"},a="i18n",c={id:"guides/examples/i18n",title:"i18n",description:"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c? \u041a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/i18n.mdx",sourceDirName:"guides/examples",slug:"/guides/examples/i18n",permalink:"/ru/docs/guides/examples/i18n",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/i18n.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:6,frontMatter:{sidebar_position:6,sidebar_class_name:"sidebar-item--wip"},sidebar:"guidesSidebar",previous:{title:"\u0410\u0432\u0442\u043e\u043a\u043e\u043c\u043f\u043b\u0438\u0442",permalink:"/ru/docs/guides/examples/autocompleted"},next:{title:"White Labels",permalink:"/ru/docs/guides/examples/white-labels"}},o={},l=[...r.RM,{value:"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c? \u041a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?",id:"where-to-place-it-how-to-work-with-this",level:2}];function u(e){const t={a:"a",h1:"h1",h2:"h2",li:"li",ul:"ul",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"i18n",children:"i18n"}),"\n",(0,s.jsx)(r.Ay,{ticket:"171"}),"\n",(0,s.jsx)(t.h2,{id:"where-to-place-it-how-to-work-with-this",children:"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c? \u041a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://t.me/feature_sliced/4425",children:"https://t.me/feature_sliced/4425"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://t.me/feature_sliced/2325",children:"https://t.me/feature_sliced/2325"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://t.me/feature_sliced/1867",children:"https://t.me/feature_sliced/1867"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},7468:(e,t,i)=>{i.d(t,{R:()=>d,x:()=>a});var s=i(758);const n={},r=s.createContext(n);function d(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[2538],{1800:(e,t,i)=>{i.d(t,{Ay:()=>l,RM:()=>c});var s=i(6070),n=i(7468),r=(i(758),i(2992)),d=i(3920);const a=e=>{let{ticket:t}=e;const i=`https://github.com/feature-sliced/documentation/issues/${t}`;return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{children:(0,d.T)({id:"shared.wip.title"})}),(0,s.jsx)("p",{children:(0,d.T)({id:"shared.wip.subtitle"})}),(0,s.jsxs)("ul",{children:[(0,s.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.feedback.base"}),(0,s.jsx)(r.A,{to:i,children:(0,d.T)({id:"shared.wip.var.feedback.link"})})]}),(0,s.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.material.base"}),(0,s.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,d.T)({id:"shared.wip.var.material.link"})})]}),(0,s.jsxs)("li",{children:[(0,d.T)({id:"shared.wip.var.contribute.base"}),(0,s.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,d.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,s.jsx)("br",{}),(0,s.jsx)("p",{children:(0,s.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},c=[];function o(e){const t={admonition:"admonition",...(0,n.R)(),...e.components};return(0,s.jsx)(t.admonition,{title:"WIP",type:"caution",children:(0,s.jsx)(a,{ticket:e.ticket})})}function l(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},8051:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>c,toc:()=>l});var s=i(6070),n=i(7468),r=i(1800);const d={sidebar_position:6,sidebar_class_name:"sidebar-item--wip"},a="i18n",c={id:"guides/examples/i18n",title:"i18n",description:"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c? \u041a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/i18n.mdx",sourceDirName:"guides/examples",slug:"/guides/examples/i18n",permalink:"/ru/docs/guides/examples/i18n",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/i18n.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:6,frontMatter:{sidebar_position:6,sidebar_class_name:"sidebar-item--wip"},sidebar:"guidesSidebar",previous:{title:"\u0410\u0432\u0442\u043e\u043a\u043e\u043c\u043f\u043b\u0438\u0442",permalink:"/ru/docs/guides/examples/autocompleted"},next:{title:"White Labels",permalink:"/ru/docs/guides/examples/white-labels"}},o={},l=[...r.RM,{value:"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c? \u041a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?",id:"where-to-place-it-how-to-work-with-this",level:2}];function u(e){const t={a:"a",h1:"h1",h2:"h2",li:"li",ul:"ul",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"i18n",children:"i18n"}),"\n",(0,s.jsx)(r.Ay,{ticket:"171"}),"\n",(0,s.jsx)(t.h2,{id:"where-to-place-it-how-to-work-with-this",children:"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c? \u041a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://t.me/feature_sliced/4425",children:"https://t.me/feature_sliced/4425"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://t.me/feature_sliced/2325",children:"https://t.me/feature_sliced/2325"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://t.me/feature_sliced/1867",children:"https://t.me/feature_sliced/1867"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},7468:(e,t,i)=>{i.d(t,{R:()=>d,x:()=>a});var s=i(758);const n={},r=s.createContext(n);function d(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/2bd07bfd.40c1d9bc.js b/ru/assets/js/2bd07bfd.40c1d9bc.js deleted file mode 100644 index e9694ce3b9..0000000000 --- a/ru/assets/js/2bd07bfd.40c1d9bc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[3902],{3548:(e,t,n)=>{n.d(t,{Ay:()=>r,RM:()=>i});var s=n(6070),c=n(7468),a=n(57);const i=[];function o(e){return(0,s.jsx)(a.A,{...e})}function r(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},7599:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>A,contentTitle:()=>j,default:()=>w,frontMatter:()=>g,metadata:()=>b,toc:()=>_});var s=n(6070),c=n(7468),a=n(3548),i=n(941),o=n(758);const r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M759 335c0-137-111-248-248-248S263 198 263 335c0 82.8 40.6 156.2 103 201.2-.4.2-.7.3-.9.4-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00136 874.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C356 614.2 431 583 511 583c137 0 248-111 248-248zM511 507c-95 0-172-77-172-172s77-172 172-172 172 77 172 172-77 172-172 172zm105 221h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H703.5l47.2-60.1a8.1 8.1 0 001.7-4.9c0-4.4-3.6-8-8-8h-72.6c-4.9 0-9.5 2.3-12.6 6.1l-68.5 87.1c-4.4 5.6-6.8 12.6-6.8 19.8.1 17.7 14.4 32 32.1 32zm240 64H592c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h176.5l-47.2 60.1a8.1 8.1 0 00-1.7 4.9c0 4.4 3.6 8 8 8h72.6c4.9 0 9.5-2.3 12.6-6.1l68.5-87.1c4.4-5.6 6.8-12.6 6.8-19.8-.1-17.7-14.4-32-32.1-32z"}}]},name:"user-switch",theme:"outlined"};var l=n(4170),d=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:r}))};const u=o.forwardRef(d);const h={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z"}}]},name:"layout",theme:"outlined"};var m=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:h}))};const p=o.forwardRef(m);const f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z"}}]},name:"font-size",theme:"outlined"};var v=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:f}))};const x=o.forwardRef(v),g={hide_table_of_contents:!0},j="\u041f\u0440\u0438\u043c\u0435\u0440\u044b",b={id:"guides/examples/index",title:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",description:"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/index.mdx",sourceDirName:"guides/examples",slug:"/guides/examples/",permalink:"/ru/docs/guides/examples/",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/index.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,frontMatter:{hide_table_of_contents:!0},sidebar:"guidesSidebar",previous:{title:"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b",permalink:"/ru/docs/guides/"},next:{title:"Auth",permalink:"/ru/docs/guides/examples/auth"}},A={},_=[{value:"\u0413\u043b\u0430\u0432\u043d\u043e\u0435",id:"main",level:2},...a.RM,...a.RM,...a.RM];function y(e){const t={h1:"h1",h2:"h2",p:"p",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"\u043f\u0440\u0438\u043c\u0435\u0440\u044b",children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b"}),"\n",(0,s.jsx)("p",{class:"summary",children:(0,s.jsx)(t.p,{children:"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438"})}),"\n",(0,s.jsx)(t.h2,{id:"main",children:"\u0413\u043b\u0430\u0432\u043d\u043e\u0435"}),"\n","\n",(0,s.jsx)(a.Ay,{title:"\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f",description:"\u0414\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438",to:"/docs/guides/examples/auth",Icon:u,tags:["Viewer","AuthForm","ProfilePage","AuthProvider","AuthToken"]}),"\n",(0,s.jsx)(a.Ay,{title:"PageLayout",description:"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b \u0441 \u043b\u0435\u0439\u0430\u0443\u0442\u043d\u044b\u043c\u0438 \u0432\u0438\u0434\u0436\u0435\u0442\u0430\u043c\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b",to:"/docs/guides/examples/page-layout",Icon:p,tags:["Header","Sidebar"]}),"\n",(0,s.jsx)(a.Ay,{title:"\u0422\u0438\u043f\u044b",description:"\u0413\u0434\u0435 \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c \u0442\u0438\u043f\u044b? \u041a\u0430\u043a\u0438\u0445 \u0432\u0438\u0434\u043e\u0432 \u043e\u043d\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 FSD?",to:"/docs/guides/examples/types",Icon:x})]})}function w(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(y,{...e})}):y(e)}},3240:(e,t,n)=>{n.d(t,{ga:()=>s});var s={};n.r(s),n.d(s,{CATEGORIES:()=>a,sendEvent:()=>c});const c=e=>{let{category:t,action:n,label:s,value:c}=e;if(void 0!==typeof window&&window.ga)return window.ga("send",{hitType:"event",eventCategory:t,eventAction:n,eventLabel:s,eventValue:c})},a={full:"Feedback 1.2 (full)",mixed:"Feedback 1.2 (mixed)",short:"Feedback 1.2 (short)"}},57:(e,t,n)=>{n.d(t,{Y:()=>l,A:()=>u});var s=n(758),c=n(8923),a=n(2992),i=n(3240);const o={root:"root_GfON",rootDisabled:"rootDisabled_SFUB",details:"details_xxkR",detailsTags:"detailsTags_uTQx",icon:"icon_ciqP",title:"title_pSH5",description:"description__Fep",miniTheme:"miniTheme_ePfp",primaryTheme:"primaryTheme_CilO",defaultTheme:"defaultTheme_j3I8"};var r=n(6070);const l=e=>{const{title:t,description:n,to:l,Icon:u,tags:h,className:m,disabled:p,theme:f="default"}=e,v=(0,s.useCallback)((()=>{i.ga.sendEvent({category:i.ga.CATEGORIES.full,action:"NavRow:Click",label:l})}),[l]);return(0,r.jsxs)(a.A,{className:(0,c.A)(o.root,m,p&&o.rootDisabled,o[`${f}Theme`]),to:l,onClick:v,children:[(0,r.jsx)(d,{Icon:u}),(0,r.jsxs)("div",{className:o.details,children:[(0,r.jsxs)("div",{className:o.detailsMain,children:[(0,r.jsx)("span",{className:o.title,children:t}),(0,r.jsx)("p",{className:o.description,children:n})]}),h&&(0,r.jsx)("div",{className:o.detailsTags,children:h.join(" \u2022 ")})]})]})},d=e=>{let{Icon:t}=e;return t?"string"==typeof t?(0,r.jsx)("span",{className:o.icon,children:t}):(0,r.jsx)(t,{className:o.icon}):null},u=l},7468:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var s=n(758);const c={},a=s.createContext(c);function i(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/2bd07bfd.ebdc3b6e.js b/ru/assets/js/2bd07bfd.ebdc3b6e.js new file mode 100644 index 0000000000..6e857f5a66 --- /dev/null +++ b/ru/assets/js/2bd07bfd.ebdc3b6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[3902],{3548:(e,t,n)=>{n.d(t,{Ay:()=>r,RM:()=>i});var s=n(6070),c=n(7468),a=n(57);const i=[];function o(e){return(0,s.jsx)(a.A,{...e})}function r(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},7599:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>A,contentTitle:()=>j,default:()=>w,frontMatter:()=>g,metadata:()=>b,toc:()=>_});var s=n(6070),c=n(7468),a=n(3548),i=n(941),o=n(758);const r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M759 335c0-137-111-248-248-248S263 198 263 335c0 82.8 40.6 156.2 103 201.2-.4.2-.7.3-.9.4-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00136 874.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C356 614.2 431 583 511 583c137 0 248-111 248-248zM511 507c-95 0-172-77-172-172s77-172 172-172 172 77 172 172-77 172-172 172zm105 221h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H703.5l47.2-60.1a8.1 8.1 0 001.7-4.9c0-4.4-3.6-8-8-8h-72.6c-4.9 0-9.5 2.3-12.6 6.1l-68.5 87.1c-4.4 5.6-6.8 12.6-6.8 19.8.1 17.7 14.4 32 32.1 32zm240 64H592c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h176.5l-47.2 60.1a8.1 8.1 0 00-1.7 4.9c0 4.4 3.6 8 8 8h72.6c4.9 0 9.5-2.3 12.6-6.1l68.5-87.1c4.4-5.6 6.8-12.6 6.8-19.8-.1-17.7-14.4-32-32.1-32z"}}]},name:"user-switch",theme:"outlined"};var l=n(4170),d=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:r}))};const u=o.forwardRef(d);const h={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z"}}]},name:"layout",theme:"outlined"};var m=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:h}))};const p=o.forwardRef(m);const f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z"}}]},name:"font-size",theme:"outlined"};var v=function(e,t){return o.createElement(l.A,(0,i.A)({},e,{ref:t,icon:f}))};const x=o.forwardRef(v),g={hide_table_of_contents:!0},j="\u041f\u0440\u0438\u043c\u0435\u0440\u044b",b={id:"guides/examples/index",title:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",description:"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/index.mdx",sourceDirName:"guides/examples",slug:"/guides/examples/",permalink:"/ru/docs/guides/examples/",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/index.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,frontMatter:{hide_table_of_contents:!0},sidebar:"guidesSidebar",previous:{title:"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b",permalink:"/ru/docs/guides/"},next:{title:"Auth",permalink:"/ru/docs/guides/examples/auth"}},A={},_=[{value:"\u0413\u043b\u0430\u0432\u043d\u043e\u0435",id:"main",level:2},...a.RM,...a.RM,...a.RM];function y(e){const t={h1:"h1",h2:"h2",p:"p",...(0,c.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"\u043f\u0440\u0438\u043c\u0435\u0440\u044b",children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b"}),"\n",(0,s.jsx)("p",{class:"summary",children:(0,s.jsx)(t.p,{children:"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438"})}),"\n",(0,s.jsx)(t.h2,{id:"main",children:"\u0413\u043b\u0430\u0432\u043d\u043e\u0435"}),"\n","\n",(0,s.jsx)(a.Ay,{title:"\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f",description:"\u0414\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438",to:"/docs/guides/examples/auth",Icon:u,tags:["Viewer","AuthForm","ProfilePage","AuthProvider","AuthToken"]}),"\n",(0,s.jsx)(a.Ay,{title:"PageLayout",description:"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b \u0441 \u043b\u0435\u0439\u0430\u0443\u0442\u043d\u044b\u043c\u0438 \u0432\u0438\u0434\u0436\u0435\u0442\u0430\u043c\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b",to:"/docs/guides/examples/page-layout",Icon:p,tags:["Header","Sidebar"]}),"\n",(0,s.jsx)(a.Ay,{title:"\u0422\u0438\u043f\u044b",description:"\u0413\u0434\u0435 \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c \u0442\u0438\u043f\u044b? \u041a\u0430\u043a\u0438\u0445 \u0432\u0438\u0434\u043e\u0432 \u043e\u043d\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 FSD?",to:"/docs/guides/examples/types",Icon:x})]})}function w(e={}){const{wrapper:t}={...(0,c.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(y,{...e})}):y(e)}},3240:(e,t,n)=>{n.d(t,{ga:()=>s});var s={};n.r(s),n.d(s,{CATEGORIES:()=>a,sendEvent:()=>c});const c=e=>{let{category:t,action:n,label:s,value:c}=e;if(void 0!==typeof window&&window.ga)return window.ga("send",{hitType:"event",eventCategory:t,eventAction:n,eventLabel:s,eventValue:c})},a={full:"Feedback 1.2 (full)",mixed:"Feedback 1.2 (mixed)",short:"Feedback 1.2 (short)"}},57:(e,t,n)=>{n.d(t,{Y:()=>l,A:()=>u});var s=n(758),c=n(8923),a=n(2992),i=n(3240);const o={root:"root_GfON",rootDisabled:"rootDisabled_SFUB",details:"details_xxkR",detailsTags:"detailsTags_uTQx",icon:"icon_ciqP",title:"title_pSH5",description:"description__Fep",miniTheme:"miniTheme_ePfp",primaryTheme:"primaryTheme_CilO",defaultTheme:"defaultTheme_j3I8"};var r=n(6070);const l=e=>{const{title:t,description:n,to:l,Icon:u,tags:h,className:m,disabled:p,theme:f="default"}=e,v=(0,s.useCallback)((()=>{i.ga.sendEvent({category:i.ga.CATEGORIES.full,action:"NavRow:Click",label:l})}),[l]);return(0,r.jsxs)(a.A,{className:(0,c.A)(o.root,m,p&&o.rootDisabled,o[`${f}Theme`]),to:l,onClick:v,children:[(0,r.jsx)(d,{Icon:u}),(0,r.jsxs)("div",{className:o.details,children:[(0,r.jsxs)("div",{className:o.detailsMain,children:[(0,r.jsx)("span",{className:o.title,children:t}),(0,r.jsx)("p",{className:o.description,children:n})]}),h&&(0,r.jsx)("div",{className:o.detailsTags,children:h.join(" \u2022 ")})]})]})},d=e=>{let{Icon:t}=e;return t?"string"==typeof t?(0,r.jsx)("span",{className:o.icon,children:t}):(0,r.jsx)(t,{className:o.icon}):null},u=l},7468:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var s=n(758);const c={},a=s.createContext(c);function i(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/352bcbef.2937138c.js b/ru/assets/js/352bcbef.2937138c.js deleted file mode 100644 index 47121e8622..0000000000 --- a/ru/assets/js/352bcbef.2937138c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[4401],{5632:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var i=s(6070),r=s(7468);const t={sidebar_position:1},o="Low Coupling & High Cohesion",l={id:"reference/isolation/coupling-cohesion",title:"Low Coupling & High Cohesion",description:"\u041c\u043e\u0434\u0443\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e (\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0447\u0435\u0442\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u0438 \u0441\u043b\u0430\u0431\u043e\u0439 \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e (\u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439)",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/reference/isolation/coupling-cohesion.md",sourceDirName:"reference/isolation",slug:"/reference/isolation/coupling-cohesion",permalink:"/ru/docs/reference/isolation/coupling-cohesion",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/reference/isolation/coupling-cohesion.md",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"referenceSidebar",previous:{title:"\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439",permalink:"/ru/docs/reference/isolation/"},next:{title:"Decouple entities",permalink:"/ru/docs/reference/isolation/decouple-entities"}},c={},d=[{value:"\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 (UI level)",id:"components-composition-ui-level",level:2},{value:"\u041f\u0440\u0438\u043c\u0435\u0440",id:"example",level:3},{value:"\u0417\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c",id:"laying-the-extensibility",level:4},{value:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e",id:"using-the-composition",level:4},{value:"\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0441\u043b\u043e\u0435\u0432 (APP level)",id:"layer-composition-app-level",level:2},{value:"\u041f\u0440\u0438\u043c\u0435\u0440",id:"example",level:3},{value:"\u0421\u0432\u044f\u0436\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435",id:"lets-tie-it-all-together",level:4},{value:"\u041c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445",id:"data-model",level:4},{value:"\u0418\u0442\u043e\u0433\u043e",id:"summary",level:2},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"low-coupling--high-cohesion",children:"Low Coupling & High Cohesion"}),"\n",(0,i.jsxs)(n.p,{children:["\u041c\u043e\u0434\u0443\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 ",(0,i.jsx)(n.strong,{children:"\u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e"})," (\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0447\u0435\u0442\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u0438 ",(0,i.jsx)(n.strong,{children:"\u0441\u043b\u0430\u0431\u043e\u0439 \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e"})," (\u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439)"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"coupling-cohesion-themed",src:s(3468).A+"",width:"1024",height:"1024"})}),"\n",(0,i.jsx)(n.p,{children:"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u043e\u0438 \u0438 \u0441\u043b\u0430\u0439\u0441\u044b - \u043c\u043e\u0434\u0443\u043b\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c."}),"\n",(0,i.jsxs)(n.li,{children:["\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e - \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c ",(0,i.jsx)(n.a,{href:"/docs/reference/public-api",children:"\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0430"})]}),"\n",(0,i.jsxs)(n.li,{children:["\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 ",(0,i.jsx)(n.a,{href:"/docs/reference/isolation",children:"\u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439"}),' - \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 "\u043d\u0438\u0436\u0435\u043b\u0435\u0436\u0430\u0449\u0438\u0445" \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043d\u043e \u043d\u0435 \u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441 \u0442\u043e\u0433\u043e \u0436\u0435 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0441\u043b\u043e\u044f.']}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"components-composition-ui-level",children:"\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 (UI level)"}),"\n",(0,i.jsx)(n.p,{children:"\u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 UI-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e, \u0441\u043b\u043e\u0442\u044b."}),"\n",(0,i.jsxs)(n.p,{children:["\u0422\u0430\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u0430\u043a ",(0,i.jsx)(n.strong,{children:"\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432"})," \u0438, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c, \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c ",(0,i.jsx)(n.strong,{children:"\u0441\u043b\u0430\u0431\u043e\u0439 \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438"})," \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430"]}),"\n",(0,i.jsx)(n.h3,{id:"example",children:"\u041f\u0440\u0438\u043c\u0435\u0440"}),"\n",(0,i.jsxs)(n.p,{children:["\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 ",(0,i.jsx)(n.strong,{children:"\u0441\u043f\u0438\u0441\u043a\u0430 \u0441 \u0445\u0435\u0434\u0435\u0440\u043e\u043c:"})]}),"\n",(0,i.jsx)(n.h4,{id:"laying-the-extensibility",children:"\u0417\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c"}),"\n",(0,i.jsx)(n.p,{children:"\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0432\u0438\u0434 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0445\u0435\u0434\u0435\u0440\u0430 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-tsx",children:'interface ListProps {\n Header: React.ReactNode;\n Items: React.ReactNode;\n}\n\nconst List: Component = ({ Header, Items }) => (\n
    \n {Header}\n
      \n {Items}\n
    \n
    \n)\n\n'})}),"\n",(0,i.jsx)(n.h4,{id:"using-the-composition",children:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e"}),"\n",(0,i.jsxs)(n.p,{children:["\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 ",(0,i.jsx)(n.strong,{children:"\u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c"})," \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0445\u0435\u0434\u0435\u0440\u0430 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430. \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0445\u0435\u0434\u0435\u0440\u0430 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u043a\u0430\u043a \u0441\u0432\u043e\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0442\u0430\u043a \u0438 \u0441\u0432\u043e\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 \u043a \u043b\u044e\u0431\u044b\u043c \u0447\u0430\u0441\u0442\u044f\u043c \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f - \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0442\u044c, \u0430 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-tsx",children:'} Items={} />\n\n} />\n\n} Items={} />\n\n'})}),"\n",(0,i.jsx)(n.h2,{id:"layer-composition-app-level",children:"\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0441\u043b\u043e\u0435\u0432 (APP level)"}),"\n",(0,i.jsxs)(n.p,{children:["\u041c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u0446\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 - ",(0,i.jsx)(n.strong,{children:"\u0444\u0438\u0447\u0438 (features)"}),", \u0430 \u043b\u043e\u0433\u0438\u043a\u0443, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0443\u044e\u0441\u044f \u043a \u0431\u0438\u0437\u043d\u0435\u0441 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c - \u0432 ",(0,i.jsx)(n.strong,{children:"\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 (entities)"}),". \u0418 \u0444\u0438\u0447\u0438, \u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 ",(0,i.jsx)(n.strong,{children:"\u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432\u044b\u0441\u043e\u043a\u043e-\u0441\u0432\u044f\u0437\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438"}),", \u0442.\u0435. \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 ",(0,i.jsx)(n.strong,{children:"\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438"})," \u0438\u043b\u0438 \u0441\u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 ",(0,i.jsx)(n.strong,{children:"\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438."})]}),"\n",(0,i.jsxs)(n.p,{children:["\u0412\u0441\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u0438\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e UI-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u044b\u0448\u0435, \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043a\u0430\u043a ",(0,i.jsx)(n.strong,{children:"\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439."})]}),"\n",(0,i.jsx)(n.h3,{id:"example",children:"\u041f\u0440\u0438\u043c\u0435\u0440"}),"\n",(0,i.jsx)(n.p,{children:"\u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f-\u0447\u0430\u0442\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0430"}),"\n",(0,i.jsx)(n.li,{children:"\u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0443 \u0441 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0434\u0440\u0443\u0433\u043e\u043c"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:"}),"\n",(0,i.jsx)(n.p,{children:"Entities"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c (\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f)"}),"\n",(0,i.jsx)(n.li,{children:"\u041a\u043e\u043d\u0442\u0430\u043a\u0442 (\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c)"}),"\n",(0,i.jsx)(n.li,{children:"\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0430 (\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0435\u0439)"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Features"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u0424\u043e\u0440\u043c\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f"}),"\n",(0,i.jsx)(n.li,{children:"\u041c\u0435\u043d\u044e \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"lets-tie-it-all-together",children:"\u0421\u0432\u044f\u0436\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435"}),"\n",(0,i.jsx)(n.p,{children:"\u0412 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0441\u043b\u0435\u0433\u043a\u0430 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-tsx",metastring:'title="page/main/ui.tsx"',children:"}\n Items={}\n Footer={}\n/>\n"})}),"\n",(0,i.jsx)(n.h4,{id:"data-model",children:"\u041c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445"}),"\n",(0,i.jsxs)(n.p,{children:["\u041c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043a\u0430\u043a ",(0,i.jsx)(n.strong,{children:"\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0444\u0438\u0447 \u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439"}),". \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0444\u0438\u0447\u0438 \u0431\u0443\u0434\u0443\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043a\u0430\u043a \u0444\u0430\u0431\u0440\u0438\u043a\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u0442\u0438\u0445 \u0444\u0430\u0431\u0440\u0438\u043a."]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"\u041e\u0434\u043d\u0430\u043a\u043e, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u0431\u0440\u0438\u043a\u0438 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430 - \u0444\u0438\u0447\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043d\u0438\u0436\u0435\u043b\u0435\u0436\u0430\u0449\u0438\u0445 \u0441\u043b\u043e\u0435\u0432 \u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e"}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:'title="pages/main/model.ts"',children:'import { userModel } from "entitites/user"\nimport { conversationModel } from "entities/conversation"\nimport { contactModel } from "entities/contact"\n\nimport { createMessageInput } from "features/message-input"\nimport { createConversationSwitch } from "features/conversation-switch"\n\nimport { beautifiy } from "shared/lib/beautify-text"\n\nexport const { allConversations, setConversation } = createConversationSwitch({\n contacts: contactModel.allContacts,\n setConversation: conversationModel.setConversation,\n currentConversation: conversationModel.conversation,\n currentUser: userModel.currentUser\n})\n\nexport const { sendMessage, attachFile } = createMessageInput({\n author: userModel.currentUser\n send: conversationModel.sendMessage,\n formatMessage: beautify\n})\n'})}),"\n",(0,i.jsx)(n.h2,{id:"summary",children:"\u0418\u0442\u043e\u0433\u043e"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\u041c\u043e\u0434\u0443\u043b\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c ",(0,i.jsx)(n.strong,{children:"\u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e"})," (\u0438\u043c\u0435\u0442\u044c \u043e\u0434\u043d\u0443 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0440\u0435\u0448\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443) \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c ",(0,i.jsx)(n.a,{href:"/docs/reference/public-api",children:(0,i.jsx)(n.strong,{children:"\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441"})})," \u0434\u043e\u0441\u0442\u0443\u043f\u0430"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u0421\u043b\u0430\u0431\u0430\u044f \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c"})," \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 - \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 UI, \u0444\u0438\u0447 \u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439"]}),"\n",(0,i.jsxs)(n.li,{children:["\u0422\u0430\u043a\u0436\u0435, \u0434\u043b\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043c\u043e\u0434\u0443\u043b\u0438 ",(0,i.jsx)(n.strong,{children:"\u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b"})," - \u0442\u0430\u043a \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043e\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://enterprisecraftsmanship.com/posts/cohesion-coupling-difference/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) \u041f\u0440\u043e Low Coupling \u0438 High Cohesion \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.em,{children:"\u0421\u0445\u0435\u043c\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/german-gorelkin/low-coupling-high-cohesion-d36369fb1be9",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) Low Coupling \u0438 High Cohesion. \u0417\u0430\u043a\u043e\u043d \u0414\u0435\u043c\u0435\u0442\u0440\u044b"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.slideshare.net/cristalngo/software-design-principles-57388843",children:"(\u041f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f) \u041f\u0440\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0432\u043a\u043b\u044e\u0447\u0430\u044f Low Coupling & High Cohesion)"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},3468:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/coupling-ca24ecbbb9b4595e100e3e990025ed73.png"},7468:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var i=s(758);const r={},t=i.createContext(r);function o(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/352bcbef.3551b327.js b/ru/assets/js/352bcbef.3551b327.js new file mode 100644 index 0000000000..f3aed7dae8 --- /dev/null +++ b/ru/assets/js/352bcbef.3551b327.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[4401],{5632:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var i=s(6070),r=s(7468);const t={sidebar_position:1},o="Low Coupling & High Cohesion",l={id:"reference/isolation/coupling-cohesion",title:"Low Coupling & High Cohesion",description:"\u041c\u043e\u0434\u0443\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e (\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0447\u0435\u0442\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u0438 \u0441\u043b\u0430\u0431\u043e\u0439 \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e (\u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439)",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/reference/isolation/coupling-cohesion.md",sourceDirName:"reference/isolation",slug:"/reference/isolation/coupling-cohesion",permalink:"/ru/docs/reference/isolation/coupling-cohesion",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/reference/isolation/coupling-cohesion.md",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"referenceSidebar",previous:{title:"\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439",permalink:"/ru/docs/reference/isolation/"},next:{title:"Decouple entities",permalink:"/ru/docs/reference/isolation/decouple-entities"}},c={},d=[{value:"\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 (UI level)",id:"components-composition-ui-level",level:2},{value:"\u041f\u0440\u0438\u043c\u0435\u0440",id:"example",level:3},{value:"\u0417\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c",id:"laying-the-extensibility",level:4},{value:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e",id:"using-the-composition",level:4},{value:"\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0441\u043b\u043e\u0435\u0432 (APP level)",id:"layer-composition-app-level",level:2},{value:"\u041f\u0440\u0438\u043c\u0435\u0440",id:"example",level:3},{value:"\u0421\u0432\u044f\u0436\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435",id:"lets-tie-it-all-together",level:4},{value:"\u041c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445",id:"data-model",level:4},{value:"\u0418\u0442\u043e\u0433\u043e",id:"summary",level:2},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function a(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"low-coupling--high-cohesion",children:"Low Coupling & High Cohesion"}),"\n",(0,i.jsxs)(n.p,{children:["\u041c\u043e\u0434\u0443\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 ",(0,i.jsx)(n.strong,{children:"\u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e"})," (\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0447\u0435\u0442\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u0438 ",(0,i.jsx)(n.strong,{children:"\u0441\u043b\u0430\u0431\u043e\u0439 \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e"})," (\u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439)"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"coupling-cohesion-themed",src:s(3468).A+"",width:"1024",height:"1024"})}),"\n",(0,i.jsx)(n.p,{children:"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u043b\u043e\u0438 \u0438 \u0441\u043b\u0430\u0439\u0441\u044b - \u043c\u043e\u0434\u0443\u043b\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c."}),"\n",(0,i.jsxs)(n.li,{children:["\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e - \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c ",(0,i.jsx)(n.a,{href:"/docs/reference/public-api",children:"\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0430"})]}),"\n",(0,i.jsxs)(n.li,{children:["\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 ",(0,i.jsx)(n.a,{href:"/docs/reference/isolation",children:"\u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439"}),' - \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 "\u043d\u0438\u0436\u0435\u043b\u0435\u0436\u0430\u0449\u0438\u0445" \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u043d\u043e \u043d\u0435 \u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441 \u0442\u043e\u0433\u043e \u0436\u0435 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0441\u043b\u043e\u044f.']}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"components-composition-ui-level",children:"\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 (UI level)"}),"\n",(0,i.jsx)(n.p,{children:"\u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 UI-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e, \u0441\u043b\u043e\u0442\u044b."}),"\n",(0,i.jsxs)(n.p,{children:["\u0422\u0430\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u0430\u043a ",(0,i.jsx)(n.strong,{children:"\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432"})," \u0438, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c, \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c ",(0,i.jsx)(n.strong,{children:"\u0441\u043b\u0430\u0431\u043e\u0439 \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438"})," \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430"]}),"\n",(0,i.jsx)(n.h3,{id:"example",children:"\u041f\u0440\u0438\u043c\u0435\u0440"}),"\n",(0,i.jsxs)(n.p,{children:["\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 ",(0,i.jsx)(n.strong,{children:"\u0441\u043f\u0438\u0441\u043a\u0430 \u0441 \u0445\u0435\u0434\u0435\u0440\u043e\u043c:"})]}),"\n",(0,i.jsx)(n.h4,{id:"laying-the-extensibility",children:"\u0417\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c"}),"\n",(0,i.jsx)(n.p,{children:"\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0432\u0438\u0434 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0445\u0435\u0434\u0435\u0440\u0430 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-tsx",children:'interface ListProps {\n Header: React.ReactNode;\n Items: React.ReactNode;\n}\n\nconst List: Component = ({ Header, Items }) => (\n
    \n {Header}\n
      \n {Items}\n
    \n
    \n)\n\n'})}),"\n",(0,i.jsx)(n.h4,{id:"using-the-composition",children:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e"}),"\n",(0,i.jsxs)(n.p,{children:["\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 ",(0,i.jsx)(n.strong,{children:"\u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c"})," \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0445\u0435\u0434\u0435\u0440\u0430 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430. \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0445\u0435\u0434\u0435\u0440\u0430 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u043a\u0430\u043a \u0441\u0432\u043e\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0442\u0430\u043a \u0438 \u0441\u0432\u043e\u044e \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 \u043a \u043b\u044e\u0431\u044b\u043c \u0447\u0430\u0441\u0442\u044f\u043c \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f - \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0442\u044c, \u0430 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-tsx",children:'} Items={} />\n\n} />\n\n} Items={} />\n\n'})}),"\n",(0,i.jsx)(n.h2,{id:"layer-composition-app-level",children:"\u041a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0441\u043b\u043e\u0435\u0432 (APP level)"}),"\n",(0,i.jsxs)(n.p,{children:["\u041c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u0446\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 - ",(0,i.jsx)(n.strong,{children:"\u0444\u0438\u0447\u0438 (features)"}),", \u0430 \u043b\u043e\u0433\u0438\u043a\u0443, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0443\u044e\u0441\u044f \u043a \u0431\u0438\u0437\u043d\u0435\u0441 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c - \u0432 ",(0,i.jsx)(n.strong,{children:"\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 (entities)"}),". \u0418 \u0444\u0438\u0447\u0438, \u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 ",(0,i.jsx)(n.strong,{children:"\u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432\u044b\u0441\u043e\u043a\u043e-\u0441\u0432\u044f\u0437\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438"}),", \u0442.\u0435. \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 ",(0,i.jsx)(n.strong,{children:"\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438"})," \u0438\u043b\u0438 \u0441\u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 ",(0,i.jsx)(n.strong,{children:"\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438."})]}),"\n",(0,i.jsxs)(n.p,{children:["\u0412\u0441\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u043a\u0438\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e UI-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u044b\u0448\u0435, \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043a\u0430\u043a ",(0,i.jsx)(n.strong,{children:"\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439."})]}),"\n",(0,i.jsx)(n.h3,{id:"example",children:"\u041f\u0440\u0438\u043c\u0435\u0440"}),"\n",(0,i.jsx)(n.p,{children:"\u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f-\u0447\u0430\u0442\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0430"}),"\n",(0,i.jsx)(n.li,{children:"\u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0443 \u0441 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0434\u0440\u0443\u0433\u043e\u043c"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:"}),"\n",(0,i.jsx)(n.p,{children:"Entities"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c (\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f)"}),"\n",(0,i.jsx)(n.li,{children:"\u041a\u043e\u043d\u0442\u0430\u043a\u0442 (\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c)"}),"\n",(0,i.jsx)(n.li,{children:"\u041f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0430 (\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0435\u0439)"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Features"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"\u0424\u043e\u0440\u043c\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f"}),"\n",(0,i.jsx)(n.li,{children:"\u041c\u0435\u043d\u044e \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438"}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"lets-tie-it-all-together",children:"\u0421\u0432\u044f\u0436\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u0435"}),"\n",(0,i.jsx)(n.p,{children:"\u0412 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0441\u043b\u0435\u0433\u043a\u0430 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-tsx",metastring:'title="page/main/ui.tsx"',children:"}\n Items={}\n Footer={}\n/>\n"})}),"\n",(0,i.jsx)(n.h4,{id:"data-model",children:"\u041c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445"}),"\n",(0,i.jsxs)(n.p,{children:["\u041c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043a\u0430\u043a ",(0,i.jsx)(n.strong,{children:"\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0444\u0438\u0447 \u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439"}),". \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0444\u0438\u0447\u0438 \u0431\u0443\u0434\u0443\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043a\u0430\u043a \u0444\u0430\u0431\u0440\u0438\u043a\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u0442\u0438\u0445 \u0444\u0430\u0431\u0440\u0438\u043a."]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsx)(n.p,{children:"\u041e\u0434\u043d\u0430\u043a\u043e, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u0431\u0440\u0438\u043a\u0438 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430 - \u0444\u0438\u0447\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043d\u0438\u0436\u0435\u043b\u0435\u0436\u0430\u0449\u0438\u0445 \u0441\u043b\u043e\u0435\u0432 \u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e"}),"\n"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",metastring:'title="pages/main/model.ts"',children:'import { userModel } from "entitites/user"\nimport { conversationModel } from "entities/conversation"\nimport { contactModel } from "entities/contact"\n\nimport { createMessageInput } from "features/message-input"\nimport { createConversationSwitch } from "features/conversation-switch"\n\nimport { beautifiy } from "shared/lib/beautify-text"\n\nexport const { allConversations, setConversation } = createConversationSwitch({\n contacts: contactModel.allContacts,\n setConversation: conversationModel.setConversation,\n currentConversation: conversationModel.conversation,\n currentUser: userModel.currentUser\n})\n\nexport const { sendMessage, attachFile } = createMessageInput({\n author: userModel.currentUser\n send: conversationModel.sendMessage,\n formatMessage: beautify\n})\n'})}),"\n",(0,i.jsx)(n.h2,{id:"summary",children:"\u0418\u0442\u043e\u0433\u043e"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\u041c\u043e\u0434\u0443\u043b\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c ",(0,i.jsx)(n.strong,{children:"\u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e"})," (\u0438\u043c\u0435\u0442\u044c \u043e\u0434\u043d\u0443 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0440\u0435\u0448\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443) \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c ",(0,i.jsx)(n.a,{href:"/docs/reference/public-api",children:(0,i.jsx)(n.strong,{children:"\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441"})})," \u0434\u043e\u0441\u0442\u0443\u043f\u0430"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"\u0421\u043b\u0430\u0431\u0430\u044f \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c"})," \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 - \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 UI, \u0444\u0438\u0447 \u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439"]}),"\n",(0,i.jsxs)(n.li,{children:["\u0422\u0430\u043a\u0436\u0435, \u0434\u043b\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043c\u043e\u0434\u0443\u043b\u0438 ",(0,i.jsx)(n.strong,{children:"\u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b"})," - \u0442\u0430\u043a \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043e\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://enterprisecraftsmanship.com/posts/cohesion-coupling-difference/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) \u041f\u0440\u043e Low Coupling \u0438 High Cohesion \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.em,{children:"\u0421\u0445\u0435\u043c\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://medium.com/german-gorelkin/low-coupling-high-cohesion-d36369fb1be9",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) Low Coupling \u0438 High Cohesion. \u0417\u0430\u043a\u043e\u043d \u0414\u0435\u043c\u0435\u0442\u0440\u044b"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.slideshare.net/cristalngo/software-design-principles-57388843",children:"(\u041f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f) \u041f\u0440\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0432\u043a\u043b\u044e\u0447\u0430\u044f Low Coupling & High Cohesion)"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},3468:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/coupling-ca24ecbbb9b4595e100e3e990025ed73.png"},7468:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>l});var i=s(758);const r={},t=i.createContext(r);function o(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/35c5367b.dd317b45.js b/ru/assets/js/35c5367b.dd317b45.js deleted file mode 100644 index 04baf7863c..0000000000 --- a/ru/assets/js/35c5367b.dd317b45.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[427],{5325:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>t,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var r=s(6070),i=s(7468);const l={sidebar_position:3,sidebar_label:"Public API",pagination_next:"about/index"},t="\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 API \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",o={id:"reference/public-api",title:"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 API \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",description:"\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c.",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/reference/public-api.md",sourceDirName:"reference",slug:"/reference/public-api",permalink:"/ru/docs/reference/public-api",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/reference/public-api.md",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_label:"Public API",pagination_next:"about/index"},sidebar:"referenceSidebar",previous:{title:"\u0421\u043b\u0430\u0439\u0441\u044b \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b",permalink:"/ru/docs/reference/slices-segments"},next:{title:"\ud83c\udf70 \u041e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438",permalink:"/ru/docs/about/"}},d={},c=[{value:"\u0426\u0435\u043b\u0438",id:"goals",level:2},{value:"\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c\u0443 API",id:"requirements-for-the-public-api",level:2},{value:"1. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430",id:"1-access-control",level:3},{value:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",id:"examples",level:4},{value:"\u041e\u0442\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432",id:"suspension-from-private-imports",level:5},{value:"2. \u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c",id:"2-sustainability-for-changes",level:3},{value:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",id:"examples",level:4},{value:"\u0410\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438",id:"abstracting-from-the-implementation",level:5},{value:"3. \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c",id:"3-integrability",level:3},{value:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",id:"examples",level:4},{value:"\u041a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d",id:"name-collision",level:5},{value:"\u0413\u0438\u0431\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435",id:"flexible-use",level:5},{value:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439",id:"resolution-of-collisions",level:5},{value:"\u041e \u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430\u0445",id:"about-re-exports",level:2},{value:"\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438",id:"disadvantages",level:3},{value:"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f",id:"possible-solutions",level:3},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function a(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435-api-\u043c\u043e\u0434\u0443\u043b\u044f-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",children:"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 API \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f"}),"\n",(0,r.jsxs)(n.p,{children:["\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a ",(0,r.jsx)(n.strong,{children:"\u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c."})]}),"\n",(0,r.jsx)(n.h2,{id:"goals",children:"\u0426\u0435\u043b\u0438"}),"\n",(0,r.jsxs)(n.p,{children:["\u0423\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 ",(0,r.jsx)(n.em,{children:"\u0440\u044f\u0434\u0430 \u0446\u0435\u043b\u0435\u0439"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043e \u043e\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439"})," \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439"]}),"\n",(0,r.jsxs)(n.li,{children:["\u041f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043c\u043e\u0434\u0443\u043b\u044f ",(0,r.jsx)(n.strong,{children:"\u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0442\u044c"})," \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438"]}),"\n",(0,r.jsxs)(n.li,{children:["\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u043b\u0435\u0433\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u044b"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f"})," - \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043b\u043e\u043c\u0430\u044e\u0449\u0438\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439-\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043c\u043e\u0434\u0443\u043b\u044f."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:'\u0414\u043e\u0441\u0442\u0438\u0447\u044c \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (Public API), \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0431\u043e\u0439 \u0435\u0434\u0438\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u043c\u043e\u0434\u0443\u043b\u044f \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0433\u043e "\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442" \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u043c\u0438\u0440\u043e\u043c.'}),"\n",(0,r.jsx)(n.admonition,{title:"\u0412\u0430\u0436\u043d\u043e",type:"info",children:(0,r.jsx)(n.p,{children:"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u0435\u0434\u0438\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432\u0445\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"\u2514\u2500\u2500 features/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 #\xa0\n \u2514\u2500\u2500 auth-form/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 # \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0438\u0447\u0438\n \u251c\u2500\u2500 ui/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 #\n \u251c\u2500\u2500 model/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0#\n \u251c\u2500\u2500 {...}/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0#\n \u2514\u2500\u2500 index.ts\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0# \u042d\u043d\u0442\u0440\u0438\u043f\u043e\u0438\u043d\u0442 \u0444\u0438\u0447\u0438 \u0441 \u0435\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c API\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="**/**/index.ts"',children:'export { Form as AuthForm } from "./ui"\nexport * as authFormModel from "./model"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"requirements-for-the-public-api",children:"\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c\u0443 API"}),"\n",(0,r.jsxs)(n.p,{children:["\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0432\u0435\u0441\u0442\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u043a ",(0,r.jsx)(n.strong,{children:"\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430"})," \u0438, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c, \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044f."]}),"\n",(0,r.jsx)(n.h3,{id:"1-access-control",children:"1. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430"}),"\n",(0,r.jsxs)(n.p,{children:["Public API \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430"})," \u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044f"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u0414\u0440\u0443\u0433\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435"})]}),"\n",(0,r.jsxs)(n.li,{children:["\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 ",(0,r.jsx)(n.strong,{children:"\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"examples",children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b"}),"\n",(0,r.jsx)(n.h5,{id:"suspension-from-private-imports",children:"\u041e\u0442\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e"}),": \u0418\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u0447\u0430\u0441\u0442\u044f\u043c \u043c\u043e\u0434\u0443\u043b\u044f, \u043c\u0438\u043d\u0443\u044f \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 - \u043e\u043f\u0430\u0441\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0435 \u043c\u043e\u0434\u0443\u043b\u044f"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'- import { Form } from "features/auth-form/components/view/form"\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"})," API \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e\u0435 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u043e\u0435, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043c\u043e\u0434\u0443\u043b\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0434\u0443\u043c\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043b\u043e\u043c\u0430\u0442\u044c Public API \u043f\u0440\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0435"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ import { AuthForm } from "features/auth-form"\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"2-sustainability-for-changes",children:"2. \u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c"}),"\n",(0,r.jsxs)(n.p,{children:["Public API \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u043c \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c"})," \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043b\u043e\u043c\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f, \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0442\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 Public API"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"examples",children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b"}),"\n",(0,r.jsx)(n.h5,{id:"abstracting-from-the-implementation",children:"\u0410\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438"}),"\n",(0,r.jsx)(n.p,{children:"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e Public API"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e:"})," \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0438\u0447\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0442\u044c \u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'- import { Form } from "features/auth-form/ui/form"\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"}),' \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0444\u0438\u0447\u0438 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0435\u0451 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u0432\u043d\u0435\u0448\u043d\u0438\u0435 "\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438" \u0444\u0438\u0447\u0438 \u043d\u0435 \u043f\u043e\u0441\u0442\u0440\u0430\u0434\u0430\u044e\u0442 \u043e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0438\u0447\u0438']}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ import { AuthForm } from "features/auth-form"\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"3-integrability",children:"3. \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c"}),"\n",(0,r.jsxs)(n.p,{children:["Public API \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u043b\u0435\u0433\u043a\u043e\u0439 \u0438 \u0433\u0438\u0431\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u0414\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0447\u0430\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0438 \u0438\u043c\u0435\u043d"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"examples",children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b"}),"\n",(0,r.jsx)(n.h5,{id:"name-collision",children:"\u041a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e:"})," \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/index.ts"',children:'export { Form } from "./ui"\nexport * as model from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/index.ts"',children:'export { Form } from "./ui"\nexport * as model from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'- import { Form, model } from "features/auth-form"\n- import { Form, model } from "features/post-form"\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"})," \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/index.ts"',children:'export { Form as AuthForm } from "./ui"\nexport * as authFormModel from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/index.ts"',children:'export { Form as PostForm } from "./ui"\nexport * as postFormModel from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ import { AuthForm, authFormModel } from "features/auth-form"\n+ import { PostForm, postFormModel } from "features/post-form"\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h5,{id:"flexible-use",children:"\u0413\u0438\u0431\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e:"}),' \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c, \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c, "\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c" \u0444\u0438\u0447\u0438 \u0441\u0442\u0440\u0430\u0434\u0430\u0435\u0442']}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'- import { storeActionUpdateUserDetails } from "features/auth-form"\n- dispatch(storeActionUpdateUserDetails(...))\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"}),' "\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c" \u0444\u0438\u0447\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0443\u0436\u043d\u044b\u043c \u0432\u0435\u0449\u0430\u043c \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0438 \u0433\u0438\u0431\u043a\u043e']}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ import { authFormModel } from "features/auth-form"\n+ dispatch(authFormModel.effects.updateUserDetails(...)) // redux\n+ authFormModel.updateUserDetailsFx(...) // effector\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h5,{id:"resolution-of-collisions",children:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439"}),"\n",(0,r.jsx)(n.p,{children:"\u041a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0435\u0448\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0430 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e:"})," \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/index.ts"',children:'export { AuthForm } from "./ui"\nexport { authFormActions, authFormReducer } from "model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/index.ts"',children:'export { PostForm } from "./ui"\nexport { postFormActions, postFormReducer } from "model"\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"})," \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/model.ts"',children:"export { actions, reducer }\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/index.ts"',children:'export { Form as AuthForm } from "./ui"\nexport * as authFormModel from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/model.ts"',children:"export { actions, reducer }\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/index.ts"',children:'export { Form as PostForm } from "./ui"\nexport * as postFormModel from "./model"\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"about-re-exports",children:"\u041e \u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430\u0445"}),"\n",(0,r.jsxs)(n.p,{children:["\u0412 JavaScript \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 ",(0,r.jsx)(n.code,{children:"index"})," \u0444\u0430\u0439\u043b\u0435:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="**/**/index.ts"',children:'export { Form as AuthForm } from "./ui"\nexport * as authModel from "./model"\n'})}),"\n",(0,r.jsx)(n.h3,{id:"disadvantages",children:"\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0431\u0430\u043d\u0434\u043b\u0435\u0440\u043e\u0432 \u0438\u0437-\u0437\u0430 \u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u043e\u0432 ",(0,r.jsx)(n.strong,{children:"\u0445\u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u043e\u0434-\u0441\u043f\u043b\u0438\u0442\u0442\u0438\u043d\u0433"}),", \u0442.\u043a. ",(0,r.jsx)(n.a,{href:"https://webpack.js.org/guides/tree-shaking/",children:"tree-shaking"})," \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043d\u043e \u043d\u0435 \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u044c."]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043c\u043f\u043e\u0440\u0442 ",(0,r.jsx)(n.code,{children:"authModel"})," \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 ",(0,r.jsx)(n.code,{children:"AuthForm"})," \u0432 \u0447\u0430\u043d\u043a \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0442\u0430\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:'\u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0430\u043d\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0434\u043e\u0440\u043e\u0436\u0435, \u0442.\u043a. \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0432 \u043d\u0435\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0431\u0430\u043d\u0434\u043b "\u0437\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e"'}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"possible-solutions",children:"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"webpack"})," \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b-\u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u044b \u043a\u0430\u043a ",(0,r.jsx)(n.a,{href:"https://webpack.js.org/guides/tree-shaking/#mark-the-file-as-side-effect-free",children:(0,r.jsx)(n.strong,{children:"side effects free"})})," - \u044d\u0442\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 ",(0,r.jsx)(n.code,{children:"webpack"})," \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0442\u0430\u043a\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/feature-sliced/documentation/discussions/41",children:"(\u041e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435) Public API \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsxs)(n.a,{href:"https://ru.wikipedia.org/wiki/SOLID",children:["\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b ",(0,r.jsx)(n.strong,{children:"SOLID"})]})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsxs)(n.a,{href:"https://ru.wikipedia.org/wiki/GRASP",children:["\u041f\u0430\u0442\u0442\u0435\u0440\u043d\u044b ",(0,r.jsx)(n.strong,{children:"GRASP"})]})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},7468:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>o});var r=s(758);const i={},l=r.createContext(i);function t(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/35c5367b.f94b0e62.js b/ru/assets/js/35c5367b.f94b0e62.js new file mode 100644 index 0000000000..f03d860db5 --- /dev/null +++ b/ru/assets/js/35c5367b.f94b0e62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[427],{5325:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>t,default:()=>h,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var r=s(6070),i=s(7468);const l={sidebar_position:3,sidebar_label:"Public API",pagination_next:"about/index"},t="\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 API \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",o={id:"reference/public-api",title:"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 API \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",description:"\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c.",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/reference/public-api.md",sourceDirName:"reference",slug:"/reference/public-api",permalink:"/ru/docs/reference/public-api",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/reference/public-api.md",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_label:"Public API",pagination_next:"about/index"},sidebar:"referenceSidebar",previous:{title:"\u0421\u043b\u0430\u0439\u0441\u044b \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b",permalink:"/ru/docs/reference/slices-segments"},next:{title:"\ud83c\udf70 \u041e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438",permalink:"/ru/docs/about/"}},d={},c=[{value:"\u0426\u0435\u043b\u0438",id:"goals",level:2},{value:"\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c\u0443 API",id:"requirements-for-the-public-api",level:2},{value:"1. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430",id:"1-access-control",level:3},{value:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",id:"examples",level:4},{value:"\u041e\u0442\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432",id:"suspension-from-private-imports",level:5},{value:"2. \u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c",id:"2-sustainability-for-changes",level:3},{value:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",id:"examples",level:4},{value:"\u0410\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438",id:"abstracting-from-the-implementation",level:5},{value:"3. \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c",id:"3-integrability",level:3},{value:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b",id:"examples",level:4},{value:"\u041a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d",id:"name-collision",level:5},{value:"\u0413\u0438\u0431\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435",id:"flexible-use",level:5},{value:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439",id:"resolution-of-collisions",level:5},{value:"\u041e \u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430\u0445",id:"about-re-exports",level:2},{value:"\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438",id:"disadvantages",level:3},{value:"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f",id:"possible-solutions",level:3},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function a(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435-api-\u043c\u043e\u0434\u0443\u043b\u044f-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",children:"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 API \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f"}),"\n",(0,r.jsxs)(n.p,{children:["\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a ",(0,r.jsx)(n.strong,{children:"\u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c."})]}),"\n",(0,r.jsx)(n.h2,{id:"goals",children:"\u0426\u0435\u043b\u0438"}),"\n",(0,r.jsxs)(n.p,{children:["\u0423\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 ",(0,r.jsx)(n.em,{children:"\u0440\u044f\u0434\u0430 \u0446\u0435\u043b\u0435\u0439"}),":"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043e \u043e\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439"})," \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439"]}),"\n",(0,r.jsxs)(n.li,{children:["\u041f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043c\u043e\u0434\u0443\u043b\u044f ",(0,r.jsx)(n.strong,{children:"\u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0442\u044c"})," \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438"]}),"\n",(0,r.jsxs)(n.li,{children:["\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u043b\u0435\u0433\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u044b"}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f"})," - \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043b\u043e\u043c\u0430\u044e\u0449\u0438\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439-\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043c\u043e\u0434\u0443\u043b\u044f."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:'\u0414\u043e\u0441\u0442\u0438\u0447\u044c \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (Public API), \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0431\u043e\u0439 \u0435\u0434\u0438\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u043c\u043e\u0434\u0443\u043b\u044f \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0433\u043e "\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442" \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c \u043c\u0438\u0440\u043e\u043c.'}),"\n",(0,r.jsx)(n.admonition,{title:"\u0412\u0430\u0436\u043d\u043e",type:"info",children:(0,r.jsx)(n.p,{children:"\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u0435\u0434\u0438\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432\u0445\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-sh",children:"\u2514\u2500\u2500 features/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 #\xa0\n \u2514\u2500\u2500 auth-form/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 # \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0444\u0438\u0447\u0438\n \u251c\u2500\u2500 ui/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 #\n \u251c\u2500\u2500 model/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0#\n \u251c\u2500\u2500 {...}/\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0#\n \u2514\u2500\u2500 index.ts\xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0 \xa0# \u042d\u043d\u0442\u0440\u0438\u043f\u043e\u0438\u043d\u0442 \u0444\u0438\u0447\u0438 \u0441 \u0435\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c API\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="**/**/index.ts"',children:'export { Form as AuthForm } from "./ui"\nexport * as authFormModel from "./model"\n'})}),"\n",(0,r.jsx)(n.h2,{id:"requirements-for-the-public-api",children:"\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c\u0443 API"}),"\n",(0,r.jsxs)(n.p,{children:["\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0432\u0435\u0441\u0442\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u043a ",(0,r.jsx)(n.strong,{children:"\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430"})," \u0438, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c, \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044f."]}),"\n",(0,r.jsx)(n.h3,{id:"1-access-control",children:"1. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430"}),"\n",(0,r.jsxs)(n.p,{children:["Public API \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430"})," \u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044f"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u0414\u0440\u0443\u0433\u0438\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435"})]}),"\n",(0,r.jsxs)(n.li,{children:["\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 ",(0,r.jsx)(n.strong,{children:"\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044e"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"examples",children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b"}),"\n",(0,r.jsx)(n.h5,{id:"suspension-from-private-imports",children:"\u041e\u0442\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e"}),": \u0418\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u0447\u0430\u0441\u0442\u044f\u043c \u043c\u043e\u0434\u0443\u043b\u044f, \u043c\u0438\u043d\u0443\u044f \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 - \u043e\u043f\u0430\u0441\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0435 \u043c\u043e\u0434\u0443\u043b\u044f"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'- import { Form } from "features/auth-form/components/view/form"\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"})," API \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e\u0435 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u043e\u0435, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043c\u043e\u0434\u0443\u043b\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0434\u0443\u043c\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043b\u043e\u043c\u0430\u0442\u044c Public API \u043f\u0440\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0435"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ import { AuthForm } from "features/auth-form"\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"2-sustainability-for-changes",children:"2. \u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c"}),"\n",(0,r.jsxs)(n.p,{children:["Public API \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u043c \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c"})," \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043b\u043e\u043c\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f, \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0442\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 Public API"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"examples",children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b"}),"\n",(0,r.jsx)(n.h5,{id:"abstracting-from-the-implementation",children:"\u0410\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438"}),"\n",(0,r.jsx)(n.p,{children:"\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e Public API"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e:"})," \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0438\u0447\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0442\u044c \u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'- import { Form } from "features/auth-form/ui/form"\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"}),' \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0444\u0438\u0447\u0438 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0435\u0451 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u0432\u043d\u0435\u0448\u043d\u0438\u0435 "\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438" \u0444\u0438\u0447\u0438 \u043d\u0435 \u043f\u043e\u0441\u0442\u0440\u0430\u0434\u0430\u044e\u0442 \u043e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0438\u0447\u0438']}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ import { AuthForm } from "features/auth-form"\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"3-integrability",children:"3. \u0418\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c"}),"\n",(0,r.jsxs)(n.p,{children:["Public API \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c ",(0,r.jsx)(n.strong,{children:"\u043b\u0435\u0433\u043a\u043e\u0439 \u0438 \u0433\u0438\u0431\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u0414\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0447\u0430\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0438 \u0438\u043c\u0435\u043d"}),"\n"]}),"\n",(0,r.jsx)(n.h4,{id:"examples",children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b"}),"\n",(0,r.jsx)(n.h5,{id:"name-collision",children:"\u041a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e:"})," \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/index.ts"',children:'export { Form } from "./ui"\nexport * as model from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/index.ts"',children:'export { Form } from "./ui"\nexport * as model from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'- import { Form, model } from "features/auth-form"\n- import { Form, model } from "features/post-form"\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"})," \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/index.ts"',children:'export { Form as AuthForm } from "./ui"\nexport * as authFormModel from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/index.ts"',children:'export { Form as PostForm } from "./ui"\nexport * as postFormModel from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ import { AuthForm, authFormModel } from "features/auth-form"\n+ import { PostForm, postFormModel } from "features/post-form"\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h5,{id:"flexible-use",children:"\u0413\u0438\u0431\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e:"}),' \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c, \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c, "\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c" \u0444\u0438\u0447\u0438 \u0441\u0442\u0440\u0430\u0434\u0430\u0435\u0442']}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'- import { storeActionUpdateUserDetails } from "features/auth-form"\n- dispatch(storeActionUpdateUserDetails(...))\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"}),' "\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c" \u0444\u0438\u0447\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0443\u0436\u043d\u044b\u043c \u0432\u0435\u0449\u0430\u043c \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0438 \u0433\u0438\u0431\u043a\u043e']}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-diff",children:'+ import { authFormModel } from "features/auth-form"\n+ dispatch(authFormModel.effects.updateUserDetails(...)) // redux\n+ authFormModel.updateUserDetailsFx(...) // effector\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h5,{id:"resolution-of-collisions",children:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439"}),"\n",(0,r.jsx)(n.p,{children:"\u041a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0435\u0448\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0430 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u041f\u043b\u043e\u0445\u043e:"})," \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/index.ts"',children:'export { AuthForm } from "./ui"\nexport { authFormActions, authFormReducer } from "model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/index.ts"',children:'export { PostForm } from "./ui"\nexport { postFormActions, postFormReducer } from "model"\n'})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u0425\u043e\u0440\u043e\u0448\u043e:"})," \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u044f \u0438\u043c\u0435\u043d \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/model.ts"',children:"export { actions, reducer }\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/auth-form/index.ts"',children:'export { Form as AuthForm } from "./ui"\nexport * as authFormModel from "./model"\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/model.ts"',children:"export { actions, reducer }\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="features/post-form/index.ts"',children:'export { Form as PostForm } from "./ui"\nexport * as postFormModel from "./model"\n'})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"about-re-exports",children:"\u041e \u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430\u0445"}),"\n",(0,r.jsxs)(n.p,{children:["\u0412 JavaScript \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 ",(0,r.jsx)(n.code,{children:"index"})," \u0444\u0430\u0439\u043b\u0435:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="**/**/index.ts"',children:'export { Form as AuthForm } from "./ui"\nexport * as authModel from "./model"\n'})}),"\n",(0,r.jsx)(n.h3,{id:"disadvantages",children:"\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0431\u0430\u043d\u0434\u043b\u0435\u0440\u043e\u0432 \u0438\u0437-\u0437\u0430 \u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u043e\u0432 ",(0,r.jsx)(n.strong,{children:"\u0445\u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u043e\u0434-\u0441\u043f\u043b\u0438\u0442\u0442\u0438\u043d\u0433"}),", \u0442.\u043a. ",(0,r.jsx)(n.a,{href:"https://webpack.js.org/guides/tree-shaking/",children:"tree-shaking"})," \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043d\u043e \u043d\u0435 \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u044c."]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043c\u043f\u043e\u0440\u0442 ",(0,r.jsx)(n.code,{children:"authModel"})," \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 ",(0,r.jsx)(n.code,{children:"AuthForm"})," \u0432 \u0447\u0430\u043d\u043a \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0442\u0430\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:'\u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0430\u043d\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0434\u043e\u0440\u043e\u0436\u0435, \u0442.\u043a. \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0432 \u043d\u0435\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0431\u0430\u043d\u0434\u043b "\u0437\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e"'}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"possible-solutions",children:"\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"webpack"})," \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b-\u0440\u0435\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u044b \u043a\u0430\u043a ",(0,r.jsx)(n.a,{href:"https://webpack.js.org/guides/tree-shaking/#mark-the-file-as-side-effect-free",children:(0,r.jsx)(n.strong,{children:"side effects free"})})," - \u044d\u0442\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 ",(0,r.jsx)(n.code,{children:"webpack"})," \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0442\u0430\u043a\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/feature-sliced/documentation/discussions/41",children:"(\u041e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435) Public API \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsxs)(n.a,{href:"https://ru.wikipedia.org/wiki/SOLID",children:["\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b ",(0,r.jsx)(n.strong,{children:"SOLID"})]})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsxs)(n.a,{href:"https://ru.wikipedia.org/wiki/GRASP",children:["\u041f\u0430\u0442\u0442\u0435\u0440\u043d\u044b ",(0,r.jsx)(n.strong,{children:"GRASP"})]})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},7468:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>o});var r=s(758);const i={},l=r.createContext(i);function t(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/3b64669e.45544329.js b/ru/assets/js/3b64669e.45544329.js deleted file mode 100644 index f210948816..0000000000 --- a/ru/assets/js/3b64669e.45544329.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[6400],{9956:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>u,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var s=t(6070),r=t(7468);const i={sidebar_position:3,sidebar_label:"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439"},o="\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435",d={id:"about/understanding/knowledge-types",title:"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435",description:'\u0412 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 "\u0442\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439":',source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/about/understanding/knowledge-types.md",sourceDirName:"about/understanding",slug:"/about/understanding/knowledge-types",permalink:"/ru/docs/about/understanding/knowledge-types",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/about/understanding/knowledge-types.md",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_label:"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439"},sidebar:"aboutSidebar",previous:{title:"\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439",permalink:"/ru/docs/about/understanding/needs-driven"},next:{title:"\u041d\u0435\u0439\u043c\u0438\u043d\u0433",permalink:"/ru/docs/about/understanding/naming"}},u={},c=[{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function a(n){const e={a:"a",admonition:"admonition",br:"br",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h1,{id:"\u0442\u0438\u043f\u044b-\u0437\u043d\u0430\u043d\u0438\u0439-\u0432-\u043f\u0440\u043e\u0435\u043a\u0442\u0435",children:"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435"}),"\n",(0,s.jsx)(e.p,{children:'\u0412 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 "\u0442\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439":'}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:"\u0424\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f"}),(0,s.jsx)(e.br,{}),"\n","\u0417\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, computer science, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0435\u0433\u043e API."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:"\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0442\u0435\u043a"}),(0,s.jsx)(e.br,{}),"\n","\u0417\u043d\u0430\u043d\u0438\u044f \u043e \u043d\u0430\u0431\u043e\u0440\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u044f\u0437\u044b\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:"\u041f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f"}),(0,s.jsx)(e.br,{}),"\n","\u0417\u043d\u0430\u043d\u0438\u044f, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0432\u043d\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u042d\u0442\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u043d\u043e\u0432\u044b\u043c \u0447\u043b\u0435\u043d\u0430\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0447\u0442\u043e\u0431 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u043a\u043b\u0430\u0434."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.admonition,{type:"note",children:(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:"Feature-Sliced Design"}),' \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 "\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439", \u0432\u0437\u044f\u0442\u044c \u043d\u0430 \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0438 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433 \u043d\u043e\u0432\u044b\u0445 \u0447\u043b\u0435\u043d\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.']})}),"\n",(0,s.jsx)(e.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.a,{href:"https://youtu.be/4xyb_tA-uw0?t=249",children:"(\u0412\u0438\u0434\u0435\u043e) \u0418\u043b\u044c\u044f \u041a\u043b\u0438\u043c\u043e\u0432 \u2014 \u041e \u0442\u0438\u043f\u0430\u0445 \u0437\u043d\u0430\u043d\u0438\u0439"})}),"\n"]})]})}function l(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(a,{...n})}):a(n)}},7468:(n,e,t)=>{t.d(e,{R:()=>o,x:()=>d});var s=t(758);const r={},i=s.createContext(r);function o(n){const e=s.useContext(i);return s.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:o(n.components),s.createElement(i.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/3b64669e.a83e77ec.js b/ru/assets/js/3b64669e.a83e77ec.js new file mode 100644 index 0000000000..64fa2d63b8 --- /dev/null +++ b/ru/assets/js/3b64669e.a83e77ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[6400],{9956:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>u,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var s=t(6070),r=t(7468);const i={sidebar_position:3,sidebar_label:"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439"},o="\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435",d={id:"about/understanding/knowledge-types",title:"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435",description:'\u0412 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 "\u0442\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439":',source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/about/understanding/knowledge-types.md",sourceDirName:"about/understanding",slug:"/about/understanding/knowledge-types",permalink:"/ru/docs/about/understanding/knowledge-types",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/about/understanding/knowledge-types.md",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_label:"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439"},sidebar:"aboutSidebar",previous:{title:"\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439",permalink:"/ru/docs/about/understanding/needs-driven"},next:{title:"\u041d\u0435\u0439\u043c\u0438\u043d\u0433",permalink:"/ru/docs/about/understanding/naming"}},u={},c=[{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function a(n){const e={a:"a",admonition:"admonition",br:"br",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h1,{id:"\u0442\u0438\u043f\u044b-\u0437\u043d\u0430\u043d\u0438\u0439-\u0432-\u043f\u0440\u043e\u0435\u043a\u0442\u0435",children:"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435"}),"\n",(0,s.jsx)(e.p,{children:'\u0412 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 "\u0442\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439":'}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:"\u0424\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f"}),(0,s.jsx)(e.br,{}),"\n","\u0417\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, computer science, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0435\u0433\u043e API."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:"\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0442\u0435\u043a"}),(0,s.jsx)(e.br,{}),"\n","\u0417\u043d\u0430\u043d\u0438\u044f \u043e \u043d\u0430\u0431\u043e\u0440\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u044f\u0437\u044b\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:"\u041f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f"}),(0,s.jsx)(e.br,{}),"\n","\u0417\u043d\u0430\u043d\u0438\u044f, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0432\u043d\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u042d\u0442\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u043d\u043e\u0432\u044b\u043c \u0447\u043b\u0435\u043d\u0430\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0447\u0442\u043e\u0431 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u043a\u043b\u0430\u0434."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.admonition,{type:"note",children:(0,s.jsxs)(e.p,{children:[(0,s.jsx)(e.strong,{children:"Feature-Sliced Design"}),' \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 "\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439", \u0432\u0437\u044f\u0442\u044c \u043d\u0430 \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0438 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433 \u043d\u043e\u0432\u044b\u0445 \u0447\u043b\u0435\u043d\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.']})}),"\n",(0,s.jsx)(e.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.a,{href:"https://youtu.be/4xyb_tA-uw0?t=249",children:"(\u0412\u0438\u0434\u0435\u043e) \u0418\u043b\u044c\u044f \u041a\u043b\u0438\u043c\u043e\u0432 \u2014 \u041e \u0442\u0438\u043f\u0430\u0445 \u0437\u043d\u0430\u043d\u0438\u0439"})}),"\n"]})]})}function l(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(a,{...n})}):a(n)}},7468:(n,e,t)=>{t.d(e,{R:()=>o,x:()=>d});var s=t(758);const r={},i=s.createContext(r);function o(n){const e=s.useContext(i);return s.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:o(n.components),s.createElement(i.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/44775544.1b9e8f09.js b/ru/assets/js/44775544.1b9e8f09.js deleted file mode 100644 index fb1d1aa656..0000000000 --- a/ru/assets/js/44775544.1b9e8f09.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[447],{1800:(e,n,i)=>{i.d(n,{Ay:()=>a,RM:()=>d});var s=i(6070),t=i(7468),r=(i(758),i(2992)),l=i(3920);const c=e=>{let{ticket:n}=e;const i=`https://github.com/feature-sliced/documentation/issues/${n}`;return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{children:(0,l.T)({id:"shared.wip.title"})}),(0,s.jsx)("p",{children:(0,l.T)({id:"shared.wip.subtitle"})}),(0,s.jsxs)("ul",{children:[(0,s.jsxs)("li",{children:[(0,l.T)({id:"shared.wip.var.feedback.base"}),(0,s.jsx)(r.A,{to:i,children:(0,l.T)({id:"shared.wip.var.feedback.link"})})]}),(0,s.jsxs)("li",{children:[(0,l.T)({id:"shared.wip.var.material.base"}),(0,s.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,l.T)({id:"shared.wip.var.material.link"})})]}),(0,s.jsxs)("li",{children:[(0,l.T)({id:"shared.wip.var.contribute.base"}),(0,s.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,l.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,s.jsx)("br",{}),(0,s.jsx)("p",{children:(0,s.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},d=[];function o(e){const n={admonition:"admonition",...(0,t.R)(),...e.components};return(0,s.jsx)(n.admonition,{title:"WIP",type:"caution",children:(0,s.jsx)(c,{ticket:e.ticket})})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},1343:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>l,metadata:()=>d,toc:()=>a});var s=i(6070),t=i(7468),r=i(1800);const l={sidebar_class_name:"sidebar-item--wip",sidebar_position:3},c="\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b",d={id:"about/alternatives",title:"\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b",description:"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/about/alternatives.mdx",sourceDirName:"about",slug:"/about/alternatives",permalink:"/ru/docs/about/alternatives",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/about/alternatives.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:3,frontMatter:{sidebar_class_name:"sidebar-item--wip",sidebar_position:3},sidebar:"aboutSidebar",previous:{title:"\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f",permalink:"/ru/docs/about/motivation"},next:{title:"\u041e\u0431 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435",permalink:"/ru/docs/about/understanding/architecture"}},o={},a=[...r.RM,{value:"Big Ball of Mud",id:"big-ball-of-mud",level:2},...r.RM,{value:"Smart & Dumb components",id:"smart--dumb-components",level:2},...r.RM,{value:"Design Principles",id:"design-principles",level:2},...r.RM,{value:"DDD",id:"ddd",level:2},...r.RM,{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2},{value:"Clean Architecture",id:"clean-architecture",level:2},...r.RM,{value:"Frameworks",id:"frameworks",level:2},...r.RM,{value:"Atomic Design",id:"atomic-design",level:2},{value:"\u0427\u0442\u043e \u044d\u0442\u043e?",id:"\u0447\u0442\u043e-\u044d\u0442\u043e",level:3},{value:"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u043e \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435",id:"\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c-\u0432\u043e-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435",level:3},{value:"\u041a\u0430\u043a \u043e\u043d\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0441 FSD?",id:"\u043a\u0430\u043a-\u043e\u043d\u043e-\u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f-\u0441-fsd",level:3},{value:"Feature Driven",id:"feature-driven",level:2},...r.RM];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"\u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b",children:"\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b"}),"\n",(0,s.jsx)(r.Ay,{ticket:"62"}),"\n",(0,s.jsx)(n.p,{children:"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432"}),"\n",(0,s.jsx)(n.h2,{id:"big-ball-of-mud",children:"Big Ball of Mud"}),"\n",(0,s.jsx)(r.Ay,{ticket:"258"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u0427\u0442\u043e \u044d\u0442\u043e; \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043e; \u041a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b; \u041a\u0430\u043a \u0431\u044b\u0442\u044c; \u0418 \u043a\u0430\u043a \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c FSD"}),"\n"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://oleg008.medium.com/last-words-on-ui-architecture-before-an-ai-takes-over-468c78f18f0d",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) Oleg Isonen - Last words on UI architecture before an AI takes over"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/gna4Ynz1YNI",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u042e\u043b\u0438\u044f \u041d\u0438\u043a\u043e\u043b\u0430\u0435\u0432\u0430, iSpring - Big Ball of Mud \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://thedomaindrivendesign.io/big-ball-of-mud/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) DDD - Big Ball of mud"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"smart--dumb-components",children:"Smart & Dumb components"}),"\n",(0,s.jsx)(r.Ay,{ticket:"214"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u043e\u0434\u0445\u043e\u0434\u0435; \u041e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u041f\u0440\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u043e\u0441\u0442\u044c, \u043f\u0440\u043e \u043d\u043e\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438"}),"\n",(0,s.jsx)(n.p,{children:"\u041f\u043e\u0447\u0435\u043c\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u043e/\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 - \u0437\u043b\u043e"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) Dan Abramov - Presentational and Container Components (TLDR: deprecated)"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"design-principles",children:"Design Principles"}),"\n",(0,s.jsx)(r.Ay,{ticket:"59"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041f\u0440\u043e \u0447\u0442\u043e \u0440\u0435\u0447\u044c; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"SOLID, GRASP, KISS, YAGNI, ... - \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u0438 \u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435"}),"\n",(0,s.jsx)(n.p,{children:"\u0418 \u043a\u0430\u043a \u043e\u043d\u0430 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/SnzPAr_FJ7w?t=380",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u0418\u043b\u044c\u044f \u0410\u0437\u0438\u043d - Feature-Sliced Design (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f)"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"ddd",children:"DDD"}),"\n",(0,s.jsx)(r.Ay,{ticket:"1"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u043e\u0434\u0445\u043e\u0434\u0435; \u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u0412 \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435, \u0447\u0435\u043c \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c, \u0433\u0434\u0435 \u043f\u0435\u0440\u0435\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438"}),"\n",(0,s.jsx)(n.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) DDD, Hexagonal, Onion, Clean, CQRS, \u2026 How I put it all together"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/SnzPAr_FJ7w?t=528",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u0418\u043b\u044c\u044f \u0410\u0437\u0438\u043d - Feature-Sliced Design (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e Clean Architecture, DDD)"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"clean-architecture",children:"Clean Architecture"}),"\n",(0,s.jsx)(r.Ay,{ticket:"165"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u043e\u0434\u0445\u043e\u0434\u0435; \u041e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u0412 \u0447\u0435\u043c \u0441\u0445\u043e\u0436\u0438 (\u043c\u043d\u043e\u0433\u0438\u043c), \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://t.me/feature_sliced/3897",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e use-case/interactor \u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://t.me/feature_sliced/4592",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e DI \u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://bespoyasov.ru/blog/clean-architecture-on-frontend/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0411\u0435\u0441\u043f\u043e\u044f\u0441\u043e\u0432 - \u0427\u0438\u0441\u0442\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) DDD, Hexagonal, Onion, Clean, CQRS, \u2026 How I put it all together"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/SnzPAr_FJ7w?t=528",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u0418\u043b\u044c\u044f \u0410\u0437\u0438\u043d - Feature-Sliced Design (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e Clean Architecture, DDD)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://habr.com/ru/company/mobileup/blog/335382/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) \u0417\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f Clean Architecture"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"frameworks",children:"Frameworks"}),"\n",(0,s.jsx)(r.Ay,{ticket:"58"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435; \u041f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u0438 \u043d\u0435 \u0440\u0435\u0448\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443; \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Framework-agnostic, conventional-\u043f\u043e\u0434\u0445\u043e\u0434"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/about/motivation",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) \u041f\u0440\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://t.me/feature_sliced/3867",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"atomic-design",children:"Atomic Design"}),"\n",(0,s.jsx)(n.h3,{id:"\u0447\u0442\u043e-\u044d\u0442\u043e",children:"\u0427\u0442\u043e \u044d\u0442\u043e?"}),"\n",(0,s.jsx)(n.p,{children:"\u0412 Atomic Design \u0441\u0444\u0435\u0440\u0430 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0438.\xa0"}),"\n",(0,s.jsxs)(n.p,{children:["Atomic Design \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 ",(0,s.jsx)(n.strong,{children:"5 \u0441\u043b\u043e\u0435\u0432"})," (\u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437):"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"pages"})," - \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043b\u043e\u044e ",(0,s.jsx)(n.code,{children:"pages"})," \u0432 FSD."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"templates"})," - \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0437\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0431\u0435\u0437 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0443."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"organisms"})," - \u041c\u043e\u0434\u0443\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u043c\u043e\u043b\u0435\u043a\u0443\u043b, \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u043e\u0439."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"moleculs"})," - \u0411\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043d\u0435\u0442 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"atoms"})," - UI \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0431\u0435\u0437 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["\u041c\u043e\u0434\u0443\u043b\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u043c\u0438\u0441\u044f \u043d\u0430 \u0441\u043b\u043e\u044f\u0445 \u043d\u0438\u0436\u0435, \u043a\u0430\u043a \u0432 FSD.\n\u0422\u043e \u0435\u0441\u0442\u044c, \u043c\u043e\u043b\u0435\u043a\u0443\u043b\u044b \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u0438\u0437 \u0430\u0442\u043e\u043c\u043e\u0432, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043c\u044b \u0438\u0437 \u043c\u043e\u043b\u0435\u043a\u0443\u043b, \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438\u0437 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043c\u043e\u0432, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432.\n\u0422\u0430\u043a\u0436\u0435 Atomic Design \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 ",(0,s.jsx)(n.strong,{children:"Public API"})," \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0434\u043b\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438."]}),"\n",(0,s.jsx)(n.h3,{id:"\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c-\u0432\u043e-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435",children:"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u043e \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435"}),"\n",(0,s.jsx)(n.p,{children:"Atomic Design \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. Atomic Design \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0435\u0435 \u0441\u0440\u0435\u0434\u0438 \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u043e\u0432,\xa0\n\u043d\u0435\u0436\u0435\u043b\u0438 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435. \u0412\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Atomic Design \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0438\u0437\u0430\u0439\u043d\u043e\u0432.\xa0\n\u0412 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 Atomic Design \u0447\u0430\u0441\u0442\u043e \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438."}),"\n",(0,s.jsx)(n.p,{children:"\u041e\u0434\u043d\u0430\u043a\u043e, \u0442\u0430\u043a \u043a\u0430\u043a Atomic Design \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 UI \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u0438 \u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\n\u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b."}),"\n",(0,s.jsx)(n.p,{children:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e Atomic Design \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0447\u0435\u0442\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0438,\xa0\n\u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u0438 \u0443\u0440\u043e\u0432\u043d\u044f\u043c, \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.\xa0\n\u0411\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u044b\u0442\u0430, \u0447\u0442\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442\xa0\u0447\u0435\u0442\u043a\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u043c\u0435\u043d\u0435\u0435\n\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u043c \u0438 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c."}),"\n",(0,s.jsx)(n.h3,{id:"\u043a\u0430\u043a-\u043e\u043d\u043e-\u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f-\u0441-fsd",children:"\u041a\u0430\u043a \u043e\u043d\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0441 FSD?"}),"\n",(0,s.jsxs)(n.p,{children:["\u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 FSD \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b Atomic Design \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u0434\u043b\u044f\xa0\n\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0438\u0431\u043a\u0438\u0445 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 UI \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0421\u043b\u043e\u0438 ",(0,s.jsx)(n.code,{children:"atoms"})," \u0438 ",(0,s.jsx)(n.code,{children:"molecules"})," \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\xa0\n",(0,s.jsx)(n.code,{children:"shared/ui"})," \u0432 FSD, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 UI \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\xa0"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"\u251c\u2500\u2500 shared\n\u2502\xa0 \xa0\u251c\u2500\u2500 ui\xa0\n\u2502\xa0 \xa0\u2502\xa0 \xa0\u251c\u2500\u2500 atoms\n\u2502\xa0 \xa0\u2502\xa0 \xa0\u251c\u2500\u2500 molecules\n\u2502\xa0 \xa0...\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 FSD \u0438 Atomic Design \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e,\xa0\n\u043d\u043e \u0430\u043a\u0446\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u0445. Atomic Design \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b\xa0\n\u0438 \u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e. FSD \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0438."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://atomicdesign.bradfrost.com/table-of-contents/",children:"\u041c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f Atomic Design"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://t.me/feature_sliced/1653",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0432 shared/ui"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/Yi-A20x2dcA",children:"(\u0412\u0438\u0434\u0435\u043e) \u041a\u0440\u0430\u0442\u043a\u043e \u043e Atomic Design"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/SnzPAr_FJ7w?t=587",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u0418\u043b\u044c\u044f \u0410\u0437\u0438\u043d - Feature-Sliced Design (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e Atomic Design)"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"feature-driven",children:"Feature Driven"}),"\n",(0,s.jsx)(r.Ay,{ticket:"219"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u043e\u0434\u0445\u043e\u0434\u0435; \u041e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u041f\u0440\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c, \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/BWAeYuWFHhs",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) Oleg Isonen - Feature Driven Architecture"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/feature-sliced/documentation/tree/rc/feature-driven",children:"Feature Driven - \u041a\u0440\u0430\u0442\u043a\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f (\u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f FSD)"})}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7468:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>c});var s=i(758);const t={},r=s.createContext(t);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/44775544.d25ab30f.js b/ru/assets/js/44775544.d25ab30f.js new file mode 100644 index 0000000000..69c90afe50 --- /dev/null +++ b/ru/assets/js/44775544.d25ab30f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[447],{1800:(e,n,i)=>{i.d(n,{Ay:()=>a,RM:()=>d});var s=i(6070),t=i(7468),r=(i(758),i(2992)),l=i(3920);const c=e=>{let{ticket:n}=e;const i=`https://github.com/feature-sliced/documentation/issues/${n}`;return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{children:(0,l.T)({id:"shared.wip.title"})}),(0,s.jsx)("p",{children:(0,l.T)({id:"shared.wip.subtitle"})}),(0,s.jsxs)("ul",{children:[(0,s.jsxs)("li",{children:[(0,l.T)({id:"shared.wip.var.feedback.base"}),(0,s.jsx)(r.A,{to:i,children:(0,l.T)({id:"shared.wip.var.feedback.link"})})]}),(0,s.jsxs)("li",{children:[(0,l.T)({id:"shared.wip.var.material.base"}),(0,s.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,l.T)({id:"shared.wip.var.material.link"})})]}),(0,s.jsxs)("li",{children:[(0,l.T)({id:"shared.wip.var.contribute.base"}),(0,s.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,l.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,s.jsx)("br",{}),(0,s.jsx)("p",{children:(0,s.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},d=[];function o(e){const n={admonition:"admonition",...(0,t.R)(),...e.components};return(0,s.jsx)(n.admonition,{title:"WIP",type:"caution",children:(0,s.jsx)(c,{ticket:e.ticket})})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},1343:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>l,metadata:()=>d,toc:()=>a});var s=i(6070),t=i(7468),r=i(1800);const l={sidebar_class_name:"sidebar-item--wip",sidebar_position:3},c="\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b",d={id:"about/alternatives",title:"\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b",description:"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/about/alternatives.mdx",sourceDirName:"about",slug:"/about/alternatives",permalink:"/ru/docs/about/alternatives",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/about/alternatives.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:3,frontMatter:{sidebar_class_name:"sidebar-item--wip",sidebar_position:3},sidebar:"aboutSidebar",previous:{title:"\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f",permalink:"/ru/docs/about/motivation"},next:{title:"\u041e\u0431 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435",permalink:"/ru/docs/about/understanding/architecture"}},o={},a=[...r.RM,{value:"Big Ball of Mud",id:"big-ball-of-mud",level:2},...r.RM,{value:"Smart & Dumb components",id:"smart--dumb-components",level:2},...r.RM,{value:"Design Principles",id:"design-principles",level:2},...r.RM,{value:"DDD",id:"ddd",level:2},...r.RM,{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2},{value:"Clean Architecture",id:"clean-architecture",level:2},...r.RM,{value:"Frameworks",id:"frameworks",level:2},...r.RM,{value:"Atomic Design",id:"atomic-design",level:2},{value:"\u0427\u0442\u043e \u044d\u0442\u043e?",id:"\u0447\u0442\u043e-\u044d\u0442\u043e",level:3},{value:"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u043e \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435",id:"\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c-\u0432\u043e-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435",level:3},{value:"\u041a\u0430\u043a \u043e\u043d\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0441 FSD?",id:"\u043a\u0430\u043a-\u043e\u043d\u043e-\u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f-\u0441-fsd",level:3},{value:"Feature Driven",id:"feature-driven",level:2},...r.RM];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"\u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b",children:"\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b"}),"\n",(0,s.jsx)(r.Ay,{ticket:"62"}),"\n",(0,s.jsx)(n.p,{children:"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432"}),"\n",(0,s.jsx)(n.h2,{id:"big-ball-of-mud",children:"Big Ball of Mud"}),"\n",(0,s.jsx)(r.Ay,{ticket:"258"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u0427\u0442\u043e \u044d\u0442\u043e; \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043e; \u041a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b; \u041a\u0430\u043a \u0431\u044b\u0442\u044c; \u0418 \u043a\u0430\u043a \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432 \u044d\u0442\u043e\u043c FSD"}),"\n"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://oleg008.medium.com/last-words-on-ui-architecture-before-an-ai-takes-over-468c78f18f0d",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) Oleg Isonen - Last words on UI architecture before an AI takes over"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/gna4Ynz1YNI",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u042e\u043b\u0438\u044f \u041d\u0438\u043a\u043e\u043b\u0430\u0435\u0432\u0430, iSpring - Big Ball of Mud \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://thedomaindrivendesign.io/big-ball-of-mud/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) DDD - Big Ball of mud"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"smart--dumb-components",children:"Smart & Dumb components"}),"\n",(0,s.jsx)(r.Ay,{ticket:"214"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u043e\u0434\u0445\u043e\u0434\u0435; \u041e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u041f\u0440\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u043e\u0441\u0442\u044c, \u043f\u0440\u043e \u043d\u043e\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438"}),"\n",(0,s.jsx)(n.p,{children:"\u041f\u043e\u0447\u0435\u043c\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u043e/\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 - \u0437\u043b\u043e"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) Dan Abramov - Presentational and Container Components (TLDR: deprecated)"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"design-principles",children:"Design Principles"}),"\n",(0,s.jsx)(r.Ay,{ticket:"59"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041f\u0440\u043e \u0447\u0442\u043e \u0440\u0435\u0447\u044c; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"SOLID, GRASP, KISS, YAGNI, ... - \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u0438 \u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435"}),"\n",(0,s.jsx)(n.p,{children:"\u0418 \u043a\u0430\u043a \u043e\u043d\u0430 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/SnzPAr_FJ7w?t=380",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u0418\u043b\u044c\u044f \u0410\u0437\u0438\u043d - Feature-Sliced Design (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f)"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"ddd",children:"DDD"}),"\n",(0,s.jsx)(r.Ay,{ticket:"1"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u043e\u0434\u0445\u043e\u0434\u0435; \u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u0412 \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435, \u0447\u0435\u043c \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c, \u0433\u0434\u0435 \u043f\u0435\u0440\u0435\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438"}),"\n",(0,s.jsx)(n.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) DDD, Hexagonal, Onion, Clean, CQRS, \u2026 How I put it all together"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/SnzPAr_FJ7w?t=528",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u0418\u043b\u044c\u044f \u0410\u0437\u0438\u043d - Feature-Sliced Design (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e Clean Architecture, DDD)"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"clean-architecture",children:"Clean Architecture"}),"\n",(0,s.jsx)(r.Ay,{ticket:"165"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u043e\u0434\u0445\u043e\u0434\u0435; \u041e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u0412 \u0447\u0435\u043c \u0441\u0445\u043e\u0436\u0438 (\u043c\u043d\u043e\u0433\u0438\u043c), \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://t.me/feature_sliced/3897",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e use-case/interactor \u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://t.me/feature_sliced/4592",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e DI \u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://bespoyasov.ru/blog/clean-architecture-on-frontend/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0411\u0435\u0441\u043f\u043e\u044f\u0441\u043e\u0432 - \u0427\u0438\u0441\u0442\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) DDD, Hexagonal, Onion, Clean, CQRS, \u2026 How I put it all together"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/SnzPAr_FJ7w?t=528",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u0418\u043b\u044c\u044f \u0410\u0437\u0438\u043d - Feature-Sliced Design (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e Clean Architecture, DDD)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://habr.com/ru/company/mobileup/blog/335382/",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) \u0417\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f Clean Architecture"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"frameworks",children:"Frameworks"}),"\n",(0,s.jsx)(r.Ay,{ticket:"58"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435; \u041f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u0438 \u043d\u0435 \u0440\u0435\u0448\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443; \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Framework-agnostic, conventional-\u043f\u043e\u0434\u0445\u043e\u0434"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/about/motivation",children:"(\u0421\u0442\u0430\u0442\u044c\u044f) \u041f\u0440\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438)"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://t.me/feature_sliced/3867",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"atomic-design",children:"Atomic Design"}),"\n",(0,s.jsx)(n.h3,{id:"\u0447\u0442\u043e-\u044d\u0442\u043e",children:"\u0427\u0442\u043e \u044d\u0442\u043e?"}),"\n",(0,s.jsx)(n.p,{children:"\u0412 Atomic Design \u0441\u0444\u0435\u0440\u0430 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0438.\xa0"}),"\n",(0,s.jsxs)(n.p,{children:["Atomic Design \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 ",(0,s.jsx)(n.strong,{children:"5 \u0441\u043b\u043e\u0435\u0432"})," (\u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437):"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"pages"})," - \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043b\u043e\u044e ",(0,s.jsx)(n.code,{children:"pages"})," \u0432 FSD."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"templates"})," - \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0437\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0431\u0435\u0437 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0443."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"organisms"})," - \u041c\u043e\u0434\u0443\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u043c\u043e\u043b\u0435\u043a\u0443\u043b, \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u043e\u0439."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"moleculs"})," - \u0411\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043d\u0435\u0442 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"atoms"})," - UI \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0431\u0435\u0437 \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["\u041c\u043e\u0434\u0443\u043b\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u043c\u0438\u0441\u044f \u043d\u0430 \u0441\u043b\u043e\u044f\u0445 \u043d\u0438\u0436\u0435, \u043a\u0430\u043a \u0432 FSD.\n\u0422\u043e \u0435\u0441\u0442\u044c, \u043c\u043e\u043b\u0435\u043a\u0443\u043b\u044b \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u0438\u0437 \u0430\u0442\u043e\u043c\u043e\u0432, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043c\u044b \u0438\u0437 \u043c\u043e\u043b\u0435\u043a\u0443\u043b, \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438\u0437 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043c\u043e\u0432, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432.\n\u0422\u0430\u043a\u0436\u0435 Atomic Design \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 ",(0,s.jsx)(n.strong,{children:"Public API"})," \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0434\u043b\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438."]}),"\n",(0,s.jsx)(n.h3,{id:"\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c-\u0432\u043e-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435",children:"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u043e \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435"}),"\n",(0,s.jsx)(n.p,{children:"Atomic Design \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. Atomic Design \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0435\u0435 \u0441\u0440\u0435\u0434\u0438 \u0432\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u043e\u0432,\xa0\n\u043d\u0435\u0436\u0435\u043b\u0438 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435. \u0412\u0435\u0431-\u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u044b \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Atomic Design \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0438\u0437\u0430\u0439\u043d\u043e\u0432.\xa0\n\u0412 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 Atomic Design \u0447\u0430\u0441\u0442\u043e \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438."}),"\n",(0,s.jsx)(n.p,{children:"\u041e\u0434\u043d\u0430\u043a\u043e, \u0442\u0430\u043a \u043a\u0430\u043a Atomic Design \u043a\u043e\u043d\u0446\u0435\u043d\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 UI \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u0438 \u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\n\u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u0438 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b."}),"\n",(0,s.jsx)(n.p,{children:"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e Atomic Design \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0447\u0435\u0442\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0438,\xa0\n\u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u0438 \u0443\u0440\u043e\u0432\u043d\u044f\u043c, \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.\xa0\n\u0411\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u044b\u0442\u0430, \u0447\u0442\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442\xa0\u0447\u0435\u0442\u043a\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u043c\u0435\u043d\u0435\u0435\n\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u043c \u0438 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c."}),"\n",(0,s.jsx)(n.h3,{id:"\u043a\u0430\u043a-\u043e\u043d\u043e-\u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f-\u0441-fsd",children:"\u041a\u0430\u043a \u043e\u043d\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0441 FSD?"}),"\n",(0,s.jsxs)(n.p,{children:["\u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 FSD \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b Atomic Design \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u0434\u043b\u044f\xa0\n\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0438\u0431\u043a\u0438\u0445 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 UI \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0421\u043b\u043e\u0438 ",(0,s.jsx)(n.code,{children:"atoms"})," \u0438 ",(0,s.jsx)(n.code,{children:"molecules"})," \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\xa0\n",(0,s.jsx)(n.code,{children:"shared/ui"})," \u0432 FSD, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 UI \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.\xa0"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"\u251c\u2500\u2500 shared\n\u2502\xa0 \xa0\u251c\u2500\u2500 ui\xa0\n\u2502\xa0 \xa0\u2502\xa0 \xa0\u251c\u2500\u2500 atoms\n\u2502\xa0 \xa0\u2502\xa0 \xa0\u251c\u2500\u2500 molecules\n\u2502\xa0 \xa0...\n"})}),"\n",(0,s.jsx)(n.p,{children:"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 FSD \u0438 Atomic Design \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e,\xa0\n\u043d\u043e \u0430\u043a\u0446\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u0445. Atomic Design \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b\xa0\n\u0438 \u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e. FSD \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0438."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://atomicdesign.bradfrost.com/table-of-contents/",children:"\u041c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f Atomic Design"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://t.me/feature_sliced/1653",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0432 shared/ui"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/Yi-A20x2dcA",children:"(\u0412\u0438\u0434\u0435\u043e) \u041a\u0440\u0430\u0442\u043a\u043e \u043e Atomic Design"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/SnzPAr_FJ7w?t=587",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) \u0418\u043b\u044c\u044f \u0410\u0437\u0438\u043d - Feature-Sliced Design (\u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e Atomic Design)"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"feature-driven",children:"Feature Driven"}),"\n",(0,s.jsx)(r.Ay,{ticket:"219"}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"\u041e \u043f\u043e\u0434\u0445\u043e\u0434\u0435; \u041e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435; \u043f\u043e\u0437\u0438\u0446\u0438\u044f FSD"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"\u041f\u0440\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c, \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://youtu.be/BWAeYuWFHhs",children:"(\u0414\u043e\u043a\u043b\u0430\u0434) Oleg Isonen - Feature Driven Architecture"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/feature-sliced/documentation/tree/rc/feature-driven",children:"Feature Driven - \u041a\u0440\u0430\u0442\u043a\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f (\u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f FSD)"})}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},7468:(e,n,i)=>{i.d(n,{R:()=>l,x:()=>c});var s=i(758);const t={},r=s.createContext(t);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/457d5840.40d08842.js b/ru/assets/js/457d5840.40d08842.js deleted file mode 100644 index dd9634d78f..0000000000 --- a/ru/assets/js/457d5840.40d08842.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[6744],{1133:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>t,contentTitle:()=>d,default:()=>j,frontMatter:()=>l,metadata:()=>c,toc:()=>h});var i=n(6070),r=n(7468);const l={sidebar_position:1,pagination_next:"reference/slices-segments"},d="\u0421\u043b\u043e\u0438",c={id:"reference/layers",title:"\u0421\u043b\u043e\u0438",description:"\u0421\u043b\u043e\u0438 - \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432 Feature-Sliced Design. \u0418\u0445 \u0446\u0435\u043b\u044c - \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u043e\u0433\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0435\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438 \u043e\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u043d \u0437\u0430\u0432\u0438\u0441\u0438\u0442.",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/reference/layers.mdx",sourceDirName:"reference",slug:"/reference/layers",permalink:"/ru/docs/reference/layers",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/reference/layers.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:1,frontMatter:{sidebar_position:1,pagination_next:"reference/slices-segments"},sidebar:"referenceSidebar",previous:{title:"\ud83d\udcda \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a",permalink:"/ru/docs/reference/"},next:{title:"\u0421\u043b\u0430\u0439\u0441\u044b \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b",permalink:"/ru/docs/reference/slices-segments"}},t={},h=[{value:"\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u043e\u0451\u0432",id:"import-rule-on-layers",level:2},{value:"\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0451\u0432",id:"\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f-\u0441\u043b\u043e\u0451\u0432",level:2},{value:"Shared",id:"shared",level:3},{value:"Entities",id:"entities",level:3},{value:"Features",id:"features",level:3},{value:"Widgets",id:"widgets",level:3},{value:"Pages",id:"pages",level:3},{value:"Processes",id:"processes",level:3},{value:"App",id:"app",level:3}];function x(e){const s={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"\u0441\u043b\u043e\u0438",children:"\u0421\u043b\u043e\u0438"}),"\n",(0,i.jsx)(s.p,{children:"\u0421\u043b\u043e\u0438 - \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432 Feature-Sliced Design. \u0418\u0445 \u0446\u0435\u043b\u044c - \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u043e\u0433\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0435\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438 \u043e\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u043d \u0437\u0430\u0432\u0438\u0441\u0438\u0442."}),"\n",(0,i.jsx)(s.admonition,{type:"note",children:(0,i.jsxs)(s.p,{children:["\u041d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 ",(0,i.jsx)(s.em,{children:"\u043c\u043e\u0434\u0443\u043b\u044c"})," \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 - \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c. \u041d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 npm-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438."]})}),"\n",(0,i.jsx)(s.p,{children:"\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u043e\u0439 \u043d\u0435\u0441\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043e\u0441\u043e\u0431\u044b\u0439 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u043e\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u044c \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0451\u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Feature-Sliced Design."}),"\n",(0,i.jsxs)(s.p,{children:["\u0412\u0441\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 ",(0,i.jsx)(s.strong,{children:"7 \u0441\u043b\u043e\u0451\u0432"}),", \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043e\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438\xa0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043a \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439:"]}),"\n",(0,i.jsx)("img",{src:"/img/layers/folders-graphic-light.svg#light-mode-only",width:"180",style:{float:"right",margin:"0 1em"},alt:"\u0414\u0435\u0440\u0435\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u043e\u0439 src \u0438 \u0441\u0435\u043c\u044c\u044e \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0430\u043c\u0438: app, processes, pages, widgets, features, entities, shared. \u041f\u0430\u043f\u043a\u0430 processes \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0443\u0441\u043a\u043b\u043e."}),"\n",(0,i.jsx)("img",{src:"/img/layers/folders-graphic-dark.svg#dark-mode-only",width:"180",style:{float:"right",margin:"0 1em"},alt:"\u0414\u0435\u0440\u0435\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u043e\u0439 src \u0438 \u0441\u0435\u043c\u044c\u044e \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0430\u043c\u0438: app, processes, pages, widgets, features, entities, shared. \u041f\u0430\u043f\u043a\u0430 processes \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0443\u0441\u043a\u043b\u043e."}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsx)(s.li,{children:"App (\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435)"}),"\n",(0,i.jsx)(s.li,{children:"Processes (\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u044b, \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0441\u043b\u043e\u0439)"}),"\n",(0,i.jsx)(s.li,{children:"Pages (\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u044b)"}),"\n",(0,i.jsx)(s.li,{children:"Widgets (\u0412\u0438\u0434\u0436\u0435\u0442\u044b)"}),"\n",(0,i.jsx)(s.li,{children:"Features (\u0424\u0438\u0447\u0438/\u0444\u0443\u043d\u043a\u0446\u0438\u0438)"}),"\n",(0,i.jsx)(s.li,{children:"Entities (\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438)"}),"\n",(0,i.jsx)(s.li,{children:"Shared (\u041e\u0431\u0449\u0438\u0439)"}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"\u0412\u044b \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u043b\u043e\u0438 \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 - \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u043d\u043e\u0441\u044f\u0442 \u043f\u043e\u043b\u044c\u0437\u0443 \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443."}),"\n",(0,i.jsx)(s.h2,{id:"import-rule-on-layers",children:"\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u043e\u0451\u0432"}),"\n",(0,i.jsxs)(s.p,{children:["\u0421\u043b\u043e\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 ",(0,i.jsx)(s.em,{children:"\u0441\u043b\u0430\u0439\u0441\u043e\u0432"})," \u2014 \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u043c\u043e\u0434\u0443\u043b\u0435\u0439. Feature-Sliced Design \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u0443\u044e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u043b\u0430\u0439\u0441\u0430\u043c\u0438 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f ",(0,i.jsx)(s.strong,{children:"\u043f\u0440\u0430\u0432\u0438\u043b\u043e\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u043e\u0451\u0432"}),":"]}),"\n",(0,i.jsxs)(s.blockquote,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"\u041c\u043e\u0434\u0443\u043b\u044c \u0432 \u0441\u043b\u0430\u0439\u0441\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043b\u0430\u0439\u0441\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0430 \u0441\u043b\u043e\u044f\u0445 \u0441\u0442\u0440\u043e\u0433\u043e \u043d\u0438\u0436\u0435."})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 ",(0,i.jsx)(s.code,{children:"~/features/aaa"}),", \u0441\u043b\u0430\u0439\u0441\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f ",(0,i.jsx)(s.code,{children:"aaa"}),", \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0430\u0439\u043b ",(0,i.jsx)(s.code,{children:"~/features/aaa/api/request.ts"})," \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0438 \u0438\u0437 \u043a\u0430\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u043f\u0430\u043f\u043a\u0443 \u0438\u0437 ",(0,i.jsx)(s.code,{children:"~/features/bbb"}),", \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0438\u0437 ",(0,i.jsx)(s.code,{children:"~/entities"})," \u0438 ",(0,i.jsx)(s.code,{children:"~/shared"}),", \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 ",(0,i.jsx)(s.code,{children:"~/features/aaa"}),"."]}),"\n",(0,i.jsx)(s.h2,{id:"\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f-\u0441\u043b\u043e\u0451\u0432",children:"\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0451\u0432"}),"\n",(0,i.jsx)(s.h3,{id:"shared",children:"Shared"}),"\n",(0,i.jsxs)(s.p,{children:["\u0418\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0438 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u043b\u0438 \u0431\u0438\u0437\u043d\u0435\u0441\u0430.\n\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043a\u0430\u043a ",(0,i.jsx)(s.a,{href:"https://sova.dev/ru/why-utils-and-helpers-is-a-dump/",children:"\u0441\u0432\u0430\u043b\u043a\u0443 \u0443\u0442\u0438\u043b\u0438\u0442"}),"!"]}),"\n",(0,i.jsx)(s.p,{children:"\u042d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u043d\u0435 \u0438\u0437 \u0441\u043b\u0430\u0439\u0441\u043e\u0432, \u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e"}),":"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"UI-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430"}),"\n",(0,i.jsx)(s.li,{children:"API-\u043a\u043b\u0438\u0435\u043d\u0442"}),"\n",(0,i.jsx)(s.li,{children:"\u041a\u043e\u0434, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441 API \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"entities",children:"Entities"}),"\n",(0,i.jsx)(s.p,{children:"\u041f\u043e\u043d\u044f\u0442\u0438\u044f \u0438\u0437 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0441\u0443\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u044d\u0442\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0438\u0437\u043d\u0435\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430."}),"\n",(0,i.jsx)(s.p,{children:"\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0430\u0439\u0441 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 CRUD (\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435-\u0447\u0442\u0435\u043d\u0438\u0435-\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435-\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435)."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043b\u0430\u0439\u0441\u043e\u0432"}),":"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:" \u0414\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 "}),(0,i.jsx)("th",{children:" \u0414\u043b\u044f Git-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GitHub) "})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c"}),(0,i.jsx)("li",{children:"\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f"}),(0,i.jsx)("li",{children:"\u0413\u0440\u0443\u043f\u043f\u0430"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439"}),(0,i.jsx)("li",{children:"\u0424\u0430\u0439\u043b"}),(0,i.jsx)("li",{children:"\u041a\u043e\u043c\u043c\u0438\u0442"})]})})]})})]}),"\n",(0,i.jsxs)(s.admonition,{type:"tip",children:[(0,i.jsxs)(s.p,{children:["\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0434\u043b\u044f Git, \u0447\u0442\u043e ",(0,i.jsx)(s.em,{children:"\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439"})," \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 ",(0,i.jsx)(s.em,{children:"\u0444\u0430\u0439\u043b\u044b"}),". \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u043b\u043e\u0436\u0435\u043d\u044b \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u042d\u0442\u043e \u0447\u0430\u0441\u0442\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0441 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0438 \u0438\u043d\u043e\u0433\u0434\u0430 \u0442\u0440\u0443\u0434\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043d\u0435 \u043d\u0430\u0440\u0443\u0448\u0430\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u043e\u0451\u0432."]}),(0,i.jsx)(s.p,{children:"\u0412\u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b:"}),(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"UI \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043b\u043e\u0442\u044b \u0434\u043b\u044f \u043c\u0435\u0441\u0442, \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043d\u0438\u0436\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f"}),"\n",(0,i.jsx)(s.li,{children:"\u0411\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439, \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 Features (\u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432)"}),"\n",(0,i.jsx)(s.li,{children:"\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u044b \u0432 \u0441\u043b\u043e\u0439 Shared, \u0440\u044f\u0434\u043e\u043c \u0441 API-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c"}),"\n"]})]}),"\n",(0,i.jsx)(s.h3,{id:"features",children:"Features"}),"\n",(0,i.jsx)(s.p,{children:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0431\u0438\u0437\u043d\u0435\u0441-\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0447\u0442\u043e\u0431 \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430. \u0421\u044e\u0434\u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0445\u043e\u0434\u044f\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c."}),"\n",(0,i.jsxs)(s.p,{children:["\u0421\u043b\u0430\u0439\u0441 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c ",(0,i.jsx)(s.em,{children:"\u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435"})," \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a API, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0435 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c."]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043b\u0430\u0439\u0441\u043e\u0432"}),":"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:" \u0414\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 "}),(0,i.jsx)("th",{children:" \u0414\u043b\u044f Git-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GitHub) "}),(0,i.jsx)("th",{children:" \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f "})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f"}),(0,i.jsx)("li",{children:"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e"}),(0,i.jsx)("li",{children:"\u0412\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0443"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b"}),(0,i.jsx)("li",{children:"\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439"}),(0,i.jsx)("li",{children:"\u0421\u043b\u0438\u0442\u044c \u0432\u0435\u0442\u043a\u0438"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0442\u0451\u043c\u043d\u0443\u044e \u0442\u0435\u043c\u0443"}),(0,i.jsx)("li",{children:"\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u0444\u043e\u043d\u0435"}),(0,i.jsx)("li",{children:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 User-Agent"})]})})]})})]}),"\n",(0,i.jsx)(s.h3,{id:"widgets",children:"Widgets"}),"\n",(0,i.jsx)(s.p,{children:"\u0421\u0430\u043c\u043e\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0435\u0434\u0438\u043d\u0438\u0446 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438."}),"\n",(0,i.jsx)(s.p,{children:"\u042d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u043e\u0442\u044b, \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439, \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0438\u0437 \u0444\u0438\u0447. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u043d\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u0438\u0447\u0430\u0445. \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0430\u0439\u0441 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435-\u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0436\u0435\u0441\u0442\u044b, \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439 \u0438 \u0442.\u0434."}),"\n",(0,i.jsx)(s.p,{children:"\u0418\u043d\u043e\u0433\u0434\u0430 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e, \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u0438\u0434\u0436\u0435\u0442 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b) \u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430 \u0432 \u043d\u0451\u043c \u043d\u0435 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043b\u0430\u0439\u0441\u043e\u0432"}),":"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:" \u0414\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 "}),(0,i.jsx)("th",{children:" \u0414\u043b\u044f Git-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GitHub) "})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438"}),(0,i.jsx)("li",{children:"\u0428\u0430\u043f\u043a\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438)"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0421\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 (\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438)"}),(0,i.jsx)("li",{children:"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0432 \u0432\u0435\u0442\u043a\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432"}),(0,i.jsx)("li",{children:"\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f"})]})})]})})]}),"\n",(0,i.jsx)(s.admonition,{type:"tip",children:(0,i.jsxs)(s.p,{children:["\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u043e\u0443\u0442\u0435\u0440 ",(0,i.jsx)(s.a,{href:"https://remix.run",children:"Remix"}),"), \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 Widgets \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043b\u043e\u044e Pages \u0432 \u043f\u043b\u043e\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 - \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u043e\u0448\u0438\u0431\u043e\u043a. \u0422\u0430\u043a\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043b\u0435\u0439\u0430\u0443\u0442\u044b \u0434\u043b\u044f \u0441\u043b\u043e\u044f Pages."]})}),"\n",(0,i.jsx)(s.h3,{id:"pages",children:"Pages"}),"\n",(0,i.jsx)(s.p,{children:"\u041f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u043e\u0432) \u0438\u043b\u0438 \u044d\u043a\u0440\u0430\u043d\u044b/\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439)."}),"\n",(0,i.jsx)(s.p,{children:"\u041f\u043e \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043f\u0440\u0438\u0440\u043e\u0434\u0435 \u044d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 Widgets, \u0445\u043e\u0442\u044c \u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435. \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0430\u0439\u0441 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u043a \u0440\u043e\u0443\u0442\u0435\u0440\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043b\u0430\u0439\u0441\u043e\u0432"}),":"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:" \u0414\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 "}),(0,i.jsx)("th",{children:" \u0414\u043b\u044f Git-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GitHub) "})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u041b\u0435\u043d\u0442\u0430 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439"}),(0,i.jsx)("li",{children:"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430"}),(0,i.jsx)("li",{children:"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f"}),(0,i.jsx)("li",{children:"\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f"}),(0,i.jsx)("li",{children:"\u0412\u0435\u0442\u043a\u0438 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438"})]})})]})})]}),"\n",(0,i.jsx)(s.h3,{id:"processes",children:"Processes"}),"\n",(0,i.jsx)(s.admonition,{type:"caution",children:(0,i.jsxs)(s.p,{children:["\u042d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c. \u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0435\u0433\u043e \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432 ",(0,i.jsx)(s.code,{children:"features"})," \u0438 ",(0,i.jsx)(s.code,{children:"app"}),"."]})}),"\n",(0,i.jsx)(s.p,{children:"\u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435."}),"\n",(0,i.jsx)(s.p,{children:"\u042d\u0442\u043e\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u044d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043d\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0440\u043e\u0443\u0442\u0435\u0440\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 App. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u043b\u043e\u0439 App \u0432\u044b\u0440\u0430\u0441\u0442\u0435\u0442 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0435\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u043a\u0438."}),"\n",(0,i.jsx)(s.h3,{id:"app",children:"App"}),"\n",(0,i.jsx)(s.p,{children:"\u0412\u0441\u0451, \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u0432 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430), \u0442\u0430\u043a \u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441-\u0441\u043c\u044b\u0441\u043b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430)."}),"\n",(0,i.jsx)(s.p,{children:"\u042d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043b\u0430\u0439\u0441\u043e\u0432, \u043a\u0430\u043a \u0438 Shared, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e"}),":"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"\u0421\u0442\u0438\u043b\u0438"}),"\n",(0,i.jsx)(s.li,{children:"\u0420\u043e\u0443\u0442\u0435\u0440"}),"\n",(0,i.jsx)(s.li,{children:"\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430"}),"\n",(0,i.jsx)(s.li,{children:"\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438"}),"\n"]})]})}function j(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(x,{...e})}):x(e)}},7468:(e,s,n)=>{n.d(s,{R:()=>d,x:()=>c});var i=n(758);const r={},l=i.createContext(r);function d(e){const s=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/457d5840.5ff0732c.js b/ru/assets/js/457d5840.5ff0732c.js new file mode 100644 index 0000000000..ffbf1e9bd0 --- /dev/null +++ b/ru/assets/js/457d5840.5ff0732c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[6744],{1133:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>t,contentTitle:()=>d,default:()=>j,frontMatter:()=>l,metadata:()=>c,toc:()=>h});var i=n(6070),r=n(7468);const l={sidebar_position:1,pagination_next:"reference/slices-segments"},d="\u0421\u043b\u043e\u0438",c={id:"reference/layers",title:"\u0421\u043b\u043e\u0438",description:"\u0421\u043b\u043e\u0438 - \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432 Feature-Sliced Design. \u0418\u0445 \u0446\u0435\u043b\u044c - \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u043e\u0433\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0435\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438 \u043e\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u043d \u0437\u0430\u0432\u0438\u0441\u0438\u0442.",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/reference/layers.mdx",sourceDirName:"reference",slug:"/reference/layers",permalink:"/ru/docs/reference/layers",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/reference/layers.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:1,frontMatter:{sidebar_position:1,pagination_next:"reference/slices-segments"},sidebar:"referenceSidebar",previous:{title:"\ud83d\udcda \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a",permalink:"/ru/docs/reference/"},next:{title:"\u0421\u043b\u0430\u0439\u0441\u044b \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b",permalink:"/ru/docs/reference/slices-segments"}},t={},h=[{value:"\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u043e\u0451\u0432",id:"import-rule-on-layers",level:2},{value:"\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0451\u0432",id:"\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f-\u0441\u043b\u043e\u0451\u0432",level:2},{value:"Shared",id:"shared",level:3},{value:"Entities",id:"entities",level:3},{value:"Features",id:"features",level:3},{value:"Widgets",id:"widgets",level:3},{value:"Pages",id:"pages",level:3},{value:"Processes",id:"processes",level:3},{value:"App",id:"app",level:3}];function x(e){const s={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"\u0441\u043b\u043e\u0438",children:"\u0421\u043b\u043e\u0438"}),"\n",(0,i.jsx)(s.p,{children:"\u0421\u043b\u043e\u0438 - \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432 Feature-Sliced Design. \u0418\u0445 \u0446\u0435\u043b\u044c - \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u043e\u0433\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0435\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438 \u043e\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u043d \u0437\u0430\u0432\u0438\u0441\u0438\u0442."}),"\n",(0,i.jsx)(s.admonition,{type:"note",children:(0,i.jsxs)(s.p,{children:["\u041d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 ",(0,i.jsx)(s.em,{children:"\u043c\u043e\u0434\u0443\u043b\u044c"})," \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 - \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c. \u041d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 npm-\u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438."]})}),"\n",(0,i.jsx)(s.p,{children:"\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u043e\u0439 \u043d\u0435\u0441\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043e\u0441\u043e\u0431\u044b\u0439 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u043e\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u044c \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0451\u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Feature-Sliced Design."}),"\n",(0,i.jsxs)(s.p,{children:["\u0412\u0441\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 ",(0,i.jsx)(s.strong,{children:"7 \u0441\u043b\u043e\u0451\u0432"}),", \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043e\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438\xa0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043a \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0439:"]}),"\n",(0,i.jsx)("img",{src:"/img/layers/folders-graphic-light.svg#light-mode-only",width:"180",style:{float:"right",margin:"0 1em"},alt:"\u0414\u0435\u0440\u0435\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u043e\u0439 src \u0438 \u0441\u0435\u043c\u044c\u044e \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0430\u043c\u0438: app, processes, pages, widgets, features, entities, shared. \u041f\u0430\u043f\u043a\u0430 processes \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0443\u0441\u043a\u043b\u043e."}),"\n",(0,i.jsx)("img",{src:"/img/layers/folders-graphic-dark.svg#dark-mode-only",width:"180",style:{float:"right",margin:"0 1em"},alt:"\u0414\u0435\u0440\u0435\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u043e\u0439 src \u0438 \u0441\u0435\u043c\u044c\u044e \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0430\u043c\u0438: app, processes, pages, widgets, features, entities, shared. \u041f\u0430\u043f\u043a\u0430 processes \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0443\u0441\u043a\u043b\u043e."}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsx)(s.li,{children:"App (\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435)"}),"\n",(0,i.jsx)(s.li,{children:"Processes (\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u044b, \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0441\u043b\u043e\u0439)"}),"\n",(0,i.jsx)(s.li,{children:"Pages (\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u044b)"}),"\n",(0,i.jsx)(s.li,{children:"Widgets (\u0412\u0438\u0434\u0436\u0435\u0442\u044b)"}),"\n",(0,i.jsx)(s.li,{children:"Features (\u0424\u0438\u0447\u0438/\u0444\u0443\u043d\u043a\u0446\u0438\u0438)"}),"\n",(0,i.jsx)(s.li,{children:"Entities (\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438)"}),"\n",(0,i.jsx)(s.li,{children:"Shared (\u041e\u0431\u0449\u0438\u0439)"}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"\u0412\u044b \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u043b\u043e\u0438 \u0432 \u0441\u0432\u043e\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 - \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u043d\u043e\u0441\u044f\u0442 \u043f\u043e\u043b\u044c\u0437\u0443 \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443."}),"\n",(0,i.jsx)(s.h2,{id:"import-rule-on-layers",children:"\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u043e\u0451\u0432"}),"\n",(0,i.jsxs)(s.p,{children:["\u0421\u043b\u043e\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 ",(0,i.jsx)(s.em,{children:"\u0441\u043b\u0430\u0439\u0441\u043e\u0432"})," \u2014 \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u043c\u043e\u0434\u0443\u043b\u0435\u0439. Feature-Sliced Design \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u0443\u044e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u043b\u0430\u0439\u0441\u0430\u043c\u0438 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f ",(0,i.jsx)(s.strong,{children:"\u043f\u0440\u0430\u0432\u0438\u043b\u043e\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u043e\u0451\u0432"}),":"]}),"\n",(0,i.jsxs)(s.blockquote,{children:["\n",(0,i.jsx)(s.p,{children:(0,i.jsx)(s.em,{children:"\u041c\u043e\u0434\u0443\u043b\u044c \u0432 \u0441\u043b\u0430\u0439\u0441\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043b\u0430\u0439\u0441\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0430 \u0441\u043b\u043e\u044f\u0445 \u0441\u0442\u0440\u043e\u0433\u043e \u043d\u0438\u0436\u0435."})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 ",(0,i.jsx)(s.code,{children:"~/features/aaa"}),", \u0441\u043b\u0430\u0439\u0441\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f ",(0,i.jsx)(s.code,{children:"aaa"}),", \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0430\u0439\u043b ",(0,i.jsx)(s.code,{children:"~/features/aaa/api/request.ts"})," \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0438 \u0438\u0437 \u043a\u0430\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u043f\u0430\u043f\u043a\u0443 \u0438\u0437 ",(0,i.jsx)(s.code,{children:"~/features/bbb"}),", \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0438\u0437 ",(0,i.jsx)(s.code,{children:"~/entities"})," \u0438 ",(0,i.jsx)(s.code,{children:"~/shared"}),", \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 ",(0,i.jsx)(s.code,{children:"~/features/aaa"}),"."]}),"\n",(0,i.jsx)(s.h2,{id:"\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f-\u0441\u043b\u043e\u0451\u0432",children:"\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0451\u0432"}),"\n",(0,i.jsx)(s.h3,{id:"shared",children:"Shared"}),"\n",(0,i.jsxs)(s.p,{children:["\u0418\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0438 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u043b\u0438 \u0431\u0438\u0437\u043d\u0435\u0441\u0430.\n\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043a\u0430\u043a ",(0,i.jsx)(s.a,{href:"https://sova.dev/ru/why-utils-and-helpers-is-a-dump/",children:"\u0441\u0432\u0430\u043b\u043a\u0443 \u0443\u0442\u0438\u043b\u0438\u0442"}),"!"]}),"\n",(0,i.jsx)(s.p,{children:"\u042d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445, \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u043d\u0435 \u0438\u0437 \u0441\u043b\u0430\u0439\u0441\u043e\u0432, \u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e"}),":"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"UI-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430"}),"\n",(0,i.jsx)(s.li,{children:"API-\u043a\u043b\u0438\u0435\u043d\u0442"}),"\n",(0,i.jsx)(s.li,{children:"\u041a\u043e\u0434, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441 API \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430"}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"entities",children:"Entities"}),"\n",(0,i.jsx)(s.p,{children:"\u041f\u043e\u043d\u044f\u0442\u0438\u044f \u0438\u0437 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0441\u0443\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u044d\u0442\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0438\u0437\u043d\u0435\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430."}),"\n",(0,i.jsx)(s.p,{children:"\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0430\u0439\u0441 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 CRUD (\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435-\u0447\u0442\u0435\u043d\u0438\u0435-\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435-\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435)."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043b\u0430\u0439\u0441\u043e\u0432"}),":"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:" \u0414\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 "}),(0,i.jsx)("th",{children:" \u0414\u043b\u044f Git-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GitHub) "})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c"}),(0,i.jsx)("li",{children:"\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f"}),(0,i.jsx)("li",{children:"\u0413\u0440\u0443\u043f\u043f\u0430"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439"}),(0,i.jsx)("li",{children:"\u0424\u0430\u0439\u043b"}),(0,i.jsx)("li",{children:"\u041a\u043e\u043c\u043c\u0438\u0442"})]})})]})})]}),"\n",(0,i.jsxs)(s.admonition,{type:"tip",children:[(0,i.jsxs)(s.p,{children:["\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0434\u043b\u044f Git, \u0447\u0442\u043e ",(0,i.jsx)(s.em,{children:"\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439"})," \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 ",(0,i.jsx)(s.em,{children:"\u0444\u0430\u0439\u043b\u044b"}),". \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u043b\u043e\u0436\u0435\u043d\u044b \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u042d\u0442\u043e \u0447\u0430\u0441\u0442\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0441 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0438 \u0438\u043d\u043e\u0433\u0434\u0430 \u0442\u0440\u0443\u0434\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043d\u0435 \u043d\u0430\u0440\u0443\u0448\u0430\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u043e\u0451\u0432."]}),(0,i.jsx)(s.p,{children:"\u0412\u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b:"}),(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"UI \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043b\u043e\u0442\u044b \u0434\u043b\u044f \u043c\u0435\u0441\u0442, \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043d\u0438\u0436\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f"}),"\n",(0,i.jsx)(s.li,{children:"\u0411\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439, \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 Features (\u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432)"}),"\n",(0,i.jsx)(s.li,{children:"\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u044b \u0432 \u0441\u043b\u043e\u0439 Shared, \u0440\u044f\u0434\u043e\u043c \u0441 API-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c"}),"\n"]})]}),"\n",(0,i.jsx)(s.h3,{id:"features",children:"Features"}),"\n",(0,i.jsx)(s.p,{children:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0431\u0438\u0437\u043d\u0435\u0441-\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0447\u0442\u043e\u0431 \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430. \u0421\u044e\u0434\u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0445\u043e\u0434\u044f\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c."}),"\n",(0,i.jsxs)(s.p,{children:["\u0421\u043b\u0430\u0439\u0441 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c ",(0,i.jsx)(s.em,{children:"\u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435"})," \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a API, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0435 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c."]}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043b\u0430\u0439\u0441\u043e\u0432"}),":"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:" \u0414\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 "}),(0,i.jsx)("th",{children:" \u0414\u043b\u044f Git-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GitHub) "}),(0,i.jsx)("th",{children:" \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f "})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f"}),(0,i.jsx)("li",{children:"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e"}),(0,i.jsx)("li",{children:"\u0412\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0443"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b"}),(0,i.jsx)("li",{children:"\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439"}),(0,i.jsx)("li",{children:"\u0421\u043b\u0438\u0442\u044c \u0432\u0435\u0442\u043a\u0438"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0442\u0451\u043c\u043d\u0443\u044e \u0442\u0435\u043c\u0443"}),(0,i.jsx)("li",{children:"\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u0444\u043e\u043d\u0435"}),(0,i.jsx)("li",{children:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 User-Agent"})]})})]})})]}),"\n",(0,i.jsx)(s.h3,{id:"widgets",children:"Widgets"}),"\n",(0,i.jsx)(s.p,{children:"\u0421\u0430\u043c\u043e\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0435\u0434\u0438\u043d\u0438\u0446 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438."}),"\n",(0,i.jsx)(s.p,{children:"\u042d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u043e\u0442\u044b, \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439, \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0438\u0437 \u0444\u0438\u0447. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u043d\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u0438\u0447\u0430\u0445. \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0430\u0439\u0441 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435-\u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0436\u0435\u0441\u0442\u044b, \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043e\u0439 \u0438 \u0442.\u0434."}),"\n",(0,i.jsx)(s.p,{children:"\u0418\u043d\u043e\u0433\u0434\u0430 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e, \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u0438\u0434\u0436\u0435\u0442 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b) \u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430 \u0432 \u043d\u0451\u043c \u043d\u0435 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043b\u0430\u0439\u0441\u043e\u0432"}),":"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:" \u0414\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 "}),(0,i.jsx)("th",{children:" \u0414\u043b\u044f Git-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GitHub) "})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438"}),(0,i.jsx)("li",{children:"\u0428\u0430\u043f\u043a\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438)"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0421\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 (\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438)"}),(0,i.jsx)("li",{children:"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0432 \u0432\u0435\u0442\u043a\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432"}),(0,i.jsx)("li",{children:"\u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f"})]})})]})})]}),"\n",(0,i.jsx)(s.admonition,{type:"tip",children:(0,i.jsxs)(s.p,{children:["\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u043e\u0443\u0442\u0435\u0440 ",(0,i.jsx)(s.a,{href:"https://remix.run",children:"Remix"}),"), \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 Widgets \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043b\u043e\u044e Pages \u0432 \u043f\u043b\u043e\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 - \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u043e\u0448\u0438\u0431\u043e\u043a. \u0422\u0430\u043a\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043b\u0435\u0439\u0430\u0443\u0442\u044b \u0434\u043b\u044f \u0441\u043b\u043e\u044f Pages."]})}),"\n",(0,i.jsx)(s.h3,{id:"pages",children:"Pages"}),"\n",(0,i.jsx)(s.p,{children:"\u041f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u043e\u0432) \u0438\u043b\u0438 \u044d\u043a\u0440\u0430\u043d\u044b/\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439)."}),"\n",(0,i.jsx)(s.p,{children:"\u041f\u043e \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043f\u0440\u0438\u0440\u043e\u0434\u0435 \u044d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 Widgets, \u0445\u043e\u0442\u044c \u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435. \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0430\u0439\u0441 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u043a \u0440\u043e\u0443\u0442\u0435\u0440\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043b\u0430\u0439\u0441\u043e\u0432"}),":"]}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:" \u0414\u043b\u044f \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 "}),(0,i.jsx)("th",{children:" \u0414\u043b\u044f Git-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GitHub) "})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u041b\u0435\u043d\u0442\u0430 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439"}),(0,i.jsx)("li",{children:"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430"}),(0,i.jsx)("li",{children:"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f"})]})}),(0,i.jsx)("td",{children:(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{children:"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f"}),(0,i.jsx)("li",{children:"\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f"}),(0,i.jsx)("li",{children:"\u0412\u0435\u0442\u043a\u0438 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438"})]})})]})})]}),"\n",(0,i.jsx)(s.h3,{id:"processes",children:"Processes"}),"\n",(0,i.jsx)(s.admonition,{type:"caution",children:(0,i.jsxs)(s.p,{children:["\u042d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c. \u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0435\u0433\u043e \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432 ",(0,i.jsx)(s.code,{children:"features"})," \u0438 ",(0,i.jsx)(s.code,{children:"app"}),"."]})}),"\n",(0,i.jsx)(s.p,{children:"\u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435."}),"\n",(0,i.jsx)(s.p,{children:"\u042d\u0442\u043e\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u044d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043d\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0440\u043e\u0443\u0442\u0435\u0440\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 App. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u043b\u043e\u0439 App \u0432\u044b\u0440\u0430\u0441\u0442\u0435\u0442 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0435\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u043a\u0438."}),"\n",(0,i.jsx)(s.h3,{id:"app",children:"App"}),"\n",(0,i.jsx)(s.p,{children:"\u0412\u0441\u0451, \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u0432 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430), \u0442\u0430\u043a \u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441-\u0441\u043c\u044b\u0441\u043b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430)."}),"\n",(0,i.jsx)(s.p,{children:"\u042d\u0442\u043e\u0442 \u0441\u043b\u043e\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043b\u0430\u0439\u0441\u043e\u0432, \u043a\u0430\u043a \u0438 Shared, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b."}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.strong,{children:"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e"}),":"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"\u0421\u0442\u0438\u043b\u0438"}),"\n",(0,i.jsx)(s.li,{children:"\u0420\u043e\u0443\u0442\u0435\u0440"}),"\n",(0,i.jsx)(s.li,{children:"\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430"}),"\n",(0,i.jsx)(s.li,{children:"\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438"}),"\n"]})]})}function j(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(x,{...e})}):x(e)}},7468:(e,s,n)=>{n.d(s,{R:()=>d,x:()=>c});var i=n(758);const r={},l=i.createContext(r);function d(e){const s=i.useContext(l);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),i.createElement(l.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/4584eeb7.b13470ef.js b/ru/assets/js/4584eeb7.f75487b2.js similarity index 56% rename from ru/assets/js/4584eeb7.b13470ef.js rename to ru/assets/js/4584eeb7.f75487b2.js index 8ecce11283..a1a7ff645c 100644 --- a/ru/assets/js/4584eeb7.b13470ef.js +++ b/ru/assets/js/4584eeb7.f75487b2.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[1781],{7294:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"v2.0.0 \ud83c\udf70","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"getstartedSidebar":[{"type":"category","label":"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442","items":[{"type":"link","label":"\u041e\u0431\u0437\u043e\u0440","href":"/ru/docs/get-started/overview","docId":"get-started/overview","unlisted":false},{"type":"link","label":"\u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b","href":"/ru/docs/get-started/tutorial","docId":"get-started/tutorial","unlisted":false},{"type":"link","label":"FAQ","href":"/ru/docs/get-started/faq","docId":"get-started/faq","unlisted":false},{"type":"link","label":"\u041f\u0430\u043c\u044f\u0442\u043a\u0430 \u043f\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438","href":"/ru/docs/get-started/cheatsheet","docId":"get-started/cheatsheet","unlisted":true}],"collapsible":false,"collapsed":false,"href":"/ru/docs/get-started/"}],"guidesSidebar":[{"type":"category","label":"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b","items":[{"type":"category","label":"\u041f\u0440\u0438\u043c\u0435\u0440\u044b","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Auth","href":"/ru/docs/guides/examples/auth","docId":"guides/examples/auth","unlisted":false},{"type":"link","label":"PageLayout","href":"/ru/docs/guides/examples/page-layout","className":"sidebar-item--wip","docId":"guides/examples/page-layout","unlisted":false},{"type":"link","label":"\u0422\u0438\u043f\u044b","href":"/ru/docs/guides/examples/types","className":"sidebar-item--wip","docId":"guides/examples/types","unlisted":false},{"type":"link","label":"\u0422\u0435\u043c\u0438\u0437\u0430\u0446\u0438\u044f","href":"/ru/docs/guides/examples/theme","className":"sidebar-item--wip","docId":"guides/examples/theme","unlisted":false},{"type":"link","label":"\u0410\u0432\u0442\u043e\u043a\u043e\u043c\u043f\u043b\u0438\u0442","href":"/ru/docs/guides/examples/autocompleted","className":"sidebar-item--wip","docId":"guides/examples/autocompleted","unlisted":false},{"type":"link","label":"i18n","href":"/ru/docs/guides/examples/i18n","className":"sidebar-item--wip","docId":"guides/examples/i18n","unlisted":false},{"type":"link","label":"White Labels","href":"/ru/docs/guides/examples/white-labels","className":"sidebar-item--wip","docId":"guides/examples/white-labels","unlisted":false},{"type":"link","label":"\u041c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438","href":"/ru/docs/guides/examples/monorepo","className":"sidebar-item--wip","docId":"guides/examples/monorepo","unlisted":false},{"type":"link","label":"Browser API","href":"/ru/docs/guides/examples/browser-api","className":"sidebar-item--wip","docId":"guides/examples/browser-api","unlisted":false},{"type":"link","label":"CMS","href":"/ru/docs/guides/examples/cms","className":"sidebar-item--wip","docId":"guides/examples/cms","unlisted":false},{"type":"link","label":"\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c","href":"/ru/docs/guides/examples/feedback","className":"sidebar-item--wip","docId":"guides/examples/feedback","unlisted":false},{"type":"link","label":"\u041c\u0435\u0442\u0440\u0438\u043a\u0430","href":"/ru/docs/guides/examples/metric","className":"sidebar-item--wip","docId":"guides/examples/metric","unlisted":false},{"type":"link","label":"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b","href":"/ru/docs/guides/examples/platforms","className":"sidebar-item--wip","docId":"guides/examples/platforms","unlisted":false},{"type":"link","label":"SSR","href":"/ru/docs/guides/examples/ssr","className":"sidebar-item--wip","docId":"guides/examples/ssr","unlisted":false}],"href":"/ru/docs/guides/examples/"},{"type":"category","label":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 legacy","href":"/ru/docs/guides/migration/from-legacy","className":"sidebar-item--wip","docId":"guides/migration/from-legacy","unlisted":false},{"type":"link","label":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 v1","href":"/ru/docs/guides/migration/from-v1","docId":"guides/migration/from-v1","unlisted":false}]},{"type":"category","label":"\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS","href":"/ru/docs/guides/tech/with-nextjs","docId":"guides/tech/with-nextjs","unlisted":false},{"type":"link","label":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS","href":"/ru/docs/guides/tech/with-nuxtjs","docId":"guides/tech/with-nuxtjs","unlisted":false},{"type":"link","label":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 React Query","href":"/ru/docs/guides/tech/with-react-query","docId":"guides/tech/with-react-query","unlisted":false}]},{"type":"category","label":"Code smells & Issues","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u0414\u0435\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","href":"/ru/docs/guides/issues/desegmented","className":"sidebar-item--wip","docId":"guides/issues/desegmented","unlisted":false},{"type":"link","label":"\u0420\u043e\u0443\u0442\u0438\u043d\u0433","href":"/ru/docs/guides/issues/routes","className":"sidebar-item--wip","docId":"guides/issues/routes","unlisted":false},{"type":"link","label":"\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b","href":"/ru/docs/guides/issues/cross-imports","className":"sidebar-item--wip","docId":"guides/issues/cross-imports","unlisted":false}]}],"collapsible":false,"collapsed":false,"href":"/ru/docs/guides/"}],"referenceSidebar":[{"type":"category","label":"\ud83d\udcda \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a","items":[{"type":"link","label":"\u0421\u043b\u043e\u0438","href":"/ru/docs/reference/layers","docId":"reference/layers","unlisted":false},{"type":"link","label":"\u0421\u043b\u0430\u0439\u0441\u044b \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b","href":"/ru/docs/reference/slices-segments","docId":"reference/slices-segments","unlisted":false},{"type":"link","label":"Public API","href":"/ru/docs/reference/public-api","docId":"reference/public-api","unlisted":false},{"type":"category","label":"\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Low Coupling & High Cohesion","href":"/ru/docs/reference/isolation/coupling-cohesion","docId":"reference/isolation/coupling-cohesion","unlisted":false},{"type":"link","label":"Decouple entities","href":"/ru/docs/reference/isolation/decouple-entities","className":"sidebar-item--wip","docId":"reference/isolation/decouple-entities","unlisted":false}],"href":"/ru/docs/reference/isolation/"}],"collapsible":false,"collapsed":false,"href":"/ru/docs/reference/"}],"aboutSidebar":[{"type":"category","label":"\ud83c\udf70 \u041e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","items":[{"type":"link","label":"\u041c\u0438\u0441\u0441\u0438\u044f","href":"/ru/docs/about/mission","docId":"about/mission","unlisted":false},{"type":"link","label":"\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f","href":"/ru/docs/about/motivation","docId":"about/motivation","unlisted":false},{"type":"link","label":"\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b","href":"/ru/docs/about/alternatives","className":"sidebar-item--wip","docId":"about/alternatives","unlisted":false},{"type":"category","label":"\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u041e\u0431 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435","href":"/ru/docs/about/understanding/architecture","docId":"about/understanding/architecture","unlisted":false},{"type":"link","label":"\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439","href":"/ru/docs/about/understanding/needs-driven","docId":"about/understanding/needs-driven","unlisted":false},{"type":"link","label":"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439","href":"/ru/docs/about/understanding/knowledge-types","docId":"about/understanding/knowledge-types","unlisted":false},{"type":"link","label":"\u041d\u0435\u0439\u043c\u0438\u043d\u0433","href":"/ru/docs/about/understanding/naming","docId":"about/understanding/naming","unlisted":false},{"type":"link","label":"\u0421\u0438\u0433\u043d\u0430\u043b\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b","href":"/ru/docs/about/understanding/signals","className":"sidebar-item--wip","docId":"about/understanding/signals","unlisted":false},{"type":"link","label":"\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438","href":"/ru/docs/about/understanding/abstractions","className":"sidebar-item--wip","docId":"about/understanding/abstractions","unlisted":false}]},{"type":"category","label":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438","href":"/ru/docs/about/promote/integration","docId":"about/promote/integration","unlisted":false},{"type":"link","label":"\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435","href":"/ru/docs/about/promote/partial-application","className":"sidebar-item--wip","docId":"about/promote/partial-application","unlisted":false},{"type":"link","label":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435","href":"/ru/docs/about/promote/for-team","className":"sidebar-item--wip","docId":"about/promote/for-team","unlisted":false},{"type":"link","label":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438","href":"/ru/docs/about/promote/for-company","className":"sidebar-item--wip","docId":"about/promote/for-company","unlisted":false}]}],"collapsible":false,"collapsed":false,"href":"/ru/docs/about/"}]},"docs":{"about/alternatives":{"id":"about/alternatives","title":"\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b","description":"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432","sidebar":"aboutSidebar"},"about/index":{"id":"about/index","title":"\ud83c\udf70 \u041e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","description":"BACKGROUND-ORIENTED","sidebar":"aboutSidebar"},"about/mission":{"id":"about/mission","title":"\u041c\u0438\u0441\u0441\u0438\u044f","description":"\u0417\u0434\u0435\u0441\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0446\u0435\u043b\u0438 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443\u0435\u043c\u0441\u044f \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","sidebar":"aboutSidebar"},"about/motivation":{"id":"about/motivation","title":"\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f","description":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f Feature-Sliced Design - \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0438 \u0443\u0434\u0435\u0448\u0435\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0445 \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439, \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u044b\u0442\u0430 \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.","sidebar":"aboutSidebar"},"about/promote/for-company":{"id":"about/promote/for-company","title":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438","description":"\u041d\u0443\u0436\u043d\u0430 \u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438?","sidebar":"aboutSidebar"},"about/promote/for-team":{"id":"about/promote/for-team","title":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435","description":"- \u041e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433 \u043d\u043e\u0432\u044b\u0445 \u043b\u044e\u0434\u0435\u0439","sidebar":"aboutSidebar"},"about/promote/integration":{"id":"about/promote/integration","title":"\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438","description":"\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435?","sidebar":"aboutSidebar"},"about/promote/partial-application":{"id":"about/promote/partial-application","title":"\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435","description":"\u041a\u0430\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044e? \u0418\u043c\u0435\u0435\u0442 \u043b\u0438 \u0441\u043c\u044b\u0441\u043b? \u0427\u0442\u043e \u0435\u0441\u043b\u0438 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c?","sidebar":"aboutSidebar"},"about/understanding/abstractions":{"id":"about/understanding/abstractions","title":"\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438","description":"\u0417\u0430\u043a\u043e\u043d \u0434\u044b\u0440\u044f\u0432\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439","sidebar":"aboutSidebar"},"about/understanding/architecture":{"id":"about/understanding/architecture","title":"\u041e\u0431 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435","description":"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b","sidebar":"aboutSidebar"},"about/understanding/knowledge-types":{"id":"about/understanding/knowledge-types","title":"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435","description":"\u0412 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \\"\u0442\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439\\":","sidebar":"aboutSidebar"},"about/understanding/naming":{"id":"about/understanding/naming","title":"\u041d\u0435\u0439\u043c\u0438\u043d\u0433","description":"\u0423 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0434\u043e\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:","sidebar":"aboutSidebar"},"about/understanding/needs-driven":{"id":"about/understanding/needs-driven","title":"\u041e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0435 \u0437\u0430\u0434\u0430\u0447","description":"\u2014 \u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0448\u0430\u0442\u044c \u043d\u043e\u0432\u0430\u044f \u0444\u0438\u0447\u0430? \u0410 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0430\u043c\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430? **\u0421\u043c\u044b\u0441\u043b \u0435\u0449\u0451 \u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u043e\u043c\u043e\u0433\u043b\u0430 \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043d\u0430\u0440\u0443\u0436\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447 \u0438 \u0446\u0435\u043b\u0435\u0439**","sidebar":"aboutSidebar"},"about/understanding/signals":{"id":"about/understanding/signals","title":"\u0421\u0438\u0433\u043d\u0430\u043b\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b","description":"\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b - \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430 \u0442\u043e \u0435\u0441\u0442\u044c \u044f\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b, \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f, \u0435\u0441\u043b\u0438 \u0438\u0445 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c","sidebar":"aboutSidebar"},"branding":{"id":"branding","title":"\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0431\u0440\u0435\u043d\u0434\u0438\u043d\u0433\u0443","description":"\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u0439\u0434\u0435\u043d\u0442\u0438\u043a\u0430 FSD \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0435\u0433\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f\u0445: Layered, Sliced self-contained parts, Parts & Compose, Segmented."},"get-started/cheatsheet":{"id":"get-started/cheatsheet","title":"\u041f\u0430\u043c\u044f\u0442\u043a\u0430 \u043f\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438","description":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0435\u0451 \u043a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0440\u0435\u0448\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0432\u0430\u0448 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e \u0441\u043b\u043e\u044f\u043c. \u041d\u0438\u0436\u0435 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 PDF-\u0432\u0435\u0440\u0441\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u0435\u0451 \u0438 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u0434 \u043f\u043e\u0434\u0443\u0448\u043a\u043e\u0439.","sidebar":"getstartedSidebar"},"get-started/faq":{"id":"get-started/faq","title":"FAQ","description":"\u0421\u0432\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0432 Telegram-\u0447\u0430\u0442\u0435, Discord-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u0438 GitHub Discussions.","sidebar":"getstartedSidebar"},"get-started/index":{"id":"get-started/index","title":"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442","description":"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c! \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u0435\u0433\u043b\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c Feature-Sliced Design \u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043f\u043e\u0439\u043c\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f.","sidebar":"getstartedSidebar"},"get-started/overview":{"id":"get-started/overview","title":"\u041e\u0431\u0437\u043e\u0440","description":"\u041f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043b\u0438 \u044d\u0442\u043e \u043c\u043d\u0435?","sidebar":"getstartedSidebar"},"get-started/tutorial":{"id":"get-started/tutorial","title":"\u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b","description":"\u0427\u0430\u0441\u0442\u044c 1. \u041d\u0430 \u0431\u0443\u043c\u0430\u0433\u0435","sidebar":"getstartedSidebar"},"guides/examples/auth":{"id":"guides/examples/auth","title":"Auth","description":"\u0412\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0435\u0441\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430, \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435.","sidebar":"guidesSidebar"},"guides/examples/autocompleted":{"id":"guides/examples/autocompleted","title":"\u0410\u0432\u0442\u043e\u043a\u043e\u043c\u043f\u043b\u0438\u0442","description":"\u041f\u0440\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u043e \u0441\u043b\u043e\u044f\u043c","sidebar":"guidesSidebar"},"guides/examples/browser-api":{"id":"guides/examples/browser-api","title":"Browser API","description":"\u041f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Browser API: localStorage, audioApi, bluetoothAPI \u0438 \u0442.\u043f.","sidebar":"guidesSidebar"},"guides/examples/cms":{"id":"guides/examples/cms","title":"CMS","description":"\u0424\u0438\u0447\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435","sidebar":"guidesSidebar"},"guides/examples/feedback":{"id":"guides/examples/feedback","title":"\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c","description":"Errors, Alerts, Notifications, ...","sidebar":"guidesSidebar"},"guides/examples/i18n":{"id":"guides/examples/i18n","title":"i18n","description":"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c? \u041a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?","sidebar":"guidesSidebar"},"guides/examples/index":{"id":"guides/examples/index","title":"\u041f\u0440\u0438\u043c\u0435\u0440\u044b","description":"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","sidebar":"guidesSidebar"},"guides/examples/metric":{"id":"guides/examples/metric","title":"\u041c\u0435\u0442\u0440\u0438\u043a\u0430","description":"\u041f\u0440\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438","sidebar":"guidesSidebar"},"guides/examples/monorepo":{"id":"guides/examples/monorepo","title":"\u041c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438","description":"\u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432, \u043f\u0440\u043e bff, \u043f\u0440\u043e \u043c\u0438\u043a\u0440\u043e\u0430\u043f\u043f\u044b","sidebar":"guidesSidebar"},"guides/examples/page-layout":{"id":"guides/examples/page-layout","title":"PageLayout","description":"Header","sidebar":"guidesSidebar"},"guides/examples/platforms":{"id":"guides/examples/platforms","title":"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b","description":"\u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f desktop/touch","sidebar":"guidesSidebar"},"guides/examples/ssr":{"id":"guides/examples/ssr","title":"SSR","description":"\u041f\u0440\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e SSR \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","sidebar":"guidesSidebar"},"guides/examples/theme":{"id":"guides/examples/theme","title":"\u0422\u0435\u043c\u0438\u0437\u0430\u0446\u0438\u044f","description":"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0442\u0435\u043c\u043e\u0439 \u0438 \u043f\u0430\u043b\u0438\u0442\u0440\u043e\u0439?","sidebar":"guidesSidebar"},"guides/examples/types":{"id":"guides/examples/types","title":"\u0422\u0438\u043f\u044b","description":"\u0422\u0438\u043f\u044b \u0431\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435","sidebar":"guidesSidebar"},"guides/examples/white-labels":{"id":"guides/examples/white-labels","title":"White Labels","description":"Figma, brand uikit, templates, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u043a \u0431\u0440\u0435\u043d\u0434\u0430\u043c","sidebar":"guidesSidebar"},"guides/index":{"id":"guides/index","title":"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b","description":"PRACTICE-ORIENTED","sidebar":"guidesSidebar"},"guides/issues/cross-imports":{"id":"guides/issues/cross-imports","title":"\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b","description":"\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u043b\u043e\u0439/\u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0431\u0440\u0430\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0447\u0435\u043c \u0434\u043e\u043b\u0436\u043d\u0430. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0441\u043b\u043e\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0440\u0430\u0441\u0446\u0435\u043f\u0438\u0442\u044c \u044d\u0442\u0438 \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b","sidebar":"guidesSidebar"},"guides/issues/desegmented":{"id":"guides/issues/desegmented","title":"\u0414\u0435\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","description":"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f","sidebar":"guidesSidebar"},"guides/issues/routes":{"id":"guides/issues/routes","title":"\u0420\u043e\u0443\u0442\u0438\u043d\u0433","description":"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f","sidebar":"guidesSidebar"},"guides/migration/from-legacy":{"id":"guides/migration/from-legacy","title":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 legacy","description":"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u043f\u044b\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0443 \u043d\u0430 Feature-Sliced Design \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438","sidebar":"guidesSidebar"},"guides/migration/from-v1":{"id":"guides/migration/from-v1","title":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 v1","description":"\u0417\u0430\u0447\u0435\u043c v2?","sidebar":"guidesSidebar"},"guides/tech/with-nextjs":{"id":"guides/tech/with-nextjs","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS","description":"\u0412 NextJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NextJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD \u0432 \u0434\u0432\u0443\u0445 \u043f\u0443\u043d\u043a\u0442\u0430\u0445:","sidebar":"guidesSidebar"},"guides/tech/with-nuxtjs":{"id":"guides/tech/with-nuxtjs","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS","description":"\u0412 NuxtJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NuxtJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD:","sidebar":"guidesSidebar"},"guides/tech/with-react-query":{"id":"guides/tech/with-react-query","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 React Query","description":"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \xab\u043a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0438\xbb","sidebar":"guidesSidebar"},"intro":{"id":"intro","title":"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","description":"feature-sliced-banner"},"privacy":{"id":"privacy","title":"\u041a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c","description":"\u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u0443\u043a\u0438, \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (\u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0441\u0430\u0439\u0442\u0430, \u0438 \u043d\u0438 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445 \u0438\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439)"},"reference/index":{"id":"reference/index","title":"\ud83d\udcda \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a","description":"\u0420\u0430\u0437\u0434\u0435\u043b \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438.","sidebar":"referenceSidebar"},"reference/isolation/coupling-cohesion":{"id":"reference/isolation/coupling-cohesion","title":"Low Coupling & High Cohesion","description":"\u041c\u043e\u0434\u0443\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e (\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0447\u0435\u0442\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u0438 \u0441\u043b\u0430\u0431\u043e\u0439 \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e (\u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439)","sidebar":"referenceSidebar"},"reference/isolation/decouple-entities":{"id":"reference/isolation/decouple-entities","title":"Decouple entities","description":"\u041f\u0440\u043e \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0442\u0438\u043f\u043e\u0432, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b \u0438 \u043f\u0440\u043e \u0442\u043e - \u043a\u0430\u043a \u044f\u0432\u043d\u043e \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438","sidebar":"referenceSidebar"},"reference/isolation/index":{"id":"reference/isolation/index","title":"\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439","description":"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u043e \u0437\u043e\u043d\u0430\u043c \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 (layer, slice, segment)","sidebar":"referenceSidebar"},"reference/layers":{"id":"reference/layers","title":"\u0421\u043b\u043e\u0438","description":"\u0421\u043b\u043e\u0438 - \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432 Feature-Sliced Design. \u0418\u0445 \u0446\u0435\u043b\u044c - \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u043e\u0433\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0435\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438 \u043e\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u043d \u0437\u0430\u0432\u0438\u0441\u0438\u0442.","sidebar":"referenceSidebar"},"reference/public-api":{"id":"reference/public-api","title":"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 API \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f","description":"\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c.","sidebar":"referenceSidebar"},"reference/slices-segments":{"id":"reference/slices-segments","title":"\u0421\u043b\u0430\u0439\u0441\u044b \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b","description":"\u0421\u043b\u0430\u0439\u0441\u044b","sidebar":"referenceSidebar"}}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[1781],{7294:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"v2.0.0 \ud83c\udf70","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"getstartedSidebar":[{"type":"category","label":"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442","items":[{"type":"link","label":"\u041e\u0431\u0437\u043e\u0440","href":"/ru/docs/get-started/overview","docId":"get-started/overview","unlisted":false},{"type":"link","label":"\u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b","href":"/ru/docs/get-started/tutorial","docId":"get-started/tutorial","unlisted":false},{"type":"link","label":"FAQ","href":"/ru/docs/get-started/faq","docId":"get-started/faq","unlisted":false},{"type":"link","label":"\u041f\u0430\u043c\u044f\u0442\u043a\u0430 \u043f\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438","href":"/ru/docs/get-started/cheatsheet","docId":"get-started/cheatsheet","unlisted":true}],"collapsible":false,"collapsed":false,"href":"/ru/docs/get-started/"}],"guidesSidebar":[{"type":"category","label":"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b","items":[{"type":"category","label":"\u041f\u0440\u0438\u043c\u0435\u0440\u044b","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Auth","href":"/ru/docs/guides/examples/auth","docId":"guides/examples/auth","unlisted":false},{"type":"link","label":"PageLayout","href":"/ru/docs/guides/examples/page-layout","className":"sidebar-item--wip","docId":"guides/examples/page-layout","unlisted":false},{"type":"link","label":"\u0422\u0438\u043f\u044b","href":"/ru/docs/guides/examples/types","className":"sidebar-item--wip","docId":"guides/examples/types","unlisted":false},{"type":"link","label":"\u0422\u0435\u043c\u0438\u0437\u0430\u0446\u0438\u044f","href":"/ru/docs/guides/examples/theme","className":"sidebar-item--wip","docId":"guides/examples/theme","unlisted":false},{"type":"link","label":"\u0410\u0432\u0442\u043e\u043a\u043e\u043c\u043f\u043b\u0438\u0442","href":"/ru/docs/guides/examples/autocompleted","className":"sidebar-item--wip","docId":"guides/examples/autocompleted","unlisted":false},{"type":"link","label":"i18n","href":"/ru/docs/guides/examples/i18n","className":"sidebar-item--wip","docId":"guides/examples/i18n","unlisted":false},{"type":"link","label":"White Labels","href":"/ru/docs/guides/examples/white-labels","className":"sidebar-item--wip","docId":"guides/examples/white-labels","unlisted":false},{"type":"link","label":"\u041c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438","href":"/ru/docs/guides/examples/monorepo","className":"sidebar-item--wip","docId":"guides/examples/monorepo","unlisted":false},{"type":"link","label":"Browser API","href":"/ru/docs/guides/examples/browser-api","className":"sidebar-item--wip","docId":"guides/examples/browser-api","unlisted":false},{"type":"link","label":"CMS","href":"/ru/docs/guides/examples/cms","className":"sidebar-item--wip","docId":"guides/examples/cms","unlisted":false},{"type":"link","label":"\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c","href":"/ru/docs/guides/examples/feedback","className":"sidebar-item--wip","docId":"guides/examples/feedback","unlisted":false},{"type":"link","label":"\u041c\u0435\u0442\u0440\u0438\u043a\u0430","href":"/ru/docs/guides/examples/metric","className":"sidebar-item--wip","docId":"guides/examples/metric","unlisted":false},{"type":"link","label":"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b","href":"/ru/docs/guides/examples/platforms","className":"sidebar-item--wip","docId":"guides/examples/platforms","unlisted":false},{"type":"link","label":"SSR","href":"/ru/docs/guides/examples/ssr","className":"sidebar-item--wip","docId":"guides/examples/ssr","unlisted":false}],"href":"/ru/docs/guides/examples/"},{"type":"category","label":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 legacy","href":"/ru/docs/guides/migration/from-legacy","className":"sidebar-item--wip","docId":"guides/migration/from-legacy","unlisted":false},{"type":"link","label":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 v1","href":"/ru/docs/guides/migration/from-v1","docId":"guides/migration/from-v1","unlisted":false}]},{"type":"category","label":"\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS","href":"/ru/docs/guides/tech/with-nextjs","docId":"guides/tech/with-nextjs","unlisted":false},{"type":"link","label":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS","href":"/ru/docs/guides/tech/with-nuxtjs","docId":"guides/tech/with-nuxtjs","unlisted":false},{"type":"link","label":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 React Query","href":"/ru/docs/guides/tech/with-react-query","docId":"guides/tech/with-react-query","unlisted":false}]},{"type":"category","label":"Code smells & Issues","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u0414\u0435\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","href":"/ru/docs/guides/issues/desegmented","className":"sidebar-item--wip","docId":"guides/issues/desegmented","unlisted":false},{"type":"link","label":"\u0420\u043e\u0443\u0442\u0438\u043d\u0433","href":"/ru/docs/guides/issues/routes","className":"sidebar-item--wip","docId":"guides/issues/routes","unlisted":false},{"type":"link","label":"\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b","href":"/ru/docs/guides/issues/cross-imports","className":"sidebar-item--wip","docId":"guides/issues/cross-imports","unlisted":false}]}],"collapsible":false,"collapsed":false,"href":"/ru/docs/guides/"}],"referenceSidebar":[{"type":"category","label":"\ud83d\udcda \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a","items":[{"type":"link","label":"\u0421\u043b\u043e\u0438","href":"/ru/docs/reference/layers","docId":"reference/layers","unlisted":false},{"type":"link","label":"\u0421\u043b\u0430\u0439\u0441\u044b \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b","href":"/ru/docs/reference/slices-segments","docId":"reference/slices-segments","unlisted":false},{"type":"link","label":"Public API","href":"/ru/docs/reference/public-api","docId":"reference/public-api","unlisted":false},{"type":"category","label":"\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Low Coupling & High Cohesion","href":"/ru/docs/reference/isolation/coupling-cohesion","docId":"reference/isolation/coupling-cohesion","unlisted":false},{"type":"link","label":"Decouple entities","href":"/ru/docs/reference/isolation/decouple-entities","className":"sidebar-item--wip","docId":"reference/isolation/decouple-entities","unlisted":false}],"href":"/ru/docs/reference/isolation/"}],"collapsible":false,"collapsed":false,"href":"/ru/docs/reference/"}],"aboutSidebar":[{"type":"category","label":"\ud83c\udf70 \u041e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","items":[{"type":"link","label":"\u041c\u0438\u0441\u0441\u0438\u044f","href":"/ru/docs/about/mission","docId":"about/mission","unlisted":false},{"type":"link","label":"\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f","href":"/ru/docs/about/motivation","docId":"about/motivation","unlisted":false},{"type":"link","label":"\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b","href":"/ru/docs/about/alternatives","className":"sidebar-item--wip","docId":"about/alternatives","unlisted":false},{"type":"category","label":"\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u041e\u0431 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435","href":"/ru/docs/about/understanding/architecture","docId":"about/understanding/architecture","unlisted":false},{"type":"link","label":"\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439","href":"/ru/docs/about/understanding/needs-driven","docId":"about/understanding/needs-driven","unlisted":false},{"type":"link","label":"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439","href":"/ru/docs/about/understanding/knowledge-types","docId":"about/understanding/knowledge-types","unlisted":false},{"type":"link","label":"\u041d\u0435\u0439\u043c\u0438\u043d\u0433","href":"/ru/docs/about/understanding/naming","docId":"about/understanding/naming","unlisted":false},{"type":"link","label":"\u0421\u0438\u0433\u043d\u0430\u043b\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b","href":"/ru/docs/about/understanding/signals","className":"sidebar-item--wip","docId":"about/understanding/signals","unlisted":false},{"type":"link","label":"\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438","href":"/ru/docs/about/understanding/abstractions","className":"sidebar-item--wip","docId":"about/understanding/abstractions","unlisted":false}]},{"type":"category","label":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438","href":"/ru/docs/about/promote/integration","docId":"about/promote/integration","unlisted":false},{"type":"link","label":"\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435","href":"/ru/docs/about/promote/partial-application","className":"sidebar-item--wip","docId":"about/promote/partial-application","unlisted":false},{"type":"link","label":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435","href":"/ru/docs/about/promote/for-team","className":"sidebar-item--wip","docId":"about/promote/for-team","unlisted":false},{"type":"link","label":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438","href":"/ru/docs/about/promote/for-company","className":"sidebar-item--wip","docId":"about/promote/for-company","unlisted":false}]}],"collapsible":false,"collapsed":false,"href":"/ru/docs/about/"}]},"docs":{"about/alternatives":{"id":"about/alternatives","title":"\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b","description":"\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432","sidebar":"aboutSidebar"},"about/index":{"id":"about/index","title":"\ud83c\udf70 \u041e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","description":"BACKGROUND-ORIENTED","sidebar":"aboutSidebar"},"about/mission":{"id":"about/mission","title":"\u041c\u0438\u0441\u0441\u0438\u044f","description":"\u0417\u0434\u0435\u0441\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0446\u0435\u043b\u0438 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443\u0435\u043c\u0441\u044f \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","sidebar":"aboutSidebar"},"about/motivation":{"id":"about/motivation","title":"\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f","description":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f Feature-Sliced Design - \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0438 \u0443\u0434\u0435\u0448\u0435\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0445 \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439, \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u044b\u0442\u0430 \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.","sidebar":"aboutSidebar"},"about/promote/for-company":{"id":"about/promote/for-company","title":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438","description":"\u041d\u0443\u0436\u043d\u0430 \u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438?","sidebar":"aboutSidebar"},"about/promote/for-team":{"id":"about/promote/for-team","title":"\u041f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435","description":"- \u041e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433 \u043d\u043e\u0432\u044b\u0445 \u043b\u044e\u0434\u0435\u0439","sidebar":"aboutSidebar"},"about/promote/integration":{"id":"about/promote/integration","title":"\u0410\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438","description":"\u0427\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435?","sidebar":"aboutSidebar"},"about/promote/partial-application":{"id":"about/promote/partial-application","title":"\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435","description":"\u041a\u0430\u043a \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044e? \u0418\u043c\u0435\u0435\u0442 \u043b\u0438 \u0441\u043c\u044b\u0441\u043b? \u0427\u0442\u043e \u0435\u0441\u043b\u0438 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c?","sidebar":"aboutSidebar"},"about/understanding/abstractions":{"id":"about/understanding/abstractions","title":"\u0410\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438","description":"\u0417\u0430\u043a\u043e\u043d \u0434\u044b\u0440\u044f\u0432\u044b\u0445 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439","sidebar":"aboutSidebar"},"about/understanding/architecture":{"id":"about/understanding/architecture","title":"\u041e\u0431 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435","description":"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b","sidebar":"aboutSidebar"},"about/understanding/knowledge-types":{"id":"about/understanding/knowledge-types","title":"\u0422\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435","description":"\u0412 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \\"\u0442\u0438\u043f\u044b \u0437\u043d\u0430\u043d\u0438\u0439\\":","sidebar":"aboutSidebar"},"about/understanding/naming":{"id":"about/understanding/naming","title":"\u041d\u0435\u0439\u043c\u0438\u043d\u0433","description":"\u0423 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0434\u043e\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:","sidebar":"aboutSidebar"},"about/understanding/needs-driven":{"id":"about/understanding/needs-driven","title":"\u041e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0435 \u0437\u0430\u0434\u0430\u0447","description":"\u2014 \u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0448\u0430\u0442\u044c \u043d\u043e\u0432\u0430\u044f \u0444\u0438\u0447\u0430? \u0410 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0430\u043c\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430? **\u0421\u043c\u044b\u0441\u043b \u0435\u0449\u0451 \u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u043e\u043c\u043e\u0433\u043b\u0430 \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043d\u0430\u0440\u0443\u0436\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447 \u0438 \u0446\u0435\u043b\u0435\u0439**","sidebar":"aboutSidebar"},"about/understanding/signals":{"id":"about/understanding/signals","title":"\u0421\u0438\u0433\u043d\u0430\u043b\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b","description":"\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b - \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430 \u0442\u043e \u0435\u0441\u0442\u044c \u044f\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b, \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f, \u0435\u0441\u043b\u0438 \u0438\u0445 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c","sidebar":"aboutSidebar"},"branding":{"id":"branding","title":"\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0431\u0440\u0435\u043d\u0434\u0438\u043d\u0433\u0443","description":"\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u0439\u0434\u0435\u043d\u0442\u0438\u043a\u0430 FSD \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0435\u0433\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f\u0445: Layered, Sliced self-contained parts, Parts & Compose, Segmented."},"get-started/cheatsheet":{"id":"get-started/cheatsheet","title":"\u041f\u0430\u043c\u044f\u0442\u043a\u0430 \u043f\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438","description":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0435\u0451 \u043a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0440\u0435\u0448\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0432\u0430\u0448 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e \u0441\u043b\u043e\u044f\u043c. \u041d\u0438\u0436\u0435 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 PDF-\u0432\u0435\u0440\u0441\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u0435\u0451 \u0438 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u0434 \u043f\u043e\u0434\u0443\u0448\u043a\u043e\u0439.","sidebar":"getstartedSidebar"},"get-started/faq":{"id":"get-started/faq","title":"FAQ","description":"\u0421\u0432\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0432 Telegram-\u0447\u0430\u0442\u0435, Discord-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u0438 GitHub Discussions.","sidebar":"getstartedSidebar"},"get-started/index":{"id":"get-started/index","title":"\ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442","description":"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c! \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u0435\u0433\u043b\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c Feature-Sliced Design \u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043f\u043e\u0439\u043c\u0435\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f.","sidebar":"getstartedSidebar"},"get-started/overview":{"id":"get-started/overview","title":"\u041e\u0431\u0437\u043e\u0440","description":"Feature-Sliced Design (FSD) \u2014 \u044d\u0442\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u0430\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041f\u0440\u043e\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0430\u0432\u0438\u043b \u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0439 \u043f\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0434\u0430. \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u044d\u0442\u043e\u0439 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435 \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0435\u0435 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0431\u0438\u0437\u043d\u0435\u0441-\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439.","sidebar":"getstartedSidebar"},"get-started/tutorial":{"id":"get-started/tutorial","title":"\u0422\u0443\u0442\u043e\u0440\u0438\u0430\u043b","description":"\u0427\u0430\u0441\u0442\u044c 1. \u041d\u0430 \u0431\u0443\u043c\u0430\u0433\u0435","sidebar":"getstartedSidebar"},"guides/examples/auth":{"id":"guides/examples/auth","title":"Auth","description":"\u0412\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0435\u0441\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430, \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435.","sidebar":"guidesSidebar"},"guides/examples/autocompleted":{"id":"guides/examples/autocompleted","title":"\u0410\u0432\u0442\u043e\u043a\u043e\u043c\u043f\u043b\u0438\u0442","description":"\u041f\u0440\u043e \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043f\u043e \u0441\u043b\u043e\u044f\u043c","sidebar":"guidesSidebar"},"guides/examples/browser-api":{"id":"guides/examples/browser-api","title":"Browser API","description":"\u041f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Browser API: localStorage, audioApi, bluetoothAPI \u0438 \u0442.\u043f.","sidebar":"guidesSidebar"},"guides/examples/cms":{"id":"guides/examples/cms","title":"CMS","description":"\u0424\u0438\u0447\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435","sidebar":"guidesSidebar"},"guides/examples/feedback":{"id":"guides/examples/feedback","title":"\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c","description":"Errors, Alerts, Notifications, ...","sidebar":"guidesSidebar"},"guides/examples/i18n":{"id":"guides/examples/i18n","title":"i18n","description":"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c? \u041a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c?","sidebar":"guidesSidebar"},"guides/examples/index":{"id":"guides/examples/index","title":"\u041f\u0440\u0438\u043c\u0435\u0440\u044b","description":"\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","sidebar":"guidesSidebar"},"guides/examples/metric":{"id":"guides/examples/metric","title":"\u041c\u0435\u0442\u0440\u0438\u043a\u0430","description":"\u041f\u0440\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438","sidebar":"guidesSidebar"},"guides/examples/monorepo":{"id":"guides/examples/monorepo","title":"\u041c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438","description":"\u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432, \u043f\u0440\u043e bff, \u043f\u0440\u043e \u043c\u0438\u043a\u0440\u043e\u0430\u043f\u043f\u044b","sidebar":"guidesSidebar"},"guides/examples/page-layout":{"id":"guides/examples/page-layout","title":"PageLayout","description":"Header","sidebar":"guidesSidebar"},"guides/examples/platforms":{"id":"guides/examples/platforms","title":"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b","description":"\u041f\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043b\u044f desktop/touch","sidebar":"guidesSidebar"},"guides/examples/ssr":{"id":"guides/examples/ssr","title":"SSR","description":"\u041f\u0440\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e SSR \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438","sidebar":"guidesSidebar"},"guides/examples/theme":{"id":"guides/examples/theme","title":"\u0422\u0435\u043c\u0438\u0437\u0430\u0446\u0438\u044f","description":"\u041a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0442\u0435\u043c\u043e\u0439 \u0438 \u043f\u0430\u043b\u0438\u0442\u0440\u043e\u0439?","sidebar":"guidesSidebar"},"guides/examples/types":{"id":"guides/examples/types","title":"\u0422\u0438\u043f\u044b","description":"\u0422\u0438\u043f\u044b \u0431\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435","sidebar":"guidesSidebar"},"guides/examples/white-labels":{"id":"guides/examples/white-labels","title":"White Labels","description":"Figma, brand uikit, templates, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u043a \u0431\u0440\u0435\u043d\u0434\u0430\u043c","sidebar":"guidesSidebar"},"guides/index":{"id":"guides/index","title":"\ud83c\udfaf \u0413\u0430\u0439\u0434\u044b","description":"PRACTICE-ORIENTED","sidebar":"guidesSidebar"},"guides/issues/cross-imports":{"id":"guides/issues/cross-imports","title":"\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b","description":"\u041a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u043b\u043e\u0439/\u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0431\u0440\u0430\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0447\u0435\u043c \u0434\u043e\u043b\u0436\u043d\u0430. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0441\u043b\u043e\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0440\u0430\u0441\u0446\u0435\u043f\u0438\u0442\u044c \u044d\u0442\u0438 \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b","sidebar":"guidesSidebar"},"guides/issues/desegmented":{"id":"guides/issues/desegmented","title":"\u0414\u0435\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","description":"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f","sidebar":"guidesSidebar"},"guides/issues/routes":{"id":"guides/issues/routes","title":"\u0420\u043e\u0443\u0442\u0438\u043d\u0433","description":"\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f","sidebar":"guidesSidebar"},"guides/migration/from-legacy":{"id":"guides/migration/from-legacy","title":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 legacy","description":"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u043f\u044b\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0443 \u043d\u0430 Feature-Sliced Design \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438","sidebar":"guidesSidebar"},"guides/migration/from-v1":{"id":"guides/migration/from-v1","title":"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 v1","description":"\u0417\u0430\u0447\u0435\u043c v2?","sidebar":"guidesSidebar"},"guides/tech/with-nextjs":{"id":"guides/tech/with-nextjs","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS","description":"\u0412 NextJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NextJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD \u0432 \u0434\u0432\u0443\u0445 \u043f\u0443\u043d\u043a\u0442\u0430\u0445:","sidebar":"guidesSidebar"},"guides/tech/with-nuxtjs":{"id":"guides/tech/with-nuxtjs","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS","description":"\u0412 NuxtJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NuxtJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD:","sidebar":"guidesSidebar"},"guides/tech/with-react-query":{"id":"guides/tech/with-react-query","title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 React Query","description":"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \xab\u043a\u0443\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0438\xbb","sidebar":"guidesSidebar"},"intro":{"id":"intro","title":"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","description":"feature-sliced-banner"},"privacy":{"id":"privacy","title":"\u041a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c","description":"\u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043a\u0443\u043a\u0438, \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (\u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0441\u0430\u0439\u0442\u0430, \u0438 \u043d\u0438 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445 \u0438\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439)"},"reference/index":{"id":"reference/index","title":"\ud83d\udcda \u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a","description":"\u0420\u0430\u0437\u0434\u0435\u043b \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438.","sidebar":"referenceSidebar"},"reference/isolation/coupling-cohesion":{"id":"reference/isolation/coupling-cohesion","title":"Low Coupling & High Cohesion","description":"\u041c\u043e\u0434\u0443\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e (\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0447\u0435\u0442\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u0438 \u0441\u043b\u0430\u0431\u043e\u0439 \u0437\u0430\u0446\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e (\u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439)","sidebar":"referenceSidebar"},"reference/isolation/decouple-entities":{"id":"reference/isolation/decouple-entities","title":"Decouple entities","description":"\u041f\u0440\u043e \u043a\u0440\u043e\u0441\u0441-\u0438\u043c\u043f\u043e\u0440\u0442\u044b \u0442\u0438\u043f\u043e\u0432, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b \u0438 \u043f\u0440\u043e \u0442\u043e - \u043a\u0430\u043a \u044f\u0432\u043d\u043e \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438","sidebar":"referenceSidebar"},"reference/isolation/index":{"id":"reference/isolation/index","title":"\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439","description":"\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u043e \u0437\u043e\u043d\u0430\u043c \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 (layer, slice, segment)","sidebar":"referenceSidebar"},"reference/layers":{"id":"reference/layers","title":"\u0421\u043b\u043e\u0438","description":"\u0421\u043b\u043e\u0438 - \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432 Feature-Sliced Design. \u0418\u0445 \u0446\u0435\u043b\u044c - \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u043e\u0433\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0435\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438 \u043e\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043e\u043d \u0437\u0430\u0432\u0438\u0441\u0438\u0442.","sidebar":"referenceSidebar"},"reference/public-api":{"id":"reference/public-api","title":"\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435 API \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f","description":"\u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u044c.","sidebar":"referenceSidebar"},"reference/slices-segments":{"id":"reference/slices-segments","title":"\u0421\u043b\u0430\u0439\u0441\u044b \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b","description":"\u0421\u043b\u0430\u0439\u0441\u044b","sidebar":"referenceSidebar"}}}}')}}]); \ No newline at end of file diff --git a/ru/assets/js/4eea1952.e8f2f9d4.js b/ru/assets/js/4eea1952.630119ea.js similarity index 61% rename from ru/assets/js/4eea1952.e8f2f9d4.js rename to ru/assets/js/4eea1952.630119ea.js index 4d648460c0..1d01755181 100644 --- a/ru/assets/js/4eea1952.e8f2f9d4.js +++ b/ru/assets/js/4eea1952.630119ea.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[887],{1800:(e,t,i)=>{i.d(t,{Ay:()=>u,RM:()=>o});var s=i(6070),n=i(7468),r=(i(758),i(2992)),c=i(3920);const d=e=>{let{ticket:t}=e;const i=`https://github.com/feature-sliced/documentation/issues/${t}`;return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{children:(0,c.T)({id:"shared.wip.title"})}),(0,s.jsx)("p",{children:(0,c.T)({id:"shared.wip.subtitle"})}),(0,s.jsxs)("ul",{children:[(0,s.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.feedback.base"}),(0,s.jsx)(r.A,{to:i,children:(0,c.T)({id:"shared.wip.var.feedback.link"})})]}),(0,s.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.material.base"}),(0,s.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,c.T)({id:"shared.wip.var.material.link"})})]}),(0,s.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.contribute.base"}),(0,s.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,c.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,s.jsx)("br",{}),(0,s.jsx)("p",{children:(0,s.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},o=[];function a(e){const t={admonition:"admonition",...(0,n.R)(),...e.components};return(0,s.jsx)(t.admonition,{title:"WIP",type:"caution",children:(0,s.jsx)(d,{ticket:e.ticket})})}function u(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},787:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>p,frontMatter:()=>c,metadata:()=>o,toc:()=>u});var s=i(6070),n=i(7468),r=i(1800);const c={sidebar_class_name:"sidebar-item--wip"},d="\u041c\u0435\u0442\u0440\u0438\u043a\u0430",o={id:"guides/examples/metric",title:"\u041c\u0435\u0442\u0440\u0438\u043a\u0430",description:"\u041f\u0440\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/metric.mdx",sourceDirName:"guides/examples",slug:"/guides/examples/metric",permalink:"/ru/docs/guides/examples/metric",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/metric.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,frontMatter:{sidebar_class_name:"sidebar-item--wip"},sidebar:"guidesSidebar",previous:{title:"\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c",permalink:"/ru/docs/guides/examples/feedback"},next:{title:"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b",permalink:"/ru/docs/guides/examples/platforms"}},a={},u=[...r.RM];function l(e){const t={blockquote:"blockquote",h1:"h1",p:"p",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"\u043c\u0435\u0442\u0440\u0438\u043a\u0430",children:"\u041c\u0435\u0442\u0440\u0438\u043a\u0430"}),"\n",(0,s.jsx)(r.Ay,{ticket:"181"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"\u041f\u0440\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438"}),"\n"]})]})}function p(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},7468:(e,t,i)=>{i.d(t,{R:()=>c,x:()=>d});var s=i(758);const n={},r=s.createContext(n);function c(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[887],{1800:(e,t,i)=>{i.d(t,{Ay:()=>u,RM:()=>o});var s=i(6070),n=i(7468),r=(i(758),i(2992)),c=i(3920);const d=e=>{let{ticket:t}=e;const i=`https://github.com/feature-sliced/documentation/issues/${t}`;return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{children:(0,c.T)({id:"shared.wip.title"})}),(0,s.jsx)("p",{children:(0,c.T)({id:"shared.wip.subtitle"})}),(0,s.jsxs)("ul",{children:[(0,s.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.feedback.base"}),(0,s.jsx)(r.A,{to:i,children:(0,c.T)({id:"shared.wip.var.feedback.link"})})]}),(0,s.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.material.base"}),(0,s.jsx)(r.A,{to:"https://t.me/feature_sliced",children:(0,c.T)({id:"shared.wip.var.material.link"})})]}),(0,s.jsxs)("li",{children:[(0,c.T)({id:"shared.wip.var.contribute.base"}),(0,s.jsx)(r.A,{to:"https://github.com/feature-sliced/documentation/blob/master/CONTRIBUTING.md",children:(0,c.T)({id:"shared.wip.var.contribute.link"})})]})]}),(0,s.jsx)("br",{}),(0,s.jsx)("p",{children:(0,s.jsx)("i",{children:"\ud83c\udf70 Stay tuned!"})})]})},o=[];function a(e){const t={admonition:"admonition",...(0,n.R)(),...e.components};return(0,s.jsx)(t.admonition,{title:"WIP",type:"caution",children:(0,s.jsx)(d,{ticket:e.ticket})})}function u(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},787:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>p,frontMatter:()=>c,metadata:()=>o,toc:()=>u});var s=i(6070),n=i(7468),r=i(1800);const c={sidebar_class_name:"sidebar-item--wip"},d="\u041c\u0435\u0442\u0440\u0438\u043a\u0430",o={id:"guides/examples/metric",title:"\u041c\u0435\u0442\u0440\u0438\u043a\u0430",description:"\u041f\u0440\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/metric.mdx",sourceDirName:"guides/examples",slug:"/guides/examples/metric",permalink:"/ru/docs/guides/examples/metric",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/examples/metric.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,frontMatter:{sidebar_class_name:"sidebar-item--wip"},sidebar:"guidesSidebar",previous:{title:"\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c",permalink:"/ru/docs/guides/examples/feedback"},next:{title:"Desktop/Touch \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b",permalink:"/ru/docs/guides/examples/platforms"}},a={},u=[...r.RM];function l(e){const t={blockquote:"blockquote",h1:"h1",p:"p",...(0,n.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"\u043c\u0435\u0442\u0440\u0438\u043a\u0430",children:"\u041c\u0435\u0442\u0440\u0438\u043a\u0430"}),"\n",(0,s.jsx)(r.Ay,{ticket:"181"}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsx)(t.p,{children:"\u041f\u0440\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438"}),"\n"]})]})}function p(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},7468:(e,t,i)=>{i.d(t,{R:()=>c,x:()=>d});var s=i(758);const n={},r=s.createContext(n);function c(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/58b64b99.2a9b780a.js b/ru/assets/js/58b64b99.2a9b780a.js deleted file mode 100644 index 264e6a72b3..0000000000 --- a/ru/assets/js/58b64b99.2a9b780a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[8056],{9441:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>p,contentTitle:()=>r,default:()=>l,frontMatter:()=>c,metadata:()=>i,toc:()=>a});var d=n(6070),t=n(7468);const c={sidebar_position:10},r="\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS",i={id:"guides/tech/with-nextjs",title:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS",description:"\u0412 NextJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NextJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD \u0432 \u0434\u0432\u0443\u0445 \u043f\u0443\u043d\u043a\u0442\u0430\u0445:",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/tech/with-nextjs.mdx",sourceDirName:"guides/tech",slug:"/guides/tech/with-nextjs",permalink:"/ru/docs/guides/tech/with-nextjs",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/tech/with-nextjs.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:10,frontMatter:{sidebar_position:10},sidebar:"guidesSidebar",previous:{title:"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 v1",permalink:"/ru/docs/guides/migration/from-v1"},next:{title:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS",permalink:"/ru/docs/guides/tech/with-nuxtjs"}},p={},a=[{value:"\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043c\u0435\u0436\u0434\u0443 FSD \u0438 NextJS \u0432 \u0441\u043b\u043e\u0435 pages",id:"pages-conflict",level:2},{value:"\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 pages NextJS \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)",id:"\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435-\u043f\u0430\u043f\u043a\u0438-pages-nextjs-\u0432-\u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e-\u043f\u0430\u043f\u043a\u0443-\u043f\u0440\u043e\u0435\u043a\u0442\u0430-\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f",level:3},{value:"\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 pages \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 FSD",id:"\u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435-\u043f\u0430\u043f\u043a\u0438-pages-\u0432-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435-fsd",level:3},{value:"\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 app \u0432 NextJS",id:"app-absence",level:2},{value:"\u0418\u043c\u043f\u043e\u0440\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 pages/_app.tsx",id:"\u0438\u043c\u043f\u043e\u0440\u0442-\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438-\u0432-pages_apptsx",level:3},{value:"\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 App Router",id:"app-router",level:2},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function o(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(s.h1,{id:"\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435-\u0441-nextjs",children:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS"}),"\n",(0,d.jsx)(s.p,{children:"\u0412 NextJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NextJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD \u0432 \u0434\u0432\u0443\u0445 \u043f\u0443\u043d\u043a\u0442\u0430\u0445:\xa0"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsxs)(s.li,{children:["\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0441\u043b\u043e\u0435 ",(0,d.jsx)(s.code,{children:"pages"})]}),"\n",(0,d.jsxs)(s.li,{children:["\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043b\u043e\u044f ",(0,d.jsx)(s.code,{children:"app"})," \u0432 NextJS"]}),"\n"]}),"\n",(0,d.jsxs)(s.h2,{id:"pages-conflict",children:["\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043c\u0435\u0436\u0434\u0443 FSD \u0438 NextJS \u0432 \u0441\u043b\u043e\u0435 ",(0,d.jsx)(s.code,{children:"pages"})]}),"\n",(0,d.jsxs)(s.p,{children:["NextJS \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 ",(0,d.jsx)(s.code,{children:"pages"})," \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. NextJS \u043e\u0436\u0438\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0444\u0430\u0439\u043b\u044b \u0432 \u043f\u0430\u043f\u043a\u0435 ",(0,d.jsx)(s.code,{children:"pages"})," \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c URL-\u0430\u0434\u0440\u0435\u0441\u0430\u043c.\n\u042d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 ",(0,d.jsx)(s.strong,{children:"\u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442"})," \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 FSD, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u0442\u0430\u043a\u043e\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0441\u043e\u0431\u043b\u044e\u0441\u0442\u0438 \u043f\u043b\u043e\u0441\u043a\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u043b\u0430\u0439\u0441\u043e\u0432."]}),"\n",(0,d.jsxs)(s.h3,{id:"\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435-\u043f\u0430\u043f\u043a\u0438-pages-nextjs-\u0432-\u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e-\u043f\u0430\u043f\u043a\u0443-\u043f\u0440\u043e\u0435\u043a\u0442\u0430-\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f",children:["\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)"]}),"\n",(0,d.jsxs)(s.p,{children:["\u041f\u043e\u0434\u0445\u043e\u0434 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 FSD \u0432 \u043f\u0430\u043f\u043a\u0443 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS. \u042d\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\n\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 FSD \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"src"}),"."]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-sh",children:"\u251c\u2500\u2500 pages # \u041f\u0430\u043f\u043a\u0430 pages (NextJS)\n\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app\n\u2502 \u251c\u2500\u2500 entities\n\u2502 \u251c\u2500\u2500 features\n\u2502 \u251c\u2500\u2500 pages # \u041f\u0430\u043f\u043a\u0430 pages (FSD)\n\u2502 \u251c\u2500\u2500 shared\n\u2502 \u251c\u2500\u2500 widgets\n"})}),"\n",(0,d.jsxs)(s.h3,{id:"\u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435-\u043f\u0430\u043f\u043a\u0438-pages-\u0432-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435-fsd",children:["\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"pages"})," \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 FSD"]}),"\n",(0,d.jsxs)(s.p,{children:["\u0414\u0440\u0443\u0433\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 - \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 ",(0,d.jsx)(s.code,{children:"pages"})," \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 FSD, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u0441 \u043f\u0430\u043f\u043a\u043e\u0439 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS.\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 ",(0,d.jsx)(s.code,{children:"pages"})," \u0432 FSD \u0432 ",(0,d.jsx)(s.code,{children:"views"}),".\xa0\n\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 ",(0,d.jsx)(s.code,{children:"src"})," \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0439 \u0441 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 NextJS."]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-sh",children:"\u251c\u2500\u2500 app\n\u251c\u2500\u2500 entities\n\u251c\u2500\u2500 features\n\u251c\u2500\u2500 pages # \u041f\u0430\u043f\u043a\u0430 pages (NextJS)\n\u251c\u2500\u2500 views # \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 FSD\n\u251c\u2500\u2500 shared\n\u251c\u2500\u2500 widgets\n"})}),"\n",(0,d.jsxs)(s.p,{children:["\u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u2014 \u0432 README \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u042d\u0442\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u0447\u0430\u0441\u0442\u044c ",(0,d.jsx)(s.a,{href:"/docs/about/understanding/knowledge-types",children:'"\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439"'}),"."]}),"\n",(0,d.jsxs)(s.h2,{id:"app-absence",children:["\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"app"})," \u0432 NextJS"]}),"\n",(0,d.jsxs)(s.p,{children:["\u0412 NextJS \u043d\u0438\u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 13 \u043d\u0435\u0442 \u044f\u0432\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"app"}),", \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e NextJS \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u0430\u0439\u043b ",(0,d.jsx)(s.code,{children:"_app.tsx"}),",\n\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043e\u0431\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u0440\u043e\u0435\u043a\u0442\u0430."]}),"\n",(0,d.jsxs)(s.h3,{id:"\u0438\u043c\u043f\u043e\u0440\u0442-\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438-\u0432-pages_apptsx",children:["\u0418\u043c\u043f\u043e\u0440\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 ",(0,d.jsx)(s.code,{children:"pages/_app.tsx"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"app"})," \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 NextJS, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ",(0,d.jsx)(s.code,{children:"App"})," \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043b\u043e\u044f ",(0,d.jsx)(s.code,{children:"app"})," \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ",(0,d.jsx)(s.code,{children:"App"})," \u0432 ",(0,d.jsx)(s.code,{children:"pages/_app.tsx"}),", \u0447\u0442\u043e\u0431\u044b NextJS \u043c\u043e\u0433 \u0441 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:"]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-tsx",children:"// app/providers/index.tsx\n\nconst App = ({ Component, pageProps }: AppProps) => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n"})}),"\n",(0,d.jsxs)(s.p,{children:["\u0417\u0430\u0442\u0435\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ",(0,d.jsx)(s.code,{children:"App"})," \u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 ",(0,d.jsx)(s.code,{children:"pages/_app.tsx"})," \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:"]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-tsx",children:"// pages/_app.tsx\n\nimport 'app/styles/index.scss'\n\nexport { default } from 'app/providers';\n"})}),"\n",(0,d.jsx)(s.h2,{id:"app-router",children:"\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 App Router"}),"\n",(0,d.jsxs)(s.p,{children:["App Router \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c \u0432 NextJS \u0432\u0435\u0440\u0441\u0438\u0438 13.4. App Router \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 ",(0,d.jsx)(s.code,{children:"app"})," \u0434\u043b\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"pages"}),".\n\u0414\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c FSD, \u0432\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u0430\u043f\u043a\u043e\u0439 ",(0,d.jsx)(s.code,{children:"app"})," NextJS \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f\n\u0434\u043b\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u0441 \u043f\u0430\u043f\u043a\u043e\u0439 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS."]}),"\n",(0,d.jsxs)(s.p,{children:["\u041f\u043e\u0434\u0445\u043e\u0434 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"app"})," NextJS \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 FSD \u0432 \u043f\u0430\u043f\u043a\u0443 ",(0,d.jsx)(s.code,{children:"app"})," NextJS. \u042d\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\n\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 FSD \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"src"}),"."]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-sh",children:"\u251c\u2500\u2500 app # \u041f\u0430\u043f\u043a\u0430 app (NextJS)\n\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app # \u041f\u0430\u043f\u043a\u0430 app (FSD)\n\u2502 \u251c\u2500\u2500 entities\n\u2502 \u251c\u2500\u2500 features\n\u2502 \u251c\u2500\u2500 pages\n\u2502 \u251c\u2500\u2500 shared\n\u2502 \u251c\u2500\u2500 widgets\n"})}),"\n",(0,d.jsx)(s.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.a,{href:"https://t.me/feature_sliced/3623",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e pages \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432 NextJS"})}),"\n"]})]})}function l(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,d.jsx)(s,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}},7468:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>i});var d=n(758);const t={},c=d.createContext(t);function r(e){const s=d.useContext(c);return d.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),d.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/58b64b99.fb1646a9.js b/ru/assets/js/58b64b99.fb1646a9.js new file mode 100644 index 0000000000..121b5f27a2 --- /dev/null +++ b/ru/assets/js/58b64b99.fb1646a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[8056],{9441:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>p,contentTitle:()=>r,default:()=>l,frontMatter:()=>c,metadata:()=>i,toc:()=>a});var d=n(6070),t=n(7468);const c={sidebar_position:10},r="\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS",i={id:"guides/tech/with-nextjs",title:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS",description:"\u0412 NextJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NextJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD \u0432 \u0434\u0432\u0443\u0445 \u043f\u0443\u043d\u043a\u0442\u0430\u0445:",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/tech/with-nextjs.mdx",sourceDirName:"guides/tech",slug:"/guides/tech/with-nextjs",permalink:"/ru/docs/guides/tech/with-nextjs",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/tech/with-nextjs.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:10,frontMatter:{sidebar_position:10},sidebar:"guidesSidebar",previous:{title:"\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 v1",permalink:"/ru/docs/guides/migration/from-v1"},next:{title:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS",permalink:"/ru/docs/guides/tech/with-nuxtjs"}},p={},a=[{value:"\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043c\u0435\u0436\u0434\u0443 FSD \u0438 NextJS \u0432 \u0441\u043b\u043e\u0435 pages",id:"pages-conflict",level:2},{value:"\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 pages NextJS \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)",id:"\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435-\u043f\u0430\u043f\u043a\u0438-pages-nextjs-\u0432-\u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e-\u043f\u0430\u043f\u043a\u0443-\u043f\u0440\u043e\u0435\u043a\u0442\u0430-\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f",level:3},{value:"\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 pages \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 FSD",id:"\u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435-\u043f\u0430\u043f\u043a\u0438-pages-\u0432-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435-fsd",level:3},{value:"\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 app \u0432 NextJS",id:"app-absence",level:2},{value:"\u0418\u043c\u043f\u043e\u0440\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 pages/_app.tsx",id:"\u0438\u043c\u043f\u043e\u0440\u0442-\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438-\u0432-pages_apptsx",level:3},{value:"\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 App Router",id:"app-router",level:2},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"see-also",level:2}];function o(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(s.h1,{id:"\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435-\u0441-nextjs",children:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS"}),"\n",(0,d.jsx)(s.p,{children:"\u0412 NextJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NextJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD \u0432 \u0434\u0432\u0443\u0445 \u043f\u0443\u043d\u043a\u0442\u0430\u0445:\xa0"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsxs)(s.li,{children:["\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0441\u043b\u043e\u0435 ",(0,d.jsx)(s.code,{children:"pages"})]}),"\n",(0,d.jsxs)(s.li,{children:["\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043b\u043e\u044f ",(0,d.jsx)(s.code,{children:"app"})," \u0432 NextJS"]}),"\n"]}),"\n",(0,d.jsxs)(s.h2,{id:"pages-conflict",children:["\u041a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043c\u0435\u0436\u0434\u0443 FSD \u0438 NextJS \u0432 \u0441\u043b\u043e\u0435 ",(0,d.jsx)(s.code,{children:"pages"})]}),"\n",(0,d.jsxs)(s.p,{children:["NextJS \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 ",(0,d.jsx)(s.code,{children:"pages"})," \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. NextJS \u043e\u0436\u0438\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0444\u0430\u0439\u043b\u044b \u0432 \u043f\u0430\u043f\u043a\u0435 ",(0,d.jsx)(s.code,{children:"pages"})," \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c URL-\u0430\u0434\u0440\u0435\u0441\u0430\u043c.\n\u042d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 ",(0,d.jsx)(s.strong,{children:"\u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442"})," \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 FSD, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u0442\u0430\u043a\u043e\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0441\u043e\u0431\u043b\u044e\u0441\u0442\u0438 \u043f\u043b\u043e\u0441\u043a\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u043b\u0430\u0439\u0441\u043e\u0432."]}),"\n",(0,d.jsxs)(s.h3,{id:"\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435-\u043f\u0430\u043f\u043a\u0438-pages-nextjs-\u0432-\u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e-\u043f\u0430\u043f\u043a\u0443-\u043f\u0440\u043e\u0435\u043a\u0442\u0430-\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f",children:["\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f)"]}),"\n",(0,d.jsxs)(s.p,{children:["\u041f\u043e\u0434\u0445\u043e\u0434 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 FSD \u0432 \u043f\u0430\u043f\u043a\u0443 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS. \u042d\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\n\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 FSD \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"src"}),"."]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-sh",children:"\u251c\u2500\u2500 pages # \u041f\u0430\u043f\u043a\u0430 pages (NextJS)\n\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app\n\u2502 \u251c\u2500\u2500 entities\n\u2502 \u251c\u2500\u2500 features\n\u2502 \u251c\u2500\u2500 pages # \u041f\u0430\u043f\u043a\u0430 pages (FSD)\n\u2502 \u251c\u2500\u2500 shared\n\u2502 \u251c\u2500\u2500 widgets\n"})}),"\n",(0,d.jsxs)(s.h3,{id:"\u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435-\u043f\u0430\u043f\u043a\u0438-pages-\u0432-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435-fsd",children:["\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"pages"})," \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 FSD"]}),"\n",(0,d.jsxs)(s.p,{children:["\u0414\u0440\u0443\u0433\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 - \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 ",(0,d.jsx)(s.code,{children:"pages"})," \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 FSD, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u0441 \u043f\u0430\u043f\u043a\u043e\u0439 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS.\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0439 ",(0,d.jsx)(s.code,{children:"pages"})," \u0432 FSD \u0432 ",(0,d.jsx)(s.code,{children:"views"}),".\xa0\n\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0430\u043f\u043a\u0435 ",(0,d.jsx)(s.code,{children:"src"})," \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0439 \u0441 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 NextJS."]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-sh",children:"\u251c\u2500\u2500 app\n\u251c\u2500\u2500 entities\n\u251c\u2500\u2500 features\n\u251c\u2500\u2500 pages # \u041f\u0430\u043f\u043a\u0430 pages (NextJS)\n\u251c\u2500\u2500 views # \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 FSD\n\u251c\u2500\u2500 shared\n\u251c\u2500\u2500 widgets\n"})}),"\n",(0,d.jsxs)(s.p,{children:["\u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u2014 \u0432 README \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u042d\u0442\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u0447\u0430\u0441\u0442\u044c ",(0,d.jsx)(s.a,{href:"/docs/about/understanding/knowledge-types",children:'"\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439"'}),"."]}),"\n",(0,d.jsxs)(s.h2,{id:"app-absence",children:["\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"app"})," \u0432 NextJS"]}),"\n",(0,d.jsxs)(s.p,{children:["\u0412 NextJS \u043d\u0438\u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 13 \u043d\u0435\u0442 \u044f\u0432\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"app"}),", \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e NextJS \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u0430\u0439\u043b ",(0,d.jsx)(s.code,{children:"_app.tsx"}),",\n\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043e\u0431\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u0440\u043e\u0435\u043a\u0442\u0430."]}),"\n",(0,d.jsxs)(s.h3,{id:"\u0438\u043c\u043f\u043e\u0440\u0442-\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438-\u0432-pages_apptsx",children:["\u0418\u043c\u043f\u043e\u0440\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 ",(0,d.jsx)(s.code,{children:"pages/_app.tsx"})]}),"\n",(0,d.jsxs)(s.p,{children:["\u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"app"})," \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 NextJS, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ",(0,d.jsx)(s.code,{children:"App"})," \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043b\u043e\u044f ",(0,d.jsx)(s.code,{children:"app"})," \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ",(0,d.jsx)(s.code,{children:"App"})," \u0432 ",(0,d.jsx)(s.code,{children:"pages/_app.tsx"}),", \u0447\u0442\u043e\u0431\u044b NextJS \u043c\u043e\u0433 \u0441 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:"]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-tsx",children:"// app/providers/index.tsx\n\nconst App = ({ Component, pageProps }: AppProps) => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n"})}),"\n",(0,d.jsxs)(s.p,{children:["\u0417\u0430\u0442\u0435\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ",(0,d.jsx)(s.code,{children:"App"})," \u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 ",(0,d.jsx)(s.code,{children:"pages/_app.tsx"})," \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:"]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-tsx",children:"// pages/_app.tsx\n\nimport 'app/styles/index.scss'\n\nexport { default } from 'app/providers';\n"})}),"\n",(0,d.jsx)(s.h2,{id:"app-router",children:"\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 App Router"}),"\n",(0,d.jsxs)(s.p,{children:["App Router \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c \u0432 NextJS \u0432\u0435\u0440\u0441\u0438\u0438 13.4. App Router \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 ",(0,d.jsx)(s.code,{children:"app"})," \u0434\u043b\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"pages"}),".\n\u0414\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c FSD, \u0432\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u0430\u043f\u043a\u043e\u0439 ",(0,d.jsx)(s.code,{children:"app"})," NextJS \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f\n\u0434\u043b\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u0441 \u043f\u0430\u043f\u043a\u043e\u0439 ",(0,d.jsx)(s.code,{children:"pages"})," NextJS."]}),"\n",(0,d.jsxs)(s.p,{children:["\u041f\u043e\u0434\u0445\u043e\u0434 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"app"})," NextJS \u0432 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 FSD \u0432 \u043f\u0430\u043f\u043a\u0443 ",(0,d.jsx)(s.code,{children:"app"})," NextJS. \u042d\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\n\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 FSD \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 ",(0,d.jsx)(s.code,{children:"src"}),"."]}),"\n",(0,d.jsx)(s.pre,{children:(0,d.jsx)(s.code,{className:"language-sh",children:"\u251c\u2500\u2500 app # \u041f\u0430\u043f\u043a\u0430 app (NextJS)\n\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app # \u041f\u0430\u043f\u043a\u0430 app (FSD)\n\u2502 \u251c\u2500\u2500 entities\n\u2502 \u251c\u2500\u2500 features\n\u2502 \u251c\u2500\u2500 pages\n\u2502 \u251c\u2500\u2500 shared\n\u2502 \u251c\u2500\u2500 widgets\n"})}),"\n",(0,d.jsx)(s.h2,{id:"see-also",children:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435"}),"\n",(0,d.jsxs)(s.ul,{children:["\n",(0,d.jsx)(s.li,{children:(0,d.jsx)(s.a,{href:"https://t.me/feature_sliced/3623",children:"(\u0422\u0440\u0435\u0434) \u041f\u0440\u043e pages \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432 NextJS"})}),"\n"]})]})}function l(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,d.jsx)(s,{...e,children:(0,d.jsx)(o,{...e})}):o(e)}},7468:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>i});var d=n(758);const t={},c=d.createContext(t);function r(e){const s=d.useContext(c);return d.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),d.createElement(c.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/ru/assets/js/62f42e37.3171c86c.js b/ru/assets/js/62f42e37.3171c86c.js deleted file mode 100644 index f350ef6cd1..0000000000 --- a/ru/assets/js/62f42e37.3171c86c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[1268],{7473:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>a});var t=s(6070),c=s(7468);const i={sidebar_position:10},r="\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS",d={id:"guides/tech/with-nuxtjs",title:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS",description:"\u0412 NuxtJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NuxtJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD:",source:"@site/i18n/ru/docusaurus-plugin-content-docs/current/guides/tech/with-nuxtjs.mdx",sourceDirName:"guides/tech",slug:"/guides/tech/with-nuxtjs",permalink:"/ru/docs/guides/tech/with-nuxtjs",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/ru/docusaurus-plugin-content-docs/current/guides/tech/with-nuxtjs.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:10,frontMatter:{sidebar_position:10},sidebar:"guidesSidebar",previous:{title:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NextJS",permalink:"/ru/docs/guides/tech/with-nextjs"},next:{title:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 React Query",permalink:"/ru/docs/guides/tech/with-react-query"}},l={},a=[{value:"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u043b\u0438\u0430\u0441\u0430 \u0434\u043b\u044f src \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438",id:"\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435-\u0430\u043b\u0438\u0430\u0441\u0430-\u0434\u043b\u044f-src-\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438",level:2},{value:"\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0443\u0442\u0438\u043d\u0433\u0430 \u0432 src/app",id:"\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435-\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e-\u0440\u043e\u0443\u0442\u0438\u043d\u0433\u0430-\u0432-srcapp",level:2},{value:"\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 layouts?",id:"\u0447\u0442\u043e-\u0434\u0435\u043b\u0430\u0442\u044c-\u0441-layouts",level:2},{value:"\u0421\u043c. \u0442\u0430\u043a\u0436\u0435",id:"\u0441\u043c-\u0442\u0430\u043a\u0436\u0435",level:2}];function o(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,c.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435-\u0441-nuxtjs",children:"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 NuxtJS"}),"\n",(0,t.jsx)(n.p,{children:"\u0412 NuxtJS \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c FSD, \u043e\u0434\u043d\u0430\u043a\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 NuxtJS \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 FSD:\xa0"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e, NuxtJS \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0431\u0435\u0437 \u043f\u0430\u043f\u043a\u0438 ",(0,t.jsx)(n.code,{children:"src"}),", \u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430."]}),"\n",(0,t.jsxs)(n.li,{children:["\u0424\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 ",(0,t.jsx)(n.code,{children:"pages"}),", \u0430 \u0432 FSD \u044d\u0442\u0430 \u043f\u0430\u043f\u043a\u0430 \u043e\u0442\u0432\u0435\u0434\u0435\u043d\u0430 \u043f\u043e\u0434 \u043f\u043b\u043e\u0441\u043a\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u043b\u0430\u0439\u0441\u043e\u0432."]}),"\n"]}),"\n",(0,t.jsxs)(n.h2,{id:"\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435-\u0430\u043b\u0438\u0430\u0441\u0430-\u0434\u043b\u044f-src-\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438",children:["\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u043b\u0438\u0430\u0441\u0430 \u0434\u043b\u044f ",(0,t.jsx)(n.code,{children:"src"})," \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438"]}),"\n",(0,t.jsxs)(n.p,{children:["\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043e\u0431\u044c\u0435\u043a\u0442 ",(0,t.jsx)(n.code,{children:"alias"})," \u0432 \u0432\u0430\u0448 \u043a\u043e\u043d\u0444\u0438\u0433:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ts",metastring:'title="nuxt.config.ts"',children:"export default defineNuxtConfig({\n devtools: { enabled: true }, // \u041d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a FSD, \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u044b \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n alias: {\n \"@\": '~/src'\n },\n})\n"})}),"\n",(0,t.jsxs)(n.h2,{id:"\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435-\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e-\u0440\u043e\u0443\u0442\u0438\u043d\u0433\u0430-\u0432-srcapp",children:["\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0443\u0442\u0438\u043d\u0433\u0430 \u0432 ",(0,t.jsx)(n.code,{children:"src/app"})]}),"\n",(0,t.jsxs)(n.p,{children:["\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 ",(0,t.jsx)(n.code,{children:"src"})," \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441\u043b\u043e\u0438 app \u0438 pages \u0438 \u043f\u0430\u043f\u043a\u0443 routes \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043b\u043e\u044f app.\n\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u0430\u0448\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-sh",children:"\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app\n\u2502 \u2502 \u251c\u2500\u2500 routes\n\u2502 \u251c\u2500\u2500 pages # \u041f\u0430\u043f\u043a\u0430 pages, \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0451\u043d\u043d\u0430\u044f \u0437\u0430 FSD\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b NuxtJS \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u0430\u043f\u043a\u0443 routes \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043b\u043e\u044f ",(0,t.jsx)(n.code,{children:"app"})," \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0443\u0442\u0438\u043d\u0433\u0430, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c ",(0,t.jsx)(n.code,{children:"nuxt.config.ts"})," \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ts",metastring:'title="nuxt.config.ts"',children:"export default defineNuxtConfig({\n devtools: { enabled: true }, // \u041d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a FSD, \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u044b \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n alias: {\n \"@\": '~/src'\n },\n dir: {\n pages: './src/app/routes'\n }\n})\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u0422\u0435\u043f\u0435\u0440\u044c, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u043e\u0443\u0442\u044b \u0434\u043b\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0432\u043d\u0443\u0442\u0440\u0438 ",(0,t.jsx)(n.code,{children:"app"})," \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a \u043d\u0438\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u0437 ",(0,t.jsx)(n.code,{children:"pages"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 ",(0,t.jsx)(n.code,{children:"Home"})," \u0432 \u043f\u0440\u043e\u0435\u043a\u0442, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0430\u0439\u0441 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043b\u043e\u044f ",(0,t.jsx)(n.code,{children:"pages"})]}),"\n",(0,t.jsxs)(n.li,{children:["\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0440\u043e\u0443\u0442 \u0432\u043d\u0443\u0442\u0440\u044c \u0441\u043b\u043e\u044f ",(0,t.jsx)(n.code,{children:"app"})]}),"\n",(0,t.jsx)(n.li,{children:"\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438\u0437 \u0441\u043b\u0430\u0439\u0441\u0430 \u0441 \u0440\u043e\u0443\u0442\u043e\u043c"}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043b\u0430\u0439\u0441 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f ",(0,t.jsx)(n.a,{href:"https://github.com/feature-sliced/cli",children:"CLI"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-shell",children:"fsd pages home\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b ",(0,t.jsx)(n.code,{children:"home-page.vue"})," \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 ui, \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Public API"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-ts",metastring:'title="src/pages/home/index.ts"',children:"export { default as HomePage } from './ui/home-page';\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0440\u043e\u0443\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043b\u043e\u044f ",(0,t.jsx)(n.code,{children:"app"}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-sh",children:"\n\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app\n\u2502 \u2502 \u251c\u2500\u2500 routes\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 index.vue\n\u2502 \u251c\u2500\u2500 pages\n\u2502 \u2502 \u251c\u2500\u2500 home\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 ui\n\u2502 \u2502 \u2502 \u2502 \u251c\u2500\u2500 home-page.vue\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 index.ts\n"})}),"\n",(0,t.jsxs)(n.p,{children:["\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432\u043d\u0443\u0442\u0440\u044c ",(0,t.jsx)(n.code,{children:"index.vue"})," \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",metastring:'title="src/app/routes/index.vue"',children:" - - + +

    ๐ŸŒŽ FSD international community

    ยท 2 ะผะธะฝ. ั‡ั‚ะตะฝะธั
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/ru/blog/archive.html b/ru/blog/archive.html index 7f11504fb5..aec6316c5d 100644 --- a/ru/blog/archive.html +++ b/ru/blog/archive.html @@ -22,8 +22,8 @@ - - + +
    diff --git a/ru/blog/international-community.html b/ru/blog/international-community.html index cd5ac27ff0..22d50e6842 100644 --- a/ru/blog/international-community.html +++ b/ru/blog/international-community.html @@ -22,8 +22,8 @@ - - + +

    ๐ŸŒŽ FSD international community

    ยท 2 ะผะธะฝ. ั‡ั‚ะตะฝะธั
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/ru/blog/rebranding-stable.html b/ru/blog/rebranding-stable.html index 0f4b6b2554..addda8c4e9 100644 --- a/ru/blog/rebranding-stable.html +++ b/ru/blog/rebranding-stable.html @@ -22,8 +22,8 @@ - - + +

    ๐Ÿ’ฅ FSD rebranding!

    ยท 2 ะผะธะฝ. ั‡ั‚ะตะฝะธั
    Ilya Azin
    FSD core-team member
    logo-primary
    diff --git a/ru/blog/tags.html b/ru/blog/tags.html index 47f400b889..6d00b42dea 100644 --- a/ru/blog/tags.html +++ b/ru/blog/tags.html @@ -22,8 +22,8 @@ - - + +
    diff --git a/ru/blog/tags/brand.html b/ru/blog/tags/brand.html index da7a4e31c3..f85044b06b 100644 --- a/ru/blog/tags/brand.html +++ b/ru/blog/tags/brand.html @@ -22,8 +22,8 @@ - - + +

    1 ะทะฐะฟะธััŒ ั ั‚ะตะณะพะผ "brand"

    ะŸะพัะผะพั‚ั€ะตั‚ัŒ ะฒัะต ั‚ะตะณะธ

    ๐Ÿ’ฅ FSD rebranding!

    ยท 2 ะผะธะฝ. ั‡ั‚ะตะฝะธั
    Ilya Azin
    FSD core-team member
    logo-primary
    diff --git a/ru/blog/tags/community.html b/ru/blog/tags/community.html index 78d3e0b071..0f19ce17c5 100644 --- a/ru/blog/tags/community.html +++ b/ru/blog/tags/community.html @@ -22,8 +22,8 @@ - - + +

    1 ะทะฐะฟะธััŒ ั ั‚ะตะณะพะผ "community"

    ะŸะพัะผะพั‚ั€ะตั‚ัŒ ะฒัะต ั‚ะตะณะธ

    ๐ŸŒŽ FSD international community

    ยท 2 ะผะธะฝ. ั‡ั‚ะตะฝะธั
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/ru/blog/tags/discord.html b/ru/blog/tags/discord.html index bc18465dee..9db4b2e3b6 100644 --- a/ru/blog/tags/discord.html +++ b/ru/blog/tags/discord.html @@ -22,8 +22,8 @@ - - + +

    1 ะทะฐะฟะธััŒ ั ั‚ะตะณะพะผ "discord"

    ะŸะพัะผะพั‚ั€ะตั‚ัŒ ะฒัะต ั‚ะตะณะธ

    ๐ŸŒŽ FSD international community

    ยท 2 ะผะธะฝ. ั‡ั‚ะตะฝะธั
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/ru/blog/tags/promo.html b/ru/blog/tags/promo.html index 1ab5740191..d885dc3e2e 100644 --- a/ru/blog/tags/promo.html +++ b/ru/blog/tags/promo.html @@ -22,8 +22,8 @@ - - + +

    2 ะทะฐะฟะธัะธ ั ั‚ะตะณะพะผ "promo"

    ะŸะพัะผะพั‚ั€ะตั‚ัŒ ะฒัะต ั‚ะตะณะธ

    ๐ŸŒŽ FSD international community

    ยท 2 ะผะธะฝ. ั‡ั‚ะตะฝะธั
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/ru/community.html b/ru/community.html index 2594d67d8b..402b10cda1 100644 --- a/ru/community.html +++ b/ru/community.html @@ -22,8 +22,8 @@ - - + +
    +
    Contributing

    HowTo, Workflow, Support

    \ No newline at end of file diff --git a/ru/community/team.html b/ru/community/team.html index f0b720c15f..7b2753da54 100644 --- a/ru/community/team.html +++ b/ru/community/team.html @@ -22,8 +22,8 @@ - - + +

    Team

    @@ -31,6 +31,6 @@

    Core-teamโ€‹

    Championsโ€‹

    Contributorsโ€‹

    -

    Companiesโ€‹

    +

    Companiesโ€‹

    \ No newline at end of file diff --git a/ru/docs.html b/ru/docs.html index ae67cd6f2c..934276a6b8 100644 --- a/ru/docs.html +++ b/ru/docs.html @@ -22,8 +22,8 @@ - - + +

    ะ”ะพะบัƒะผะตะฝั‚ะฐั†ะธั

    @@ -37,6 +37,6 @@
    ๐Ÿ“š ะกะฟั€ะฐะฒะพั‡ะฝะธะบ

    ะกะฟั€ะฐะฒะพั‡ะฝะฐั ะธะฝั„ะพั€ะผะฐั†ะธั ะฟะพ ะบะปัŽั‡ะตะฒั‹ะผ ะฟะพะฝัั‚ะธัะผ ะธ ะบะพะฝั†ะตะฟั†ะธัะผ (ะดะปั ะฑะพะปะตะต ัั„ั„ะตะบั‚ะธะฒะฝะพะณะพ ะฟั€ะธะผะตะฝะตะฝะธั ะฝะฐ ะฟั€ะฐะบั‚ะธะบะต)

    ะฎะฝะธั‚ั‹ โ€ข ะ˜ะทะพะปัั†ะธั โ€ข Public API
    ๐Ÿฐ ะž ะผะตั‚ะพะดะพะปะพะณะธะธ

    ะคะธะปะพัะพั„ะธั ะผะตั‚ะพะดะพะปะพะณะธะธ, ะตะต ั†ะตะปะธ ะธ ะผะตัั‚ะพ ะฒ ัะพะฒั€ะตะผะตะฝะฝะพะผ ั„ั€ะพะฝั‚ะตะฝะดะต

    ะœะธััะธั โ€ข ะŸั€ะพะดะฒะธะถะตะฝะธะต & ะ˜ะฝั‚ะตะณั€ะฐั†ะธั
    ๐Ÿ’ซ ะกะพะพะฑั‰ะตัั‚ะฒะพ

    ะ ะตััƒั€ัั‹ ะธ ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝั‹ะต ะผะฐั‚ะตั€ะธะฐะปั‹, ะฟั€ะตะดะพัั‚ะฐะฒะปะตะฝะฝั‹ะต ัะพะพะฑั‰ะตัั‚ะฒะพะผ

    Awesome โ€ข ะšะพะผะฐะฝะดะฐ โ€ข ะฃั‡ะฐัั‚ะธะต ะฒ ะฟั€ะพะตะบั‚ะต
    -
    ๐Ÿ›  ะŸั€ะธะผะตั€ั‹

    ะŸั€ะธะผะตั€ั‹ ะฟั€ะพะตะบั‚ะพะฒ, ัะฟั€ะพะตะบั‚ะธั€ะพะฒะฐะฝะฝั‹ั… ะฟะพ Feature-Sliced Design

    +
    ๐Ÿ›  ะŸั€ะธะผะตั€ั‹

    ะŸั€ะธะผะตั€ั‹ ะฟั€ะพะตะบั‚ะพะฒ, ัะฟั€ะพะตะบั‚ะธั€ะพะฒะฐะฝะฝั‹ั… ะฟะพ Feature-Sliced Design

    \ No newline at end of file diff --git a/ru/docs/about.html b/ru/docs/about.html index 74bef8a8cb..61331a10c5 100644 --- a/ru/docs/about.html +++ b/ru/docs/about.html @@ -22,8 +22,8 @@ - - + +

    ๐Ÿฐ ะž ะผะตั‚ะพะดะพะปะพะณะธะธ

    @@ -34,6 +34,6 @@

    ะ“ะปะฐะฒะฝะพะต
    ะœะธััะธั

    ะฆะตะปะธ ะธ ะพะณั€ะฐะฝะธั‡ะตะฝะธั ะผะตั‚ะพะดะพะปะพะณะธะธ

    ะœะพั‚ะธะฒะฐั†ะธั

    ะŸั€ะธั‡ะธะฝั‹ ัะพะทะดะฐะฝะธั ะธ ั€ะฐะทะฒะธั‚ะธั ะผะตั‚ะพะดะพะปะพะณะธะธ

    ะŸะพะฝะธะผะฐะฝะธะต

    ะฃะณะปัƒะฑะปะตะฝะฝะพะต ะฟะพะฝะธะผะฐะฝะธะต ะบะพะฝั†ะตะฟั†ะธะน FSD

    ะžะฑ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะต โ€ข Needs driven โ€ข ะะตะนะผะธะฝะณ
    -
    ะŸั€ะพะดะฒะธะถะตะฝะธะต

    ะž ะฟั€ะพะดะฒะธะถะตะฝะธะธ ะธ ะธะฝั‚ะตะณั€ะฐั†ะธะธ FSD ะฒ ะบะพะผะฟะฐะฝะธัั…

    ะ˜ะฝั‚ะตะณั€ะฐั†ะธั โ€ข ะŸั€ะพะดะฒะธะถะตะฝะธะต ะฒ ะบะพะผะฐะฝะดะต โ€ข ะŸั€ะพะดะฒะธะถะตะฝะธะต ะฒ ะบะพะผะฟะฐะฝะธะธ

    +
    ะŸั€ะพะดะฒะธะถะตะฝะธะต

    ะž ะฟั€ะพะดะฒะธะถะตะฝะธะธ ะธ ะธะฝั‚ะตะณั€ะฐั†ะธะธ FSD ะฒ ะบะพะผะฟะฐะฝะธัั…

    ะ˜ะฝั‚ะตะณั€ะฐั†ะธั โ€ข ะŸั€ะพะดะฒะธะถะตะฝะธะต ะฒ ะบะพะผะฐะฝะดะต โ€ข ะŸั€ะพะดะฒะธะถะตะฝะธะต ะฒ ะบะพะผะฟะฐะฝะธะธ
    \ No newline at end of file diff --git a/ru/docs/about/alternatives.html b/ru/docs/about/alternatives.html index d66e6f517d..98643773f6 100644 --- a/ru/docs/about/alternatives.html +++ b/ru/docs/about/alternatives.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/mission.html b/ru/docs/about/mission.html index bde50eabb1..1256273730 100644 --- a/ru/docs/about/mission.html +++ b/ru/docs/about/mission.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะœะธััะธั

    @@ -63,6 +63,6 @@

    ะžะณั€ะฐะฝะธั‡ะต

    ะกะผ. ั‚ะฐะบะถะตโ€‹

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/motivation.html b/ru/docs/about/motivation.html index d4b6c8fb32..6b865e60b7 100644 --- a/ru/docs/about/motivation.html +++ b/ru/docs/about/motivation.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/promote/for-company.html b/ru/docs/about/promote/for-company.html index 15239c197a..abbd04cfe2 100644 --- a/ru/docs/about/promote/for-company.html +++ b/ru/docs/about/promote/for-company.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะŸั€ะพะดะฒะธะถะตะฝะธะต ะฒ ะบะพะผะฟะฐะฝะธะธ

    @@ -33,6 +33,6 @@

    ะšะฐะบ ะฟะพะดะฐั‚ัŒ ะผะตั‚ะพะดะพะปะพะณะธัŽ ะฑะธะทะฝะตััƒ?โ€‹

    -

    ะšะฐะบ ะฟะพะดะณะพั‚ะพะฒะธั‚ัŒ ะธ ะพะฟั€ะฐะฒะดะฐั‚ัŒ ะฟะปะฐะฝ ะฟะพ ะฟะตั€ะตะตะทะดัƒ ะฝะฐ ะผะตั‚ะพะดะพะปะพะณะธัŽ?โ€‹

    +

    ะšะฐะบ ะฟะพะดะณะพั‚ะพะฒะธั‚ัŒ ะธ ะพะฟั€ะฐะฒะดะฐั‚ัŒ ะฟะปะฐะฝ ะฟะพ ะฟะตั€ะตะตะทะดัƒ ะฝะฐ ะผะตั‚ะพะดะพะปะพะณะธัŽ?โ€‹

    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/promote/for-team.html b/ru/docs/about/promote/for-team.html index cbedb51f7f..4931720e1d 100644 --- a/ru/docs/about/promote/for-team.html +++ b/ru/docs/about/promote/for-team.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/promote/integration.html b/ru/docs/about/promote/integration.html index 1eb7008502..cb7e222a53 100644 --- a/ru/docs/about/promote/integration.html +++ b/ru/docs/about/promote/integration.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะัะฟะตะบั‚ั‹ ะธะฝั‚ะตะณั€ะฐั†ะธะธ

    @@ -43,6 +43,6 @@

    ะขะฐะบะถะต

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/promote/partial-application.html b/ru/docs/about/promote/partial-application.html index a1314b9599..9be5241bdf 100644 --- a/ru/docs/about/promote/partial-application.html +++ b/ru/docs/about/promote/partial-application.html @@ -22,14 +22,14 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะงะฐัั‚ะธั‡ะฝะพะต ะฟั€ะธะผะตะฝะตะฝะธะต

    WIP

    ะกั‚ะฐั‚ัŒั ะฝะฐั…ะพะดะธั‚ัั ะฒ ะฟั€ะพั†ะตััะต ะฝะฐะฟะธัะฐะฝะธั

    ะงั‚ะพะฑั‹ ัƒัะบะพั€ะธั‚ัŒ ะตะต ะฟะพัะฒะปะตะฝะธะต, ะผะพะถะฝะพ:


    ๐Ÿฐ Stay tuned!

    ะšะฐะบ ั‡ะฐัั‚ะธั‡ะฝะพ ะฟั€ะธะผะตะฝัั‚ัŒ ะผะตั‚ะพะดะพะปะพะณะธัŽ? ะ˜ะผะตะตั‚ ะปะธ ัะผั‹ัะป? ะงั‚ะพ ะตัะปะธ ะธะณะฝะพั€ะธั€ะพะฒะฐั‚ัŒ?

    -
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/understanding/abstractions.html b/ru/docs/about/understanding/abstractions.html index 54385b0310..b404603a9d 100644 --- a/ru/docs/about/understanding/abstractions.html +++ b/ru/docs/about/understanding/abstractions.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/understanding/architecture.html b/ru/docs/about/understanding/architecture.html index 2b30d9027f..4a7397cdf5 100644 --- a/ru/docs/about/understanding/architecture.html +++ b/ru/docs/about/understanding/architecture.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/understanding/knowledge-types.html b/ru/docs/about/understanding/knowledge-types.html index 903560eacb..9577f945c0 100644 --- a/ru/docs/about/understanding/knowledge-types.html +++ b/ru/docs/about/understanding/knowledge-types.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะขะธะฟั‹ ะทะฝะฐะฝะธะน ะฒ ะฟั€ะพะตะบั‚ะต

    @@ -46,6 +46,6 @@

    ะกะผ. ั‚ะฐะบะถะตโ€‹

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/understanding/naming.html b/ru/docs/about/understanding/naming.html index 145aaf5986..5ad87278ff 100644 --- a/ru/docs/about/understanding/naming.html +++ b/ru/docs/about/understanding/naming.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/understanding/needs-driven.html b/ru/docs/about/understanding/needs-driven.html index ed9f80c516..d9d4f1dff9 100644 --- a/ru/docs/about/understanding/needs-driven.html +++ b/ru/docs/about/understanding/needs-driven.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะž ะฟะพะฝะธะผะฐะฝะธะธ ะฟะพั‚ั€ะตะฑะฝะพัั‚ะตะน ะธ ะพ ั„ะพั€ะผัƒะปะธั€ะพะฒะบะต ะทะฐะดะฐั‡

    @@ -138,6 +138,6 @@

    ะกะผ. ั‚ะฐะบะถะต
  • (ะžะฑััƒะถะดะตะฝะธะต) ะšะฐะบ ั€ะฐะทะฑะธั‚ัŒ ั„ัƒะฝะบั†ะธะพะฝะฐะปัŒะฝะพัั‚ัŒ ะธ ั‡ั‚ะพ ะธะท ัะตะฑั ะพะฝะฐ ะฟั€ะตะดัั‚ะฐะฒะปัะตั‚
  • (ะกั‚ะฐั‚ัŒั) "How to better organize your applications"
  • -

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/about/understanding/signals.html b/ru/docs/about/understanding/signals.html index 91ef659671..f62c9d974f 100644 --- a/ru/docs/about/understanding/signals.html +++ b/ru/docs/about/understanding/signals.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/branding.html b/ru/docs/branding.html index 5ab74f3aad..83f91475bb 100644 --- a/ru/docs/branding.html +++ b/ru/docs/branding.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/get-started.html b/ru/docs/get-started.html index dc6cf2d219..b2db35d317 100644 --- a/ru/docs/get-started.html +++ b/ru/docs/get-started.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/get-started/cheatsheet.html b/ru/docs/get-started/cheatsheet.html index 3f4d009b04..9319165a52 100644 --- a/ru/docs/get-started/cheatsheet.html +++ b/ru/docs/get-started/cheatsheet.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    Unlisted page
    This page is unlisted. Search engines will not index it, and only users having a direct link can access it.
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/get-started/faq.html b/ru/docs/get-started/faq.html index 237bc75604..b25c349a86 100644 --- a/ru/docs/get-started/faq.html +++ b/ru/docs/get-started/faq.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    FAQ

    @@ -53,6 +53,6 @@

    ะšะฐะบ ะผะฝะต ั€ะฐะฑะพั‚ะฐั‚ัŒ ั ะบะพะฝั‚ะตะบัั‚ะพะผ ะฐะฒั‚ะพั€ะธะทะฐั†ะธะธ?โ€‹

    -

    ะžั‚ะฒะตั‚ะธะปะธ ะทะดะตััŒ

    +

    ะžั‚ะฒะตั‚ะธะปะธ ะทะดะตััŒ

    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/get-started/overview.html b/ru/docs/get-started/overview.html index 178146e122..e131c51917 100644 --- a/ru/docs/get-started/overview.html +++ b/ru/docs/get-started/overview.html @@ -3,7 +3,7 @@ -ะžะฑะทะพั€ | Feature-Sliced Design +ะžะฑะทะพั€ | Feature-Sliced Design @@ -22,90 +22,126 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะžะฑะทะพั€

    -

    ะŸะพะดั…ะพะดะธั‚ ะปะธ ัั‚ะพ ะผะฝะต?โ€‹

    -

    FSD ะฟะพะดั…ะพะดะธั‚ ะดะปั ะฟั€ะพะตะบั‚ะพะฒ ะธ ะบะพะผะฐะฝะด ะปัŽะฑะพะณะพ ั€ะฐะทะผะตั€ะฐ ั ะฝะตะบะพั‚ะพั€ั‹ะผะธ ะพะณะพะฒะพั€ะบะฐะผะธ:

    +

    Feature-Sliced Design (FSD) โ€” ัั‚ะพ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะฝะฐั ะผะตั‚ะพะดะพะปะพะณะธั ะดะปั ะฟั€ะพะตะบั‚ะธั€ะพะฒะฐะฝะธั ั„ั€ะพะฝั‚ะตะฝะด-ะฟั€ะธะปะพะถะตะฝะธะน. ะŸั€ะพั‰ะต ะณะพะฒะพั€ั, ัั‚ะพ ะฝะฐะฑะพั€ ะฟั€ะฐะฒะธะป ะธ ัะพะณะปะฐัˆะตะฝะธะน ะฟะพ ะพั€ะณะฐะฝะธะทะฐั†ะธะธ ะบะพะดะฐ. ะ“ะปะฐะฒะฝะฐั ั†ะตะปัŒ ัั‚ะพะน ะผะตั‚ะพะดะพะปะพะณะธะธ โ€” ัะดะตะปะฐั‚ัŒ ะฟั€ะพะตะบั‚ ะฟะพะฝัั‚ะฝะตะต ะธ ัั‚ะฐะฑะธะปัŒะฝะตะต ะฒ ัƒัะปะพะฒะธัั… ะฟะพัั‚ะพัะฝะฝะพ ะผะตะฝััŽั‰ะธั…ัั ะฑะธะทะฝะตั-ั‚ั€ะตะฑะพะฒะฐะฝะธะน.

    +

    ะŸะพะผะธะผะพ ะฝะฐะฑะพั€ะฐ ะฟั€ะฐะฒะธะป, FSD โ€” ัั‚ะพ ั‚ะฐะบะถะต ั†ะตะปั‹ะน ะธะฝัั‚ั€ัƒะผะตะฝั‚ะฐั€ะธะน. ะฃ ะฝะฐั ะตัั‚ัŒ ะปะธะฝั‚ะตั€ ะดะปั ะฟั€ะพะฒะตั€ะบะธ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ ะฒะฐัˆะตะณะพ ะฟั€ะพะตะบั‚ะฐ, ะณะตะฝะตั€ะฐั‚ะพั€ั‹ ะฟะฐะฟะพะบ ั‡ะตั€ะตะท CLI ะธะปะธ IDE, ะฐ ั‚ะฐะบะถะต ะฑะพะณะฐั‚ะฐั ะฑะธะฑะปะธะพั‚ะตะบะฐ ะฟั€ะธะผะตั€ะพะฒ.

    +

    ะŸะพะดั…ะพะดะธั‚ ะปะธ FSD ะผะฝะต?โ€‹

    +

    FSD ะผะพะถะฝะพ ะฒะฝะตะดั€ัั‚ัŒ ะฒ ะฟั€ะพะตะบั‚ะฐั… ะธ ะบะพะผะฐะฝะดะฐั… ะปัŽะฑะพะณะพ ั€ะฐะทะผะตั€ะฐ. ะžะฝะฐ ะฟะพะดั…ะพะดะธั‚ ะดะปั ะฒะฐัˆะตะณะพ ะฟั€ะพะตะบั‚ะฐ, ะตัะปะธ:

      -
    • ะญั‚ะฐ ะผะตั‚ะพะดะพะปะพะณะธั ะธัะบะปัŽั‡ะธั‚ะตะปัŒะฝะพ ะดะปั ั„ั€ะพะฝั‚ะตะฝะดะฐ. ะ•ัะปะธ ะฒั‹ ะธั‰ะตั‚ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ัƒ ะดะปั ะฑัะบะตะฝะดะฐ, ะพะฑั€ะฐั‚ะธั‚ะต ะฒะฝะธะผะฐะฝะธะต ะฝะฐ Clean Architecture.
    • -
    • ะญั‚ะฐ ะผะตั‚ะพะดะพะปะพะณะธั ะธัะบะปัŽั‡ะธั‚ะตะปัŒะฝะพ ะดะปั ะฟั€ะธะปะพะถะตะฝะธะน, ะฐ ะฝะต ะดะปั ะฑะธะฑะปะธะพั‚ะตะบ ะธะปะธ UI-ะบะธั‚ะพะฒ. ะ•ัะปะธ ะฒั‹ ะธั‰ะตั‚ะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ัƒ ะดะปั ะบั€ัƒะฟะฝะพะน ะฑะธะฑะปะธะพั‚ะตะบะธ ะบะพะผะฟะพะฝะตะฝั‚ะพะฒ, ั€ะตะบะพะผะตะฝะดัƒะตะผ ะฒะทัั‚ัŒ ะฟั€ะธะผะตั€ ั Material UI.
    • -
    • ะ•ัะปะธ ะฒั‹ ั€ะฐะทั€ะฐะฑะฐั‚ั‹ะฒะฐะตั‚ะต ะพั‡ะตะฝัŒ ะฟั€ะพัั‚ะพะต ะฟั€ะธะปะพะถะตะฝะธะต ะธะท ะพะดะฝะพะน ัั‚ั€ะฐะฝะธั‡ะบะธ ะฝะฐ FSD, ะฟั€ะตะธะผัƒั‰ะตัั‚ะฒะฐ ะผะตั‚ะพะดะพะปะพะณะธะธ ะฒั€ัะด ะปะธ ะฟะพะฝะฐะดะพะฑัั‚ัั, ะฐ ะฒะพั‚ ั€ะฐะทั€ะฐะฑะพั‚ะบะฐ ะผะพะถะตั‚ ะทะฐะผะตะดะปะธั‚ัŒัั. ะžะดะฝะฐะบะพ, FSD ะฟะพะผะพะณะฐะตั‚ ัั‚ะฐะฝะดะฐั€ั‚ะธะทะธั€ะพะฒะฐะฝะฝะพ ะผั‹ัะปะธั‚ัŒ ะพ ั„ั€ะพะฝั‚ะตะฝะด-ะฟั€ะธะปะพะถะตะฝะธัั…, ั‚ะฐะบ ั‡ั‚ะพ ัะผะตะปะพ ะธัะฟะพะปัŒะทัƒะนั‚ะต ะดะฐะถะต ะฝะฐ ะผะฐะปะตะฝัŒะบะธั… ะฟั€ะพะตะบั‚ะฐั…, ะตัะปะธ ะทะฝะฐะตั‚ะต, ะดะปั ั‡ะตะณะพ ะพะฝะฐ ะฒะฐะผ.
    • -
    • ะžะณั€ะพะผะฝะพะต ะฟั€ะธะปะพะถะตะฝะธะต, ัะพะธะทะผะตั€ะธะผะพะต ั ะฐะดะผะธะฝ-ะฟะฐะฝะตะปัŒัŽ Google Cloud, ะฟะพั‚ั€ะตะฑัƒะตั‚ ัะฟะตั†ะธะฐะปะธะทะธั€ะพะฒะฐะฝะฝะพะน ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹. FSD ะฒ ะดะฐะฝะฝะพะผ ัะปัƒั‡ะฐะต ะผะพะถะตั‚ ะฒั‹ัั‚ัƒะฟะฐั‚ัŒ ะฒ ะบะฐั‡ะตัั‚ะฒะต ะพั‚ะฟั€ะฐะฒะฝะพะน ั‚ะพั‡ะบะธ.
    • +
    • ะ’ั‹ ะทะฐะฝะธะผะฐะตั‚ะตััŒ ั„ั€ะพะฝั‚ะตะฝะด-ั€ะฐะทั€ะฐะฑะพั‚ะบะพะน (ะธะฝั‚ะตั€ั„ะตะนัั‹ ะดะปั ัะฐะนั‚ะพะฒ, ะผะพะฑะธะปัŒะฝั‹ั…/ะดะตัะบั‚ะพะฟะฝั‹ั… ะฟั€ะธะปะพะถะตะฝะธะน, ะธ ั‚. ะด.)
    • +
    • ะ’ั‹ ั€ะฐะทั€ะฐะฑะฐั‚ั‹ะฒะฐะตั‚ะต ะฟั€ะธะปะพะถะตะฝะธะต, ะฐ ะฝะต ะฑะธะฑะปะธะพั‚ะตะบัƒ
    -

    ะœะตั‚ะพะดะพะปะพะณะธั ะฝะต ะฟั€ะธะฒัะทะฐะฝะฐ ะบ ะบะพะฝะบั€ะตั‚ะฝะพะผัƒ ัะทั‹ะบัƒ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั, UI-ั„ั€ะตะนะผะฒะพั€ะบัƒ ะธะปะธ ะผะตะฝะตะดะถะตั€ัƒ ัะพัั‚ะพัะฝะธั โ€” ะฟะพะดะพะนะดะตั‚ ะปัŽะฑะพะน (ัะผ. ะฟั€ะธะผะตั€ั‹ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั).

    -

    ะ•ัะปะธ ัƒ ะฒะฐั ัƒะถะต ะตัั‚ัŒ ะฟั€ะพะตะบั‚, ะฝะต ะฟะตั€ะตะถะธะฒะฐะนั‚ะต โ€” FSD ะผะพะถะฝะพ ะฒะฝะตะดั€ัั‚ัŒ ะฟะพัั‚ะตะฟะตะฝะฝะพ. ะ“ะปะฐะฒะฝั‹ะน ะฒะพะฟั€ะพั, ะบะพั‚ะพั€ั‹ะน ัั‚ะพะธั‚ ะทะฐะดะฐั‚ัŒ ะบะพะผะฐะฝะดะต: "ะ•ัั‚ัŒ ะปะธ ะฑะพะปัŒ ะฟั€ะธ ั€ะฐะทั€ะฐะฑะพั‚ะบะต ะฟั€ะพะตะบั‚ะฐ?" ะ•ัะปะธ ะฑะพะปะธ ะฝะตั‚, ะฒะพะทะผะพะถะฝะพ, ะฟะตั€ะตั…ะพะด ะดะตะปะฐั‚ัŒ ะฝะต ัั‚ะพะธั‚. ะ ัƒะบะพะฒะพะดัั‚ะฒะพ ะฟะพ ะผะธะณั€ะฐั†ะธะธ ัะผ. ะฒ ั€ะฐะทะดะตะปะต ะœะธะณั€ะฐั†ะธั.

    -

    ะžัะฝะพะฒั‹โ€‹

    -

    ะŸั€ะพะตะบั‚ ะฝะฐ FSD ัะพัั‚ะพะธั‚ ะธะท ัะปะพะตะฒ (layers), ะบะฐะถะดั‹ะน ัะปะพะน ัะพัั‚ะพะธั‚ ะธะท ัะปะฐะนัะพะฒ (slices) ะธ ะบะฐะถะดั‹ะน ัะปะฐะนั ัะพัั‚ะพะธั‚ ะธะท ัะตะณะผะตะฝั‚ะพะฒ (segments).

    -

    themed--scheme

    -

    ะกะปะพะธ ัั‚ะฐะฝะดะฐั€ั‚ะธะทะธั€ะพะฒะฐะฝั‹ ะฒะพ ะฒัะตั… ะฟั€ะพะตะบั‚ะฐั… ะธ ั€ะฐัะฟะพะปะพะถะตะฝั‹ ะฒะตั€ั‚ะธะบะฐะปัŒะฝะพ. ะœะพะดัƒะปะธ ะฝะฐ ะพะดะฝะพะผ ัะปะพะต ะผะพะณัƒั‚ ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะพะฒะฐั‚ัŒ ะปะธัˆัŒ ั ะผะพะดัƒะปัะผะธ, ะฝะฐั…ะพะดัั‰ะธะผะธัั ะฝะฐ ัะปะพัั… ัั‚ั€ะพะณะพ ะฝะธะถะต. ะะฐ ะดะฐะฝะฝั‹ะน ะผะพะผะตะฝั‚ ัะปะพะตะฒ ัะตะผัŒ (ัะฒะตั€ั…ัƒ ะฒะฝะธะท):

    -
      -
    1. app โ€” ะฝะฐัั‚ั€ะพะนะบะธ, ัั‚ะธะปะธ ะธ ะฟั€ะพะฒะฐะนะดะตั€ั‹ ะดะปั ะฒัะตะณะพ ะฟั€ะธะปะพะถะตะฝะธั.
    2. -
    3. processes (ะฟั€ะพั†ะตััั‹, ัƒัั‚ะฐั€ะตะฒัˆะธะน ัะปะพะน) โ€” ัะปะพะถะฝั‹ะต ัั†ะตะฝะฐั€ะธะธ, ะฟะพะบั€ั‹ะฒะฐัŽั‰ะธะต ะฝะตัะบะพะปัŒะบะพ ัั‚ั€ะฐะฝะธั†. -(ะฝะฐะฟั€ะธะผะตั€, ะฐะฒั‚ะพั€ะธะทะฐั†ะธั).
    4. -
    5. pages (ัั‚ั€ะฐะฝะธั†ั‹) โ€” ะบะพะผะฟะพะทะธั†ะธะพะฝะฝั‹ะน ัะปะพะน ะดะปั ัะฑะพั€ะบะธ ะฟะพะปะฝะพั†ะตะฝะฝั‹ั… ัั‚ั€ะฐะฝะธั† ะธะท ััƒั‰ะฝะพัั‚ะตะน, ั„ะธั‡ ะธ ะฒะธะดะถะตั‚ะพะฒ.
    6. -
    7. widgets (ะฒะธะดะถะตั‚ั‹) โ€” ะบะพะผะฟะพะทะธั†ะธะพะฝะฝั‹ะน ัะปะพะน ะดะปั ัะพะตะดะธะฝะตะฝะธั ััƒั‰ะฝะพัั‚ะตะน ะธ ั„ะธั‡ ะฒ ัะฐะผะพัั‚ะพัั‚ะตะปัŒะฝั‹ะต ะฑะปะพะบะธ. -(ะฝะฐะฟั€ะธะผะตั€, IssuesList, UserProfile).
    8. -
    9. features (ั„ะธั‡ะธ) โ€” ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธั ั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะผ, ะดะตะนัั‚ะฒะธั, ะบะพั‚ะพั€ั‹ะต ะฝะตััƒั‚ ะฑะธะทะฝะตั-ั†ะตะฝะฝะพัั‚ัŒ ะดะปั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั. -(ะฝะฐะฟั€ะธะผะตั€, SendComment, AddToCart, UsersSearch).
    10. -
    11. entities (ััƒั‰ะฝะพัั‚ะธ) โ€” ะฑะธะทะฝะตั-ััƒั‰ะฝะพัั‚ะธ. -(ะฝะฐะฟั€ะธะผะตั€, User, Product, Order).
    12. -
    13. shared โ€” ะฟะตั€ะตะธัะฟะพะปัŒะทัƒะตะผั‹ะน ะบะพะด, ะฝะต ะธะผะตัŽั‰ะธะน ะพั‚ะฝะพัˆะตะฝะธั ะบ ัะฟะตั†ะธั„ะธะบะต ะฟั€ะธะปะพะถะตะฝะธั/ะฑะธะทะฝะตัะฐ. -(ะฝะฐะฟั€ะธะผะตั€, UIKit, libs, API).
    14. -
    -

    ะ—ะฐั‚ะตะผ ะตัั‚ัŒ ัะปะฐะนัั‹, ั€ะฐะทะดะตะปััŽั‰ะธะต ะบะพะด ะฟะพ ะฟั€ะตะดะผะตั‚ะฝะพะน ะพะฑะปะฐัั‚ะธ. ะžะฝะธ ะณั€ัƒะฟะฟะธั€ัƒัŽั‚ ะปะพะณะธั‡ะตัะบะธ ัะฒัะทะฐะฝะฝั‹ะต ะผะพะดัƒะปะธ, ั‡ั‚ะพ ะพะฑะปะตะณั‡ะฐะตั‚ ะฝะฐะฒะธะณะฐั†ะธัŽ ะฟะพ ะบะพะดะพะฒะพะน ะฑะฐะทะต. ะกะปะฐะนัั‹ ะฝะต ะผะพะณัƒั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะดั€ัƒะณะธะต ัะปะฐะนัั‹ ะฝะฐ ั‚ะพะผ ะถะต ัะปะพะต, ั‡ั‚ะพ ะพะฑะตัะฟะตั‡ะธะฒะฐะตั‚ ะฒั‹ัะพะบะธะน ัƒั€ะพะฒะตะฝัŒ ัะฒัะทะฝะพัั‚ะธ (cohesion) ะฟั€ะธ ะฝะธะทะบะพะผ ัƒั€ะพะฒะฝะต ะทะฐั†ะตะฟะปะตะฝะธั (coupling).

    -

    ะ’ ัะฒะพัŽ ะพั‡ะตั€ะตะดัŒ, ะบะฐะถะดั‹ะน ัะปะฐะนั ัะพัั‚ะพะธั‚ ะธะท ัะตะณะผะตะฝั‚ะพะฒ. ะญั‚ะพ ะผะฐะปะตะฝัŒะบะธะต ะผะพะดัƒะปะธ, ะณะปะฐะฒะฝะฐั ะทะฐะดะฐั‡ะฐ ะบะพั‚ะพั€ั‹ั… โ€” ั€ะฐะทะดะตะปะธั‚ัŒ ะบะพะด ะฒะฝัƒั‚ั€ะธ ัะปะฐะนัะฐ ะฟะพ ั‚ะตั…ะฝะธั‡ะตัะบะพะผัƒ ะฝะฐะทะฝะฐั‡ะตะฝะธัŽ. ะกะฐะผั‹ะต ั€ะฐัะฟั€ะพัั‚ั€ะฐะฝะตะฝะฝั‹ะต ัะตะณะผะตะฝั‚ั‹ โ€” ui, model (store, actions), api ะธ lib (utils/hooks), ะฝะพ ะฒ ะฒะฐัˆะตะผ ัะปะฐะนัะต ะผะพะถะตั‚ ะฝะต ะฑั‹ั‚ัŒ ะบะฐะบะธั…-ั‚ะพ ัะตะณะผะตะฝั‚ะพะฒ, ะผะพะณัƒั‚ ะฑั‹ั‚ัŒ ะดั€ัƒะณะธะต, ะฟะพ ะฒะฐัˆะตะผัƒ ัƒัะผะพั‚ั€ะตะฝะธัŽ.

    -
    ะฟั€ะธะผะตั‡ะฐะฝะธะต

    ะ’ ะฑะพะปัŒัˆะธะฝัั‚ะฒะต ัะปัƒั‡ะฐะตะฒ ั€ะตะบะพะผะตะฝะดัƒะตั‚ัั ั€ะฐัะฟะพะปะฐะณะฐั‚ัŒ api ะธ config ั‚ะพะปัŒะบะพ ะฒ shared-ัะปะพะต

    -

    ะŸั€ะธะผะตั€โ€‹

    -

    ะ ะฐััะผะพั‚ั€ะธะผ ะฟั€ะธะปะพะถะตะฝะธะต ัะพั†ะธะฐะปัŒะฝะพะน ัะตั‚ะธ.

    +

    ะ˜ ัั‚ะพ ะฒัะต! ะะตั‚ ะฝะธะบะฐะบะธั… ะพะณั€ะฐะฝะธั‡ะตะฝะธะน ะฝะฐ ะธัะฟะพะปัŒะทัƒะตะผั‹ะน ะฒะฐะผะธ ัะทั‹ะบ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั, ั„ั€ะตะนะผะฒะพั€ะบ ะธะปะธ ัั‚ะตะนั‚-ะผะตะฝะตะดะถะตั€. ะ•ั‰ั‘ ะฒั‹ ะผะพะถะตั‚ะต ะฒะฝะตะดั€ัั‚ัŒ FSD ะฟะพัั‚ะตะฟะตะฝะฝะพ, ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะตะณะพ ะฒ ะผะพะฝะพั€ะตะฟะพะทะธั‚ะพั€ะธัั…, ะธ ะผะฐััˆั‚ะฐะฑะธั€ะพะฒะฐั‚ัŒ ะตะณะพ ั…ะพั‚ัŒ ะดะพ ะปัƒะฝั‹, ั€ะฐะทะดะตะปัั ะฒะฐัˆะต ะฟั€ะธะปะพะถะตะฝะธะต ะฝะฐ ะฟะฐะบะตั‚ั‹ ะธ ะฒะฝะตะดั€ัั FSD ะฒ ะบะฐะถะดะพะผ ะธะท ะฝะธั… ะฟะพ ะพั‚ะดะตะปัŒะฝะพัั‚ะธ.

    +

    ะ•ัะปะธ ัƒ ะฒะฐั ัƒะถะต ะตัั‚ัŒ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ, ะธ ะฒั‹ ะฟะพะดัƒะผั‹ะฒะฐะตั‚ะต ะฟะตั€ะตะนั‚ะธ ะฝะฐ FSD, ัƒะฑะตะดะธั‚ะตััŒ, ั‡ั‚ะพ ั‚ะตะบัƒั‰ะฐั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัะพะทะดะฐะตั‚ ะฟั€ะพะฑะปะตะผั‹ ะฒ ะฒะฐัˆะตะน ะบะพะผะฐะฝะดะต. ะะฐะฟั€ะธะผะตั€, ะตัะปะธ ะฒะฐัˆ ะฟั€ะพะตะบั‚ ัั‚ะฐะป ัะปะธัˆะบะพะผ ะฑะพะปัŒัˆะธะผ ะธ ะฟะตั€ะตะฟะปะตั‚ั‘ะฝะฝั‹ะผ, ั‡ั‚ะพะฑ ัั„ั„ะตะบั‚ะธะฒะฝะพ ั€ะฐะทั€ะฐะฑะฐั‚ั‹ะฒะฐั‚ัŒ ะฝะพะฒั‹ะต ั„ัƒะฝะบั†ะธะธ, ะธะปะธ ะตัะปะธ ะฒั‹ ะพะถะธะดะฐะตั‚ะต, ั‡ั‚ะพ ะฒ ะบะพะผะฐะฝะดัƒ ะฟั€ะธะดะตั‚ ะผะฝะพะณะพ ะฝะพะฒั‹ั… ัƒั‡ะฐัั‚ะฝะธะบะพะฒ. ะ•ัะปะธ ั‚ะตะบัƒั‰ะฐั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ั€ะฐะฑะพั‚ะฐะตั‚, ะฒะพะทะผะพะถะฝะพ, ะตะต ะฝะต ัั‚ะพะธั‚ ะผะตะฝัั‚ัŒ. ะะพ ะตัะปะธ ะฒั‹ ะฒัั‘ ะถะต ั€ะตัˆะธั‚ะต ะฟะตั€ะตะนั‚ะธ, ะพะทะฝะฐะบะพะผัŒั‚ะตััŒ ั ั€ะตะบะพะผะตะฝะดะฐั†ะธัะผะธ ะฒ ั€ะฐะทะดะตะปะต ะœะธะณั€ะฐั†ะธั.

    +

    ะ‘ะฐะทะพะฒั‹ะน ะฟั€ะธะผะตั€โ€‹

    +

    ะ’ะพั‚ ะฟั€ะพัั‚ะพะน ะฟั€ะพะตะบั‚, ั€ะตะฐะปะธะทัƒัŽั‰ะธะน FSD:

      -
    • app/ ัะพะดะตั€ะถะธั‚ ะฝะฐัั‚ั€ะพะนะบัƒ ั€ะพัƒั‚ะตั€ะฐ, ะณะปะพะฑะฐะปัŒะฝั‹ะต ั…ั€ะฐะฝะธะปะธั‰ะฐ ะธ ัั‚ะธะปะธ.
    • -
    • pages/ ัะพะดะตั€ะถะธั‚ ะบะพะผะฟะพะฝะตะฝั‚ั‹ ั€ะพัƒั‚ะพะฒ ะฝะฐ ะบะฐะถะดัƒัŽ ัั‚ั€ะฐะฝะธั†ัƒ ะฒ ะฟั€ะธะปะพะถะตะฝะธะธ, ะฟั€ะตะธะผัƒั‰ะตัั‚ะฒะตะฝะฝะพ ะบะพะผะฟะพะทะธั€ัƒัŽั‰ะธะต, ะฟะพ ะฒะพะทะผะพะถะฝะพัั‚ะธ, ะฑะตะท ัะพะฑัั‚ะฒะตะฝะฝะพะน ะปะพะณะธะบะธ.
    • +
    • ๐Ÿ“ app
    • +
    • ๐Ÿ“ pages
    • +
    • ๐Ÿ“ shared
    -

    ะ’ ั€ะฐะผะบะฐั… ัั‚ะพะณะพ ะฟั€ะธะปะพะถะตะฝะธั ั€ะฐััะผะพั‚ั€ะธะผ ะบะฐั€ั‚ะพั‡ะบัƒ ะฟะพัั‚ะฐ ะฒ ะปะตะฝั‚ะต ะฝะพะฒะพัั‚ะตะน.

    +

    ะญั‚ะธ ะฟะฐะฟะบะธ ะฒะตั€ั…ะฝะตะณะพ ัƒั€ะพะฒะฝั ะฝะฐะทั‹ะฒะฐัŽั‚ัั ัะปะพัะผะธ. ะ”ะฐะฒะฐะนั‚ะต ะฟะพัะผะพั‚ั€ะธะผ ะณะปัƒะฑะถะต:

    +
      +
    • ๐Ÿ“‚ app
        -
      • widgets/ ัะพะดะตั€ะถะธั‚ "ัะพะฑั€ะฐะฝะฝัƒัŽ" ะบะฐั€ั‚ะพั‡ะบัƒ ะฟะพัั‚ะฐ, ั ัะพะดะตั€ะถะธะผั‹ะผ ะธ ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝั‹ะผะธ ะบะฝะพะฟะบะฐะผะธ, ะฒ ะบะพั‚ะพั€ั‹ะต ะฒัˆะธั‚ั‹ ะทะฐะฟั€ะพัั‹ ะบ ะฑัะบะตะฝะดัƒ.
      • -
      • features/ ัะพะดะตั€ะถะธั‚ ะฒััŽ ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝะพัั‚ัŒ ะบะฐั€ั‚ะพั‡ะบะธ (ะฝะฐะฟั€ะธะผะตั€, ะบะฝะพะฟะบัƒ ะปะฐะนะบะฐ) ะธ ะปะพะณะธะบัƒ ะพะฑั€ะฐะฑะพั‚ะบะธ ัั‚ะพะน ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝะพัั‚ะธ.
      • -
      • entities/ ัะพะดะตั€ะถะธั‚ ัะบะตะปะตั‚ ะบะฐั€ั‚ะพั‡ะบะธ ัะพ ัะปะพั‚ะฐะผะธ ะฟะพะด ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝั‹ะต ัะปะตะผะตะฝั‚ั‹. ะšะพะผะฟะพะฝะตะฝั‚, ะดะตะผะพะฝัั‚ั€ะธั€ัƒัŽั‰ะธะน ะฐะฒั‚ะพั€ะฐ ะฟะพัั‚ะฐ, ั‚ะฐะบะถะต ะฝะฐั…ะพะดะธั‚ัั ะฒ ัั‚ะพะน ะฟะฐะฟะบะต, ะฝะพ ะฒ ะดั€ัƒะณะพะผ ัะปะฐะนัะต.
      • +
      • ๐Ÿ“ routes
      • +
      • ๐Ÿ“ analytics
      -

      ะŸั€ะตะธะผัƒั‰ะตัั‚ะฒะฐโ€‹

      +
    • +
    • ๐Ÿ“‚ pages
        -
      • -

        ะ•ะดะธะฝะพะพะฑั€ะฐะทะธะต
        -ะšะพะด ั€ะฐัะฟั€ะตะดะตะปัะตั‚ัั ัะพะณะปะฐัะฝะพ ะพะฑะปะฐัั‚ะธ ะฒะปะธัะฝะธั (ัะปะพะน), ะฟั€ะตะดะผะตั‚ะฝะพะน ะพะฑะปะฐัั‚ะธ (ัะปะฐะนั) ะธ ั‚ะตั…ะฝะธั‡ะตัะบะพะผัƒ ะฝะฐะทะฝะฐั‡ะตะฝะธัŽ (ัะตะณะผะตะฝั‚).
        -ะ‘ะปะฐะณะพะดะฐั€ั ัั‚ะพะผัƒ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัั‚ะฐะฝะดะฐั€ั‚ะธะทะธั€ัƒะตั‚ัั ะธ ัั‚ะฐะฝะพะฒะธั‚ัั ะฑะพะปะตะต ะฟั€ะพัั‚ะพะน ะดะปั ะพะทะฝะฐะบะพะผะปะตะฝะธั.

        +
      • ๐Ÿ“ home
      • +
      • ๐Ÿ“‚ article-reader +
          +
        • ๐Ÿ“ ui
        • +
        • ๐Ÿ“ api
        • +
        +
      • +
      • ๐Ÿ“ settings
      • +
      +
    • +
    • ๐Ÿ“‚ shared +
        +
      • ๐Ÿ“ ui
      • +
      • ๐Ÿ“ api
      • +
    • +
    +

    ะŸะฐะฟะบะธ ะฒะฝัƒั‚ั€ะธ ๐Ÿ“‚ pages ะฝะฐะทั‹ะฒะฐัŽั‚ัั ัะปะฐะนัะฐะผะธ. ะžะฝะธ ะดะตะปัั‚ ัะปะพะน ะฟะพ ะดะพะผะตะฝัƒ (ะฒ ะดะฐะฝะฝะพะผ ัะปัƒั‡ะฐะต, ะฟะพ ัั‚ั€ะฐะฝะธั†ะฐะผ).

    +

    ะŸะฐะฟะบะธ ะฒะฝัƒั‚ั€ะธ ๐Ÿ“‚ app, ๐Ÿ“‚ shared ะธ ๐Ÿ“‚ pages/article-reader ะฝะฐะทั‹ะฒะฐัŽั‚ัั ัะตะณะผะตะฝั‚ะฐะผะธ, ะธ ะพะฝะธ ะดะตะปัั‚ ัะปะฐะนัั‹ (ะธะปะธ ัะปะพะธ) ะฟะพ ั‚ะตั…ะฝะธั‡ะตัะบะพะผัƒ ะฝะฐะทะฝะฐั‡ะตะฝะธัŽ, ั‚ะพ ะตัั‚ัŒ ะฟะพ ั‚ะพะผัƒ, ะดะปั ั‡ะตะณะพ ะฟั€ะตะดะฝะฐะทะฝะฐั‡ะตะฝ ะบะพะด.

    +

    ะŸะพะฝัั‚ะธัโ€‹

    +

    ะกะปะพะธ, ัะปะฐะนัั‹ ะธ ัะตะณะผะตะฝั‚ั‹ ะพะฑั€ะฐะทัƒัŽั‚ ะธะตั€ะฐั€ั…ะธัŽ, ะบะฐะบ ะฟะพะบะฐะทะฐะฝะพ ะฝะฐ ัั…ะตะผะต:

    +

    ะ˜ะตั€ะฐั€ั…ะธั ะบะพะฝั†ะตะฟั†ะธะน FSD, ะพะฟะธัะฐะฝะฝะฐั ะฝะธะถะต

    ะะฐ ะบะฐั€ั‚ะธะฝะบะต ะฒั‹ัˆะต: ั‚ั€ะธ ัั‚ะพะปะฑะธะบะฐ, ะพะฑะพะทะฝะฐั‡ะตะฝะฝั‹ะต ัะปะตะฒะฐ ะฝะฐะฟั€ะฐะฒะพ ะบะฐะบ "ะกะปะพะธ", "ะกะปะฐะนัั‹" ะธ "ะกะตะณะผะตะฝั‚ั‹" ัะพะพั‚ะฒะตั‚ัั‚ะฒะตะฝะฝะพ.

    ะกั‚ะพะปะฑะธะบ "ะกะปะพะธ" ัะพะดะตั€ะถะธั‚ ัะตะผัŒ ะดะตะปะตะฝะธะน, ั€ะฐัะฟะพะปะพะถะตะฝะฝั‹ั… ัะฒะตั€ั…ัƒ ะฒะฝะธะท ะธ ะพะฑะพะทะฝะฐั‡ะตะฝะฝั‹ั… "app", "processes", "pages", "widgets", "features", "entities" ะธ "shared". ะ”ะตะปะตะฝะธะต "processes" ะทะฐั‡ะตั€ะบะฝัƒั‚ะพ. ะ”ะตะปะตะฝะธะต "entities" ัะพะตะดะธะฝะตะฝะพ ัะพ ะฒั‚ะพั€ั‹ะผ ัั‚ะพะปะฑะธะบะพะผ "ะกะปะฐะนัั‹", ะฟะพะบะฐะทั‹ะฒะฐั, ั‡ั‚ะพ ะฒั‚ะพั€ะพะน ัั‚ะพะปะฑะธะบ ัะฒะปัะตั‚ัั ัะพะดะตั€ะถะธะผั‹ะผ "entities".

    ะกั‚ะพะปะฑะธะบ "ะกะปะฐะนัั‹" ัะพะดะตั€ะถะธั‚ ั‚ั€ะธ ะดะตะปะตะฝะธั, ั€ะฐัะฟะพะปะพะถะตะฝะฝั‹ั… ัะฒะตั€ั…ัƒ ะฒะฝะธะท ะธ ะพะฑะพะทะฝะฐั‡ะตะฝะฝั‹ั… "user", "post" ะธ "comment". ะ”ะตะปะตะฝะธะต "post" ัะพะตะดะธะฝะตะฝะพ ัะพ ัั‚ะพะปะฑะธะบะพะผ "ะกะตะณะผะตะฝั‚ั‹" ั‚ะฐะบะธะผ ะถะต ะพะฑั€ะฐะทะพะผ, ั‡ั‚ะพ ะธ ัะพะดะตั€ะถะธะผะพะต "post".

    ะกั‚ะพะปะฑะธะบ "ะกะตะณะผะตะฝั‚ั‹" ัะพะดะตั€ะถะธั‚ ั‚ั€ะธ ะดะตะปะตะฝะธั, ั€ะฐัะฟะพะปะพะถะตะฝะฝั‹ั… ัะฒะตั€ั…ัƒ ะฒะฝะธะท ะธ ะพะฑะพะทะฝะฐั‡ะตะฝะฝั‹ั… "ui", "model" ะธ "api".

    +

    ะกะปะพะธโ€‹

    +

    ะกะปะพะธ ัั‚ะฐะฝะดะฐั€ั‚ะธะทะธั€ะพะฒะฐะฝั‹ ะฒะพ ะฒัะตั… ะฟั€ะพะตะบั‚ะฐั… FSD. ะ’ะฐะผ ะฝะต ะพะฑัะทะฐั‚ะตะปัŒะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะฒัะต ัะปะพะธ, ะฝะพ ะธั… ะฝะฐะทะฒะฐะฝะธั ะฒะฐะถะฝั‹. ะะฐ ะดะฐะฝะฝั‹ะน ะผะพะผะตะฝั‚ ะธั… ัะตะผัŒ (ัะฒะตั€ั…ัƒ ะฒะฝะธะท):

    +
      +
    1. App* โ€” ะฒัั‘, ะฑะปะฐะณะพะดะฐั€ั ั‡ะตะผัƒ ะฟั€ะธะปะพะถะตะฝะธะต ะทะฐะฟัƒัะบะฐะตั‚ัั โ€” ั€ะพัƒั‚ะธะฝะณ, ั‚ะพั‡ะบะธ ะฒั…ะพะดะฐ, ะณะปะพะฑะฐะปัŒะฝั‹ะต ัั‚ะธะปะธ, ะฟั€ะพะฒะฐะนะดะตั€ั‹ ะธ ั‚. ะด.
    2. +
    3. Processes (ะฟั€ะพั†ะตััั‹, ัƒัั‚ะฐั€ะตะฒัˆะธะน) โ€” ัะปะพะถะฝั‹ะต ะผะตะถัั‚ั€ะฐะฝะธั‡ะฝั‹ะต ัั†ะตะฝะฐั€ะธะธ.
    4. +
    5. Pages (ัั‚ั€ะฐะฝะธั†ั‹) โ€” ะฟะพะปะฝั‹ะต ัั‚ั€ะฐะฝะธั†ั‹ ะธะปะธ ะฑะพะปัŒัˆะธะต ั‡ะฐัั‚ะธ ัั‚ั€ะฐะฝะธั†ั‹ ะฟั€ะธ ะฒะปะพะถะตะฝะฝะพะผ ั€ะพัƒั‚ะธะฝะณะต.
    6. +
    7. Widgets (ะฒะธะดะถะตั‚ั‹) โ€” ะฑะพะปัŒัˆะธะต ัะฐะผะพะดะพัั‚ะฐั‚ะพั‡ะฝั‹ะต ะบัƒัะบะธ ั„ัƒะฝะบั†ะธะพะฝะฐะปัŒะฝะพัั‚ะธ ะธะปะธ ะธะฝั‚ะตั€ั„ะตะนัะฐ, ะพะฑั‹ั‡ะฝะพ ั€ะตะฐะปะธะทัƒัŽั‰ะธะต ั†ะตะปั‹ะน ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒัะบะธะน ัั†ะตะฝะฐั€ะธะน.
    8. +
    9. Features (ั„ะธั‡ะธ) โ€” ะฟะพะฒั‚ะพั€ะฝะพ ะธัะฟะพะปัŒะทัƒะตะผั‹ะต ั€ะตะฐะปะธะทะฐั†ะธะธ ั†ะตะปั‹ั… ั„ะธั‡ ะฟั€ะพะดัƒะบั‚ะฐ, ั‚ะพ ะตัั‚ัŒ ะดะตะนัั‚ะฒะธะน, ะฟั€ะธะฝะพััั‰ะธั… ะฑะธะทะฝะตั-ั†ะตะฝะฝะพัั‚ัŒ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŽ.
    10. +
    11. Entities (ััƒั‰ะฝะพัั‚ะธ) โ€” ะฑะธะทะฝะตั-ััƒั‰ะฝะพัั‚ะธ, ั ะบะพั‚ะพั€ั‹ะผะธ ั€ะฐะฑะพั‚ะฐะตั‚ ะฟั€ะพะตะบั‚, ะฝะฐะฟั€ะธะผะตั€ user ะธะปะธ product.
    12. +
    13. Shared* โ€” ะฟะตั€ะตะธัะฟะพะปัŒะทัƒะตะผั‹ะน ะบะพะด, ะพัะพะฑะตะฝะฝะพ ะบะพะณะดะฐ ะพะฝะฐ ะพั‚ะดะตะปะตะฝะฐ ะพั‚ ัะฟะตั†ะธั„ะธะบะธ ะฟั€ะพะตะบั‚ะฐ/ะฑะธะทะฝะตัะฐ, ั…ะพั‚ั ัั‚ะพ ะฝะต ะพะฑัะทะฐั‚ะตะปัŒะฝะพ.
    14. +
    +

    * โ€” ัั‚ะธ ัะปะพะธ, App ะธ Shared, ะฒ ะพั‚ะปะธั‡ะธะต ะพั‚ ะดั€ัƒะณะธั… ัะปะพะตะฒ, ะฝะต ะธะผะตัŽั‚ ัะปะฐะนัะพะฒ ะธ ัะพัั‚ะพัั‚ ะธะท ัะตะณะผะตะฝั‚ะพะฒ ะฝะฐะฟั€ัะผัƒัŽ.

    +

    ะคะธัˆะบะฐ ัะปะพะตะฒ ะฒ ั‚ะพะผ, ั‡ั‚ะพ ะผะพะดัƒะปะธ ะฝะฐ ะพะดะฝะพะผ ัะปะพะต ะผะพะณัƒั‚ ะทะฝะฐั‚ัŒ ั‚ะพะปัŒะบะพ ะพ ะผะพะดัƒะปัั… ัะพ ัะปะพะตะฒ ัั‚ั€ะพะณะพ ะฝะธะถะต, ะธ ะบะฐะบ ัะปะตะดัั‚ะฒะธะต, ะธะผะฟะพั€ั‚ะธั€ะพะฒะฐั‚ัŒ ั‚ะพะปัŒะบะพ ั ะฝะธั….

    +

    ะกะปะฐะนัั‹โ€‹

    +

    ะ”ะฐะปัŒัˆะต ะธะดัƒั‚ ัะปะฐะนัั‹, ะพะฝะธ ะดะตะปัั‚ ัะปะพะน ะฟะพ ะฟั€ะตะดะผะตั‚ะฝะพะน ะพะฑะปะฐัั‚ะธ. ะ’ั‹ ะผะพะถะตั‚ะต ะฝะฐะทั‹ะฒะฐั‚ัŒ ะฒะฐัˆะธ ัะปะฐะนัั‹ ะบะฐะบ ัƒะณะพะดะฝะพ, ะธ ัะพะทะดะฐะฒะฐั‚ัŒ ะธั… ัะบะพะปัŒะบะพ ัƒะณะพะดะฝะพ. ะกะปะฐะนัั‹ ะฟะพะผะพะณะฐัŽั‚ ะฝะต ั‚ะตั€ัั‚ัŒัั ะฒ ะฟั€ะพะตะบั‚ะต, ะฟะพั‚ะพะผัƒ ั‡ั‚ะพ ะณั€ัƒะฟะฟะธั€ัƒัŽั‚ ั‚ะตัะฝะพ ัะฒัะทะฐะฝะฝั‹ะน ะฟะพ ัะผั‹ัะปัƒ ะบะพะด.

    +

    ะกะปะฐะนัั‹ ะฝะต ะผะพะณัƒั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะดั€ัƒะณะธะต ัะปะฐะนัั‹ ะฝะฐ ั‚ะพะผ ะถะต ัะปะพะต, ะธ ัั‚ะพ ะพะฑะตัะฟะตั‡ะธะฒะฐะตั‚ ัะธะปัŒะฝัƒัŽ ัะฒัะทะฐะฝะฝะพัั‚ัŒ ะบะพะดะฐ ะฒะฝัƒั‚ั€ะธ ัะปะฐะนัะฐ ะธ ัะปะฐะฑัƒัŽ ัั†ะตะฟะปะตะฝะฝะพัั‚ัŒ ะผะตะถะดัƒ ัะปะฐะนัะฐะผะธ.

    +

    ะกะตะณะผะตะฝั‚ั‹โ€‹

    +

    ะกะปะฐะนัั‹, ะฐ ั‚ะฐะบะถะต ัะปะพะธ App ะธ Shared, ัะพัั‚ะพัั‚ ะธะท ัะตะณะผะตะฝั‚ะพะฒ, ะฐ ัะตะณะผะตะฝั‚ั‹ ะณั€ัƒะฟะฟะธั€ัƒัŽั‚ ะบะพะด ะฟะพ ะตะณะพ ะฝะฐะทะฝะฐั‡ะตะฝะธัŽ. ะ˜ะผะตะฝะฐ ัะตะณะผะตะฝั‚ะพะฒ ะฝะต ะทะฐั„ะธะบัะธั€ะพะฒะฐะฝั‹ ัั‚ะฐะฝะดะฐั€ั‚ะพะผ, ะฝะพ ััƒั‰ะตัั‚ะฒัƒะตั‚ ะฝะตัะบะพะปัŒะบะพ ะพะฑั‰ะตะฟั€ะธะฝัั‚ั‹ั… ะธะผะตะฝ ะดะปั ะฝะฐะธะฑะพะปะตะต ั€ะฐัะฟั€ะพัั‚ั€ะฐะฝะตะฝะฝั‹ั… ั†ะตะปะตะน:

    +
      +
    • ui โ€” ะฒัั‘, ั‡ั‚ะพ ัะฒัะทะฐะฝะพ ั ะพั‚ะพะฑั€ะฐะถะตะฝะธะตะผ: UI-ะบะพะผะฟะพะฝะตะฝั‚ั‹, ั„ะพั€ะผะฐั‚ั‚ะตั€ั‹ ะดะฐั‚, ัั‚ะธะปะธ ะธ ั‚.ะด.
    • +
    • api โ€” ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธะต ั ะฑัะบะตะฝะดะพะผ: ั„ัƒะฝะบั†ะธะธ ะทะฐะฟั€ะพัะพะฒ, ั‚ะธะฟั‹ ะดะฐะฝะฝั‹ั…, ะผะฐะฟะฟะตั€ั‹.
    • +
    • model โ€” ะผะพะดะตะปัŒ ะดะฐะฝะฝั‹ั…: ัั…ะตะผั‹ ะฒะฐะปะธะดะฐั†ะธะธ, ะธะฝั‚ะตั€ั„ะตะนัั‹, ั…ั€ะฐะฝะธะปะธั‰ะฐ ะธ ะฑะธะทะฝะตั-ะปะพะณะธะบะฐ.
    • +
    • lib โ€” ะฑะธะฑะปะธะพั‚ะตั‡ะฝั‹ะน ะบะพะด, ะบะพั‚ะพั€ั‹ะน ะฝัƒะถะตะฝ ะดั€ัƒะณะธะผ ะผะพะดัƒะปัะผ ัั‚ะพะณะพ ัะปะฐะนัะฐ.
    • +
    • config โ€” ั„ะฐะนะปั‹ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ ะธ ั„ะธั‡ะต-ั„ะปะฐะณะธ.
    • +
    +

    ะžะฑั‹ั‡ะฝะพ ัั‚ะธั… ัะตะณะผะตะฝั‚ะพะฒ ะดะพัั‚ะฐั‚ะพั‡ะฝะพ ะดะปั ะฑะพะปัŒัˆะธะฝัั‚ะฒะฐ ัะปะพะตะฒ, ะฟะพัั‚ะพะผัƒ ัะฒะพะธ ัะพะฑัั‚ะฒะตะฝะฝั‹ะต ัะตะณะผะตะฝั‚ั‹ ะพะฑั‹ั‡ะฝะพ ัะพะทะดะฐัŽั‚ ั‚ะพะปัŒะบะพ ะฒ Shared ะธะปะธ App, ะฝะพ ัั‚ะพ ะฝะต ะถั‘ัั‚ะบะพะต ะฟั€ะฐะฒะธะปะพ.

    +

    ะŸั€ะตะธะผัƒั‰ะตัั‚ะฒะฐโ€‹

    +
    • -

      ะšะพะฝั‚ั€ะพะปะธั€ัƒะตะผะพะต ะฟะตั€ะตะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะปะพะณะธะบะธ
      -ะšะฐะถะดั‹ะน ะบะพะผะฟะพะฝะตะฝั‚ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ ะธะผะตะตั‚ ัะฒะพะต ะฝะฐะทะฝะฐั‡ะตะฝะธะต ะธ ะฟั€ะตะดัะบะฐะทัƒะตะผั‹ะน ัะฟะธัะพะบ ะทะฐะฒะธัะธะผะพัั‚ะตะน.
      -ะ‘ะปะฐะณะพะดะฐั€ั ัั‚ะพะผัƒ ัะพั…ั€ะฐะฝัะตั‚ัั ะฑะฐะปะฐะฝั ะผะตะถะดัƒ ัะพะฑะปัŽะดะตะฝะธะตะผ ะฟั€ะธะฝั†ะธะฟะฐ DRY ะธ ะฒะพะทะผะพะถะฝะพัั‚ัŒัŽ ะฐะดะฐะฟั‚ะธั€ะพะฒะฐั‚ัŒ ะผะพะดัƒะปัŒ ะฟะพะด ั€ะฐะทะฝั‹ะต ั†ะตะปะธ.

      +

      ะžะดะฝะพั€ะพะดะฝะพัั‚ัŒ
      +ะŸะพัะบะพะปัŒะบัƒ ัั‚ั€ัƒะบั‚ัƒั€ะฐ ัั‚ะฐะฝะดะฐั€ั‚ะธะทะธั€ะพะฒะฐะฝะฐ, ะฟั€ะพะตะบั‚ั‹ ัั‚ะฐะฝะพะฒัั‚ัั ะฑะพะปะตะต ะตะดะธะฝะพะพะฑั€ะฐะทะฝั‹ะผะธ, ั‡ั‚ะพ ะพะฑะปะตะณั‡ะฐะตั‚ ะฝะฐะฑะพั€ ะฝะพะฒั‹ั… ัƒั‡ะฐัั‚ะฝะธะบะพะฒ ะฒ ะบะพะผะฐะฝะดัƒ.

    • ะฃัั‚ะพะนั‡ะธะฒะพัั‚ัŒ ะบ ะธะทะผะตะฝะตะฝะธัะผ ะธ ั€ะตั„ะฐะบั‚ะพั€ะธะฝะณัƒ
      -ะžะดะธะฝ ะผะพะดัƒะปัŒ ะฝะต ะผะพะถะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะดั€ัƒะณะพะน ะผะพะดัƒะปัŒ, ั€ะฐัะฟะพะปะพะถะตะฝะฝั‹ะน ะฝะฐ ั‚ะพะผ ะถะต ัะปะพะต ะธะปะธ ะฝะฐ ัะปะพัั… ะฒั‹ัˆะต. -ะ‘ะปะฐะณะพะดะฐั€ั ัั‚ะพะผัƒ ะฟั€ะธะปะพะถะตะฝะธะต ะผะพะถะฝะพ ะธะทะพะปะธั€ะพะฒะฐะฝะฝะพ ะผะพะดะธั„ะธั†ะธั€ะพะฒะฐั‚ัŒ ะฟะพะด ะฝะพะฒั‹ะต ั‚ั€ะตะฑะพะฒะฐะฝะธั ะฑะตะท ะฝะตะฟั€ะตะดะฒะธะดะตะฝะฝั‹ั… ะฟะพัะปะตะดัั‚ะฒะธะน.

      +ะœะพะดัƒะปัŒ ะฝะฐ ะพะดะฝะพะผ ัะปะพะต ะฝะต ะผะพะถะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะดั€ัƒะณะธะต ะผะพะดัƒะปะธ ะฝะฐ ั‚ะพะผ ะถะต ัะปะพะต ะธะปะธ ัะปะพัั… ะฒั‹ัˆะต.
      +ะญั‚ะพ ะฟะพะทะฒะพะปัะตั‚ ะฒะฐะผ ะฒะฝะพัะธั‚ัŒ ะธะทะพะปะธั€ะพะฒะฐะฝะฝั‹ะต ะฟั€ะฐะฒะบะธ ะฑะตะท ะฝะตะฟั€ะตะดะฒะธะดะตะฝะฝั‹ั… ะฟะพัะปะตะดัั‚ะฒะธะน ะดะปั ะพัั‚ะฐะปัŒะฝะพะน ั‡ะฐัั‚ะธ ะฟั€ะธะปะพะถะตะฝะธั.

    • -

      ะžั€ะธะตะฝั‚ะธั€ะพะฒะฐะฝะฝะพัั‚ัŒ ะฝะฐ ะฟะพั‚ั€ะตะฑะฝะพัั‚ะธ ะฑะธะทะฝะตัะฐ ะธ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะน
      -ะ ะฐะทะฑะธะตะฝะธะต ะฟั€ะธะปะพะถะตะฝะธั ะฟะพ ะฑะธะทะฝะตั-ะดะพะผะตะฝะฐะผ ะฟะพะผะพะณะฐะตั‚ ะณะปัƒะฑะถะต ะฟะพะฝะธะผะฐั‚ัŒ, ัั‚ั€ัƒะบั‚ัƒั€ะธั€ะพะฒะฐั‚ัŒ ะธ ะฝะฐั…ะพะดะธั‚ัŒ ั„ะธั‡ะธ ะฟั€ะพะตะบั‚ะฐ.

      +

      ะšะพะฝั‚ั€ะพะปะธั€ัƒะตะผะพะต ะฟะตั€ะตะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะปะพะณะธะบะธ
      +ะ’ ะทะฐะฒะธัะธะผะพัั‚ะธ ะพั‚ ัƒั€ะพะฒะฝั ะฒั‹ ะผะพะถะตั‚ะต ัะดะตะปะฐั‚ัŒ ะบะพะด ะปะธะฑะพ ะพั‡ะตะฝัŒ ะฟะตั€ะตะธัะฟะพะปัŒะทัƒะตะผั‹ะผ, ะปะธะฑะพ ะพั‡ะตะฝัŒ ะปะพะบะฐะปัŒะฝั‹ะผ.
      +ะญั‚ะพ ัะพั…ั€ะฐะฝัะตั‚ ะฑะฐะปะฐะฝั ะผะตะถะดัƒ ัะพะฑะปัŽะดะตะฝะธะตะผ ะฟั€ะธะฝั†ะธะฟะฐ DRY ะธ ะฟั€ะฐะบั‚ะธั‡ะฝะพัั‚ัŒัŽ.

      +
    • +
    • +

      ะžั€ะธะตะฝั‚ะฐั†ะธั ะฝะฐ ะฟะพั‚ั€ะตะฑะฝะพัั‚ะธ ะฑะธะทะฝะตัะฐ ะธ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะน
      +ะŸั€ะธะปะพะถะตะฝะธะต ั€ะฐะทะดะตะปะตะฝะพ ะฝะฐ ะฑะธะทะฝะตั-ะดะพะผะตะฝั‹, ะธ ะฟั€ะธ ะธะผะตะฝะพะฒะฐะฝะธะธ ะฟะพะพั‰ั€ัะตั‚ัั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ั‚ะตั€ะผะธะฝะพะปะพะณะธะธ ะฑะธะทะฝะตัะฐ, ั‡ั‚ะพะฑั‹ ะฒั‹ ะผะพะณะปะธ ะดะตะปะฐั‚ัŒ ะฟะพะปะตะทะฝัƒัŽ ั€ะฐะฑะพั‚ัƒ ะฒ ะฟั€ะพะดัƒะบั‚ะต, ะฝะต ะฒะฝะธะบะฐั ะฟะพะปะฝะพัั‚ัŒัŽ ะฒะพ ะฒัะต ะดั€ัƒะณะธะต ะฝะตัะฒัะทะฐะฝะฝั‹ะต ั‡ะฐัั‚ะธ ะฟั€ะพะตะบั‚ะฐ.

    ะŸะพัั‚ะตะฟะตะฝะฝะพะต ะฒะฝะตะดั€ะตะฝะธะตโ€‹

    -

    ะกะธะปะฐ FSD ะฒ ัั‚ั€ัƒะบั‚ัƒั€ะธั€ะพะฒะฐะฝะฝะพะน ะดะตะบะพะผะฟะพะทะธั†ะธะธ. ะ’ ะปัƒั‡ัˆะตะน ั„ะพั€ะผะต, FSD ะฟะพะทะฒะพะปัะตั‚ ะฝะฐะนั‚ะธ ะผะตัั‚ะพ ะดะปั ะปัŽะฑะพะน ั‡ะฐัั‚ะธ ะบะพะดะฐ ะฟะพั‡ั‚ะธ ะพะดะฝะพะทะฝะฐั‡ะฝะพ. ะžะดะฝะฐะบะพ, ัƒั€ะพะฒะตะฝัŒ ะดะตะบะพะผะฟะพะทะธั†ะธะธ โ€” ัั‚ะพ ะฟะฐั€ะฐะผะตั‚ั€, ะธ ะปัŽะฑะฐั ะบะพะผะฐะฝะดะฐ ะผะพะถะตั‚ ะฟะพะดัั‚ั€ะพะธั‚ัŒ ะตะณะพ ะดะปั ะพะฟั‚ะธะผะฐะปัŒะฝะพะณะพ ะฑะฐะปะฐะฝัะฐ ะผะตะถะดัƒ ะปะตะณะบะพัั‚ัŒัŽ ะฒะฝะตะดั€ะตะฝะธั ะธ ะฟั€ะตะธะผัƒั‰ะตัั‚ะฒะฐะผะธ.

    -

    ะŸั€ะตะดะปะฐะณะฐะตะผ ัะปะตะดัƒัŽั‰ัƒัŽ ัั‚ั€ะฐั‚ะตะณะธัŽ ะดะปั ะผะธะณั€ะฐั†ะธะธ ััƒั‰ะตัั‚ะฒัƒัŽั‰ะตะน ะบะพะดะพะฒะพะน ะฑะฐะทั‹ ะฝะฐ FSD, ะฟั€ะพะฒะตั€ะตะฝะฝัƒัŽ ะพะฟั‹ั‚ะพะผ:

    +

    ะ•ัะปะธ ัƒ ะฒะฐั ะตัั‚ัŒ ััƒั‰ะตัั‚ะฒัƒัŽั‰ะฐั ะบะพะดะพะฒะฐั ะฑะฐะทะฐ, ะบะพั‚ะพั€ัƒัŽ ะฒั‹ ั…ะพั‚ะธั‚ะต ะฟะตั€ะตะฝะตัั‚ะธ ะฝะฐ FSD, ะผั‹ ะฟั€ะตะดะปะฐะณะฐะตะผ ัะปะตะดัƒัŽั‰ัƒัŽ ัั‚ั€ะฐั‚ะตะณะธัŽ. ะะฐ ะฝะฐัˆะตะผ ัะพะฑัั‚ะฒะตะฝะฝะพะผ ะพะฟั‹ั‚ะต ะผะธะณั€ะฐั†ะธะธ ะพะฝะฐ ั…ะพั€ะพัˆะพ ัะตะฑั ะทะฐั€ะตะบะพะผะตะฝะดะพะฒะฐะปะฐ.

    1. -

      ะ’ั‹ั€ะตะทะฐั‚ัŒ ัะปะพะธ app ะธ shared, ั‡ั‚ะพะฑั‹ ะธะผะตั‚ัŒ ะพะฟะพั€ัƒ ะดะปั ะฟะพัะปะตะดัƒัŽั‰ะธั… ัั‚ะฐะฟะพะฒ. ะญั‚ะธ ัะปะพะธ ะฟะพะปัƒั‡ะฐั‚ัั ั‚ะพะฝะบะธะผะธ ะธ ะฟั€ะพัั‚ั‹ะผะธ, ะฟัƒัั‚ัŒ ั‚ะฐะบะธะผะธ ะธ ะพัั‚ะฐัŽั‚ัั.

      +

      ะะฐั‡ะฝะธั‚ะต ะฟะพัั‚ะตะฟะตะฝะฝะพ ั„ะพั€ะผะธั€ะพะฒะฐั‚ัŒ ัะปะพะธ App ะธ Shared, ั‡ั‚ะพะฑั‹ ัะพะทะดะฐั‚ัŒ ั„ัƒะฝะดะฐะผะตะฝั‚.

    2. -

      ะ’ั‹ะฝะตัั‚ะธ ะฒะตััŒ ะธะฝั‚ะตั€ั„ะตะนั, ัะฒัะทะฐะฝะฝั‹ะน ั ะฑะธะทะฝะตัะพะผ, ั€ะฐัะฟั€ะตะดะตะปะธั‚ัŒ ะฟะพ ะฒะธะดะถะตั‚ะฐะผ ะธ ัั‚ั€ะฐะฝะธั†ะฐะผ, ะดะฐะถะต ะตัะปะธ ะฒ ะฝะธั… ะฟะพะบะฐ ั‡ั‚ะพ ะฑัƒะดัƒั‚ ะทะฐะฒะธัะธะผะพัั‚ะธ, ะฝะฐั€ัƒัˆะฐัŽั‰ะธะต ะฟั€ะฐะฒะธะปะฐ FSD.

      +

      ะ ะฐัะบะธะดะฐะนั‚ะต ะฒะตััŒ ััƒั‰ะตัั‚ะฒัƒัŽั‰ะธะน ะธะฝั‚ะตั€ั„ะตะนัะฝั‹ะน ะบะพะด ะฟะพ ะฒะธะดะถะตั‚ะฐะผ ะธ ัั‚ั€ะฐะฝะธั†ะฐะผ, ะดะฐะถะต ะตัะปะธ ัƒ ะฝะธั… ะฟะพะบะฐ ั‡ั‚ะพ ะตัั‚ัŒ ะทะฐะฒะธัะธะผะพัั‚ะธ, ะฝะฐั€ัƒัˆะฐัŽั‰ะธะต ะฟั€ะฐะฒะธะปะฐ FSD.

    3. -

      ะŸะพัั‚ะตะฟะตะฝะฝะพ ะฝะฐั€ะฐั‰ะธะฒะฐั‚ัŒ ัั‚ะตะฟะตะฝัŒ ะดะตะบะพะผะฟะพะทะธั†ะธะธ, ะฒั‹ะดะตะปัั features ะธ entities. ะŸั€ะตะฒั€ะฐั‰ะฐั‚ัŒ ัั‚ั€ะฐะฝะธั†ั‹ ะธ ะฒะธะดะถะตั‚ั‹ ะธะท ะฟะตั€ะตะณั€ัƒะถะตะฝะฝั‹ั… ะปะพะณะธะบะพะน ัะปะพั‘ะฒ ะฒ ั‡ะธัั‚ะพ ะบะพะผะฟะพะทะธั†ะธะพะฝะฝั‹ะต ัะปะพะธ.

      +

      ะŸะพัั‚ะตะฟะตะฝะฝะพ ะธัะฟั€ะฐะฒะปัะนั‚ะต ะฝะฐั€ัƒัˆะตะฝะธั ะฟั€ะฐะฒะธะป ะฝะฐ ะธะผะฟะพั€ั‚ั‹, ะฐ ะฟะพ ั…ะพะดัƒ ะธะทะฒะปะตะบะฐะนั‚ะต ััƒั‰ะฝะพัั‚ะธ ะธ, ะฒะพะทะผะพะถะฝะพ, ั„ะธั‡ะธ.

    -

    ะ ะตะบะพะผะตะฝะดัƒะตั‚ัั ะฒะพะทะดะตั€ะถะฐั‚ัŒัั ะพั‚ ะดะพะฑะฐะฒะปะตะฝะธั ะฝะพะฒั‹ั… ะบั€ัƒะฟะฝั‹ั… ััƒั‰ะฝะพัั‚ะตะน ะฒะพ ะฒั€ะตะผั ั€ะตั„ะฐะบั‚ะพั€ะธะฝะณะฐ, ะฐ ั‚ะฐะบะถะต ั€ะตั„ะฐะบั‚ะพั€ะธะฝะณะฐ ะฟะพ ั‡ะฐัั‚ัะผ.

    +

    ะ ะตะบะพะผะตะฝะดัƒะตั‚ัั ะฒะพะทะดะตั€ะถะฐั‚ัŒัั ะพั‚ ะดะพะฑะฐะฒะปะตะฝะธั ะฝะพะฒั‹ั… ะบั€ัƒะฟะฝั‹ั… ััƒั‰ะฝะพัั‚ะตะน ะฒะพ ะฒั€ะตะผั ั€ะตั„ะฐะบั‚ะพั€ะธะฝะณะฐ, ะฐ ั‚ะฐะบะถะต ั€ะตั„ะฐะบั‚ะพั€ะธะฝะณะฐ ะฟะพ ั‡ะฐัั‚ัะผ.

    +

    ะกะปะตะดัƒัŽั‰ะธะต ัˆะฐะณะธโ€‹

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/get-started/tutorial.html b/ru/docs/get-started/tutorial.html index 52009d01c1..e06b2de693 100644 --- a/ru/docs/get-started/tutorial.html +++ b/ru/docs/get-started/tutorial.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะขัƒั‚ะพั€ะธะฐะป

    @@ -285,6 +285,6 @@

    app/routes/editor._index.tsx, app/routes/editor.$slug.tsx (ะพะดะธะฝะฐะบะพะฒะพะต ัะพะดะตั€ะถะธะผะพะต)
    import { ArticleEditPage } from "pages/article-edit";

    export { loader, action } from "pages/article-edit";

    export default ArticleEditPage;

    ะœั‹ ะทะฐะบะพะฝั‡ะธะปะธ! ะ’ะพะนะดะธั‚ะต ะฒ ัะธัั‚ะตะผัƒ ะธ ะฟะพะฟั€ะพะฑัƒะนั‚ะต ัะพะทะดะฐั‚ัŒ ะฝะพะฒัƒัŽ ัั‚ะฐั‚ัŒัŽ. ะ˜ะปะธ โ€œะทะฐะฑัƒะดัŒั‚ะตโ€ ะฝะฐะฟะธัะฐั‚ัŒ ัั‚ะฐั‚ัŒัŽ ะธ ะฟะพัะผะพั‚ั€ะธั‚ะต, ะบะฐะบ ัั€ะฐะฑะพั‚ะฐะตั‚ ะฒะฐะปะธะดะฐั†ะธั.

    ะ ะตะดะฐะบั‚ะพั€ ัั‚ะฐั‚ะตะน Conduit, ะฒ ะฟะพะปะต ะทะฐะณะพะปะพะฒะบะฐ ะบะพั‚ะพั€ะพะณะพ ะฝะฐะฟะธัะฐะฝะพ โ€œNew articleโ€, ะฐ ะพัั‚ะฐะปัŒะฝั‹ะต ะฟะพะปั ะฟัƒัั‚ั‹. ะะฐะด ั„ะพั€ะผะพะน ะตัั‚ัŒ ะดะฒะต ะพัˆะธะฑะบะธ: โ€œDescribe what this article is aboutโ€ ะธ โ€œWrite the article itselfโ€.

    ะ ะตะดะฐะบั‚ะพั€ ัั‚ะฐั‚ะตะน Conduit, ะฒ ะฟะพะปะต ะทะฐะณะพะปะพะฒะบะฐ ะบะพั‚ะพั€ะพะณะพ ะฝะฐะฟะธัะฐะฝะพ โ€œNew articleโ€, ะฐ ะพัั‚ะฐะปัŒะฝั‹ะต ะฟะพะปั ะฟัƒัั‚ั‹. ะะฐะด ั„ะพั€ะผะพะน ะตัั‚ัŒ ะดะฒะต ะพัˆะธะฑะบะธ: โ€œDescribe what this article is aboutโ€ ะธ โ€œWrite the article itselfโ€.
    -

    ะกั‚ั€ะฐะฝะธั†ั‹ ะฟั€ะพั„ะธะปั ะธ ะฝะฐัั‚ั€ะพะตะบ ะพั‡ะตะฝัŒ ะฟะพั…ะพะถะธ ะฝะฐ ัั‚ั€ะฐะฝะธั†ั‹ ั‡ั‚ะตะฝะธั ะธ ั€ะตะดะฐะบั‚ะธั€ะพะฒะฐะฝะธั ัั‚ะฐั‚ะตะน, ะพะฝะธ ะพัั‚ะฐะฒะปะตะฝั‹ ะฒ ะบะฐั‡ะตัั‚ะฒะต ัƒะฟั€ะฐะถะฝะตะฝะธั ะดะปั ั‡ะธั‚ะฐั‚ะตะปั, ั‚ะพ ะตัั‚ัŒ ะดะปั ะฒะฐั :)

    +

    ะกั‚ั€ะฐะฝะธั†ั‹ ะฟั€ะพั„ะธะปั ะธ ะฝะฐัั‚ั€ะพะตะบ ะพั‡ะตะฝัŒ ะฟะพั…ะพะถะธ ะฝะฐ ัั‚ั€ะฐะฝะธั†ั‹ ั‡ั‚ะตะฝะธั ะธ ั€ะตะดะฐะบั‚ะธั€ะพะฒะฐะฝะธั ัั‚ะฐั‚ะตะน, ะพะฝะธ ะพัั‚ะฐะฒะปะตะฝั‹ ะฒ ะบะฐั‡ะตัั‚ะฒะต ัƒะฟั€ะฐะถะฝะตะฝะธั ะดะปั ั‡ะธั‚ะฐั‚ะตะปั, ั‚ะพ ะตัั‚ัŒ ะดะปั ะฒะฐั :)

    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides.html b/ru/docs/guides.html index 341677c9bd..dc97f2a1c3 100644 --- a/ru/docs/guides.html +++ b/ru/docs/guides.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ๐ŸŽฏ ะ“ะฐะนะดั‹

    @@ -34,6 +34,6 @@

    ะ“ะปะฐะฒะฝะพะต
    ะŸั€ะธะผะตั€ั‹

    ะŸั€ะฐะบั‚ะธั‡ะตัะบะธะต ะฟั€ะธะผะตั€ั‹ ะฟะพ ะฟั€ะธะผะตะฝะตะฝะธัŽ ะผะตั‚ะพะดะพะปะพะณะธะธ

    ะะฒั‚ะพั€ะธะทะฐั†ะธั โ€ข ะขะธะฟั‹ โ€ข ะ›ะตะนะฐัƒั‚ ัั‚ั€ะฐะฝะธั†ั‹
    ะœะธะณั€ะฐั†ะธั

    ะ“ะฐะนะดั‹ ะฟะพ ะผะธะณั€ะฐั†ะธะธ ั ะปะตะณะฐัะธ ะฟั€ะพะตะบั‚ะพะฒ

    ะ›ะตะณะฐัะธ โ€ข FSv1
    ะขะตั…ะฝะพะปะพะณะธะธ

    ะžั€ะธะตะฝั‚ะธั€ะพะฒะฐะฝะฝั‹ะต ะฝะฐ ะบะพะฝะบั€ะตั‚ะฝั‹ะต ั„ั€ะตะนะผะฒะพั€ะบะธ ะณะฐะนะดั‹ ะฟะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธัŽ

    -
    Code Issues (Smells)

    ะžะฑั‰ะธะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะฝั‹ะต ะฟั€ะพะฑะปะตะผั‹ ะดะปั ะฒั‹ัะฒะปะตะฝะธั ะฒ ะบะพะดะต

    ะ”ะตัะตะณะผะตะฝั‚ะฐั†ะธั โ€ข ะ ะพัƒั‚ะธะฝะณ โ€ข ะšั€ะพัั-ะธะผะฟะพั€ั‚ั‹

    +
    Code Issues (Smells)

    ะžะฑั‰ะธะต ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะฝั‹ะต ะฟั€ะพะฑะปะตะผั‹ ะดะปั ะฒั‹ัะฒะปะตะฝะธั ะฒ ะบะพะดะต

    ะ”ะตัะตะณะผะตะฝั‚ะฐั†ะธั โ€ข ะ ะพัƒั‚ะธะฝะณ โ€ข ะšั€ะพัั-ะธะผะฟะพั€ั‚ั‹
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples.html b/ru/docs/guides/examples.html index 9254be3c8e..4798f37f69 100644 --- a/ru/docs/guides/examples.html +++ b/ru/docs/guides/examples.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะขะธะฟั‹

    ะ“ะดะต ัั‚ะพะธั‚ ั€ะฐัะฟะพะปะฐะณะฐั‚ัŒ ั‚ะธะฟั‹? ะšะฐะบะธั… ะฒะธะดะพะฒ ะพะฝะธ ะฑั‹ะฒะฐัŽั‚ ะฒ ะบะพะฝั‚ะตะบัั‚ะต FSD?

    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/auth.html b/ru/docs/guides/examples/auth.html index 9e61d85e02..dff5566447 100644 --- a/ru/docs/guides/examples/auth.html +++ b/ru/docs/guides/examples/auth.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/autocompleted.html b/ru/docs/guides/examples/autocompleted.html index a868c25636..33ca62e2b1 100644 --- a/ru/docs/guides/examples/autocompleted.html +++ b/ru/docs/guides/examples/autocompleted.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/browser-api.html b/ru/docs/guides/examples/browser-api.html index f58b338c89..715a28ad99 100644 --- a/ru/docs/guides/examples/browser-api.html +++ b/ru/docs/guides/examples/browser-api.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    Browser API

    @@ -31,6 +31,6 @@

    ะŸั€ะพ ั€ะฐะฑะพั‚ัƒ ั Browser API: localStorage, audioApi, bluetoothAPI ะธ ั‚.ะฟ.

    ะŸะพะดั€ะพะฑะฝะตะต ะฟั€ะพ ะธะดะตัŽ ะผะพะถะฝะพ ัะฟั€ะพัะธั‚ัŒ @alex_novi

    -
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/cms.html b/ru/docs/guides/examples/cms.html index ee515084f6..cd7a5c295d 100644 --- a/ru/docs/guides/examples/cms.html +++ b/ru/docs/guides/examples/cms.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    CMS

    @@ -39,6 +39,6 @@

    https://t.me/feature_sliced/1553

    -

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/feedback.html b/ru/docs/guides/examples/feedback.html index 63b9eb1ed5..8b8d6178d2 100644 --- a/ru/docs/guides/examples/feedback.html +++ b/ru/docs/guides/examples/feedback.html @@ -22,14 +22,14 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะžะฑั€ะฐั‚ะฝะฐั ัะฒัะทัŒ

    WIP

    ะกั‚ะฐั‚ัŒั ะฝะฐั…ะพะดะธั‚ัั ะฒ ะฟั€ะพั†ะตััะต ะฝะฐะฟะธัะฐะฝะธั

    ะงั‚ะพะฑั‹ ัƒัะบะพั€ะธั‚ัŒ ะตะต ะฟะพัะฒะปะตะฝะธะต, ะผะพะถะฝะพ:


    ๐Ÿฐ Stay tuned!

    Errors, Alerts, Notifications, ...

    -
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/i18n.html b/ru/docs/guides/examples/i18n.html index b1ba2bb2e5..de3eec2c75 100644 --- a/ru/docs/guides/examples/i18n.html +++ b/ru/docs/guides/examples/i18n.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    i18n

    @@ -33,6 +33,6 @@

    https://t.me/feature_sliced/4425
  • https://t.me/feature_sliced/2325
  • https://t.me/feature_sliced/1867
  • -

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/metric.html b/ru/docs/guides/examples/metric.html index fbb6b4b4dc..01435ba8c0 100644 --- a/ru/docs/guides/examples/metric.html +++ b/ru/docs/guides/examples/metric.html @@ -22,14 +22,14 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะœะตั‚ั€ะธะบะฐ

    WIP

    ะกั‚ะฐั‚ัŒั ะฝะฐั…ะพะดะธั‚ัั ะฒ ะฟั€ะพั†ะตััะต ะฝะฐะฟะธัะฐะฝะธั

    ะงั‚ะพะฑั‹ ัƒัะบะพั€ะธั‚ัŒ ะตะต ะฟะพัะฒะปะตะฝะธะต, ะผะพะถะฝะพ:


    ๐Ÿฐ Stay tuned!

    ะŸั€ะพ ัะฟะพัะพะฑั‹ ะธะฝะธั†ะธะฐะปะธะทะธั€ะพะฒะฐั‚ัŒ ะผะตั‚ั€ะธะบะธ ะฒ ะฟั€ะธะปะพะถะตะฝะธะธ

    -
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/monorepo.html b/ru/docs/guides/examples/monorepo.html index ba5bf4ccdd..843b32da0f 100644 --- a/ru/docs/guides/examples/monorepo.html +++ b/ru/docs/guides/examples/monorepo.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/page-layout.html b/ru/docs/guides/examples/page-layout.html index cb687e7bc3..01ad708453 100644 --- a/ru/docs/guides/examples/page-layout.html +++ b/ru/docs/guides/examples/page-layout.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/platforms.html b/ru/docs/guides/examples/platforms.html index 5d870ef07c..2d76ca34da 100644 --- a/ru/docs/guides/examples/platforms.html +++ b/ru/docs/guides/examples/platforms.html @@ -22,14 +22,14 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    Desktop/Touch ะฟะปะฐั‚ั„ะพั€ะผั‹

    WIP

    ะกั‚ะฐั‚ัŒั ะฝะฐั…ะพะดะธั‚ัั ะฒ ะฟั€ะพั†ะตััะต ะฝะฐะฟะธัะฐะฝะธั

    ะงั‚ะพะฑั‹ ัƒัะบะพั€ะธั‚ัŒ ะตะต ะฟะพัะฒะปะตะฝะธะต, ะผะพะถะฝะพ:


    ๐Ÿฐ Stay tuned!

    ะŸั€ะพ ะฟั€ะธะผะตะฝะตะฝะธะต ะผะตั‚ะพะดะพะปะพะณะธะธ ะดะปั desktop/touch

    -
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/ssr.html b/ru/docs/guides/examples/ssr.html index 14bb8b18d2..ad491a9b92 100644 --- a/ru/docs/guides/examples/ssr.html +++ b/ru/docs/guides/examples/ssr.html @@ -22,14 +22,14 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    SSR

    WIP

    ะกั‚ะฐั‚ัŒั ะฝะฐั…ะพะดะธั‚ัั ะฒ ะฟั€ะพั†ะตััะต ะฝะฐะฟะธัะฐะฝะธั

    ะงั‚ะพะฑั‹ ัƒัะบะพั€ะธั‚ัŒ ะตะต ะฟะพัะฒะปะตะฝะธะต, ะผะพะถะฝะพ:


    ๐Ÿฐ Stay tuned!

    ะŸั€ะพ ั€ะตะฐะปะธะทะฐั†ะธัŽ SSR ั ะฟั€ะธะผะตะฝะตะฝะธะตะผ ะผะตั‚ะพะดะพะปะพะณะธะธ

    -
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/theme.html b/ru/docs/guides/examples/theme.html index e754c3842f..fff55c7507 100644 --- a/ru/docs/guides/examples/theme.html +++ b/ru/docs/guides/examples/theme.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะขะตะผะธะทะฐั†ะธั

    @@ -35,6 +35,6 @@

    ะ ะฐัััƒะถะดะตะฝะธั ะฟั€ะพ ั€ะฐัะฟะพะปะพะถะตะฝะธะต theme, i18n ะปะพะณะธะบะธโ€‹

    https://youtu.be/b_nBvHWqxP8?t=133

    -
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/types.html b/ru/docs/guides/examples/types.html index b4408f4fc3..0c90702a5a 100644 --- a/ru/docs/guides/examples/types.html +++ b/ru/docs/guides/examples/types.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะขะธะฟั‹

    @@ -51,6 +51,6 @@

    https://t.me/feature_sliced/3877

    -
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/examples/white-labels.html b/ru/docs/guides/examples/white-labels.html index 96ed317d1d..301d2ddc42 100644 --- a/ru/docs/guides/examples/white-labels.html +++ b/ru/docs/guides/examples/white-labels.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/issues/cross-imports.html b/ru/docs/guides/issues/cross-imports.html index 37404c3ae6..47c4c9742c 100644 --- a/ru/docs/guides/issues/cross-imports.html +++ b/ru/docs/guides/issues/cross-imports.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/issues/desegmented.html b/ru/docs/guides/issues/desegmented.html index b5e0ceb51f..51420ce051 100644 --- a/ru/docs/guides/issues/desegmented.html +++ b/ru/docs/guides/issues/desegmented.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/issues/routes.html b/ru/docs/guides/issues/routes.html index 3189ea0b06..45b11477c1 100644 --- a/ru/docs/guides/issues/routes.html +++ b/ru/docs/guides/issues/routes.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/migration/from-legacy.html b/ru/docs/guides/migration/from-legacy.html index 0475728521..53b8551e7e 100644 --- a/ru/docs/guides/migration/from-legacy.html +++ b/ru/docs/guides/migration/from-legacy.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/migration/from-v1.html b/ru/docs/guides/migration/from-v1.html index 618702ec70..92efed323b 100644 --- a/ru/docs/guides/migration/from-v1.html +++ b/ru/docs/guides/migration/from-v1.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/tech/with-nextjs.html b/ru/docs/guides/tech/with-nextjs.html index c62fb78819..93c6978366 100644 --- a/ru/docs/guides/tech/with-nextjs.html +++ b/ru/docs/guides/tech/with-nextjs.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะ˜ัะฟะพะปัŒะทะพะฒะฐะฝะธะต ั NextJS

    @@ -64,6 +64,6 @@

    ะ ะฐะฑะพั‚ะฐ ั A

    ะกะผ. ั‚ะฐะบะถะตโ€‹

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/tech/with-nuxtjs.html b/ru/docs/guides/tech/with-nuxtjs.html index 59e528c2e6..f810505ac5 100644 --- a/ru/docs/guides/tech/with-nuxtjs.html +++ b/ru/docs/guides/tech/with-nuxtjs.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/guides/tech/with-react-query.html b/ru/docs/guides/tech/with-react-query.html index 3602a762a2..da0e285883 100644 --- a/ru/docs/guides/tech/with-react-query.html +++ b/ru/docs/guides/tech/with-react-query.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/privacy.html b/ru/docs/privacy.html index 951c3370d4..584e704387 100644 --- a/ru/docs/privacy.html +++ b/ru/docs/privacy.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะšะพะฝั„ะธะดะตะฝั†ะธะฐะปัŒะฝะพัั‚ัŒ

    @@ -36,6 +36,6 @@
  • Google Analytics, ะฝะฐ ะบะพั‚ะพั€ัƒัŽ ะผั‹ ะพะฟะธั€ะฐะตะผัั ะดะปั ะฐะฝะฐะปะธะทะฐ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ัะตั€ะฒะธัะฐ (ัะผ. ะฟะพะดั€ะพะฑะฝะตะต)
  • Hotjar, ะฝะฐ ะบะพั‚ะพั€ั‹ะน ะผั‹ ะพะฟะธั€ะฐะตะผัั ะฟั€ะธ ัะฑะพั€ะต ั„ะธะดะฑะตะบะฐ ะฟะพ ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธัŽ (ัะผ. ะฟะพะดั€ะพะฑะฝะตะต)
  • -

    feature-sliced-banner

    +

    feature-sliced-banner

    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/reference.html b/ru/docs/reference.html index 20e2d380de..0e7f68a4bc 100644 --- a/ru/docs/reference.html +++ b/ru/docs/reference.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ๐Ÿ“š ะกะฟั€ะฐะฒะพั‡ะฝะธะบ

    @@ -31,6 +31,6 @@
    ะกะปะพะธ

    ะžะฟั€ะตะดะตะปะตะฝะธะต ัะปะพั ะธ ะฟะพััะฝะตะฝะธะต ัะผั‹ัะปะฐ ะฒัะตั… ัะปะพะตะฒ

    ะกะปะฐะนัั‹ ะธ ัะตะณะผะตะฝั‚ั‹

    ะžะฟั€ะตะดะตะปะตะฝะธั ัะปะฐะนัะฐ ะธ ัะตะณะผะตะฝั‚ะฐ, ะฟั€ะธะผะตั€ั‹ ัะพะดะตั€ะถะธะผะพะณะพ ัะตะณะผะตะฝั‚ะพะฒ ะฝะฐ ั€ะฐะทะฝั‹ั… ัะปะพัั…

    ะ˜ะทะพะปัั†ะธั

    ะŸั€ะฐะบั‚ะธะบะธ ะผะฐััˆั‚ะฐะฑะธั€ัƒะตะผะพะณะพ ะธ ัั„ั„ะตะบั‚ะธะฒะฝะพะณะพ ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธั ะผะพะดัƒะปะตะน

    -
    Public API

    ะŸั€ะฐะบั‚ะธะบะธ ะฟะพ ะฟั€ะพะตะบั‚ะธั€ะพะฒะฐะฝะธัŽ ัƒัั‚ะพะนั‡ะธะฒั‹ั… ะธ ัƒะดะพะฑะฝั‹ั… ะดะปั ะธะฝั‚ะตะณั€ะฐั†ะธะธ ะผะพะดัƒะปะตะน

    +
    Public API

    ะŸั€ะฐะบั‚ะธะบะธ ะฟะพ ะฟั€ะพะตะบั‚ะธั€ะพะฒะฐะฝะธัŽ ัƒัั‚ะพะนั‡ะธะฒั‹ั… ะธ ัƒะดะพะฑะฝั‹ั… ะดะปั ะธะฝั‚ะตะณั€ะฐั†ะธะธ ะผะพะดัƒะปะตะน

    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/reference/isolation.html b/ru/docs/reference/isolation.html index 2456de1965..2b0d0c26ec 100644 --- a/ru/docs/reference/isolation.html +++ b/ru/docs/reference/isolation.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/reference/isolation/coupling-cohesion.html b/ru/docs/reference/isolation/coupling-cohesion.html index f9445f1bec..cfdf64833c 100644 --- a/ru/docs/reference/isolation/coupling-cohesion.html +++ b/ru/docs/reference/isolation/coupling-cohesion.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/reference/isolation/decouple-entities.html b/ru/docs/reference/isolation/decouple-entities.html index 71d38a71ee..df3c4472d4 100644 --- a/ru/docs/reference/isolation/decouple-entities.html +++ b/ru/docs/reference/isolation/decouple-entities.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/reference/layers.html b/ru/docs/reference/layers.html index 5b68310b68..4cfa9f3c06 100644 --- a/ru/docs/reference/layers.html +++ b/ru/docs/reference/layers.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ
    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/reference/public-api.html b/ru/docs/reference/public-api.html index ba213d749d..7b89b3869c 100644 --- a/ru/docs/reference/public-api.html +++ b/ru/docs/reference/public-api.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะŸัƒะฑะปะธั‡ะฝะพะต API ะผะพะดัƒะปั ะฟั€ะธะปะพะถะตะฝะธั

    @@ -153,6 +153,6 @@

    ะกะผ. ั‚ะฐะบะถะต(ะžะฑััƒะถะดะตะฝะธะต) Public API ะฐะฑัั‚ั€ะฐะบั†ะธะธ
  • ะŸั€ะธะฝั†ะธะฟั‹ SOLID
  • ะŸะฐั‚ั‚ะตั€ะฝั‹ GRASP
  • -

    +
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/docs/reference/slices-segments.html b/ru/docs/reference/slices-segments.html index 7235466923..19c97d6e6a 100644 --- a/ru/docs/reference/slices-segments.html +++ b/ru/docs/reference/slices-segments.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะกะปะฐะนัั‹ ะธ ัะตะณะผะตะฝั‚ั‹

    @@ -51,6 +51,6 @@

    ะŸั€ะธะผะตั€ั‹โ€‹

    -
    Layeruimodellibapi
    SharedUI-ะฑะธะฑะปะธะพั‚ะตะบะฐะžะฑั‹ั‡ะฝะพ ะฝะต ะธัะฟะพะปัŒะทัƒะตั‚ััะฃั‚ะธะปะธั‚ะฐั€ะฝั‹ะต ะผะพะดัƒะปะธ ะธะท ะฝะตัะบะพะปัŒะบะธั… ัะฒัะทะฐะฝะฝั‹ั… ั„ะฐะนะปะพะฒ.
    ะ•ัะปะธ ะฒะฐะผ ะฝัƒะถะฝั‹ ะธะฝะดะธะฒะธะดัƒะฐะปัŒะฝั‹ะต ะฒัะฟะพะผะพะณะฐั‚ะตะปัŒะฝั‹ะต ั„ัƒะฝะบั†ะธะธ, ะพะฑั€ะฐั‚ะธั‚ะต ะฒะฝะธะผะฐะฝะธะต ะฝะฐ ะฑะธะฑะปะธะพั‚ะตะบะธ ัƒั‚ะธะปะธั‚, ะฝะฐะฟั€ะธะผะตั€, lodash-es.
    ะŸั€ะธะผะธั‚ะธะฒะฝั‹ะน API-ะบะปะธะตะฝั‚ ั ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝั‹ะผะธ ั„ัƒะฝะบั†ะธัะผะธ, ั‚ะฐะบะธะผะธ ะบะฐะบ ะฐัƒั‚ะตะฝั‚ะธั„ะธะบะฐั†ะธั ะธะปะธ ะบััˆะธั€ะพะฒะฐะฝะธะต.
    Entitiesะกะบะตะปะตั‚ ะฑะธะทะฝะตั-ััƒั‰ะฝะพัั‚ะธ ัะพ ัะปะพั‚ะฐะผะธ ะดะปั ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝั‹ั… ัะปะตะผะตะฝั‚ะพะฒะฅั€ะฐะฝะธะปะธั‰ะต ะพะฑัŠะตะบั‚ะพะฒ ัั‚ะพะน ััƒั‰ะฝะพัั‚ะธ, ะฐ ั‚ะฐะบะถะต ั„ัƒะฝะบั†ะธะธ ะดะปั ะพะฑั€ะฐะฑะพั‚ะบะธ ัั‚ะธั… ะพะฑัŠะตะบั‚ะพะฒ.
    ะญั‚ะพั‚ ัะตะณะผะตะฝั‚ ะปัƒั‡ัˆะต ะฒัะตะณะพ ะฟะพะดั…ะพะดะธั‚ ะดะปั ั…ั€ะฐะฝะตะฝะธั ะดะฐะฝะฝั‹ั… ั ัะตั€ะฒะตั€ะฐ. ะ•ัะปะธ ะฒั‹ ะธัะฟะพะปัŒะทัƒะตั‚ะต TanStack Query ะธะปะธ ะดั€ัƒะณะธะต ะผะตั‚ะพะดั‹ ะฝะตัะฒะฝะพะณะพ ั…ั€ะฐะฝะตะฝะธั, ะฒั‹ ะผะพะถะตั‚ะต ะพะฟัƒัั‚ะธั‚ัŒ ัั‚ะพั‚ ัะตะณะผะตะฝั‚.
    ะคัƒะฝะบั†ะธะธ ะฝะฐะด ะพะฑัŠะตะบั‚ะฐะผะธ ัั‚ะพะน ััƒั‰ะฝะพัั‚ะธ, ะฝะต ัะฒัะทะฐะฝะฝั‹ะต ั ั…ั€ะฐะฝะตะฝะธะตะผ ะดะฐะฝะฝั‹ั…API-ะผะตั‚ะพะดั‹, ะธัะฟะพะปัŒะทัƒัŽั‰ะธะต API-ะบะปะธะตะฝั‚ ะธะท Shared ะดะปั ัƒะฟั€ะพั‰ะตะฝะธั ะบะพะผะผัƒะฝะธะบะฐั†ะธะธ ั ะฑัะบะตะฝะดะพะผ
    Featuresะ˜ะฝั‚ะตั€ะฐะบั‚ะธะฒะฝั‹ะต ัะปะตะผะตะฝั‚ั‹, ะฟะพะทะฒะพะปััŽั‰ะธะต ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัะผ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ัั‚ัƒ ั„ัƒะฝะบั†ะธัŽะ‘ะธะทะฝะตั-ะปะพะณะธะบะฐ ะธ ั…ั€ะฐะฝะธะปะธั‰ะต ะธะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ะฝั‹ั… ะดะฐะฝะฝั‹ั…, ะตัะปะธ ั‚ั€ะตะฑัƒะตั‚ัั (ะฝะฐะฟั€ะธะผะตั€, ั‚ะตะบัƒั‰ะฐั ั‚ะตะผะฐ ะฟั€ะธะปะพะถะตะฝะธั). ะ—ะดะตััŒ ะปะตะถะธั‚ ะบะพะด, ะบะพั‚ะพั€ั‹ะน ะฝะตะฟะพัั€ะตะดัั‚ะฒะตะฝะฝะพ ัะพะทะดะฐะตั‚ ะฟะพะปัŒะทัƒ ะดะปั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัะ˜ะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ะฝั‹ะน ะบะพะด, ะบะพั‚ะพั€ั‹ะน ะฟะพะทะฒะพะปัะตั‚ ัะตะณะผะตะฝั‚ัƒ model ะฑะพะปะตะต ะบั€ะฐั‚ะบะพ ะพะฟะธัะฐั‚ัŒ ะฑะธะทะฝะตั-ะปะพะณะธะบัƒAPI-ะผะตั‚ะพะดั‹, ะฟั€ะตะดัั‚ะฐะฒะปััŽั‰ะธะต ัั‚ัƒ ั„ัƒะฝะบั†ะธัŽ ะฝะฐ ะฑัะบะตะฝะดะต.
    ะœะพะถะตั‚ ะพะฑัŠะตะดะธะฝัั‚ัŒ API-ะผะตั‚ะพะดั‹ ะธะท Entities.
    Widgetsะšะพะผะฟะพะทะธั†ะธั Entities ะธ Features ะฒ ัะฐะผะพะดะพัั‚ะฐั‚ะพั‡ะฝั‹ะต ะฑะปะพะบะธ ะธะฝั‚ะตั€ั„ะตะนัะฐ.
    ะขะฐะบะถะต ะผะพะถะตั‚ ัะพะดะตั€ะถะฐั‚ัŒ ะพะณั€ะฐะฝะธั‡ะธั‚ะตะปะธ ะพัˆะธะฑะพะบ ะธ ัะพัั‚ะพัะฝะธั ะทะฐะณั€ัƒะทะบะธ.
    ะฅั€ะฐะฝะธะปะธั‰ะต ะธะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ะฝั‹ั… ะดะฐะฝะฝั‹ั…, ะตัะปะธ ั‚ั€ะตะฑัƒะตั‚ััะะต-ะฑะธะทะฝะตั-ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธั (ะฝะฐะฟั€ะธะผะตั€, ะถะตัั‚ั‹) ะธ ะฟั€ะพั‡ะธะน ะบะพะด, ะฝะตะพะฑั…ะพะดะธะผั‹ะน ะดะปั ั„ัƒะฝะบั†ะธะพะฝะธั€ะพะฒะฐะฝะธั ัั‚ะพะณะพ ะฑะปะพะบะฐ ะฝะฐ ัั‚ั€ะฐะฝะธั†ะตะžะฑั‹ั‡ะฝะพ ะฝะต ะธัะฟะพะปัŒะทัƒะตั‚ัั, ะฝะพ ะผะพะถะตั‚ ัะพะดะตั€ะถะฐั‚ัŒ ะทะฐะณั€ัƒะทั‡ะธะบะธ ะดะฐะฝะฝั‹ั… ะฒ ะบะพะฝั‚ะตะบัั‚ะต ะฒะปะพะถะตะฝะฝะพะณะพ ั€ะพัƒั‚ะธะฝะณะฐ (ะฝะฐะฟั€ะธะผะตั€, Remix)
    Pagesะšะพะผะฟะพะทะธั†ะธั Entities, Features ะธ Widgets ะฒ ะฟะพะปะฝะพั†ะตะฝะฝั‹ะต ัั‚ั€ะฐะฝะธั†ั‹.
    ะขะฐะบะถะต ะผะพะถะตั‚ ัะพะดะตั€ะถะฐั‚ัŒ ะพะณั€ะฐะฝะธั‡ะธั‚ะตะปะธ ะพัˆะธะฑะพะบ ะธ ัะพัั‚ะพัะฝะธั ะทะฐะณั€ัƒะทะบะธ.
    ะžะฑั‹ั‡ะฝะพ ะฝะต ะธัะฟะพะปัŒะทัƒะตั‚ััะะต-ะฑะธะทะฝะตั-ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธั (ะฝะฐะฟั€ะธะผะตั€, ะถะตัั‚ั‹) ะธ ะฟั€ะพั‡ะธะน ะบะพะด, ะฝะตะพะฑั…ะพะดะธะผั‹ะน ะดะปั ัะพะทะดะฐะฝะธั ะฟะพะปะฝะพั†ะตะฝะฝะพะณะพ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒัะบะพะณะพ ะพะฟั‹ั‚ะฐ ะฝะฐ ัั‚ะพะน ัั‚ั€ะฐะฝะธั†ะตะ—ะฐะณั€ัƒะทั‡ะธะบะธ ะดะฐะฝะฝั‹ั… ะดะปั ั„ั€ะตะนะผะฒะพั€ะบะพะฒ, ะพั€ะธะตะฝั‚ะธั€ะพะฒะฐะฝะฝั‹ั… ะฝะฐ SSR (ั€ะตะฝะดะตั€ะธะฝะณ ะฝะฐ ัะตั€ะฒะตั€ะต)
    +
    Layeruimodellibapi
    SharedUI-ะฑะธะฑะปะธะพั‚ะตะบะฐะžะฑั‹ั‡ะฝะพ ะฝะต ะธัะฟะพะปัŒะทัƒะตั‚ััะฃั‚ะธะปะธั‚ะฐั€ะฝั‹ะต ะผะพะดัƒะปะธ ะธะท ะฝะตัะบะพะปัŒะบะธั… ัะฒัะทะฐะฝะฝั‹ั… ั„ะฐะนะปะพะฒ.
    ะ•ัะปะธ ะฒะฐะผ ะฝัƒะถะฝั‹ ะธะฝะดะธะฒะธะดัƒะฐะปัŒะฝั‹ะต ะฒัะฟะพะผะพะณะฐั‚ะตะปัŒะฝั‹ะต ั„ัƒะฝะบั†ะธะธ, ะพะฑั€ะฐั‚ะธั‚ะต ะฒะฝะธะผะฐะฝะธะต ะฝะฐ ะฑะธะฑะปะธะพั‚ะตะบะธ ัƒั‚ะธะปะธั‚, ะฝะฐะฟั€ะธะผะตั€, lodash-es.
    ะŸั€ะธะผะธั‚ะธะฒะฝั‹ะน API-ะบะปะธะตะฝั‚ ั ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝั‹ะผะธ ั„ัƒะฝะบั†ะธัะผะธ, ั‚ะฐะบะธะผะธ ะบะฐะบ ะฐัƒั‚ะตะฝั‚ะธั„ะธะบะฐั†ะธั ะธะปะธ ะบััˆะธั€ะพะฒะฐะฝะธะต.
    Entitiesะกะบะตะปะตั‚ ะฑะธะทะฝะตั-ััƒั‰ะฝะพัั‚ะธ ัะพ ัะปะพั‚ะฐะผะธ ะดะปั ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝั‹ั… ัะปะตะผะตะฝั‚ะพะฒะฅั€ะฐะฝะธะปะธั‰ะต ะพะฑัŠะตะบั‚ะพะฒ ัั‚ะพะน ััƒั‰ะฝะพัั‚ะธ, ะฐ ั‚ะฐะบะถะต ั„ัƒะฝะบั†ะธะธ ะดะปั ะพะฑั€ะฐะฑะพั‚ะบะธ ัั‚ะธั… ะพะฑัŠะตะบั‚ะพะฒ.
    ะญั‚ะพั‚ ัะตะณะผะตะฝั‚ ะปัƒั‡ัˆะต ะฒัะตะณะพ ะฟะพะดั…ะพะดะธั‚ ะดะปั ั…ั€ะฐะฝะตะฝะธั ะดะฐะฝะฝั‹ั… ั ัะตั€ะฒะตั€ะฐ. ะ•ัะปะธ ะฒั‹ ะธัะฟะพะปัŒะทัƒะตั‚ะต TanStack Query ะธะปะธ ะดั€ัƒะณะธะต ะผะตั‚ะพะดั‹ ะฝะตัะฒะฝะพะณะพ ั…ั€ะฐะฝะตะฝะธั, ะฒั‹ ะผะพะถะตั‚ะต ะพะฟัƒัั‚ะธั‚ัŒ ัั‚ะพั‚ ัะตะณะผะตะฝั‚.
    ะคัƒะฝะบั†ะธะธ ะฝะฐะด ะพะฑัŠะตะบั‚ะฐะผะธ ัั‚ะพะน ััƒั‰ะฝะพัั‚ะธ, ะฝะต ัะฒัะทะฐะฝะฝั‹ะต ั ั…ั€ะฐะฝะตะฝะธะตะผ ะดะฐะฝะฝั‹ั…API-ะผะตั‚ะพะดั‹, ะธัะฟะพะปัŒะทัƒัŽั‰ะธะต API-ะบะปะธะตะฝั‚ ะธะท Shared ะดะปั ัƒะฟั€ะพั‰ะตะฝะธั ะบะพะผะผัƒะฝะธะบะฐั†ะธะธ ั ะฑัะบะตะฝะดะพะผ
    Featuresะ˜ะฝั‚ะตั€ะฐะบั‚ะธะฒะฝั‹ะต ัะปะตะผะตะฝั‚ั‹, ะฟะพะทะฒะพะปััŽั‰ะธะต ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัะผ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ัั‚ัƒ ั„ัƒะฝะบั†ะธัŽะ‘ะธะทะฝะตั-ะปะพะณะธะบะฐ ะธ ั…ั€ะฐะฝะธะปะธั‰ะต ะธะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ะฝั‹ั… ะดะฐะฝะฝั‹ั…, ะตัะปะธ ั‚ั€ะตะฑัƒะตั‚ัั (ะฝะฐะฟั€ะธะผะตั€, ั‚ะตะบัƒั‰ะฐั ั‚ะตะผะฐ ะฟั€ะธะปะพะถะตะฝะธั). ะ—ะดะตััŒ ะปะตะถะธั‚ ะบะพะด, ะบะพั‚ะพั€ั‹ะน ะฝะตะฟะพัั€ะตะดัั‚ะฒะตะฝะฝะพ ัะพะทะดะฐะตั‚ ะฟะพะปัŒะทัƒ ะดะปั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัะ˜ะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ะฝั‹ะน ะบะพะด, ะบะพั‚ะพั€ั‹ะน ะฟะพะทะฒะพะปัะตั‚ ัะตะณะผะตะฝั‚ัƒ model ะฑะพะปะตะต ะบั€ะฐั‚ะบะพ ะพะฟะธัะฐั‚ัŒ ะฑะธะทะฝะตั-ะปะพะณะธะบัƒAPI-ะผะตั‚ะพะดั‹, ะฟั€ะตะดัั‚ะฐะฒะปััŽั‰ะธะต ัั‚ัƒ ั„ัƒะฝะบั†ะธัŽ ะฝะฐ ะฑัะบะตะฝะดะต.
    ะœะพะถะตั‚ ะพะฑัŠะตะดะธะฝัั‚ัŒ API-ะผะตั‚ะพะดั‹ ะธะท Entities.
    Widgetsะšะพะผะฟะพะทะธั†ะธั Entities ะธ Features ะฒ ัะฐะผะพะดะพัั‚ะฐั‚ะพั‡ะฝั‹ะต ะฑะปะพะบะธ ะธะฝั‚ะตั€ั„ะตะนัะฐ.
    ะขะฐะบะถะต ะผะพะถะตั‚ ัะพะดะตั€ะถะฐั‚ัŒ ะพะณั€ะฐะฝะธั‡ะธั‚ะตะปะธ ะพัˆะธะฑะพะบ ะธ ัะพัั‚ะพัะฝะธั ะทะฐะณั€ัƒะทะบะธ.
    ะฅั€ะฐะฝะธะปะธั‰ะต ะธะฝั„ั€ะฐัั‚ั€ัƒะบั‚ัƒั€ะฝั‹ั… ะดะฐะฝะฝั‹ั…, ะตัะปะธ ั‚ั€ะตะฑัƒะตั‚ััะะต-ะฑะธะทะฝะตั-ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธั (ะฝะฐะฟั€ะธะผะตั€, ะถะตัั‚ั‹) ะธ ะฟั€ะพั‡ะธะน ะบะพะด, ะฝะตะพะฑั…ะพะดะธะผั‹ะน ะดะปั ั„ัƒะฝะบั†ะธะพะฝะธั€ะพะฒะฐะฝะธั ัั‚ะพะณะพ ะฑะปะพะบะฐ ะฝะฐ ัั‚ั€ะฐะฝะธั†ะตะžะฑั‹ั‡ะฝะพ ะฝะต ะธัะฟะพะปัŒะทัƒะตั‚ัั, ะฝะพ ะผะพะถะตั‚ ัะพะดะตั€ะถะฐั‚ัŒ ะทะฐะณั€ัƒะทั‡ะธะบะธ ะดะฐะฝะฝั‹ั… ะฒ ะบะพะฝั‚ะตะบัั‚ะต ะฒะปะพะถะตะฝะฝะพะณะพ ั€ะพัƒั‚ะธะฝะณะฐ (ะฝะฐะฟั€ะธะผะตั€, Remix)
    Pagesะšะพะผะฟะพะทะธั†ะธั Entities, Features ะธ Widgets ะฒ ะฟะพะปะฝะพั†ะตะฝะฝั‹ะต ัั‚ั€ะฐะฝะธั†ั‹.
    ะขะฐะบะถะต ะผะพะถะตั‚ ัะพะดะตั€ะถะฐั‚ัŒ ะพะณั€ะฐะฝะธั‡ะธั‚ะตะปะธ ะพัˆะธะฑะพะบ ะธ ัะพัั‚ะพัะฝะธั ะทะฐะณั€ัƒะทะบะธ.
    ะžะฑั‹ั‡ะฝะพ ะฝะต ะธัะฟะพะปัŒะทัƒะตั‚ััะะต-ะฑะธะทะฝะตั-ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธั (ะฝะฐะฟั€ะธะผะตั€, ะถะตัั‚ั‹) ะธ ะฟั€ะพั‡ะธะน ะบะพะด, ะฝะตะพะฑั…ะพะดะธะผั‹ะน ะดะปั ัะพะทะดะฐะฝะธั ะฟะพะปะฝะพั†ะตะฝะฝะพะณะพ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒัะบะพะณะพ ะพะฟั‹ั‚ะฐ ะฝะฐ ัั‚ะพะน ัั‚ั€ะฐะฝะธั†ะตะ—ะฐะณั€ัƒะทั‡ะธะบะธ ะดะฐะฝะฝั‹ั… ะดะปั ั„ั€ะตะนะผะฒะพั€ะบะพะฒ, ะพั€ะธะตะฝั‚ะธั€ะพะฒะฐะฝะฝั‹ั… ะฝะฐ SSR (ั€ะตะฝะดะตั€ะธะฝะณ ะฝะฐ ัะตั€ะฒะตั€ะต)
    ะกั‚ั€ะฐะฝะธั†ะฐ ะฑั‹ะปะฐ ะฟะพะปะตะทะฝะพะน?
    ะ’ะฐัˆ ั„ะธะดะฑะตะบ ะฟะพะผะพะณะฐะตั‚ ะฝะฐะผ ัƒะปัƒั‡ัˆะฐั‚ัŒ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ
    \ No newline at end of file diff --git a/ru/examples.html b/ru/examples.html index e93769b0ae..0f4e5e4aed 100644 --- a/ru/examples.html +++ b/ru/examples.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ะŸั€ะธะผะตั€ั‹

    ะกะฟะธัะพะบ ัะฐะนั‚ะพะฒ, ัะดะตะปะฐะฝะฝั‹ั… ะปัŽะดัŒะผะธ ั FSD

    v2
    Roke.to Business

    Business branch of Roketo, a crypto streaming service which allows paying people by the second

    reacteffectortailwindcssturbo
    v2
    Roke.to dApp

    A crypto streaming service which allows paying people by the second

    reacteffectortailwindcss
    v2
    IT bookstore

    Catalog for viewing and searching information technology books

    reactredux toolkittypescriptreact routervitescss
    v2
    Moke Smoke (React Native example)

    An application that helps you quit smoking, published in the App Store and Google. Developed with React Native

    reactrtkpersisttypescriptfirebase
    v2
    Moonlogs (Effector + Forest example)

    Moonlogs is a business-event logging tool with a built-in user-friendly web interface for easy access to events

    foresteffectortailwindtypescriptgo
    v2
    Posts (React Query example)

    Example of using FSD with React Query (Mutation, Query, Pagination)

    reactreact-querytypescriptmaterial ui
    v2
    FalkChat

    FalkChat is your go-to destination for seamless and engaging online conversations.

    reactnextprettierclerktypescripttailwindshadcn/uizustand
    v2
    Polka

    The application is a bookshelf where you can add your favorite books. The application works with the Google Books API.

    vue3piniatypescriptvue-routereslintprettiervitevuetify
    v2
    Fake Cyber Web Store

    Example web store on Vue3

    vue3piniatypescriptfirebasevue-routereslintprettiervite
    v2
    VK Audiopad

    Chrome extension for VK Music

    reactvkuitypescript
    v2
    ะกryptolight

    Cryptocurrency review site based on Feature-Sliced Design (Architectural methodology for frontend projects).

    reacteffectornextuitypescriptvite
    v2
    Money Flow

    A mobile application for tracking your expenses and incomes.

    capacitorjsreactreact-routerzustandvitetypescriptmobileandroidios
    v2
    E-Commerce

    This project is an online store built using React. It provides the ability to view the product catalog and product pages

    reactmobxwebpacktypescriptssr
    v2
    Todo app (Vue 3 + Pinia)

    QuickStart todo-app example for Vue developers with pinia store

    vue 3piniavitetypescript
    v2
    Conduit

    A social blogging site powered by Feature-Sliced Design architectural methodology.

    reactreact-routerreact-queryzustandvitetypescript
    v2
    Kinomore (React+Effector)

    Large project on the effector/fsd stack

    reacteffectortypescriptnextjsreact-testing-library
    v2
    Sudoku (React+Effector)

    A simple crossword of numbers on effector / fsd

    reacteffectortypescriptvitetailwindatomic-router
    v2
    Nukeapp (React+ReduxToolkit)

    Shopping app build on React/ReduxToolkit stack

    reactredux-toolkittypescriptvite
    v2
    Simple Greenhouse App (React+MobX)

    Simple demonstration of how FSD can be implemented with TypeScript, React.js, MobX and Firebase

    reactmobxtypescriptfirebasemuivite
    v2
    Todo App (ReactNative+Redux)

    QuickStart todo-app example for ReactNative(Expo) developers

    react-nativeexporedux
    v2
    Rastrr

    A simple and free graphic editor for novice artists

    svelte
    v2
    Draw, I'll Help

    A drawing app with shape correction powered by ML

    svelte
    v2
    Cast

    A podcast listening PWA with automated quality assurance

    svelte
    v2
    Loripsum generator

    Simple fish text generator

    reacteffector
    v2
    Projentry (demo)

    Assistant for your projects

    reactantd
    v2
    Todo App (Angular 13)

    QuickStart todo-app example for Angular developers

    angularrxjs
    v2
    Todo App (Vue 3)

    QuickStart todo-app example for Vue developers

    vuevuexantd
    v2
    Todo App (React+Redux)

    QuickStart todo-app example for React developers (Redux version)

    reactreduxantd
    v2
    Todo App (React+Effector)

    QuickStart todo-app example for React developers (Effector version)

    reacteffectorantd
    v2
    Github Client

    React & GraphQL powered github web-client

    reactgraphqlantd
    v2
    Cardbox

    The best solutions from developers in one place

    reacteffector
    diff --git a/ru/index.html b/ru/index.html index b1e6251324..17e8efda4f 100644 --- a/ru/index.html +++ b/ru/index.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    Feature-Sliced Design

    ะั€ั…ะธั‚ะตะบั‚ัƒั€ะฝะฐั ะผะตั‚ะพะดะพะปะพะณะธั ะดะปั ั„ั€ะพะฝั‚ะตะฝะด ะฟั€ะพะตะบั‚ะพะฒ

    ะŸั€ะตะธะผัƒั‰ะตัั‚ะฒะฐ

    ะฏะฒะฝะฐั ะฑะธะทะฝะตั-ะปะพะณะธะบะฐ

    ะั€ั…ะธั‚ะตะบั‚ัƒั€ัƒ ะปะตะณะบะพ ะพัะฒะฐะธะฒะฐั‚ัŒ, ะฟะพัะบะพะปัŒะบัƒ ะพะฝะฐ ัะพัั‚ะพะธั‚ ะธะท ะดะพะผะตะฝะฝั‹ั… ะผะพะดัƒะปะตะน

    ะะดะฐะฟั‚ะธะฒะฝะพัั‚ัŒ

    ะšะพะผะฟะพะฝะตะฝั‚ั‹ ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ ะผะพะถะฝะพ ะณะธะฑะบะพ ะทะฐะผะตะฝัั‚ัŒ, ะดะพะฑะฐะฒะปัั‚ัŒ ะฟะพะด ะฝะพะฒั‹ะต ัƒัะปะพะฒะธั

    ะขะตั…ะฝะธั‡ะตัะบะธะน ะดะพะปะณ

    ะšะฐะถะดั‹ะน ะผะพะดัƒะปัŒ ะผะพะถะฝะพ ะฝะตะทะฐะฒะธัะธะผะพ ะผะพะดะธั„ะธั†ะธั€ะพะฒะฐั‚ัŒ / ะฟะตั€ะตะฟะธัะฐั‚ัŒ ะฑะตะท ัะฐะนะด-ัั„ั„ะตะบั‚ะพะฒ

    ะฏะฒะฝะฐั ะฟะตั€ะตะธัะฟะพะปัŒะทัƒะตะผะพัั‚ัŒ

    ะกะพั…ั€ะฐะฝัะตั‚ัั ะฑะฐะปะฐะฝั ะผะตะถะดัƒ DRY ะธ ะปะพะบะฐะปัŒะฝะพะน ะบะฐัั‚ะพะผะธะทะฐั†ะธะตะน

    ะšะพะฝั†ะตะฟั†ะธะธ

    Public API

    ะšะฐะถะดั‹ะน ะผะพะดัƒะปัŒ ะดะพะปะถะตะฝ ะธะผะตั‚ัŒ ะฝะฐ ะฒะตั€ั…ะฝะตะผ ัƒั€ะพะฒะฝะต ะดะตะบะปะฐั€ะฐั†ะธัŽ ัะฒะพะตะณะพ ะฟัƒะฑะปะธั‡ะฝะพะณะพ API

    ะ˜ะทะพะปัั†ะธั

    ะœะพะดัƒะปัŒ ะฝะต ะดะพะปะถะตะฝ ะทะฐะฒะธัะตั‚ัŒ ะฝะฐะฟั€ัะผัƒัŽ ะพั‚ ะดั€ัƒะณะธั… ะผะพะดัƒะปะตะน ั‚ะพะณะพ ะถะต ัะปะพั ะธะปะธ ะฒั‹ัˆะตะปะตะถะฐัˆะธั… ัะปะพะตะฒ

    ะŸะพะฝะธะผะฐะฝะธะต ะฟะพั‚ั€ะตะฑะฝะพัั‚ะตะน

    ะžั€ะธะตะฝั‚ะธั€ะพะฒะฐะฝะธะต ะฝะฐ ะฟะพั‚ั€ะตะฑะฝะพัั‚ะธ ะฑะธะทะฝะตัะฐ ะธ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั

    ะกั…ะตะผะฐ

    ะšะพะผะฟะฐะฝะธะธ, ะธัะฟะพะปัŒะทัƒัŽั‰ะธะต ะผะตั‚ะพะดะพะปะพะณะธัŽ

    ะœะตั‚ะพะดะพะปะพะณะธั ะธัะฟะพะปัŒะทัƒะตั‚ัั ะฒ ะ’ะฐัˆะตะน ะบะพะผะฟะฐะฝะธะธ? ะกะพะพะฑั‰ะธั‚ะต ะฝะฐะผ
    diff --git a/ru/nav.html b/ru/nav.html index e586aebb39..e646ab15dd 100644 --- a/ru/nav.html +++ b/ru/nav.html @@ -22,8 +22,8 @@ - - + +
    ะŸะตั€ะตะนั‚ะธ ะบ ะพัะฝะพะฒะฝะพะผัƒ ัะพะดะตั€ะถะธะผะพะผัƒ

    ๐Ÿงญ ะะฐะฒะธะณะฐั†ะธั

    ะฃัั‚ะฐั€ะตะฒัˆะธะต ััั‹ะปะบะธ

    ะŸะพัะปะต ั€ะตัั‚ั€ัƒะบั‚ัƒั€ะธะทะฐั†ะธะธ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธะธ, ะฝะตะบะพั‚ะพั€ั‹ะต ััั‹ะปะบะธ ะฝะฐ ัั‚ะฐั‚ัŒะธ ะธะทะผะตะฝะธะปะธััŒ. ะะธะถะต ะผะพะถะฝะพ ะฝะฐะนั‚ะธ ัั‚ั€ะฐะฝะธั†ัƒ, ะบะพั‚ะพั€ัƒัŽ ะฒั‹, ะฒะพะทะผะพะถะฝะพ, ะธัะบะฐะปะธ.

    ะะพ ะดะปั ัะพะฒะผะตัั‚ะธะผะพัั‚ะธ ะตัั‚ัŒ ั€ะตะดะธั€ะตะบั‚ั‹ ัะพ ัั‚ะฐั€ั‹ั… ััั‹ะปะพะบ

    ๐Ÿš€ Get Started

    โšก๏ธ Simplified and merged

    Tutorial

    old: /docs/get-started/quick-start
    new: /docs/get-started/tutorial

    Basics

    old: /docs/get-started/basics
    new: /docs/get-started/overview

    Decompose Cheatsheet

    old: /docs/get-started/tutorial/decompose; diff --git a/ru/search.html b/ru/search.html index 9c23ca041c..cd35fcbbbf 100644 --- a/ru/search.html +++ b/ru/search.html @@ -22,8 +22,8 @@ - - + + diff --git a/ru/versions.html b/ru/versions.html index c0043088d9..5ffd60ece4 100644 --- a/ru/versions.html +++ b/ru/versions.html @@ -22,8 +22,8 @@ - - + +

    ะ’ะตั€ัะธะธ Feature-Sliced Design

    Feature-Sliced Design v2.0.0 (Current)

    ะ—ะดะตััŒ ะผะพะถะฝะพ ะฝะฐะนั‚ะธ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ ะดะปั ั‚ะตะบัƒั‰ะตะน ะพะฟัƒะฑะปะธะบะพะฒะฐะฝะฝะพะน ะฒะตั€ัะธะธ

    v2.0.0 ๐ŸฐRelease NotesDocumentationMigration from v1

    Feature Slices v1 (Legacy)

    ะ—ะดะตััŒ ะผะพะถะฝะพ ะฝะฐะนั‚ะธ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ ะดะปั ัั‚ะฐั€ั‹ั… ะฒะตั€ัะธะน feature-slices

    v1.0Documentation
    v0.1Documentation

    Feature Driven (Legacy)

    ะ—ะดะตััŒ ะผะพะถะฝะพ ะฝะฐะนั‚ะธ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ ะดะปั ัั‚ะฐั€ั‹ั… ะฒะตั€ัะธะน feature-driven

    v0.1Documentation
    Example (kof)Github
    diff --git a/search.html b/search.html index b78102f06a..bb78cc9fd3 100644 --- a/search.html +++ b/search.html @@ -22,8 +22,8 @@ - - + + diff --git a/uz/404.html b/uz/404.html index 33068a9d39..c0449536db 100644 --- a/uz/404.html +++ b/uz/404.html @@ -22,8 +22,8 @@ - - + +

    Sahifa topilmadi

    Afsuski, siz hohlagan sahifa topilmadi

    Iltimos, ushbu havolaga kirgan sayt egasiga havola ishlamayotganligi haqida xabar bering.

    diff --git a/uz/assets/js/022a3ac7.7984ee1b.js b/uz/assets/js/022a3ac7.01adf61c.js similarity index 63% rename from uz/assets/js/022a3ac7.7984ee1b.js rename to uz/assets/js/022a3ac7.01adf61c.js index d7e790535f..ad3706e6d9 100644 --- a/uz/assets/js/022a3ac7.7984ee1b.js +++ b/uz/assets/js/022a3ac7.01adf61c.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[9856],{6506:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(941),s=a(758);const c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"};var i=a(4170),r=function(e,t){return s.createElement(i.A,(0,n.A)({},e,{ref:t,icon:c}))};const o=s.forwardRef(r)},3548:(e,t,a)=>{a.d(t,{Ay:()=>o,RM:()=>i});var n=a(6070),s=a(7468),c=a(57);const i=[];function r(e){return(0,n.jsx)(c.A,{...e})}function o(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(r,{...e})}):r(e)}},6044:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>_,contentTitle:()=>b,default:()=>M,frontMatter:()=>z,metadata:()=>y,toc:()=>A});var n=a(6070),s=a(7468),c=a(3548),i=a(941),r=a(758);const o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M912 820.1V203.9c28-9.9 48-36.6 48-67.9 0-39.8-32.2-72-72-72-31.3 0-58 20-67.9 48H203.9C194 84 167.3 64 136 64c-39.8 0-72 32.2-72 72 0 31.3 20 58 48 67.9v616.2C84 830 64 856.7 64 888c0 39.8 32.2 72 72 72 31.3 0 58-20 67.9-48h616.2c9.9 28 36.6 48 67.9 48 39.8 0 72-32.2 72-72 0-31.3-20-58-48-67.9zM888 112c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 912c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-752c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm704 680H184V184h656v656zm48 72c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"}},{tag:"path",attrs:{d:"M288 474h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16zm56-136h336v64H344v-64zm-56 420h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16zm56-136h336v64H344v-64z"}}]},name:"group",theme:"outlined"};var l=a(4170),d=function(e,t){return r.createElement(l.A,(0,i.A)({},e,{ref:t,icon:o}))};const u=r.forwardRef(d);const m={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"}}]},name:"appstore",theme:"outlined"};var h=function(e,t){return r.createElement(l.A,(0,i.A)({},e,{ref:t,icon:m}))};const f=r.forwardRef(h);const p={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M843.5 737.4c-12.4-75.2-79.2-129.1-155.3-125.4S550.9 676 546 752c-153.5-4.8-208-40.7-199.1-113.7 3.3-27.3 19.8-41.9 50.1-49 18.4-4.3 38.8-4.9 57.3-3.2 1.7.2 3.5.3 5.2.5 11.3 2.7 22.8 5 34.3 6.8 34.1 5.6 68.8 8.4 101.8 6.6 92.8-5 156-45.9 159.2-132.7 3.1-84.1-54.7-143.7-147.9-183.6-29.9-12.8-61.6-22.7-93.3-30.2-14.3-3.4-26.3-5.7-35.2-7.2-7.9-75.9-71.5-133.8-147.8-134.4-76.3-.6-140.9 56.1-150.1 131.9s40 146.3 114.2 163.9c74.2 17.6 149.9-23.3 175.7-95.1 9.4 1.7 18.7 3.6 28 5.8 28.2 6.6 56.4 15.4 82.4 26.6 70.7 30.2 109.3 70.1 107.5 119.9-1.6 44.6-33.6 65.2-96.2 68.6-27.5 1.5-57.6-.9-87.3-5.8-8.3-1.4-15.9-2.8-22.6-4.3-3.9-.8-6.6-1.5-7.8-1.8l-3.1-.6c-2.2-.3-5.9-.8-10.7-1.3-25-2.3-52.1-1.5-78.5 4.6-55.2 12.9-93.9 47.2-101.1 105.8-15.7 126.2 78.6 184.7 276 188.9 29.1 70.4 106.4 107.9 179.6 87 73.3-20.9 119.3-93.4 106.9-168.6zM329.1 345.2a83.3 83.3 0 11.01-166.61 83.3 83.3 0 01-.01 166.61zM695.6 845a83.3 83.3 0 11.01-166.61A83.3 83.3 0 01695.6 845z"}}]},name:"node-index",theme:"outlined"};var v=function(e,t){return r.createElement(l.A,(0,i.A)({},e,{ref:t,icon:p}))};const g=r.forwardRef(v);var x=a(6506);const z={sidebar_position:0,hide_table_of_contents:!0,pagination_prev:"guides/index"},b="\ud83d\udcda Malumot",y={id:"reference/index",title:"\ud83d\udcda Malumot",description:"Feature-Sliced Design asosiy tushunchalarining batafsil tavsifi.",source:"@site/i18n/uz/docusaurus-plugin-content-docs/current/reference/index.mdx",sourceDirName:"reference",slug:"/reference/",permalink:"/uz/docs/reference/",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/uz/docusaurus-plugin-content-docs/current/reference/index.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:0,frontMatter:{sidebar_position:0,hide_table_of_contents:!0,pagination_prev:"guides/index"},sidebar:"referenceSidebar",previous:{title:"\ud83c\udfaf Guides",permalink:"/uz/docs/guides/"},next:{title:"Qatlamlar",permalink:"/uz/docs/reference/layers"}},_={},A=[...c.RM,...c.RM,...c.RM,...c.RM];function j(e){const t={h1:"h1",p:"p",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"-malumot",children:"\ud83d\udcda Malumot"}),"\n",(0,n.jsx)("p",{class:"summary",children:(0,n.jsx)(t.p,{children:"Feature-Sliced Design asosiy tushunchalarining batafsil tavsifi."})}),"\n",(0,n.jsx)(c.Ay,{title:"Qatlamlar",description:"Qatlamning ta'rifi va barcha qatlamlar uchun tushuntirishlar",to:"/docs/reference/layers",Icon:u}),"\n",(0,n.jsx)(c.Ay,{title:"Bo'lak va segmentlar",description:"Bo'lak va segmentning ta'riflari, turli qatlamlardagi segmentlar uchun kontent misollari",to:"/docs/reference/slices-segments",Icon:f}),"\n",(0,n.jsx)(c.Ay,{title:"Izolyatsiya",description:"O'lchovli va samarali modul o'zaro ta'siri uchun amaliyotlar",to:"/docs/reference/isolation",Icon:g}),"\n",(0,n.jsx)(c.Ay,{title:"Ommaviy API",description:"Kengaytiriladigan va integratsiyalashuvi oson modullarni loyihalash amaliyoti",to:"/docs/reference/public-api",Icon:x.A})]})}function M(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(j,{...e})}):j(e)}},3240:(e,t,a)=>{a.d(t,{ga:()=>n});var n={};a.r(n),a.d(n,{CATEGORIES:()=>c,sendEvent:()=>s});const s=e=>{let{category:t,action:a,label:n,value:s}=e;if(void 0!==typeof window&&window.ga)return window.ga("send",{hitType:"event",eventCategory:t,eventAction:a,eventLabel:n,eventValue:s})},c={full:"Feedback 1.2 (full)",mixed:"Feedback 1.2 (mixed)",short:"Feedback 1.2 (short)"}},57:(e,t,a)=>{a.d(t,{Y:()=>l,A:()=>u});var n=a(758),s=a(8923),c=a(2992),i=a(3240);const r={root:"root_GfON",rootDisabled:"rootDisabled_SFUB",details:"details_xxkR",detailsTags:"detailsTags_uTQx",icon:"icon_ciqP",title:"title_pSH5",description:"description__Fep",miniTheme:"miniTheme_ePfp",primaryTheme:"primaryTheme_CilO",defaultTheme:"defaultTheme_j3I8"};var o=a(6070);const l=e=>{const{title:t,description:a,to:l,Icon:u,tags:m,className:h,disabled:f,theme:p="default"}=e,v=(0,n.useCallback)((()=>{i.ga.sendEvent({category:i.ga.CATEGORIES.full,action:"NavRow:Click",label:l})}),[l]);return(0,o.jsxs)(c.A,{className:(0,s.A)(r.root,h,f&&r.rootDisabled,r[`${p}Theme`]),to:l,onClick:v,children:[(0,o.jsx)(d,{Icon:u}),(0,o.jsxs)("div",{className:r.details,children:[(0,o.jsxs)("div",{className:r.detailsMain,children:[(0,o.jsx)("span",{className:r.title,children:t}),(0,o.jsx)("p",{className:r.description,children:a})]}),m&&(0,o.jsx)("div",{className:r.detailsTags,children:m.join(" \u2022 ")})]})]})},d=e=>{let{Icon:t}=e;return t?"string"==typeof t?(0,o.jsx)("span",{className:r.icon,children:t}):(0,o.jsx)(t,{className:r.icon}):null},u=l},7468:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var n=a(758);const s={},c=n.createContext(s);function i(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[9856],{6506:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(941),s=a(758);const c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"};var i=a(4170),r=function(e,t){return s.createElement(i.A,(0,n.A)({},e,{ref:t,icon:c}))};const o=s.forwardRef(r)},3548:(e,t,a)=>{a.d(t,{Ay:()=>o,RM:()=>i});var n=a(6070),s=a(7468),c=a(57);const i=[];function r(e){return(0,n.jsx)(c.A,{...e})}function o(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(r,{...e})}):r(e)}},6044:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>_,contentTitle:()=>b,default:()=>M,frontMatter:()=>z,metadata:()=>y,toc:()=>A});var n=a(6070),s=a(7468),c=a(3548),i=a(941),r=a(758);const o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M912 820.1V203.9c28-9.9 48-36.6 48-67.9 0-39.8-32.2-72-72-72-31.3 0-58 20-67.9 48H203.9C194 84 167.3 64 136 64c-39.8 0-72 32.2-72 72 0 31.3 20 58 48 67.9v616.2C84 830 64 856.7 64 888c0 39.8 32.2 72 72 72 31.3 0 58-20 67.9-48h616.2c9.9 28 36.6 48 67.9 48 39.8 0 72-32.2 72-72 0-31.3-20-58-48-67.9zM888 112c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 912c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-752c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm704 680H184V184h656v656zm48 72c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"}},{tag:"path",attrs:{d:"M288 474h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16zm56-136h336v64H344v-64zm-56 420h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16zm56-136h336v64H344v-64z"}}]},name:"group",theme:"outlined"};var l=a(4170),d=function(e,t){return r.createElement(l.A,(0,i.A)({},e,{ref:t,icon:o}))};const u=r.forwardRef(d);const m={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"}}]},name:"appstore",theme:"outlined"};var h=function(e,t){return r.createElement(l.A,(0,i.A)({},e,{ref:t,icon:m}))};const f=r.forwardRef(h);const p={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M843.5 737.4c-12.4-75.2-79.2-129.1-155.3-125.4S550.9 676 546 752c-153.5-4.8-208-40.7-199.1-113.7 3.3-27.3 19.8-41.9 50.1-49 18.4-4.3 38.8-4.9 57.3-3.2 1.7.2 3.5.3 5.2.5 11.3 2.7 22.8 5 34.3 6.8 34.1 5.6 68.8 8.4 101.8 6.6 92.8-5 156-45.9 159.2-132.7 3.1-84.1-54.7-143.7-147.9-183.6-29.9-12.8-61.6-22.7-93.3-30.2-14.3-3.4-26.3-5.7-35.2-7.2-7.9-75.9-71.5-133.8-147.8-134.4-76.3-.6-140.9 56.1-150.1 131.9s40 146.3 114.2 163.9c74.2 17.6 149.9-23.3 175.7-95.1 9.4 1.7 18.7 3.6 28 5.8 28.2 6.6 56.4 15.4 82.4 26.6 70.7 30.2 109.3 70.1 107.5 119.9-1.6 44.6-33.6 65.2-96.2 68.6-27.5 1.5-57.6-.9-87.3-5.8-8.3-1.4-15.9-2.8-22.6-4.3-3.9-.8-6.6-1.5-7.8-1.8l-3.1-.6c-2.2-.3-5.9-.8-10.7-1.3-25-2.3-52.1-1.5-78.5 4.6-55.2 12.9-93.9 47.2-101.1 105.8-15.7 126.2 78.6 184.7 276 188.9 29.1 70.4 106.4 107.9 179.6 87 73.3-20.9 119.3-93.4 106.9-168.6zM329.1 345.2a83.3 83.3 0 11.01-166.61 83.3 83.3 0 01-.01 166.61zM695.6 845a83.3 83.3 0 11.01-166.61A83.3 83.3 0 01695.6 845z"}}]},name:"node-index",theme:"outlined"};var v=function(e,t){return r.createElement(l.A,(0,i.A)({},e,{ref:t,icon:p}))};const g=r.forwardRef(v);var x=a(6506);const z={sidebar_position:0,hide_table_of_contents:!0,pagination_prev:"guides/index"},b="\ud83d\udcda Malumot",y={id:"reference/index",title:"\ud83d\udcda Malumot",description:"Feature-Sliced Design asosiy tushunchalarining batafsil tavsifi.",source:"@site/i18n/uz/docusaurus-plugin-content-docs/current/reference/index.mdx",sourceDirName:"reference",slug:"/reference/",permalink:"/uz/docs/reference/",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/uz/docusaurus-plugin-content-docs/current/reference/index.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:0,frontMatter:{sidebar_position:0,hide_table_of_contents:!0,pagination_prev:"guides/index"},sidebar:"referenceSidebar",previous:{title:"\ud83c\udfaf Guides",permalink:"/uz/docs/guides/"},next:{title:"Qatlamlar",permalink:"/uz/docs/reference/layers"}},_={},A=[...c.RM,...c.RM,...c.RM,...c.RM];function j(e){const t={h1:"h1",p:"p",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"-malumot",children:"\ud83d\udcda Malumot"}),"\n",(0,n.jsx)("p",{class:"summary",children:(0,n.jsx)(t.p,{children:"Feature-Sliced Design asosiy tushunchalarining batafsil tavsifi."})}),"\n",(0,n.jsx)(c.Ay,{title:"Qatlamlar",description:"Qatlamning ta'rifi va barcha qatlamlar uchun tushuntirishlar",to:"/docs/reference/layers",Icon:u}),"\n",(0,n.jsx)(c.Ay,{title:"Bo'lak va segmentlar",description:"Bo'lak va segmentning ta'riflari, turli qatlamlardagi segmentlar uchun kontent misollari",to:"/docs/reference/slices-segments",Icon:f}),"\n",(0,n.jsx)(c.Ay,{title:"Izolyatsiya",description:"O'lchovli va samarali modul o'zaro ta'siri uchun amaliyotlar",to:"/docs/reference/isolation",Icon:g}),"\n",(0,n.jsx)(c.Ay,{title:"Ommaviy API",description:"Kengaytiriladigan va integratsiyalashuvi oson modullarni loyihalash amaliyoti",to:"/docs/reference/public-api",Icon:x.A})]})}function M(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(j,{...e})}):j(e)}},3240:(e,t,a)=>{a.d(t,{ga:()=>n});var n={};a.r(n),a.d(n,{CATEGORIES:()=>c,sendEvent:()=>s});const s=e=>{let{category:t,action:a,label:n,value:s}=e;if(void 0!==typeof window&&window.ga)return window.ga("send",{hitType:"event",eventCategory:t,eventAction:a,eventLabel:n,eventValue:s})},c={full:"Feedback 1.2 (full)",mixed:"Feedback 1.2 (mixed)",short:"Feedback 1.2 (short)"}},57:(e,t,a)=>{a.d(t,{Y:()=>l,A:()=>u});var n=a(758),s=a(8923),c=a(2992),i=a(3240);const r={root:"root_GfON",rootDisabled:"rootDisabled_SFUB",details:"details_xxkR",detailsTags:"detailsTags_uTQx",icon:"icon_ciqP",title:"title_pSH5",description:"description__Fep",miniTheme:"miniTheme_ePfp",primaryTheme:"primaryTheme_CilO",defaultTheme:"defaultTheme_j3I8"};var o=a(6070);const l=e=>{const{title:t,description:a,to:l,Icon:u,tags:m,className:h,disabled:f,theme:p="default"}=e,v=(0,n.useCallback)((()=>{i.ga.sendEvent({category:i.ga.CATEGORIES.full,action:"NavRow:Click",label:l})}),[l]);return(0,o.jsxs)(c.A,{className:(0,s.A)(r.root,h,f&&r.rootDisabled,r[`${p}Theme`]),to:l,onClick:v,children:[(0,o.jsx)(d,{Icon:u}),(0,o.jsxs)("div",{className:r.details,children:[(0,o.jsxs)("div",{className:r.detailsMain,children:[(0,o.jsx)("span",{className:r.title,children:t}),(0,o.jsx)("p",{className:r.description,children:a})]}),m&&(0,o.jsx)("div",{className:r.detailsTags,children:m.join(" \u2022 ")})]})]})},d=e=>{let{Icon:t}=e;return t?"string"==typeof t?(0,o.jsx)("span",{className:r.icon,children:t}):(0,o.jsx)(t,{className:r.icon}):null},u=l},7468:(e,t,a)=>{a.d(t,{R:()=>i,x:()=>r});var n=a(758);const s={},c=n.createContext(s);function i(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/uz/assets/js/0499e362.2b3eea58.js b/uz/assets/js/0499e362.2b3eea58.js new file mode 100644 index 0000000000..2a2ea5fc90 --- /dev/null +++ b/uz/assets/js/0499e362.2b3eea58.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[4005],{4474:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=s(6070),n=s(7468);const o={unlisted:!0},r="Decomposition cheatsheet",a={id:"get-started/cheatsheet",title:"Decomposition cheatsheet",description:"Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow.",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx",sourceDirName:"get-started",slug:"/get-started/cheatsheet",permalink:"/uz/docs/get-started/cheatsheet",draft:!1,unlisted:!0,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,frontMatter:{unlisted:!0},sidebar:"getstartedSidebar"},c={},d=[{value:"Choosing a layer",id:"choosing-a-layer",level:2},{value:"Examples",id:"examples",level:2},{value:"Tweet",id:"tweet",level:3},{value:"GitHub",id:"github",level:3},{value:"See also",id:"see-also",level:2}];function l(e){const t={a:"a",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"decomposition-cheatsheet",children:"Decomposition cheatsheet"}),"\n",(0,i.jsx)(t.p,{children:"Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow."}),"\n",(0,i.jsx)(t.h2,{id:"choosing-a-layer",children:"Choosing a layer"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(735).A+"",children:"Download PDF"})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Definitions of all layers and self-check questions",src:s(9337).A+"",width:"1684",height:"1190"})}),"\n",(0,i.jsx)(t.h2,{id:"examples",children:"Examples"}),"\n",(0,i.jsx)(t.h3,{id:"tweet",children:"Tweet"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"decomposed-tweet-bordered-bgLight",src:s(2208).A+"",width:"1200",height:"2364"})}),"\n",(0,i.jsx)(t.h3,{id:"github",children:"GitHub"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"decomposed-github-bordered",src:s(2688).A+"",width:"2291",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"see-also",children:"See also"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4262",children:"(Thread) General logic for features and entities"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4210",children:"(Thread) Decomposition of swollen logic"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4088",children:"(Thread) About understanding the areas of responsibility during decomposition"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3828",children:"(Thread) Decomposition of the Product List widget"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.pluralsight.com/guides/how-to-organize-your-react-+-redux-codebase",children:"(Article) Different approaches to the decomposition of logic"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3776",children:"(Thread) About the difference between features and entities"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3248",children:"(Thread) About the difference between things and entities (2)"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3833",children:"(Thread) About the application of criteria for decomposition"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},735:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/files/choosing-a-layer-en-12fdf3265c8fc4f6b58687352b81fce7.pdf"},9337:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/choosing-a-layer-en-5b67f20bb921ba17d78a56c0dc7654a9.jpg"},2688:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/decompose-github-a0eeb839a4b5ef5c480a73726a4451b0.jpg"},2208:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/decompose-twitter-7b9a50f879d763c49305b3bf0751ee35.png"},7468:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>a});var i=s(758);const n={},o=i.createContext(n);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/uz/assets/js/0499e362.bc23354e.js b/uz/assets/js/0499e362.bc23354e.js deleted file mode 100644 index 22365bc7f0..0000000000 --- a/uz/assets/js/0499e362.bc23354e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[4005],{4474:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=s(6070),n=s(7468);const o={unlisted:!0},r="Decomposition cheatsheet",a={id:"get-started/cheatsheet",title:"Decomposition cheatsheet",description:"Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow.",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx",sourceDirName:"get-started",slug:"/get-started/cheatsheet",permalink:"/uz/docs/get-started/cheatsheet",draft:!1,unlisted:!0,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/en/docusaurus-plugin-content-docs/current/get-started/cheatsheet.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,frontMatter:{unlisted:!0},sidebar:"getstartedSidebar"},c={},d=[{value:"Choosing a layer",id:"choosing-a-layer",level:2},{value:"Examples",id:"examples",level:2},{value:"Tweet",id:"tweet",level:3},{value:"GitHub",id:"github",level:3},{value:"See also",id:"see-also",level:2}];function l(e){const t={a:"a",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"decomposition-cheatsheet",children:"Decomposition cheatsheet"}),"\n",(0,i.jsx)(t.p,{children:"Use this as a quick reference when you're deciding how to decompose your UI. PDF versions are also available below, so you can print it out and keep one under your pillow."}),"\n",(0,i.jsx)(t.h2,{id:"choosing-a-layer",children:"Choosing a layer"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(735).A+"",children:"Download PDF"})}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Definitions of all layers and self-check questions",src:s(9337).A+"",width:"1684",height:"1190"})}),"\n",(0,i.jsx)(t.h2,{id:"examples",children:"Examples"}),"\n",(0,i.jsx)(t.h3,{id:"tweet",children:"Tweet"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"decomposed-tweet-bordered-bgLight",src:s(2208).A+"",width:"1200",height:"2364"})}),"\n",(0,i.jsx)(t.h3,{id:"github",children:"GitHub"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"decomposed-github-bordered",src:s(2688).A+"",width:"2291",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"see-also",children:"See also"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4262",children:"(Thread) General logic for features and entities"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4210",children:"(Thread) Decomposition of swollen logic"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/4088",children:"(Thread) About understanding the areas of responsibility during decomposition"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3828",children:"(Thread) Decomposition of the Product List widget"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://www.pluralsight.com/guides/how-to-organize-your-react-+-redux-codebase",children:"(Article) Different approaches to the decomposition of logic"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3776",children:"(Thread) About the difference between features and entities"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3248",children:"(Thread) About the difference between things and entities (2)"})}),"\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://t.me/feature_sliced/3833",children:"(Thread) About the application of criteria for decomposition"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,n.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},735:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/files/choosing-a-layer-en-12fdf3265c8fc4f6b58687352b81fce7.pdf"},9337:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/choosing-a-layer-en-5b67f20bb921ba17d78a56c0dc7654a9.jpg"},2688:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/decompose-github-a0eeb839a4b5ef5c480a73726a4451b0.jpg"},2208:(e,t,s)=>{s.d(t,{A:()=>i});const i=s.p+"assets/images/decompose-twitter-7b9a50f879d763c49305b3bf0751ee35.png"},7468:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>a});var i=s(758);const n={},o=i.createContext(n);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/uz/assets/js/066221cc.1a9c0b6d.js b/uz/assets/js/066221cc.1a9c0b6d.js new file mode 100644 index 0000000000..e7790544a0 --- /dev/null +++ b/uz/assets/js/066221cc.1a9c0b6d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[3120],{6301:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=s(6070),t=s(7468);const r={sidebar_position:1},o="Overview",a={id:"get-started/overview",title:"Overview",description:"Feature-Sliced Design (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and stable in the face of ever-changing business requirements.",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/get-started/overview.mdx",sourceDirName:"get-started",slug:"/get-started/overview",permalink:"/uz/docs/get-started/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/en/docusaurus-plugin-content-docs/current/get-started/overview.mdx",tags:[],version:"current",lastUpdatedAt:1719513447e3,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"getstartedSidebar",previous:{title:"\ud83d\ude80 Get Started",permalink:"/uz/docs/get-started/"},next:{title:"Tutorial",permalink:"/uz/docs/get-started/tutorial"}},l={},c=[{value:"Is it right for me?",id:"is-it-right-for-me",level:2},{value:"Basic example",id:"basic-example",level:2},{value:"Concepts",id:"concepts",level:2},{value:"Layers",id:"layers",level:3},{value:"Slices",id:"slices",level:3},{value:"Segments",id:"segments",level:3},{value:"Advantages",id:"advantages",level:2},{value:"Incremental adoption",id:"incremental-adoption",level:2},{value:"Next steps",id:"next-steps",level:2}];function d(e){const n={a:"a",br:"br",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"overview",children:"Overview"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Feature-Sliced Design"})," (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and stable in the face of ever-changing business requirements."]}),"\n",(0,i.jsxs)(n.p,{children:["Apart from a set of conventions, FSD is also a toolchain. We have a ",(0,i.jsx)(n.a,{href:"https://github.com/feature-sliced/steiger",children:"linter"})," to check your project's architecture, ",(0,i.jsx)(n.a,{href:"https://github.com/feature-sliced/awesome?tab=readme-ov-file#tools",children:"folder generators"})," through a CLI or IDEs, as well as a rich library of ",(0,i.jsx)(n.a,{href:"/examples",children:"examples"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"is-it-right-for-me",children:"Is it right for me?"}),"\n",(0,i.jsx)(n.p,{children:"FSD can be implemented in projects and teams of any size. It is right for your project if:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["You're doing ",(0,i.jsx)(n.strong,{children:"frontend"})," (UI on web, mobile, desktop, etc.)"]}),"\n",(0,i.jsxs)(n.li,{children:["You're building an ",(0,i.jsx)(n.strong,{children:"application"}),", not a library"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"And that's it! There are no restrictions on what programming language, UI framework, or state manager you use. You can also adopt FSD incrementally, use it in monorepos, and scale to great lengths by breaking your app into packages and implementing FSD individually within them."}),"\n",(0,i.jsxs)(n.p,{children:["If you already have an architecture and you're considering a switch to FSD, make sure that the current architecture is ",(0,i.jsx)(n.strong,{children:"causing trouble"})," in your team. For example, if your project has grown too large and inter-connected to efficiently implement new features, or if you're expecting a lot of new members to join the team. If the current architecture works, maybe it's not worth changing. But if you do decide to migrate, see the ",(0,i.jsx)(n.a,{href:"/docs/guides/migration/from-legacy",children:"Migration"})," section for guidance."]}),"\n",(0,i.jsx)(n.h2,{id:"basic-example",children:"Basic example"}),"\n",(0,i.jsx)(n.p,{children:"Here is a simple project that implements FSD:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 app"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 pages"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 shared"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["These top-level folders are called ",(0,i.jsx)(n.em,{children:"layers"}),". Let's look deeper:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"\ud83d\udcc2 app"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 routes"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 analytics"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"\ud83d\udcc2 pages"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 home"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"\ud83d\udcc2 article-reader"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 ui"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 api"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 settings"})}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"\ud83d\udcc2 shared"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 ui"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"\ud83d\udcc1 api"})}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Folders inside ",(0,i.jsx)(n.code,{children:"\ud83d\udcc2 pages"})," are called ",(0,i.jsx)(n.em,{children:"slices"}),". They divide the layer by domain (in this case, by pages)."]}),"\n",(0,i.jsxs)(n.p,{children:["Folders inside ",(0,i.jsx)(n.code,{children:"\ud83d\udcc2 app"}),", ",(0,i.jsx)(n.code,{children:"\ud83d\udcc2 shared"}),", and ",(0,i.jsx)(n.code,{children:"\ud83d\udcc2 pages/article-reader"})," are called ",(0,i.jsx)(n.em,{children:"segments"}),", and they divide slices (or layers) by technical purpose, i.e. what the code is for."]}),"\n",(0,i.jsx)(n.h2,{id:"concepts",children:"Concepts"}),"\n",(0,i.jsx)(n.p,{children:"Layers, slices, and segments form a hierarchy like this:"}),"\n",(0,i.jsxs)("figure",{children:[(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Hierarchy of FSD concepts, described below",src:s(1075).A+"",width:"1355",height:"754"})}),(0,i.jsxs)("figcaption",{style:{fontStyle:"italic",fontSize:"0.9em"},children:[(0,i.jsx)("p",{children:'Pictured above: three pillars, labeled left to right as "Layers", "Slices", and "Segments" respectively.'}),(0,i.jsx)("p",{children:'The "Layers" pillar contains seven divisions arranged top to bottom and labeled "app", "processes", "pages", "widgets", "features", "entities", and "shared". The "processes" division is crossed out. The "entities" division is connected to the second pillar "Slices" in a way that conveys that the second pillar is the content of "entities".'}),(0,i.jsx)("p",{children:'The "Slices" pillar contains three divisions arranged top to bottom and labeled "user", "post", and "comment". The "post" division is connected to the third pillar "Segments" in the same way such that it\'s the content of "post".'}),(0,i.jsx)("p",{children:'The "Segments" pillar contains three divisions, arranged top to bottom and labeled "ui", "model", and "api".'})]})]}),"\n",(0,i.jsx)(n.h3,{id:"layers",children:"Layers"}),"\n",(0,i.jsx)(n.p,{children:"Layers are standardized across all FSD projects. You don't have to use all of the layers, but their names are important. There are currently seven of them (from top to bottom):"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"App* \u2014 everything that makes the app run \u2014 routing, entrypoints, global styles, providers."}),"\n",(0,i.jsx)(n.li,{children:"Processes (deprecated) \u2014 complex inter-page scenarios."}),"\n",(0,i.jsx)(n.li,{children:"Pages \u2014 full pages or large parts of a page in nested routing."}),"\n",(0,i.jsx)(n.li,{children:"Widgets \u2014 large self-contained chunks of functionality or UI, usually delivering an entire use case."}),"\n",(0,i.jsxs)(n.li,{children:["Features \u2014 ",(0,i.jsx)(n.em,{children:"reused"})," implementations of entire product features, i.e. actions that bring business value to the user."]}),"\n",(0,i.jsxs)(n.li,{children:["Entities \u2014 business entities that the project works with, like ",(0,i.jsx)(n.code,{children:"user"})," or ",(0,i.jsx)(n.code,{children:"product"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Shared* \u2014 reusable functionality, especially when it's detached from the specifics of the project/business, though not necessarily."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.em,{children:"* \u2014 these layers, App and Shared, unlike the other layers, don't have slices, and are made up of segments directly."})}),"\n",(0,i.jsx)(n.p,{children:"The trick with layers is that modules on one layer can only know about and import from modules from the layers strictly below."}),"\n",(0,i.jsx)(n.h3,{id:"slices",children:"Slices"}),"\n",(0,i.jsx)(n.p,{children:"Next up are slices, which partition the code by business domain. You're free to choose any names for them, and create as many as you wish. Slices make your codebase easier to navigate by keeping logically related modules close together."}),"\n",(0,i.jsx)(n.p,{children:"Slices cannot use other slices on the same layer, and that helps with high cohesion and low coupling."}),"\n",(0,i.jsx)(n.h3,{id:"segments",children:"Segments"}),"\n",(0,i.jsx)(n.p,{children:"Slices, as well as layers App and Shared, consist of segments, and segments group your code by its purpose. Segment names are not constrained by the standard, but there are several conventional names for the most common purposes:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ui"})," \u2014 everything related to UI display: UI components, date formatters, styles, etc."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"api"})," \u2014 backend interactions: request functions, data types, mappers, etc."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"model"})," \u2014 the data model: schemas, interfaces, stores, and business logic."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"lib"})," \u2014 library code that other modules on this slice need."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"config"})," \u2014 configuration files and feature flags."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Usually these segments are enough for most layers, you would only create your own segments in Shared or App, but this is not a rule."}),"\n",(0,i.jsx)(n.h2,{id:"advantages",children:"Advantages"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Uniformity"}),(0,i.jsx)(n.br,{}),"\n","Since the structure is standardized, projects become more uniform, which makes onboarding new members easier for the team."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Stability in face of changes and refactoring"}),(0,i.jsx)(n.br,{}),"\n","A module on one layer cannot use other modules on the same layer, or the layers above.",(0,i.jsx)(n.br,{}),"\n","This allows you to make isolated modifications without unforeseen consequences to the rest of the app."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Controlled reuse of logic"}),(0,i.jsx)(n.br,{}),"\n","Depending on the layer, you can make code very reusable or very local.",(0,i.jsx)(n.br,{}),"\n","This keeps a balance between following the ",(0,i.jsx)(n.strong,{children:"DRY"})," principle and practicality."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Orientation to business and users needs"}),(0,i.jsx)(n.br,{}),"\n","The app is split into business domains and usage of the business language is encouraged in naming, so that you can do useful product work without fully understanding all other unrelated parts of the project."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"incremental-adoption",children:"Incremental adoption"}),"\n",(0,i.jsx)(n.p,{children:"If you have an existing codebase that you want to migrate to FSD, we suggest the following strategy. We found it useful in our own migration experience."}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Start by slowly shaping up the App and Shared layers module-by-module to create a foundation."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Distribute all of the existing UI across Widgets and Pages using broad strokes, even if they have dependencies that violate the rules of FSD."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Start gradually resolving import violations and also extracting Entities and possibly even Features."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"It's advised to refrain from adding new large entities while refactoring or refactoring only certain parts of the project."}),"\n",(0,i.jsx)(n.h2,{id:"next-steps",children:"Next steps"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Want to get a good grasp of how to think in FSD?"})," Check out the ",(0,i.jsx)(n.a,{href:"/docs/get-started/tutorial",children:"Tutorial"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Prefer to learn from examples?"})," We have a lot in the ",(0,i.jsx)(n.a,{href:"/examples",children:"Examples"})," section."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Have questions?"})," Drop by our ",(0,i.jsx)(n.a,{href:"https://t.me/feature_sliced",children:"Telegram chat"})," and get help from the community."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1075:(e,n,s)=>{s.d(n,{A:()=>i});const i=s.p+"assets/images/visual_schema-e826067f573946613dcdc76e3f585082.jpg"},7468:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var i=s(758);const t={},r=i.createContext(t);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/uz/assets/js/0a4ee302.3ab7939f.js b/uz/assets/js/0a4ee302.3ab7939f.js deleted file mode 100644 index e42ae37264..0000000000 --- a/uz/assets/js/0a4ee302.3ab7939f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_feature_sliced_documentation=self.webpackChunk_feature_sliced_documentation||[]).push([[5977],{9863:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var s=n(6070),i=n(7468);const o={sidebar_position:10},r="Usage with NuxtJS",c={id:"guides/tech/with-nuxtjs",title:"Usage with NuxtJS",description:"It is possible to implement FSD in a NuxtJS project, but conflicts arise due to differences between the NuxtJS project structure requirements and FSD principles:",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/guides/tech/with-nuxtjs.mdx",sourceDirName:"guides/tech",slug:"/guides/tech/with-nuxtjs",permalink:"/uz/docs/guides/tech/with-nuxtjs",draft:!1,unlisted:!1,editUrl:"https://github.com/feature-sliced/documentation/edit/master/i18n/en/docusaurus-plugin-content-docs/current/guides/tech/with-nuxtjs.mdx",tags:[],version:"current",lastUpdatedAt:171917314e4,sidebarPosition:10,frontMatter:{sidebar_position:10},sidebar:"guidesSidebar",previous:{title:"Usage with NextJS",permalink:"/uz/docs/guides/tech/with-nextjs"},next:{title:"Usage with React Query",permalink:"/uz/docs/guides/tech/with-react-query"}},a={},d=[{value:"Adding an alias for the src directory",id:"adding-an-alias-for-the-src-directory",level:2},{value:"Move file routing to src/app",id:"move-file-routing-to-srcapp",level:2},{value:"What to do with layouts?",id:"what-to-do-with-layouts",level:2},{value:"See also",id:"see-also",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"usage-with-nuxtjs",children:"Usage with NuxtJS"}),"\n",(0,s.jsx)(t.p,{children:"It is possible to implement FSD in a NuxtJS project, but conflicts arise due to differences between the NuxtJS project structure requirements and FSD principles:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Initially, NuxtJS offers a project file structure without a ",(0,s.jsx)(t.code,{children:"src"})," folder, i.e. in the root of the project."]}),"\n",(0,s.jsxs)(t.li,{children:["The file routing is in the ",(0,s.jsx)(t.code,{children:"pages"})," folder, while in FSD this folder is reserved for the flat slice structure."]}),"\n"]}),"\n",(0,s.jsxs)(t.h2,{id:"adding-an-alias-for-the-src-directory",children:["Adding an alias for the ",(0,s.jsx)(t.code,{children:"src"})," directory"]}),"\n",(0,s.jsxs)(t.p,{children:["Add an ",(0,s.jsx)(t.code,{children:"alias"})," object to your config:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ts",metastring:'title="nuxt.config.ts"',children:"export default defineNuxtConfig({\n devtools: { enabled: true }, // Not related to FSD, enabled at project startup\n alias: {\n \"@\": '~/src'\n },\n})\n"})}),"\n",(0,s.jsxs)(t.h2,{id:"move-file-routing-to-srcapp",children:["Move file routing to ",(0,s.jsx)(t.code,{children:"src/app"})]}),"\n",(0,s.jsxs)(t.p,{children:["First of all, create a ",(0,s.jsx)(t.code,{children:"src"})," directory in the root of the project, and create app and pages layers inside this directory and a routes folder inside the app layer.\nThus, your file structure should look like this:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app\n\u2502 \u2502 \u251c\u2500\u2500 routes\n\u2502 \u251c\u2500\u2500 pages # The pages folder assigned to FSD\n"})}),"\n",(0,s.jsxs)(t.p,{children:["In order for NuxtJS to use the ",(0,s.jsx)(t.code,{children:"app"})," layer for file routing, you need to modify ",(0,s.jsx)(t.code,{children:"nuxt.config.ts"})," as follows:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ts",metastring:'title="nuxt.config.ts"',children:"export default defineNuxtConfig({\n devtools: { enabled: true }, // Not FSD related, enabled at project startup\n alias: {\n \"@\": '~/src'\n },\n dir: {\n pages: './src/app/routes'\n }\n})\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Now, you can create roots for pages within ",(0,s.jsx)(t.code,{children:"app"})," and connect pages from ",(0,s.jsx)(t.code,{children:"pages"})," to them."]}),"\n",(0,s.jsxs)(t.p,{children:["For example, to add a ",(0,s.jsx)(t.code,{children:"Home"})," page to your project, you need to do the following steps:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Add a page slice inside the ",(0,s.jsx)(t.code,{children:"pages"})," layer"]}),"\n",(0,s.jsxs)(t.li,{children:["Add the corresponding root inside the ",(0,s.jsx)(t.code,{children:"app"})," layer"]}),"\n",(0,s.jsx)(t.li,{children:"Align the page from the slice with the root"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["To create a page slice, let's use the ",(0,s.jsx)(t.a,{href:"https://github.com/feature-sliced/cli",children:"CLI"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",children:"fsd pages home\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Create a ",(0,s.jsx)(t.code,{children:"home-page.vue"})," file inside the ui segment, access it using the Public API"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ts",metastring:'title="src/pages/home/index.ts"',children:"export { default as HomePage } from './ui/home-page';\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Create a root for this page inside the ",(0,s.jsx)(t.code,{children:"app"})," layer:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"\n\u251c\u2500\u2500 src\n\u2502 \u251c\u2500\u2500 app\n\u2502 \u2502 \u251c\u2500\u2500 routes\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 index.vue\n\u2502 \u251c\u2500\u2500 pages\n\u2502 \u2502 \u251c\u2500\u2500 home\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 ui\n\u2502 \u2502 \u2502 \u2502 \u251c\u2500\u2500 home-page.vue\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 index.ts\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Add your page component inside the ",(0,s.jsx)(t.code,{children:"index.vue"})," file:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",metastring:'title="src/app/routes/index.vue"',children:" - - + +

    ๐ŸŒŽ FSD international community

    ยท 2 min. o'qish
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/uz/blog/archive.html b/uz/blog/archive.html index eff4514c6c..0dc9ce76a1 100644 --- a/uz/blog/archive.html +++ b/uz/blog/archive.html @@ -22,8 +22,8 @@ - - + + diff --git a/uz/blog/international-community.html b/uz/blog/international-community.html index 43827c8329..1aec2f9a19 100644 --- a/uz/blog/international-community.html +++ b/uz/blog/international-community.html @@ -22,8 +22,8 @@ - - + +

    ๐ŸŒŽ FSD international community

    ยท 2 min. o'qish
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/uz/blog/rebranding-stable.html b/uz/blog/rebranding-stable.html index b54c2f6ae1..02ced8f2b0 100644 --- a/uz/blog/rebranding-stable.html +++ b/uz/blog/rebranding-stable.html @@ -22,8 +22,8 @@ - - + +

    ๐Ÿ’ฅ FSD rebranding!

    ยท 2 min. o'qish
    Ilya Azin
    FSD core-team member
    logo-primary
    diff --git a/uz/blog/tags.html b/uz/blog/tags.html index fdfea94eb7..f9e9c457c5 100644 --- a/uz/blog/tags.html +++ b/uz/blog/tags.html @@ -22,8 +22,8 @@ - - + + diff --git a/uz/blog/tags/brand.html b/uz/blog/tags/brand.html index e6138e5a2e..b22e0eef2d 100644 --- a/uz/blog/tags/brand.html +++ b/uz/blog/tags/brand.html @@ -22,8 +22,8 @@ - - + +

    Bir post "brand" bilan

    Hamma teglarni ko'rish

    ๐Ÿ’ฅ FSD rebranding!

    ยท 2 min. o'qish
    Ilya Azin
    FSD core-team member
    logo-primary
    diff --git a/uz/blog/tags/community.html b/uz/blog/tags/community.html index af560ae3f7..46f58a8c02 100644 --- a/uz/blog/tags/community.html +++ b/uz/blog/tags/community.html @@ -22,8 +22,8 @@ - - + +

    Bir post "community" bilan

    Hamma teglarni ko'rish

    ๐ŸŒŽ FSD international community

    ยท 2 min. o'qish
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/uz/blog/tags/discord.html b/uz/blog/tags/discord.html index 3b5d401c5a..3177c7158d 100644 --- a/uz/blog/tags/discord.html +++ b/uz/blog/tags/discord.html @@ -22,8 +22,8 @@ - - + +

    Bir post "discord" bilan

    Hamma teglarni ko'rish

    ๐ŸŒŽ FSD international community

    ยท 2 min. o'qish
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/uz/blog/tags/promo.html b/uz/blog/tags/promo.html index d37aa065ea..9a07158264 100644 --- a/uz/blog/tags/promo.html +++ b/uz/blog/tags/promo.html @@ -22,8 +22,8 @@ - - + +

    2 ta post "promo" bilan

    Hamma teglarni ko'rish

    ๐ŸŒŽ FSD international community

    ยท 2 min. o'qish
    Anton Medvedev
    FSD core-team member
    post-cover
    diff --git a/uz/community.html b/uz/community.html index ee6b922bdc..30a615b931 100644 --- a/uz/community.html +++ b/uz/community.html @@ -22,8 +22,8 @@ - - + + +
    Contributing

    HowTo, Workflow, Support

    \ No newline at end of file diff --git a/uz/community/team.html b/uz/community/team.html index c2b58144af..5b49f90d17 100644 --- a/uz/community/team.html +++ b/uz/community/team.html @@ -22,8 +22,8 @@ - - + +
    +

    Companiesโ€‹

    \ No newline at end of file diff --git a/uz/docs.html b/uz/docs.html index 6946617942..5237ceb789 100644 --- a/uz/docs.html +++ b/uz/docs.html @@ -22,8 +22,8 @@ - - + + +
    ๐Ÿ›  Misollar

    Feature-Sliced Design da qurilgan loyihalar

    \ No newline at end of file diff --git a/uz/docs/about.html b/uz/docs/about.html index 8844fdf869..643da03bfd 100644 --- a/uz/docs/about.html +++ b/uz/docs/about.html @@ -22,8 +22,8 @@ - - + + +
    Promote

    About promotion and integration FSD at companies

    Integration โ€ข Promoting in team โ€ข Promoting in company
    \ No newline at end of file diff --git a/uz/docs/about/alternatives.html b/uz/docs/about/alternatives.html index 6a7f214b7b..7f6067dc74 100644 --- a/uz/docs/about/alternatives.html +++ b/uz/docs/about/alternatives.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/mission.html b/uz/docs/about/mission.html index fcfdcfa3ec..e7b59efdb3 100644 --- a/uz/docs/about/mission.html +++ b/uz/docs/about/mission.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/motivation.html b/uz/docs/about/motivation.html index 89374033e4..80b4640a3e 100644 --- a/uz/docs/about/motivation.html +++ b/uz/docs/about/motivation.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/promote/for-company.html b/uz/docs/about/promote/for-company.html index 5423ae4154..61e68432d5 100644 --- a/uz/docs/about/promote/for-company.html +++ b/uz/docs/about/promote/for-company.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish

    Promote in company

    @@ -33,6 +33,6 @@

    How can I submit a methodology to a business?โ€‹

    -

    How to prepare and justify a plan to move to the methodology?โ€‹

    +

    How to prepare and justify a plan to move to the methodology?โ€‹

    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/promote/for-team.html b/uz/docs/about/promote/for-team.html index 21a7e23f42..7e733fb4ce 100644 --- a/uz/docs/about/promote/for-team.html +++ b/uz/docs/about/promote/for-team.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/promote/integration.html b/uz/docs/about/promote/integration.html index e1cc116ed0..cdbb19408f 100644 --- a/uz/docs/about/promote/integration.html +++ b/uz/docs/about/promote/integration.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/promote/partial-application.html b/uz/docs/about/promote/partial-application.html index 53faf97318..980f810339 100644 --- a/uz/docs/about/promote/partial-application.html +++ b/uz/docs/about/promote/partial-application.html @@ -22,14 +22,14 @@ - - + +
    Asosiy tarkibga o'tish

    Partial Application

    WIP

    Maqola yozilish jarayonida

    Uning yaratilishini tezlashtirish uchun siz:


    ๐Ÿฐ Stay tuned!

    How to partially apply the methodology? Does it make sense? What if I ignore it?

    -
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/understanding/abstractions.html b/uz/docs/about/understanding/abstractions.html index 6ae38dee8c..3bb868fcfe 100644 --- a/uz/docs/about/understanding/abstractions.html +++ b/uz/docs/about/understanding/abstractions.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/understanding/architecture.html b/uz/docs/about/understanding/architecture.html index 3bb05c1441..f9aacd01a3 100644 --- a/uz/docs/about/understanding/architecture.html +++ b/uz/docs/about/understanding/architecture.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/understanding/knowledge-types.html b/uz/docs/about/understanding/knowledge-types.html index 7fd2b23407..3291ce88f6 100644 --- a/uz/docs/about/understanding/knowledge-types.html +++ b/uz/docs/about/understanding/knowledge-types.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/understanding/naming.html b/uz/docs/about/understanding/naming.html index 975c22ee55..43939293af 100644 --- a/uz/docs/about/understanding/naming.html +++ b/uz/docs/about/understanding/naming.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/understanding/needs-driven.html b/uz/docs/about/understanding/needs-driven.html index bdaab3984a..8f23ed0c4e 100644 --- a/uz/docs/about/understanding/needs-driven.html +++ b/uz/docs/about/understanding/needs-driven.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/about/understanding/signals.html b/uz/docs/about/understanding/signals.html index 12a85488b1..95da675589 100644 --- a/uz/docs/about/understanding/signals.html +++ b/uz/docs/about/understanding/signals.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/branding.html b/uz/docs/branding.html index bb163cd99c..92fc98bb3a 100644 --- a/uz/docs/branding.html +++ b/uz/docs/branding.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/get-started.html b/uz/docs/get-started.html index 99f08ce630..c4d94769e8 100644 --- a/uz/docs/get-started.html +++ b/uz/docs/get-started.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/get-started/cheatsheet.html b/uz/docs/get-started/cheatsheet.html index ac25ab782b..b7f23849e6 100644 --- a/uz/docs/get-started/cheatsheet.html +++ b/uz/docs/get-started/cheatsheet.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    Unlisted page
    This page is unlisted. Search engines will not index it, and only users having a direct link can access it.
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/get-started/faq.html b/uz/docs/get-started/faq.html index a598ab518f..5f5ed46750 100644 --- a/uz/docs/get-started/faq.html +++ b/uz/docs/get-started/faq.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +

    Answered here

    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/get-started/overview.html b/uz/docs/get-started/overview.html index 306cf0b0d6..adcce47cae 100644 --- a/uz/docs/get-started/overview.html +++ b/uz/docs/get-started/overview.html @@ -3,7 +3,7 @@ -Overview | Feature-Sliced Design +Overview | Feature-Sliced Design @@ -22,91 +22,126 @@ - - + +
    Asosiy tarkibga o'tish

    Overview

    -

    Feature-Sliced Design (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and structured in the face of ever-changing business requirements.

    +

    Feature-Sliced Design (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and stable in the face of ever-changing business requirements.

    +

    Apart from a set of conventions, FSD is also a toolchain. We have a linter to check your project's architecture, folder generators through a CLI or IDEs, as well as a rich library of examples.

    Is it right for me?โ€‹

    -

    FSD can be implemented in projects and teams of any size, but there are a few things to keep in mind:

    +

    FSD can be implemented in projects and teams of any size. It is right for your project if:

      -
    • This methodology is for front-end projects only. If you're looking for a back-end architecture, consider Clean Architecture.
    • -
    • This methodology is for user-facing applications only, not for libraries or UI kits. If you're looking for an architecture for a UI kit, see Material UI for inspiration.
    • -
    • A very simple app of a single page might not need the benefits of FSD and suffer from the overhead. However, FSD promotes a nice way of thinking, so feel free to use it on the tiniest projects if you want.
    • -
    • A huge app, the size of the Google Cloud admin dashboard, will require a custom architecture. It could still be based on FSD, by the way.
    • +
    • You're doing frontend (UI on web, mobile, desktop, etc.)
    • +
    • You're building an application, not a library
    -

    FSD doesn't enforce a particular programming language, UI framework or state manager โ€” bring your own or see some examples.

    -

    If you have an existing project, fear not โ€” FSD can be adopted incrementally. Just make sure that your team is inย pain from the current architecture, otherwise a switch might not be worth it. For migration guidance, see the Migration section.

    -

    Basicsโ€‹

    -

    In FSD, a project consists of layers, each layer is made up of slices and each slice is made up of segments.

    -

    themed--scheme

    -

    The layers are standardized across all projects and vertically arranged. Modules on one layer can only interact with modules from the layers strictly below. There are currently seven of them (from top to bottom):

    -
      -
    1. app โ€” app-wide settings, styles and providers.
    2. -
    3. processes (deprecated) โ€” complex inter-page scenarios. -(e.g., authentication).
    4. -
    5. pages โ€” compositional layer to construct full pages from entities, features and widgets.
    6. -
    7. widgets โ€” compositional layer to combine entities and features into meaningful blocks. -(e.g. IssuesList, UserProfile).
    8. -
    9. features โ€” user interactions, actions that bring business value to the user. -(e.g. SendComment, AddToCart, UsersSearch).
    10. -
    11. entities โ€” business entities. -(e.g., User, Product, Order).
    12. -
    13. shared โ€” reusable functionality, detached from the specifics of the project/business. -(e.g. UIKit, libs, API)/.
    14. -
    -

    Then there are slices, which partition the code by business domain. This makes your codebase easy to navigate by keeping logically related modules close together. Slices cannot use other slices on the same layer, and that helps with high cohesion and low coupling.

    -

    Each slice, in turn, consists of segments. These are tiny modules that are meant to help with separating code within a slice by its technical purpose. The most common segments are ui, model (store, actions), api and lib (utils/hooks), but you can omit some or add more, as you see fit.

    -
    note

    In most cases, it is recommended to place api and config only in the shared layer, unless your API client is also your storage (GraphQL, TanStack Query, etc.)

    -

    Exampleโ€‹

    -

    Let's consider a social network application.

    +

    And that's it! There are no restrictions on what programming language, UI framework, or state manager you use. You can also adopt FSD incrementally, use it in monorepos, and scale to great lengths by breaking your app into packages and implementing FSD individually within them.

    +

    If you already have an architecture and you're considering a switch to FSD, make sure that the current architecture is causing trouble in your team. For example, if your project has grown too large and inter-connected to efficiently implement new features, or if you're expecting a lot of new members to join the team. If the current architecture works, maybe it's not worth changing. But if you do decide to migrate, see the Migration section for guidance.

    +

    Basic exampleโ€‹

    +

    Here is a simple project that implements FSD:

    +
      +
    • ๐Ÿ“ app
    • +
    • ๐Ÿ“ pages
    • +
    • ๐Ÿ“ shared
    • +
    +

    These top-level folders are called layers. Let's look deeper:

    +
      +
    • ๐Ÿ“‚ app +
        +
      • ๐Ÿ“ routes
      • +
      • ๐Ÿ“ analytics
      • +
      +
    • +
    • ๐Ÿ“‚ pages +
        +
      • ๐Ÿ“ home
      • +
      • ๐Ÿ“‚ article-reader
          -
        • app/ contains setup of routing, store and global styles.
        • -
        • pages/ contains the route components for each page in the app, mostly composition, hardly any logic.
        • +
        • ๐Ÿ“ ui
        • +
        • ๐Ÿ“ api
        -

        Within that application, let's consider a post card in a news feed.

        +
      • +
      • ๐Ÿ“ settings
      • +
      +
    • +
    • ๐Ÿ“‚ shared
        -
      • widgets/ contains the "assembled" post card, with content and interactive buttons that are wired up to the relevant calls on the back-end.
      • -
      • features/ contains the interactivity of the card (e.g., like button) and the logic of processing those interactions.
      • -
      • entities/ contains the shell of the card with slots for content and the interactive elements. The tile representing the post author is also here, but in a different slice.
      • +
      • ๐Ÿ“ ui
      • +
      • ๐Ÿ“ api
      +
    • +
    +

    Folders inside ๐Ÿ“‚ pages are called slices. They divide the layer by domain (in this case, by pages).

    +

    Folders inside ๐Ÿ“‚ app, ๐Ÿ“‚ shared, and ๐Ÿ“‚ pages/article-reader are called segments, and they divide slices (or layers) by technical purpose, i.e. what the code is for.

    +

    Conceptsโ€‹

    +

    Layers, slices, and segments form a hierarchy like this:

    +

    Hierarchy of FSD concepts, described below

    Pictured above: three pillars, labeled left to right as "Layers", "Slices", and "Segments" respectively.

    The "Layers" pillar contains seven divisions arranged top to bottom and labeled "app", "processes", "pages", "widgets", "features", "entities", and "shared". The "processes" division is crossed out. The "entities" division is connected to the second pillar "Slices" in a way that conveys that the second pillar is the content of "entities".

    The "Slices" pillar contains three divisions arranged top to bottom and labeled "user", "post", and "comment". The "post" division is connected to the third pillar "Segments" in the same way such that it's the content of "post".

    The "Segments" pillar contains three divisions, arranged top to bottom and labeled "ui", "model", and "api".

    +

    Layersโ€‹

    +

    Layers are standardized across all FSD projects. You don't have to use all of the layers, but their names are important. There are currently seven of them (from top to bottom):

    +
      +
    1. App* โ€” everything that makes the app run โ€” routing, entrypoints, global styles, providers.
    2. +
    3. Processes (deprecated) โ€” complex inter-page scenarios.
    4. +
    5. Pages โ€” full pages or large parts of a page in nested routing.
    6. +
    7. Widgets โ€” large self-contained chunks of functionality or UI, usually delivering an entire use case.
    8. +
    9. Features โ€” reused implementations of entire product features, i.e. actions that bring business value to the user.
    10. +
    11. Entities โ€” business entities that the project works with, like user or product.
    12. +
    13. Shared* โ€” reusable functionality, especially when it's detached from the specifics of the project/business, though not necessarily.
    14. +
    +

    * โ€” these layers, App and Shared, unlike the other layers, don't have slices, and are made up of segments directly.

    +

    The trick with layers is that modules on one layer can only know about and import from modules from the layers strictly below.

    +

    Slicesโ€‹

    +

    Next up are slices, which partition the code by business domain. You're free to choose any names for them, and create as many as you wish. Slices make your codebase easier to navigate by keeping logically related modules close together.

    +

    Slices cannot use other slices on the same layer, and that helps with high cohesion and low coupling.

    +

    Segmentsโ€‹

    +

    Slices, as well as layers App and Shared, consist of segments, and segments group your code by its purpose. Segment names are not constrained by the standard, but there are several conventional names for the most common purposes:

    +
      +
    • ui โ€” everything related to UI display: UI components, date formatters, styles, etc.
    • +
    • api โ€” backend interactions: request functions, data types, mappers, etc.
    • +
    • model โ€” the data model: schemas, interfaces, stores, and business logic.
    • +
    • lib โ€” library code that other modules on this slice need.
    • +
    • config โ€” configuration files and feature flags.
    • +
    +

    Usually these segments are enough for most layers, you would only create your own segments in Shared or App, but this is not a rule.

    Advantagesโ€‹

    • Uniformity
      -The code is organized by scope of influence (layers), by domain (slices), and by technical purpose (segments).
      -This creates a standardized architecture that is easy to comprehend for newcomers.

      +Since the structure is standardized, projects become more uniform, which makes onboarding new members easier for the team.

    • -

      Controlled reuse of logic
      -Each architectural component has its purpose and predictable dependencies.
      -This keeps a balance between following the DRY principle and adaptation possibilities.

      +

      Stability in face of changes and refactoring
      +A module on one layer cannot use other modules on the same layer, or the layers above.
      +This allows you to make isolated modifications without unforeseen consequences to the rest of the app.

    • -

      Stability in face of changes and refactoring
      -A module on a particular layer cannot use other modules on the same layer, or the layers above.
      -This enables isolated modifications without unforeseen consequences.

      +

      Controlled reuse of logic
      +Depending on the layer, you can make code very reusable or very local.
      +This keeps a balance between following the DRY principle and practicality.

    • Orientation to business and users needs
      -When the app is split into business domains, you can navigate the code to discover and deeper understand all the project features.

      +The app is split into business domains and usage of the business language is encouraged in naming, so that you can do useful product work without fully understanding all other unrelated parts of the project.

    Incremental adoptionโ€‹

    -

    The power of FSD lies in structured decomposition. At its finest, it enables to locate any part of code near-deterministically. However, the level of decomposition is a parameter, and each team can tweak it to strike a balance between simple adoption and the amount of benefits.

    -

    Here's a proposed strategy to migrate an existing codebase to FSD, based on experience:

    +

    If you have an existing codebase that you want to migrate to FSD, we suggest the following strategy. We found it useful in our own migration experience.

    1. -

      Start by outlining the app and shared layers to create a foundation. Usually, these layers are the smallest.

      +

      Start by slowly shaping up the App and Shared layers module-by-module to create a foundation.

    2. -

      Distribute all of the existing UI across widgets and pages, even if they have dependencies that violate the rules of FSD.

      +

      Distribute all of the existing UI across Widgets and Pages using broad strokes, even if they have dependencies that violate the rules of FSD.

    3. -

      Start gradually increasing the precision of decomposition by separating features and entities, turning pages and widgets from logic-bearing layers into purely compositional layers.

      +

      Start gradually resolving import violations and also extracting Entities and possibly even Features.

    -

    It's advised to refrain from adding new large entities while refactoring or refactoring only certain parts of the project.

    +

    It's advised to refrain from adding new large entities while refactoring or refactoring only certain parts of the project.

    +

    Next stepsโ€‹

    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/get-started/tutorial.html b/uz/docs/get-started/tutorial.html index 6d31d75374..6f53f378b6 100644 --- a/uz/docs/get-started/tutorial.html +++ b/uz/docs/get-started/tutorial.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish

    Tutorial

    @@ -285,6 +285,6 @@

    Article edito
    app/routes/editor._index.tsx, app/routes/editor.$slug.tsx (same content)
    import { ArticleEditPage } from "pages/article-edit";

    export { loader, action } from "pages/article-edit";

    export default ArticleEditPage;

    Weโ€™re done now! Log in and try creating a new article. Or โ€œforgetโ€ to write the article and see the validation kick in.

    The Conduit article editor, with the title field saying โ€œNew articleโ€ and the rest of the fields empty. Above the form there are two errors: โ€œDescribe what this article is aboutโ€ and โ€œWrite the article itselfโ€.

    The Conduit article editor, with the title field saying โ€œNew articleโ€ and the rest of the fields empty. Above the form there are two errors: โ€œDescribe what this article is aboutโ€ and โ€œWrite the article itselfโ€.
    -

    The profile and settings pages are very similar to the article reader and editor, they are left as an exercise for the reader, thatโ€™s you :)

    +

    The profile and settings pages are very similar to the article reader and editor, they are left as an exercise for the reader, thatโ€™s you :)

    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides.html b/uz/docs/guides.html index d6044b6bc8..1b33fe58e1 100644 --- a/uz/docs/guides.html +++ b/uz/docs/guides.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Code Issues (Smells)

    General architecture issues for legacy code

    Desegmented โ€ข Routing โ€ข Cross-imports
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples.html b/uz/docs/guides/examples.html index 7cad81aca5..6cda99c8b5 100644 --- a/uz/docs/guides/examples.html +++ b/uz/docs/guides/examples.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Types

    Where should we locate types? Which kind of types exists in the context of FSD?

    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/auth.html b/uz/docs/guides/examples/auth.html index e6402f3b94..c4a855f6d8 100644 --- a/uz/docs/guides/examples/auth.html +++ b/uz/docs/guides/examples/auth.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/autocompleted.html b/uz/docs/guides/examples/autocompleted.html index 9f9a2971a7..6a21e6b686 100644 --- a/uz/docs/guides/examples/autocompleted.html +++ b/uz/docs/guides/examples/autocompleted.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/browser-api.html b/uz/docs/guides/examples/browser-api.html index c3c2b9593e..5a85a0f18d 100644 --- a/uz/docs/guides/examples/browser-api.html +++ b/uz/docs/guides/examples/browser-api.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish

    Browser API

    @@ -31,6 +31,6 @@

    About working with the Browser API: localStorage, audio Api, bluetooth API, etc.

    You can ask about the idea in more detail @alex_novi

    -
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/cms.html b/uz/docs/guides/examples/cms.html index 8e49b63d61..99460fc565 100644 --- a/uz/docs/guides/examples/cms.html +++ b/uz/docs/guides/examples/cms.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/feedback.html b/uz/docs/guides/examples/feedback.html index f8a21c226d..2c48b1d399 100644 --- a/uz/docs/guides/examples/feedback.html +++ b/uz/docs/guides/examples/feedback.html @@ -22,14 +22,14 @@ - - + +
    Asosiy tarkibga o'tish

    Feedback

    WIP

    Maqola yozilish jarayonida

    Uning yaratilishini tezlashtirish uchun siz:


    ๐Ÿฐ Stay tuned!

    Errors, Alerts, Notifications, ...

    -
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/i18n.html b/uz/docs/guides/examples/i18n.html index 9df6d10cd2..ac76c0ec3c 100644 --- a/uz/docs/guides/examples/i18n.html +++ b/uz/docs/guides/examples/i18n.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/metric.html b/uz/docs/guides/examples/metric.html index 84b0f0f38f..60b91653a0 100644 --- a/uz/docs/guides/examples/metric.html +++ b/uz/docs/guides/examples/metric.html @@ -22,14 +22,14 @@ - - + +
    Asosiy tarkibga o'tish

    Metric

    WIP

    Maqola yozilish jarayonida

    Uning yaratilishini tezlashtirish uchun siz:


    ๐Ÿฐ Stay tuned!

    About ways to initialize metrics in the application

    -
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/monorepo.html b/uz/docs/guides/examples/monorepo.html index f6afd894a3..d1ac8ba6a4 100644 --- a/uz/docs/guides/examples/monorepo.html +++ b/uz/docs/guides/examples/monorepo.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/page-layout.html b/uz/docs/guides/examples/page-layout.html index 01586e8946..6840acfc77 100644 --- a/uz/docs/guides/examples/page-layout.html +++ b/uz/docs/guides/examples/page-layout.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/platforms.html b/uz/docs/guides/examples/platforms.html index 9abc6fe50f..49e7951ed7 100644 --- a/uz/docs/guides/examples/platforms.html +++ b/uz/docs/guides/examples/platforms.html @@ -22,14 +22,14 @@ - - + +
    Asosiy tarkibga o'tish

    Desktop/Touch platforms

    WIP

    Maqola yozilish jarayonida

    Uning yaratilishini tezlashtirish uchun siz:


    ๐Ÿฐ Stay tuned!

    About the application of the methodology for desktop/touch

    -
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/ssr.html b/uz/docs/guides/examples/ssr.html index 86c08f1bed..93c2af887a 100644 --- a/uz/docs/guides/examples/ssr.html +++ b/uz/docs/guides/examples/ssr.html @@ -22,14 +22,14 @@ - - + +
    Asosiy tarkibga o'tish

    SSR

    WIP

    Maqola yozilish jarayonida

    Uning yaratilishini tezlashtirish uchun siz:


    ๐Ÿฐ Stay tuned!

    About the implementation of SSR using the methodology

    -
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/theme.html b/uz/docs/guides/examples/theme.html index add1dc5a77..5a9b098ff6 100644 --- a/uz/docs/guides/examples/theme.html +++ b/uz/docs/guides/examples/theme.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/types.html b/uz/docs/guides/examples/types.html index bf98dddc04..0236655374 100644 --- a/uz/docs/guides/examples/types.html +++ b/uz/docs/guides/examples/types.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/examples/white-labels.html b/uz/docs/guides/examples/white-labels.html index c19e3aef96..80aa5bf434 100644 --- a/uz/docs/guides/examples/white-labels.html +++ b/uz/docs/guides/examples/white-labels.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/issues/cross-imports.html b/uz/docs/guides/issues/cross-imports.html index 12a5da7140..e271447d70 100644 --- a/uz/docs/guides/issues/cross-imports.html +++ b/uz/docs/guides/issues/cross-imports.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/issues/desegmented.html b/uz/docs/guides/issues/desegmented.html index 5ac4544e96..d04dd5d8dc 100644 --- a/uz/docs/guides/issues/desegmented.html +++ b/uz/docs/guides/issues/desegmented.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/issues/routes.html b/uz/docs/guides/issues/routes.html index c8971e434a..c85066407a 100644 --- a/uz/docs/guides/issues/routes.html +++ b/uz/docs/guides/issues/routes.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/migration/from-legacy.html b/uz/docs/guides/migration/from-legacy.html index cb000b0ed3..c5cee02dea 100644 --- a/uz/docs/guides/migration/from-legacy.html +++ b/uz/docs/guides/migration/from-legacy.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/migration/from-v1.html b/uz/docs/guides/migration/from-v1.html index 911b92b77e..fd76224e65 100644 --- a/uz/docs/guides/migration/from-v1.html +++ b/uz/docs/guides/migration/from-v1.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/tech/with-nextjs.html b/uz/docs/guides/tech/with-nextjs.html index 43690fcdb2..57b893c082 100644 --- a/uz/docs/guides/tech/with-nextjs.html +++ b/uz/docs/guides/tech/with-nextjs.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/tech/with-nuxtjs.html b/uz/docs/guides/tech/with-nuxtjs.html index 698fd14f87..ac1c67fd1e 100644 --- a/uz/docs/guides/tech/with-nuxtjs.html +++ b/uz/docs/guides/tech/with-nuxtjs.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/guides/tech/with-react-query.html b/uz/docs/guides/tech/with-react-query.html index 05c101639c..450106f439 100644 --- a/uz/docs/guides/tech/with-react-query.html +++ b/uz/docs/guides/tech/with-react-query.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/privacy.html b/uz/docs/privacy.html index 2d315f52cf..039017c002 100644 --- a/uz/docs/privacy.html +++ b/uz/docs/privacy.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish

    Maxfiylik

    @@ -36,6 +36,6 @@
  • Xizmatdan foydalanish tahlilini biz Google Analytics ga suyanamiz (ko'proq korish)
  • Biz o'zaro aloqalar bo'yicha fikr-mulohazalarni yig'ishda Hotjar dan foydalaniz (ko'proq korish)
  • -

    feature-sliced-banner

    +

    feature-sliced-banner

    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/reference.html b/uz/docs/reference.html index 92f3ad9cd1..628269b239 100644 --- a/uz/docs/reference.html +++ b/uz/docs/reference.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Ommaviy API

    Kengaytiriladigan va integratsiyalashuvi oson modullarni loyihalash amaliyoti

    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/reference/isolation.html b/uz/docs/reference/isolation.html index 25f660cc1d..d393ab03fb 100644 --- a/uz/docs/reference/isolation.html +++ b/uz/docs/reference/isolation.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/reference/isolation/coupling-cohesion.html b/uz/docs/reference/isolation/coupling-cohesion.html index abd10cafe5..6db84a7dd0 100644 --- a/uz/docs/reference/isolation/coupling-cohesion.html +++ b/uz/docs/reference/isolation/coupling-cohesion.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/reference/isolation/decouple-entities.html b/uz/docs/reference/isolation/decouple-entities.html index d8508f500b..51d526c70c 100644 --- a/uz/docs/reference/isolation/decouple-entities.html +++ b/uz/docs/reference/isolation/decouple-entities.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/reference/layers.html b/uz/docs/reference/layers.html index 11421bebef..2502d097ff 100644 --- a/uz/docs/reference/layers.html +++ b/uz/docs/reference/layers.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/reference/public-api.html b/uz/docs/reference/public-api.html index bdbb037576..449125f111 100644 --- a/uz/docs/reference/public-api.html +++ b/uz/docs/reference/public-api.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish
    +
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/docs/reference/slices-segments.html b/uz/docs/reference/slices-segments.html index 7c73e86809..1afd88bf6f 100644 --- a/uz/docs/reference/slices-segments.html +++ b/uz/docs/reference/slices-segments.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish

    Slices and segments

    @@ -51,6 +51,6 @@

    SegmentsExamplesโ€‹

    -
    Layeruimodellibapi
    SharedUI kitUsually not usedUtility modules of several related files.
    If you need to use individual helpers, consider using utility libraries such as lodash-es.
    Rudimentary API client with additional features like authentication or caching.
    EntitiesSkeleton of a business entity with slots for interactive elementsData storage of instances of this entity as well as functions for manipulating that data.
    This segment is most fit for storing server-side data. If you use TanStack Query or other methods of implicit storage, you may choose to omit this segment.
    Functions for manipulating instances of this entity that aren't related to storageAPI methods using the API client from Shared for easy communication with the backend
    FeaturesInteractive elements that enable users to use this featureBusiness logic and infrastructure data storage, if needed (e.g., current app theme). This is the code that actually produces value for the user.Infrastructural code that helps to concisely describe the business logic in the model segmentAPI methods that represent this feature on the backend.
    May compose API methods from Entities.
    WidgetsComposition of Entities and Features into self-contained UI blocks.
    Can also contain error boundaries and loading states.
    Infrastructure data storage, if neededNon-business interactions (e.g., gestures) and other necessary code for the block to function on a pageUsually not used, but can contain data loaders in nested routing contexts (e.g., Remix)
    PagesComposition of Entities, Features and Widgets into complete pages.
    Can also contain error boundaries and loading states.
    Usually not usedNon-business interactions (e.g., gestures) and other necessary code for the page to deliver a complete user experienceData loaders for SSR-oriented frameworks
    +
    Layeruimodellibapi
    SharedUI kitUsually not usedUtility modules of several related files.
    If you need to use individual helpers, consider using utility libraries such as lodash-es.
    Rudimentary API client with additional features like authentication or caching.
    EntitiesSkeleton of a business entity with slots for interactive elementsData storage of instances of this entity as well as functions for manipulating that data.
    This segment is most fit for storing server-side data. If you use TanStack Query or other methods of implicit storage, you may choose to omit this segment.
    Functions for manipulating instances of this entity that aren't related to storageAPI methods using the API client from Shared for easy communication with the backend
    FeaturesInteractive elements that enable users to use this featureBusiness logic and infrastructure data storage, if needed (e.g., current app theme). This is the code that actually produces value for the user.Infrastructural code that helps to concisely describe the business logic in the model segmentAPI methods that represent this feature on the backend.
    May compose API methods from Entities.
    WidgetsComposition of Entities and Features into self-contained UI blocks.
    Can also contain error boundaries and loading states.
    Infrastructure data storage, if neededNon-business interactions (e.g., gestures) and other necessary code for the block to function on a pageUsually not used, but can contain data loaders in nested routing contexts (e.g., Remix)
    PagesComposition of Entities, Features and Widgets into complete pages.
    Can also contain error boundaries and loading states.
    Usually not usedNon-business interactions (e.g., gestures) and other necessary code for the page to deliver a complete user experienceData loaders for SSR-oriented frameworks
    Sahifa foydali boldimi?
    Sizning fikr-mulohazalaringiz hujjatlarni yaxshilashga yordam beradi
    \ No newline at end of file diff --git a/uz/examples.html b/uz/examples.html index 3f863eeada..10812355a4 100644 --- a/uz/examples.html +++ b/uz/examples.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish

    Namunalar

    FSD yordamida yaratilgan veb-saytlar ro'yxati

    v2
    Roke.to Business

    Business branch of Roketo, a crypto streaming service which allows paying people by the second

    reacteffectortailwindcssturbo
    v2
    Roke.to dApp

    A crypto streaming service which allows paying people by the second

    reacteffectortailwindcss
    v2
    IT bookstore

    Catalog for viewing and searching information technology books

    reactredux toolkittypescriptreact routervitescss
    v2
    Moke Smoke (React Native example)

    An application that helps you quit smoking, published in the App Store and Google. Developed with React Native

    reactrtkpersisttypescriptfirebase
    v2
    Moonlogs (Effector + Forest example)

    Moonlogs is a business-event logging tool with a built-in user-friendly web interface for easy access to events

    foresteffectortailwindtypescriptgo
    v2
    Posts (React Query example)

    Example of using FSD with React Query (Mutation, Query, Pagination)

    reactreact-querytypescriptmaterial ui
    v2
    FalkChat

    FalkChat is your go-to destination for seamless and engaging online conversations.

    reactnextprettierclerktypescripttailwindshadcn/uizustand
    v2
    Polka

    The application is a bookshelf where you can add your favorite books. The application works with the Google Books API.

    vue3piniatypescriptvue-routereslintprettiervitevuetify
    v2
    Fake Cyber Web Store

    Example web store on Vue3

    vue3piniatypescriptfirebasevue-routereslintprettiervite
    v2
    VK Audiopad

    Chrome extension for VK Music

    reactvkuitypescript
    v2
    ะกryptolight

    Cryptocurrency review site based on Feature-Sliced Design (Architectural methodology for frontend projects).

    reacteffectornextuitypescriptvite
    v2
    Money Flow

    A mobile application for tracking your expenses and incomes.

    capacitorjsreactreact-routerzustandvitetypescriptmobileandroidios
    v2
    E-Commerce

    This project is an online store built using React. It provides the ability to view the product catalog and product pages

    reactmobxwebpacktypescriptssr
    v2
    Todo app (Vue 3 + Pinia)

    QuickStart todo-app example for Vue developers with pinia store

    vue 3piniavitetypescript
    v2
    Conduit

    A social blogging site powered by Feature-Sliced Design architectural methodology.

    reactreact-routerreact-queryzustandvitetypescript
    v2
    Kinomore (React+Effector)

    Large project on the effector/fsd stack

    reacteffectortypescriptnextjsreact-testing-library
    v2
    Sudoku (React+Effector)

    A simple crossword of numbers on effector / fsd

    reacteffectortypescriptvitetailwindatomic-router
    v2
    Nukeapp (React+ReduxToolkit)

    Shopping app build on React/ReduxToolkit stack

    reactredux-toolkittypescriptvite
    v2
    Simple Greenhouse App (React+MobX)

    Simple demonstration of how FSD can be implemented with TypeScript, React.js, MobX and Firebase

    reactmobxtypescriptfirebasemuivite
    v2
    Todo App (ReactNative+Redux)

    QuickStart todo-app example for ReactNative(Expo) developers

    react-nativeexporedux
    v2
    Rastrr

    A simple and free graphic editor for novice artists

    svelte
    v2
    Draw, I'll Help

    A drawing app with shape correction powered by ML

    svelte
    v2
    Cast

    A podcast listening PWA with automated quality assurance

    svelte
    v2
    Loripsum generator

    Simple fish text generator

    reacteffector
    v2
    Projentry (demo)

    Assistant for your projects

    reactantd
    v2
    Todo App (Angular 13)

    QuickStart todo-app example for Angular developers

    angularrxjs
    v2
    Todo App (Vue 3)

    QuickStart todo-app example for Vue developers

    vuevuexantd
    v2
    Todo App (React+Redux)

    QuickStart todo-app example for React developers (Redux version)

    reactreduxantd
    v2
    Todo App (React+Effector)

    QuickStart todo-app example for React developers (Effector version)

    reacteffectorantd
    v2
    Github Client

    React & GraphQL powered github web-client

    reactgraphqlantd
    v2
    Cardbox

    The best solutions from developers in one place

    reacteffector
    diff --git a/uz/index.html b/uz/index.html index 8c23a9c483..f25ae09512 100644 --- a/uz/index.html +++ b/uz/index.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish

    Feature-Sliced Design

    Front-end loyihalari uchun arxitektura metodologiyasi

    Afzalliklari

    Aniq biznes mantiq

    Arxitekturani o'rganish oson, chunki u domen modullaridan iborat

    Moslashuvchanlik

    Arxitektura komponentlarini moslashuvchan tarzda almashtirish, yangi sharoitlarda qo'shish mumkin

    Texnik qarz

    Har bir modul nojo'ya ta'sirlarsiz mustaqil ravishda o'zgartirilishi/qayta yozilishi mumkin

    Aniq qayta foydalanish mumkinligi

    DRY va lokal moslashtirish o'rtasidagi muvozanatni saqlaydi

    Tushunchalar

    Ommaviy API

    Har bir modul yuqori darajadagi umumiy API deklaratsiyasiga ega bo'lishi kerak

    Izolyatsiya

    Modul to'g'ridan-to'g'ri bir xil qatlamdagi boshqa modullarga yoki uning ustidagi qatlamlarga bog'liq bo'lmasligi kerak.

    Ehtiyojlarni tushunish

    Biznes va foydalanuvchi ehtiyojlariga e'tibor qarating

    Sxema

    Metodologiyadan foydalanadigan kompaniyalar

    Sizning kompaniyangizda metodologiya qo'llaniladimi? Habar bering
    diff --git a/uz/nav.html b/uz/nav.html index f73db3c90f..5c351ca888 100644 --- a/uz/nav.html +++ b/uz/nav.html @@ -22,8 +22,8 @@ - - + +
    Asosiy tarkibga o'tish

    ๐Ÿงญ Navigatsiya

    Eskirgan havolalar

    Hujjatlarni qayta tuzilgandan so'ng, maqolalarda ba'zi havolalar o'zgartirildi. Quyida siz izlayotgan sahifani topishingiz mumkin.

    Lekin moslik uchun eski havolalardan qayta yo'naltirishlar mavjud

    ๐Ÿš€ Get Started

    โšก๏ธ Simplified and merged

    Tutorial

    old: /docs/get-started/quick-start
    new: /docs/get-started/tutorial

    Basics

    old: /docs/get-started/basics
    new: /docs/get-started/overview

    Decompose Cheatsheet

    old: /docs/get-started/tutorial/decompose; diff --git a/uz/search.html b/uz/search.html index 75302fdecb..7647f95454 100644 --- a/uz/search.html +++ b/uz/search.html @@ -22,8 +22,8 @@ - - + + diff --git a/uz/versions.html b/uz/versions.html index cd334ad2b6..572de6db0d 100644 --- a/uz/versions.html +++ b/uz/versions.html @@ -22,8 +22,8 @@ - - + +

    Feature-Sliced Design versiyalari

    Feature-Sliced Design v2.0.0 (Current)

    Bu yerda siz joriy nashr etilgan versiya uchun hujjatlarni topishingiz mumkin

    v2.0.0 ๐ŸฐRelease NotesDocumentationMigration from v1

    Feature Slices v1 (Legacy)

    Bu yerda feature-slices ning eski versiyalari uchun hujjatlarni topishingiz mumkin

    v1.0Documentation
    v0.1Documentation

    Feature Driven (Legacy)

    Bu yerda feature-driven ning eski versiyalari uchun hujjatlarni topishingiz mumkin

    v0.1Documentation
    Example (kof)Github
    diff --git a/versions.html b/versions.html index dfc68e61e4..2b0c97264d 100644 --- a/versions.html +++ b/versions.html @@ -22,8 +22,8 @@ - - + +

    Feature-Sliced Design versions

    Feature-Sliced Design v2.0.0 (Current)

    The documentation for the currently published version can be found here

    v2.0.0 ๐ŸฐRelease NotesDocumentationMigration from v1

    Feature Slices v1 (Legacy)

    Documentation for older versions of feature-slices can be found here

    v1.0Documentation
    v0.1Documentation

    Feature Driven (Legacy)

    Documentation for older versions of feature-driven can be found here

    v0.1Documentation
    Example (kof)Github