SlideShare uma empresa Scribd logo
1 de 228
WebAgent
           2
3
4
5
6
7
8
Синхронизация


                9
10
11
12
13
14
15
16
17
18
19
20
21
22
Зачем?

         23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Синхронизация интерфейса


                           40
Транспорт:




             41
Транспорт:
1. Сервер




             42
Транспорт:
1. Сервер
2. Flash



             43
Транспорт:
1. Сервер
2. Flash
3. Клиентские хранилища


                          44
Возможные подходы:




                     45
Возможные подходы:
1. События




                     46
Возможные подходы:
1. События
2. Состояния



                     47
Возможные подходы:
1. События
2. Состояния
3. Смешанные


                     48
Возможные подходы:
1. События
2. Состояния
3. Смешанные


                     49
50
51
Сервер - WebAgent1.0 :




                         52
Сервер - WebAgent1.0 :
• Синхронизация смешанная




                            53
Client




         54
Client   Client   Client   Client   Client




                                             55
Client   Client     Client   Client   Client




                  Server

                                               56
Client   Client     Client   Client   Client




                  Server

                                               57
Client   Client     Client   Client   Client




                  Server

                                               58
Client   Client     Client   Client   Client




                  Server

                                               59
Client   Client     Client   Client   Client




                  Server

                                               60
Client   Client     Client   Client   Client




                  Server

                                               61
Client   Client     Client   Client   Client




                  Server

                                               62
Client   Client     Client   Client   Client




                  Server

                                               63
Сервер - WebAgent1.0 :
• Синхронизация смешанная




                            64
Сервер - WebAgent1.0 :
• Синхронизация смешанная
Минусы:




                            65
Сервер - WebAgent1.0 :
• Синхронизация смешанная
Минусы:
• Сетевые задержки



                            66
Client   Client     Client   Client   Client




                  Server

                                               67
Client   Client     Client   Client   Client




                  Server

                                               68
Client   Client     Client   Client   Client




                  Server

                                               69
Client   Client     Client   Client   Client




                  Server

                                               70
Client   Client     Client   Client   Client




                  Server

                                               71
Сервер - WebAgent1.0 :
• Синхронизация смешанная
Минусы:
• Сетевые задержки



                            72
Сервер - WebAgent1.0 :
• Синхронизация смешанная
Минусы:
• Сетевые задержки
• Много соединений с
  сервером

                            73
Flash – WebAgent 2.0 :




                         74
Flash – WebAgent 2.0 :
• Диспетчер в клиенте – router




                                 75
Flash – WebAgent 2.0 :
• Диспетчер в клиенте – router
• Есть хранилище, возможна
  синхронизация состояний



                                 76
Flash – WebAgent 2.0 :
• Диспетчер в клиенте – router
• Есть хранилище, возможна
  синхронизация состояний
• Синхронизация событиями


                                 77
LocalConnection

                  78
79
80
81
82
83
84
85
86
87
Router

         88
Client   Client   Client   Client   Client




                                             89
Client   Client   Client   Client   Client

 Fl       Fl       Fl       Fl       Fl
Client   Client   Client   Client   Client

 Fl       Fl       Fl       Fl       Fl
                           Router
Client   Client     Client   Client   Client

 Fl       Fl         Fl       Fl       Fl
                             Router




                  Server
                                               92
Client   Client     Client   Client   Client

 Fl       Fl         Fl       Fl       Fl
                             Router




                  Server
                                               93
Client   Client     Client   Client   Client

 Fl       Fl         Fl       Fl       Fl
                             Router




                  Server
                                               94
Client   Client     Client   Client   Client

 Fl       Fl         Fl       Fl       Fl
                             Router




                  Server
                                               95
Flash – WebAgent 2.0 :
• Диспетчер в клиенте – router
• Есть хранилище, возможна
  синхронизация состояний
• Синхронизация событиями


                                 96
Flash – WebAgent 2.0 :
• Диспетчер в клиенте – router
• Есть хранилище, возможна
  синхронизация состояний
• Синхронизация событиями
Минусы :

                                 97
Flash – WebAgent 2.0 :
• Диспетчер в клиенте – router
• Есть хранилище, возможна
  синхронизация состояний
