Renat

terminate translation of dependency_management.md on russian

@@ -8,9 +8,10 @@ @@ -8,9 +8,10 @@
8 - [Применение методов/классов создания экземпляров](#применение-методовклассов-создания-экземпляров) 8 - [Применение методов/классов создания экземпляров](#применение-методовклассов-создания-экземпляров)
9 - [Различия между методами](#различия-между-методами) 9 - [Различия между методами](#различия-между-методами)
10 - [Подвязки](#подвязки) 10 - [Подвязки](#подвязки)
11 - - [Применение](#применение) 11 + - [Класс Bindings](#класс-bindings)
12 - [BindingsBuilder](#bindingsbuilder) 12 - [BindingsBuilder](#bindingsbuilder)
13 - [SmartManagement](#smartmanagement) 13 - [SmartManagement](#smartmanagement)
  14 + - [Как поменять](#как-поменять)
14 - [SmartManagement.full](#smartmanagementfull) 15 - [SmartManagement.full](#smartmanagementfull)
15 - [SmartManagement.onlyBuilders](#smartmanagementonlybuilders) 16 - [SmartManagement.onlyBuilders](#smartmanagementonlybuilders)
16 - [SmartManagement.keepFactory](#smartmanagementkeepfactory) 17 - [SmartManagement.keepFactory](#smartmanagementkeepfactory)
@@ -222,25 +223,25 @@ Get.delete<Controller>(); //usually you don't need to do this because GetX alrea @@ -222,25 +223,25 @@ Get.delete<Controller>(); //usually you don't need to do this because GetX alrea
222 223
223 - Get.lazyPut: Как следует из названия, это ленивый процесс. Экземпляр создается, но он не вызывается для немедленного использования, он остается в ожидании вызова. В отличие от других методов, `insert` не вызывается здесь. Вместо этого экземпляр вставляется в другую часть памяти, часть, отвечающую за определение возможности воссоздания экземпляра, назовем это «фабрикой». Если мы хотим создать что-то, что будет использоваться позже, это не будет смешиваться с вещами, которые использовались сейчас. И здесь вступает в силу магия `fenix`: если вы решаете оставить `fenix: false`, и ваш `smartManagement` не является `keepFactory`, то, при использовании `Get.find`, экземпляр изменит место в памяти с «фабрики» на область памяти общего экземпляра. Сразу после этого по умолчанию удаляется с «фабрики». Теперь, если вы выберете `fenix: true`, экземпляр продолжит существовать в этой выделенной части, даже перейдя в общую область, для повторного вызова в будущем. 224 - Get.lazyPut: Как следует из названия, это ленивый процесс. Экземпляр создается, но он не вызывается для немедленного использования, он остается в ожидании вызова. В отличие от других методов, `insert` не вызывается здесь. Вместо этого экземпляр вставляется в другую часть памяти, часть, отвечающую за определение возможности воссоздания экземпляра, назовем это «фабрикой». Если мы хотим создать что-то, что будет использоваться позже, это не будет смешиваться с вещами, которые использовались сейчас. И здесь вступает в силу магия `fenix`: если вы решаете оставить `fenix: false`, и ваш `smartManagement` не является `keepFactory`, то, при использовании `Get.find`, экземпляр изменит место в памяти с «фабрики» на область памяти общего экземпляра. Сразу после этого по умолчанию удаляется с «фабрики». Теперь, если вы выберете `fenix: true`, экземпляр продолжит существовать в этой выделенной части, даже перейдя в общую область, для повторного вызова в будущем.
224 225
225 -## Bindings 226 +## Подвязки
226 227
227 -One of the great differentials of this package, perhaps, is the possibility of full integration of the routes, state manager and dependency manager.  
228 -When a route is removed from the Stack, all controllers, variables, and instances of objects related to it are removed from memory. If you are using streams or timers, they will be closed automatically, and you don't have to worry about any of that.  
229 -In version 2.10 Get completely implemented the Bindings API.  
230 -Now you no longer need to use the init method. You don't even have to type your controllers if you don't want to. You can start your controllers and services in the appropriate place for that.  
231 -The Binding class is a class that will decouple dependency injection, while "binding" routes to the state manager and dependency manager.  
232 -This allows Get to know which screen is being displayed when a particular controller is used and to know where and how to dispose of it.  
233 -In addition, the Binding class will allow you to have SmartManager configuration control. You can configure the dependencies to be arranged when removing a route from the stack, or when the widget that used it is laid out, or neither. You will have intelligent dependency management working for you, but even so, you can configure it as you wish. 228 +Возможно, одной из главных особенностей этого пакета является возможность полной интеграции маршрутов, менеджера состояний и менеджера зависимостей.
  229 +Когда маршрут удаляется из стека, все контроллеры, переменные и экземпляры связанных с ним объектов удаляются из памяти. Если вы используете потоки или таймеры, они закроются автоматически, и вам не о чем беспокоиться.
  230 +В версии 2.10 полностью реализован API привязок.
  231 +Теперь вам больше не нужно использовать метод инициализации. Вам даже не нужно вводить контроллеры, если вы этого не хотите. Вы можете запустить свои контроллеры и серисы в соответствующем для этого месте.
  232 +Класс Binding - это класс, который будет разделять внедрение зависимостей, при этом «привязывая» маршруты к диспетчеру состояний и диспетчеру зависимостей.
  233 +Этот класс позволяет Get узнать, какой экран отображается при использовании конкретного контроллера, а также узнать, где и как его удалить.
  234 +Кроме того, класс Binding позволит вам контролировать конфигурацию SmartManager. Вы можете настроить зависимости, которые будут упорядочены при удалении маршрута из стека, или когда виджет, который его использовал, выкладывается, или ни то, ни другое. На вас будет работать интеллектуальное управление зависимостями, но даже в этом случае вы можете настроить его по своему усмотрению.
234 235
235 -### Bindings class 236 +### Класс Bindings
236 237
237 -- Create a class and implements Binding 238 +- Создайте класс и реализуйте Binding
238 239
239 ```dart 240 ```dart
240 class HomeBinding implements Bindings {} 241 class HomeBinding implements Bindings {}
241 ``` 242 ```
242 243
243 -Your IDE will automatically ask you to override the "dependencies" method, and you just need to click on the lamp, override the method, and insert all the classes you are going to use on that route: 244 +Ваша IDE автоматически попросит вас переопределить метод «зависимостей», и вам просто нужно последовать этой просьбе, переопределить метод и вставить все классы, которые вы собираетесь использовать на этом маршруте:
244 245
245 ```dart 246 ```dart
246 class HomeBinding implements Bindings { 247 class HomeBinding implements Bindings {
@@ -259,9 +260,9 @@ class DetailsBinding implements Bindings { @@ -259,9 +260,9 @@ class DetailsBinding implements Bindings {
259 } 260 }
260 ``` 261 ```
261 262
262 -Now you just need to inform your route, that you will use that binding to make the connection between route manager, dependencies and states. 263 +Теперь вам просто нужно сообщить своему маршруту, что вы будете использовать эту привязку для установления связи между диспетчером маршрутов, зависимостями и состояниями.
263 264
264 -- Using named routes: 265 +- Используя именованные маршруты:
265 266
266 ```dart 267 ```dart
267 getPages: [ 268 getPages: [
@@ -278,16 +279,16 @@ getPages: [ @@ -278,16 +279,16 @@ getPages: [
278 ]; 279 ];
279 ``` 280 ```
280 281
281 -- Using normal routes: 282 +- Используя обычные маршруты:
282 283
283 ```dart 284 ```dart
284 Get.to(Home(), binding: HomeBinding()); 285 Get.to(Home(), binding: HomeBinding());
285 Get.to(DetailsView(), binding: DetailsBinding()) 286 Get.to(DetailsView(), binding: DetailsBinding())
286 ``` 287 ```
287 288
288 -There, you don't have to worry about memory management of your application anymore, Get will do it for you. 289 +Вам больше не нужно беспокоиться об управлении памятью вашего приложения, Get сделает это за вас.
289 290
290 -The Binding class is called when a route is called, you can create an "initialBinding in your GetMaterialApp to insert all the dependencies that will be created. 291 +Класс Binding вызывается при вызове маршрута, вы можете создать "initialBinding" в GetMaterialApp, чтобы вставить все зависимости, которые будут созданы.
291 292
292 ```dart 293 ```dart
293 GetMaterialApp( 294 GetMaterialApp(
@@ -298,8 +299,8 @@ GetMaterialApp( @@ -298,8 +299,8 @@ GetMaterialApp(
298 299
299 ### BindingsBuilder 300 ### BindingsBuilder
300 301
301 -The default way of creating a binding is by creating a class that implements Bindings.  
302 -But alternatively, you can use `BindingsBuilder` callback so that you can simply use a function to instantiate whatever you desire. 302 +По умолчанию привязка создается путем создания класса, реализующего привязки.
  303 +Но в качестве альтернативы вы можете использовать обратный вызов `BindingsBuilder`, чтобы просто использовать функцию для создания всего, что вы хотите.
303 304
304 Example: 305 Example:
305 306
@@ -323,19 +324,19 @@ getPages: [ @@ -323,19 +324,19 @@ getPages: [
323 ]; 324 ];
324 ``` 325 ```
325 326
326 -That way you can avoid to create one Binding class for each route making this even simpler. 327 +Таким образом, вы можете избежать создания одного класса привязки для каждого маршрута, что сделает это еще проще.
327 328
328 -Both ways of doing work perfectly fine and we want you to use what most suit your tastes. 329 +Оба способа работают идеально, и мы хотим, чтобы вы использовали то, что больше всего соответствует вашим вкусам.
329 330
330 ### SmartManagement 331 ### SmartManagement
331 332
332 -GetX by default disposes unused controllers from memory, even if a failure occurs and a widget that uses it is not properly disposed.  
333 -This is what is called the `full` mode of dependency management.  
334 -But if you want to change the way GetX controls the disposal of classes, you have `SmartManagement` class that you can set different behaviors. 333 +GetX по умолчанию удаляет неиспользуемые контроллеры из памяти, даже если происходит сбой и виджет, который их использует, не удаляется должным образом.
  334 +Это то, что называется `полным` режимом управления зависимостями.
  335 +Но если вы хотите поменять способ, которым GetX управляет удалением классов, у вас есть класс `SmartManagement`, в котором вы можете задавать другое поведение.
335 336
336 -#### How to change 337 +#### Как поменять
337 338
338 -If you want to change this config (which you usually don't need) this is the way: 339 +Если вы хотите поменять эту конфигурацию (что обычно не требуется), вот способ:
339 340
340 ```dart 341 ```dart
341 void main () { 342 void main () {
@@ -350,30 +351,29 @@ void main () { @@ -350,30 +351,29 @@ void main () {
350 351
351 #### SmartManagement.full 352 #### SmartManagement.full
352 353
353 -It is the default one. Dispose classes that are not being used and were not set to be permanent. In the majority of the cases you will want to keep this config untouched. If you new to GetX then don't change this. 354 +Это значение по умолчанию. Удаляет классы, которые не используются и не были постоянными. В большинстве случаев вы захотите оставить эту конфигурацию нетронутой. Если вы новичок в GetX, не меняйте это.
354 355
355 #### SmartManagement.onlyBuilders 356 #### SmartManagement.onlyBuilders
356 -With this option, only controllers started in `init:` or loaded into a Binding with `Get.lazyPut()` will be disposed. 357 +С этой опцией будут удалены только контроллеры, запущенные в `init:` или загруженные в Binding с помощью `Get.lazyPut()`.
357 358
358 -If you use `Get.put()` or `Get.putAsync()` or any other approach, SmartManagement will not have permissions to exclude this dependency. 359 +Если вы используете `Get.put()` или `Get.putAsync()` или любой другой подход, SmartManagement не будет иметь разрешений на исключение этой зависимости.
359 360
360 -With the default behavior, even widgets instantiated with "Get.put" will be removed, unlike SmartManagement.onlyBuilders. 361 +При поведении по умолчанию даже виджеты, созданные с помощью Get.put, будут удалены, в отличие от SmartManagement.onlyBuilders.
361 362
362 #### SmartManagement.keepFactory 363 #### SmartManagement.keepFactory
363 364
364 -Just like SmartManagement.full, it will remove it's dependencies when it's not being used anymore. However, it will keep their factory, which means it will recreate the dependency if you need that instance again. 365 +Как и SmartManagement.full, он удаляет зависимости, когда он больше не используется. Однако он сохранит свою фабрику, что означает, что он воссоздает зависимость, если вам снова понадобится этот экземпляр.
365 366
366 -### How bindings work under the hood  
367 -Bindings creates transitory factories, which are created the moment you click to go to another screen, and will be destroyed as soon as the screen-changing animation happens.  
368 -This happens so fast that the analyzer will not even be able to register it.  
369 -When you navigate to this screen again, a new temporary factory will be called, so this is preferable to using SmartManagement.keepFactory, but if you don't want to create Bindings, or want to keep all your dependencies on the same Binding, it will certainly help you.  
370 -Factories take up little memory, they don't hold instances, but a function with the "shape" of that class you want.  
371 -This has a very low cost in memory, but since the purpose of this lib is to get the maximum performance possible using the minimum resources, Get removes even the factories by default.  
372 -Use whichever is most convenient for you. 367 +### Как подвязки работают под капотом
  368 +Привязки создают временные фабрики, которые создаются в тот момент, когда вы кликаете для перехода на другой экран, и будут уничтожены, как только произойдет анимация смены экрана.
  369 +Это происходит так быстро, что анализатор даже не сможет это зарегистрировать.
  370 +Когда вы снова перейдете на этот экран, будет вызвана новая временная фабрика, поэтому это предпочтительнее, чем использование SmartManagement.keepFactory, но если вы не хотите создавать привязки или хотите сохранить все свои зависимости в одной привязке, это вам поможет.
  371 +Фабрики занимают мало памяти, они содержат не экземпляры, а функцию с «формой» того класса, который вам нужен.
  372 +Это имеет очень низкую стоимость памяти, но поскольку цель этой библиотеки - получить максимально возможную производительность с использованием минимальных ресурсов, Get по умолчанию удаляет даже фабрики. Используйте то, что вам удобнее.
373 373
374 -## Notes 374 +## Примечания
375 375
376 -- DO NOT USE SmartManagement.keepFactory if you are using multiple Bindings. It was designed to be used without Bindings, or with a single Binding linked in the GetMaterialApp's initialBinding. 376 +- НЕ ИСПОЛЬЗУЙТЕ SmartManagement.keepFactory, если вы используете несколько привязок. Он был разработан для использования без привязок или с одной привязкой, связанной в initialBinding GetMaterialApp.
377 377
378 -- Using Bindings is completely optional, if you want you can use `Get.put()` and `Get.find()` on classes that use a given controller without any problem.  
379 -However, if you work with Services or any other abstraction, I recommend using Bindings for a better organization. 378 +- Использование привязок совершенно необязательно, если вы хотите, вы можете без проблем использовать `Get.put()` и `Get.find()` для классов, которые используют данный контроллер.
  379 +Однако, если вы работаете со службами или любой другой абстракцией, я рекомендую использовать привязки для лучшей организации.