• Синхронизация событиями
Минусы :
• Глюки флеша
                                 98
Flash – WebAgent 2.0 :
“Подводные камни”:




                         99
Flash – WebAgent 2.0 :
“Подводные камни”:
• Хрупкость системы




                         100
101
102
WebStorage – WebAgent 3.0 :




                              103
WebStorage – WebAgent 3.0 :
• Синхронизация состояний




                              104
Синхронизация состояний


                          105
Router




         106
Router
Router
Router
Router




         110
Router




         111
112
113
114
115
116
117
118
WebStorage – WebAgent 3.0 :
• Синхронизация состояний




                              119
WebStorage – WebAgent 3.0 :
• Синхронизация состояний
• Задача выбора роутера




                              120
Выбор роутера


                121
122
123
124
125
126
router




         127
router




         128
router




         129
router


Write(window_id)




                            130
router


Write(window_id)




                            131
router


Write(window_id)




                            132
Write(window_id)




                   133
router


         Write(window_id)




                            134
router


         Write(window_id)




                            135
router


                          Write(window_id)




         onbeforeunload




                                             136
router


                          Write(window_id)




         onbeforeunload
                           Write(false)




                                             137
router


                          Write(window_id)




         onbeforeunload
                           Write(false)
                                             onstorage



                                                         138
139
140
Read(window_id)




                  141
Read(window_id)




                  142
Read(window_id)




                  143
144
145
146
147
148
WebStorage – WebAgent 3.0 :
• Синхронизация состояний
• Задача выбора роутера




                              149
WebStorage – WebAgent 3.0 :
• Синхронизация состояний
• Задача выбора роутера
“Подводные камни”:



                              150
WebStorage – WebAgent 3.0 :
• Синхронизация состояний
• Задача выбора роутера
“Подводные камни”:
• Баги реализации в браузерах


                                151
Баги реализации в браузерах:




                               152
Баги реализации в браузерах:
• onstorage




                               153
onStorage

            154
localStorage.testvar = 0;




                            155
localStorage.testvar = 0;

for(var i = 0; i < 3; i++) {



}
                               156
localStorage.testvar = 0;

for(var i = 0; i < 3; i++) {
      localStorage.testvar++;

}
                                157
localStorage.testvar = 0;
console.log(localStorage.testvar);
for(var i = 0; i < 3; i++) {
      localStorage.testvar++;
      console.log(localStorage.testvar);
}
                                           158
window.addEventListener(„storage‟, function (e) {



}, true)



                                                    159
window.addEventListener(„storage‟, function (e) {
     console.log(e.key)

}, true)



                                                    160
window.addEventListener(„storage‟, function (e) {
     console.log(e.key, e.newValue )

}, true)



                                                    161
window.addEventListener(„storage‟, function (e) {
     console.log(e.key, e.newValue, e.oldValue)

}, true)



                                                    162
window.addEventListener(„storage‟, function (e) {
       console.log(e.key, e.newValue, e.oldValue,
   localStorage.testvar)
}, true)



                                                    163
164
for (…
         165
for (…   addEvent…
                 166
167
Chrome, Opera, FF6+
Chrome, Opera, FF6+
 Таб 1 – цикл




                      169
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…




                                          170
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0




                                          171
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0
 1




                                          172
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0
 1
 2




                                          173
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0
 1
 2
 3




                                          174
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1
 2
 3




                                          175
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1
 2
 3




                                          176
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1
 2
 3




                                          177
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1
 2
 3




                                          178
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1
 2
 3




                                          179
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1
 2
 3




                                          180
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1
 2
 3




                                          181
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1                    testvar 1 0    3
 2
 3




                                          182
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar 0 null 3
 1                    testvar 1 0    3
 2                    testvar 2 1    3
 3




                                          183
Chrome, Opera, FF6+
 Таб 1 – цикл         Таб 2 – addEventList…
 0                    testvar   0   null   3
 1                    testvar   1   0      3
 2                    testvar   2   1      3
 3                    testvar   3   2      3




                                               184
Многозадачность




                  185
Многозадачность:
• Chrome и IE – в каждом табе / окное




                                        186
Многозадачность:
• Chrome и IE – в каждом табе / окное
• Opera – в каждом iframe




                                        187
Многозадачность:
• Chrome и IE – в каждом табе / окное
• Opera – в каждом iframe
• FF – один на все окна / табы



                                        188
189
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…




                                    190
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0




                                    191
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0




                                      192
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0




                                      193
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0




                                      194
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0




                                      195
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0




                                      196
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0




                                      197
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0




                                      198
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0
 1




                                      199
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0
 1              undef undef undef 1




                                      200
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0
 1              undef undef undef 1
 2




                                      201
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0
 1              undef undef undef 1
 2              undef undef undef 2




                                      202
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 0
 1              undef undef undef 1
 2              undef undef undef 2
 3




                                      203
FF3.6
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef   undef   undef   0
 1              undef   undef   undef   1
 2              undef   undef   undef   2
 3              undef   undef   undef   3




                                            204
205
IE8
 Таб 1 – цикл   Таб 2 – addEventList…




                                    206
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0




                                    207
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0
 1




                                    208
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0
 1
 2




                                    209
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0
 1
 2
 3




                                    210
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 3
 1
 2
 3




                                      211
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 3
 1
 2
 3




                                      212
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 3
 1
 2
 3




                                      213
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 3
 1
 2
 3




                                      214
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 3
 1
 2
 3




                                      215
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 3
 1
 2
 3




                                      216
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 3
 1              undef undef undef 3
 2
 3




                                      217
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef undef undef 3
 1              undef undef undef 3
 2              undef undef undef 3
 3




                                      218
IE8
 Таб 1 – цикл   Таб 2 – addEventList…
 0              undef   undef   undef   3
 1              undef   undef   undef   3
 2              undef   undef   undef   3
 3              undef   undef   undef   3




                                            219
Баги реализации в браузерах:
• Onstorage




                               220
Баги реализации в браузерах:
• Onstorage
• IE8+




                               221
Нюансы IE8+:




               222
Нюансы IE8+:
• Асинхронные тормоза на записи




                                  223
Нюансы IE8+:
• Асинхронные тормоза на записи
• Отложенный момент записи на диск




                                     224
Нюансы IE8+:
• Асинхронные тормоза на записи
• Отложенный момент записи на диск
• Данные могут разъехаться



                                     225
Нюансы IE8+:
• Асинхронные тормоза на записи
• Отложенный момент записи на диск
• Данные могут разъехаться
• 64 IE на 64 Win


                                     226
227
СПАСИБО!
    Роман Митасов
Программист, WebAgent
 mitasov@corp.mail.ru

Mais conteúdo relacionado

Destaque

Cálculo diferencial e integral schaum
Cálculo diferencial e integral   schaumCálculo diferencial e integral   schaum
Cálculo diferencial e integral schaum
Lucas Ciaponi
 
business cover letter
business cover letterbusiness cover letter
business cover letter
Bryson Ricks
 
Memorandum de dios (con sonido) (1)
Memorandum de dios (con sonido) (1)Memorandum de dios (con sonido) (1)
Memorandum de dios (con sonido) (1)
marvin010
 
Art culinaire cl_120412
Art culinaire cl_120412Art culinaire cl_120412
Art culinaire cl_120412
denis
 
Reglas del internet
Reglas del internetReglas del internet
Reglas del internet
yubermoreno
 
[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp
진현 조
 

Destaque (18)

Cálculo diferencial e integral schaum
Cálculo diferencial e integral   schaumCálculo diferencial e integral   schaum
Cálculo diferencial e integral schaum
 
Exiliorik gabe
Exiliorik gabeExiliorik gabe
Exiliorik gabe
 
Comunidad
ComunidadComunidad
Comunidad
 
Diaporama
DiaporamaDiaporama
Diaporama
 
diaporama vampiro
diaporama vampirodiaporama vampiro
diaporama vampiro
 
business cover letter
business cover letterbusiness cover letter
business cover letter
 
Memorandum de dios (con sonido) (1)
Memorandum de dios (con sonido) (1)Memorandum de dios (con sonido) (1)
Memorandum de dios (con sonido) (1)
 
El tango romero tapia y pauluchuc
El tango romero tapia y pauluchucEl tango romero tapia y pauluchuc
El tango romero tapia y pauluchuc
 
Art culinaire cl_120412
Art culinaire cl_120412Art culinaire cl_120412
Art culinaire cl_120412
 
SEC4YOU: Watchguard UTM & NGFW
SEC4YOU: Watchguard UTM & NGFWSEC4YOU: Watchguard UTM & NGFW
SEC4YOU: Watchguard UTM & NGFW
 
Macaco Velho
Macaco VelhoMacaco Velho
Macaco Velho
 
Suelos 4 2005
Suelos 4 2005Suelos 4 2005
Suelos 4 2005
 
Apresentação TEJO360
Apresentação TEJO360Apresentação TEJO360
Apresentação TEJO360
 
Reglas del internet
Reglas del internetReglas del internet
Reglas del internet
 
[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp[조진현]Kgc2012 c++amp
[조진현]Kgc2012 c++amp
 
Dr RD Sharma. CV BD
Dr RD Sharma. CV BDDr RD Sharma. CV BD
Dr RD Sharma. CV BD
 
\nFiesta de Cars Disney - Ideas y descargas gratis\n
\nFiesta de Cars Disney - Ideas y descargas gratis\n\nFiesta de Cars Disney - Ideas y descargas gratis\n
\nFiesta de Cars Disney - Ideas y descargas gratis\n
 
Relatoria reunion conarc
Relatoria reunion conarcRelatoria reunion conarc
Relatoria reunion conarc
 

Semelhante a митасов роман

Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423
kuchinskaya
 
1 Мультиплатформенный программный коммутатор Cisco Nexus 1000V.
1 Мультиплатформенный программный коммутатор Cisco Nexus 1000V. 1 Мультиплатформенный программный коммутатор Cisco Nexus 1000V.
1 Мультиплатформенный программный коммутатор Cisco Nexus 1000V.
Cisco Russia
 
Беспроводные сети Cisco: контроллер – виртуальный, преимущества – реальные
Беспроводные сети Cisco: контроллер – виртуальный, преимущества – реальныеБеспроводные сети Cisco: контроллер – виртуальный, преимущества – реальные
Беспроводные сети Cisco: контроллер – виртуальный, преимущества – реальные
Cisco Russia
 
Проблематика создания высокодоступной сетевой операционной системы для SDN-сетей
Проблематика создания высокодоступной сетевой операционной системы для SDN-сетейПроблематика создания высокодоступной сетевой операционной системы для SDN-сетей
Проблематика создания высокодоступной сетевой операционной системы для SDN-сетей
ARCCN
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
Andrey Rebrov
 
Enduser snac overview_ru_01.2011_v2
Enduser snac overview_ru_01.2011_v2Enduser snac overview_ru_01.2011_v2
Enduser snac overview_ru_01.2011_v2
bondbig
 
Построение аналитического хранилища на 100 петабайт
Построение аналитического хранилища на 100 петабайтПостроение аналитического хранилища на 100 петабайт
Построение аналитического хранилища на 100 петабайт
Alexander Mazurov
 
Евгений Потапов, АйТиСумма
Евгений Потапов, АйТиСуммаЕвгений Потапов, АйТиСумма
Евгений Потапов, АйТиСумма
Ontico
 

Semelhante a митасов роман (20)

Load Testing
Load TestingLoad Testing
Load Testing
 
Марина Широчкина "Производительность клиентсайда через тестирование скорости ...
Марина Широчкина "Производительность клиентсайда через тестирование скорости ...Марина Широчкина "Производительность клиентсайда через тестирование скорости ...
Марина Широчкина "Производительность клиентсайда через тестирование скорости ...
 
Zherdev icinga 20120423
Zherdev icinga 20120423Zherdev icinga 20120423
Zherdev icinga 20120423
 
1 Мультиплатформенный программный коммутатор Cisco Nexus 1000V.
1 Мультиплатформенный программный коммутатор Cisco Nexus 1000V. 1 Мультиплатформенный программный коммутатор Cisco Nexus 1000V.
1 Мультиплатформенный программный коммутатор Cisco Nexus 1000V.
 
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
 
Беспроводные сети Cisco: контроллер – виртуальный, преимущества – реальные
Беспроводные сети Cisco: контроллер – виртуальный, преимущества – реальныеБеспроводные сети Cisco: контроллер – виртуальный, преимущества – реальные
Беспроводные сети Cisco: контроллер – виртуальный, преимущества – реальные
 
Управление беспроводными сетями Cisco: контроллер - виртуальный, преимущества...
Управление беспроводными сетями Cisco: контроллер - виртуальный, преимущества...Управление беспроводными сетями Cisco: контроллер - виртуальный, преимущества...
Управление беспроводными сетями Cisco: контроллер - виртуальный, преимущества...
 
Организация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииОрганизация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграции
 
Проблематика создания высокодоступной сетевой операционной системы для SDN-сетей
Проблематика создания высокодоступной сетевой операционной системы для SDN-сетейПроблематика создания высокодоступной сетевой операционной системы для SDN-сетей
Проблематика создания высокодоступной сетевой операционной системы для SDN-сетей
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
Особенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShieldОсобенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShield
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Enduser snac overview_ru_01.2011_v2
Enduser snac overview_ru_01.2011_v2Enduser snac overview_ru_01.2011_v2
Enduser snac overview_ru_01.2011_v2
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
 
Построение аналитического хранилища на 100 петабайт
Построение аналитического хранилища на 100 петабайтПостроение аналитического хранилища на 100 петабайт
Построение аналитического хранилища на 100 петабайт
 
Управление доступом и контроль параметров безопасности виртуальной инфраструк...
Управление доступом и контроль параметров безопасности виртуальной инфраструк...Управление доступом и контроль параметров безопасности виртуальной инфраструк...
Управление доступом и контроль параметров безопасности виртуальной инфраструк...
 
Евгений Потапов, АйТиСумма
Евгений Потапов, АйТиСуммаЕвгений Потапов, АйТиСумма
Евгений Потапов, АйТиСумма
 
JPoint 2017 - Where is my service, dude?
JPoint 2017 - Where is my service, dude?JPoint 2017 - Where is my service, dude?
JPoint 2017 - Where is my service, dude?
 
Каким будет Selenium 3.0 и Selenium 4.0
Каким будет Selenium 3.0 и Selenium 4.0Каким будет Selenium 3.0 и Selenium 4.0
Каким будет Selenium 3.0 и Selenium 4.0
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 

Mais de kuchinskaya (20)

Kharkov
KharkovKharkov
Kharkov
 
Balashov
BalashovBalashov
Balashov
 
Zamyakin
ZamyakinZamyakin
Zamyakin
 
Panfilov
PanfilovPanfilov
Panfilov
 
Platov
PlatovPlatov
Platov
 
Rabovoluk
RabovolukRabovoluk
Rabovoluk
 
Smirnov dependency-injection-techforum(1)
Smirnov dependency-injection-techforum(1)Smirnov dependency-injection-techforum(1)
Smirnov dependency-injection-techforum(1)
 
Smirnov reverse-engineering-techforum
Smirnov reverse-engineering-techforumSmirnov reverse-engineering-techforum
Smirnov reverse-engineering-techforum
 
Zacepin
ZacepinZacepin
Zacepin
 
Zagursky
ZagurskyZagursky
Zagursky
 
Haritonov
HaritonovHaritonov
Haritonov
 
Chudov
ChudovChudov
Chudov
 
Bubnov
BubnovBubnov
Bubnov
 
A.pleshkov
A.pleshkovA.pleshkov
A.pleshkov
 
Zenovich
ZenovichZenovich
Zenovich
 
Romanenko
RomanenkoRomanenko
Romanenko
 
Perepelitsa
PerepelitsaPerepelitsa
Perepelitsa
 
Osipov
OsipovOsipov
Osipov
 
Kubasov
KubasovKubasov
Kubasov
 
Kalugin balashov
Kalugin balashovKalugin balashov
Kalugin balashov
 

митасов роман