SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
Паттерны
проектирования
На Яндеск.Диске yadi.sk/d/ZIiCysb5CAmHo
Что такое паттерны?
0 .v r p r e = { r c : f n t o t a e ) { }
1 a
asr
tae u c i n rc(
,
0. y:{,
2
y }
0. smos:{e r r :,r o "3" r g a "4" O "5" i p e n e s "6"
3
ybl_ " r o "2" o t :,p o r m :,E F :,s m l I v r e :,s
0. trias:{:e r r ,:E F ,4" O T N "1:C M E T ,6" P N B O
4
emnl_ 2" r o "5" O "1:C N E T ,5" O M N "1:O E _ L C
0. poutos:[,32,42,43,42,41,41,40,71,72,8
5
rdcin_ 0[,][,][,][,][,][,][,][,][,][,
0. promcin f n t o aoyosytx,yegylnn,yysae$,$
6
efrAto: u c i n nnmu(yetyln,yieoy,ytt,$_
0.
7
v r$ =$.egh-1
a 0
$lnt
;
0.
8
s i c (ytt){
w t h ysae
0.
9
c s 1 r t r $[01;b e k
a e : e u n $$-] r a ;
1.
0
c s 2 t i . =n wy.rgaNd(] $[0) b e k
ae : hs$
e yPormoe[, $$]; r a ;
1.
1
c s 3 t i . =n wy.rgaNd($$-] $[0) b e k
ae : hs$
e yPormoe$[02, $$]; r a ;
1.
2
c s 4 t i . =n wy.rgaNd($$-] [) b e k
ae : hs$
e yPormoe$[01, ]; r a ;
1.
3
c s 5 t i . =n wy.rgaNd($$];b e k
ae : hs$
e yPormoe$[0) r a ;
1.
4
c s 6 t i . =n wy.rgaNd(] [) b e k
ae : hs$
e yPormoe[, ]; r a ;
1.
5
…
1.
6
c s 4:t i . =[$$];b e k
ae 7 hs$
$[0] r a ;
Паттерны с нами уже
на протяжении 25 лет
Наследование
11

Где-то в параллельной вселенной
0 .c a s P r n {
1 ls aet
0.
2

cntutrnm){
osrco(ae

0.
3

t i .ae=nm | " d m ;
h snm
ae | A a "

0.
4

}

0.
5

sy){
a(

0.
6
0.
7
0 .}
8

r t r t i .ae
e u n h snm;
}
12

Где-то в параллельной вселенной
0 .c a s C i d e t n s P r n {
1 ls hl xed aet
0.
2

cntutrnm){
osrco(ae

0.
3

sprcntutrnm)
ue.osrco(ae;

0.
4

t i .adm=Mt.adm)
h srno
ahrno(;

0.
5

}

0.
6

sy){
a(

0.
7
0.
8

r t r sprsy)+" ( +t i .adm+" "
e u n ue.a(
"
h srno
);
}
Так будет в ECMAScript 6, но
это синтаксический сахар
clck.ru/8t2bL
14

Всё можно свести к одной строчке
0 .f n t o i h r t C P {
1 u c i n nei(, )
0.
2
0 .}
3

Cpooye=n wP)
.rttp
e (;
15

Тогда наши классы будут такими
0 .f n t o P r n ( a e {
1 u c i n aetnm)
0.
2

t i .ae=nm | " d m ;
h snm
ae | A a "

0 .}
3
0 .P r n . r t t p . a = f n t o ( {
4 aetpooyesy
ucin )
0.
5

r t r t i .ae
e u n h snm;

0 .}
6 ;
0 .f n t o C i d n m ) {
7 u c i n hl(ae }
0 .i h r t C i d P r n )
8 nei(hl, aet;
Цепочка прототипов после установления
наследования
17

Никогда не делайте так!
0 .f n t o i h r t C P {
1 u c i n nei(, )
0.
2
0 .}
3

Cpooye=Ppooye
.rttp
.rttp;
Взаимоотношения при совместном
использовании одного прототипа
19

Почти «серебряная пуля»
0 .v r i h r t = ( u c i n ( {
1 a nei
fnto )
0.
2

v rF=f n t o ( {;
a
ucin ) }

0.
3

r t r f n t o (,P {
eun ucin C )

0.
4

Fpooye=Ppooye
.rttp
.rttp;

0.
5

Cpooye=n wF)
.rttp
e (;

0.
6

C_bs =Ppooye
._ae
.rttp;

0.
7

Cpooyecntutr=C
.rttp.osrco
;

0.
8

}
20

Тогда наши классы будут такими
0 .f n t o P r n ( a e {
1 u c i n aetnm)
0.
2

t i ._osrco.pl(h s agmns;
h s_cntutrapyt i , ruet)

0 .}
3
0 .P r n . r t t p . _ o s r c o = f n t o ( a e {
4 aetpooye_cntutr
u c i n nm)
0.
5

t i .ae=nm | " d m ;
h snm
ae | A a "

0 .}
6 ;
0 .P r n . r t t p . a = f n t o ( {
7 aetpooyesy
ucin )
0.
8

r t r t i .ae
e u n h snm;
21

Тогда наши классы будут такими
0 .f n t o C i d n m ) {
1 u c i n hl(ae
0.
2

t i ._osrco.pl(h s agmns;
h s_cntutrapyt i , ruet)

0 .}
3
0 .C i d p o o y e _ c n t u t r = f n t o ( a e {
4 hl.rttp._osrco
u c i n nm)
0.
5

t i ._ae_cntutrapyt i ,agmns;
h s_bs._osrco.pl(h s ruet)

0 .}
6 ;
22

А инстанции такими
0 .i h r t C i d P r n )
1 nei(hl, aet;
0 .v r c = n w C i d " v " ;
2 a
e hl(E a )
0 .c s y )
3 .a(

/ "v"
/ Ea

0 .c i s a c o C i d
4
n t n e f hl

/ tu
/ re

0 .c i s a c o P r n
5
n t n e f aet

/ tu
/ re

0 .c i s a c o O j c
6
n t n e f bet

/ tu
/ re
Цепочка прототипов после установления
наследования
Не изобретайте велосипедов
— используйте jQuery.inherit
clck.ru/8tj85
Модуль
26

Действительно ли глобальные
переменные это плохо?
v ra=$" b d ".et" e l ";
a
(. o y )tx(H l o )
27

Действительно ли глобальные
переменные это плохо?
0 .f n t o $ c u t r {
1 u c i n (one)
0.
2

cutr+
one+;

0.
3

i (one ==10 r t r t u ;
f cutr = 0) e u n r e

0.
4

r t r $cutr;
e u n (one)

0 .}
5 ;
28

Действительно ли глобальные
переменные это плохо?
0 .( u c i n $ c u t r {
1 f n t o (one)
0.
2

cutr+
one+;

0.
3

i (one ==10 r t r t u ;
f cutr = 0) e u n r e

0.
4

r t r $cutr;
e u n (one)

0 .} ( )
5 )0;
0 .t p o $
6 yef ;

/ "neie" н н вI 68:
/ udfnd, о е
E - (
29

Цели паттерна
— Минимизация числа глобальных переменных и функций
— Изолирование внутренних переменных
— Возможность изменения внутренней логики без изменния API
— Быстрый доступ до локальных переменных
30

Является комбинацией нескольких
паттернов
— Пространство имен
— Немедленно вызываемая функция
— Частные и привилегированные члены
31

0 .$ f . s o d r = ( u c i n ( , w n o ) {
1 .njlae
f n t o $ idw
0.
2

v rulapn ={;
a rMpig
}

0.
3

f n t o cetSrp(r){;
u c i n raecitsc }

0.
4

wno.nro =f n t o (s,ul ln){;
idwoerr
u c i nmg r, ie }

0.
5

r t r f n t o (r){
e u n u c i nsc

0.
6

ulapn[r]=sc
rMpigsc
r;

0.
7

cetSrp(r)
raecitsc;

0.
8

}
;

0 .} ( , t i )
9 )$ h s;
1 .$ f . s o d r " / a d x s / h r / n . h r . s )
0 .njlae(/ y n e . t s a e c t s a e j ";
Одиночка (Singleton)
clck.ru/8tByw
33

0 .v r S n l t n = ( u c i n ( {
1 a igeo
fnto )
0.
2

v risac;
a ntne

0.
3

f n t o ii( {r t r {fo " a "} }
u c i n nt)
eun
o: b r ; ;

0.
4

rtr {
eun

0.
5

gtntne f n t o ( {
eIsac: u c i n )

0.
6

i (isac){isac =ii(;}
f !ntne
ntne
nt)

0.
7

r t r isac;
e u n ntne

0.
8
0.
9

}
}
;

1 .} ( ;
0 ))
34

0 .v r s n l = S n l t n g t n t n e )
1 a ige
igeo.eIsac(;
0 .v r s n l 2 = S n l t n g t n t n e )
2 a ige
igeo.eIsac(;
0 .s n l = = s n l 2
3 ige = ige;

/ tu
/ re
Все модули в Node.js —
«Модули Одиночки»
Внедрение зависимостей
(Dependency injection)
clck.ru/8t8VE
37

Цели паттерна
— Создание иерархии модулей и их зависимостей
— Возможность динамической загрузки модулей
— Разделение кода на слобосвязанные компоненты
38

Используется
— RequireJS
— bem-core
— AngularJS
— COCAINE
39

0 .m d l s d f n ( l g ' [ j u r ' ' n e s o e ]
1 oue.eie' o o , ' q e y , u d r c r ',
0.
2

f n t o (rvd,$ _ {
u c i npoie , )

0.
3
0.
4

$' l g '.nmt( oaiy 02 };
(. o o )aiae{ pct: .5 )
}

0 .)
5 ;
0 .t p o $
6 yef ;

/ "neie"
/ udfnd

0 .t p o _
7 yef ;

/ "neie"
/ udfnd
40

0 .c c i e g t e v c s [ g o a e , u t a t ' ' o g n ' ,
1 oan.eSrie(' e b s '' a r i s ,l g i g ]
0 .f n t o ( e , a l g {
2 u c i ngou,o)
0.
3

v rsre =n wht.evrf n t o (e,rs{
a evr
e tpSre(u c i nrq e)

0.
4

rqo(e d ,f n t o ({
e.n' n ' u c i n)

0.
5

gorgo_drqhaes' - e l i ')
e.eini(e.edr[x r a - p ]

0.
6

.hnf n t o (eind{
te(u c i nrgoI)

0.
7

r t r gonmsrgoI)
e u n e.ae(eind

0.
8
0.
9
1.
0

}
)
}
)
}
)
Декоратор
clck.ru/8tC5t
47

0 ./ r q r g o I — О р д л е i р г о а
1 / e.eind
пееям d еин

0 .a p u e r q i e ' / i d e a e e p e s r g o I ' ( o f g g o
2 p.s(eur(. m d l w r / x r s - e i n d )cni.e
0 ./ r q u t a t - О р д л л н е у т о с в
3 / e.aris
пееяеи срйта
0 .a p u e r q i e ' x r s - a r i s ) c n i . a r i s )
4 p.s(eur(e p e s u t a t '(ofgutat);
0 ./ r q l n d t c - О р д л н е я ы а
5 / e.ageet
пеееи зк
0 .a p u e r q i e ' x r s - a g e e t ) c n i . a g e e t )
6 p.s(eur(e p e s l n d t c '(ofglndtc);
jQuery мог бы быть
декоратором и очень на него
похож
Наблюдатель (Observer,
Publisher-Subscriber)
Все пользовательские события
в jQuery — Наблюдатели
53

Резюме
— Существует множество различных паттернов
— Одни и теже задачи можно решать по-разному
— Всегда выбирайте решение наиболее подходящее вам
Используйте паттерны с умом
Спасибо
dench@yandex-team.ru
twitter.com/denchistyakov

Más contenido relacionado

La actualidad más candente

Николай Волосатов — Работа с крэшами библиотек
Николай Волосатов — Работа с крэшами библиотекНиколай Волосатов — Работа с крэшами библиотек
Николай Волосатов — Работа с крэшами библиотекCocoaHeads
 
20080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture1820080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture18Computer Science Club
 
Аскетичная разработка браузера
Аскетичная разработка браузераАскетичная разработка браузера
Аскетичная разработка браузераPlatonov Sergey
 
Ecma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoEcma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoDenis Khabrenko
 
Найти иглоку в стоге сена
Найти иглоку в стоге сенаНайти иглоку в стоге сена
Найти иглоку в стоге сенаAlexey Tokar
 
Агоритм пчёл и его сравнение с ГА
Агоритм пчёл и его сравнение с ГААгоритм пчёл и его сравнение с ГА
Агоритм пчёл и его сравнение с ГАKirill Netreba
 
Олег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonОлег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonYandex
 
Метод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлМетод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлKirill Netreba
 
ст лекция 5
ст лекция 5ст лекция 5
ст лекция 5student_kai
 
ноид для до
ноид для доноид для до
ноид для доSuslina
 
Probabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignProbabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignIosif Itkin
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
 

La actualidad más candente (18)

About Python
About PythonAbout Python
About Python
 
Николай Волосатов — Работа с крэшами библиотек
Николай Волосатов — Работа с крэшами библиотекНиколай Волосатов — Работа с крэшами библиотек
Николай Волосатов — Работа с крэшами библиотек
 
исполнитель
исполнительисполнитель
исполнитель
 
8 2-1
8 2-18 2-1
8 2-1
 
20080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture1820080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture18
 
Аскетичная разработка браузера
Аскетичная разработка браузераАскетичная разработка браузера
Аскетичная разработка браузера
 
Ecma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoEcma script 6 yevhen diachenko
Ecma script 6 yevhen diachenko
 
Найти иглоку в стоге сена
Найти иглоку в стоге сенаНайти иглоку в стоге сена
Найти иглоку в стоге сена
 
Cocos2d-x и Lua
Cocos2d-x и LuaCocos2d-x и Lua
Cocos2d-x и Lua
 
Агоритм пчёл и его сравнение с ГА
Агоритм пчёл и его сравнение с ГААгоритм пчёл и его сравнение с ГА
Агоритм пчёл и его сравнение с ГА
 
Олег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonОлег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и Python
 
Метод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлМетод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёл
 
Парсим CSS
Парсим CSSПарсим CSS
Парсим CSS
 
ст лекция 5
ст лекция 5ст лекция 5
ст лекция 5
 
ноид для до
ноид для доноид для до
ноид для до
 
Probabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignProbabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems Design
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
 
Programming c++ (begin-if-else)
Programming c++ (begin-if-else)Programming c++ (begin-if-else)
Programming c++ (begin-if-else)
 

Destacado

5 samosvat
5 samosvat5 samosvat
5 samosvatYandex
 
1 hofstad
1 hofstad1 hofstad
1 hofstadYandex
 
Yandex20131017 Ageev
Yandex20131017 AgeevYandex20131017 Ageev
Yandex20131017 AgeevYandex
 
Всеволод Струкчинский: Node.js
Всеволод Струкчинский: Node.jsВсеволод Струкчинский: Node.js
Всеволод Струкчинский: Node.jsYandex
 
4 litvak
4 litvak4 litvak
4 litvakYandex
 
4 musatov
4 musatov4 musatov
4 musatovYandex
 
5 ostroumova
5 ostroumova5 ostroumova
5 ostroumovaYandex
 

Destacado (8)

5 samosvat
5 samosvat5 samosvat
5 samosvat
 
1 hofstad
1 hofstad1 hofstad
1 hofstad
 
Yandex20131017 Ageev
Yandex20131017 AgeevYandex20131017 Ageev
Yandex20131017 Ageev
 
Всеволод Струкчинский: Node.js
Всеволод Струкчинский: Node.jsВсеволод Струкчинский: Node.js
Всеволод Струкчинский: Node.js
 
4 litvak
4 litvak4 litvak
4 litvak
 
Iiguerramundial
IiguerramundialIiguerramundial
Iiguerramundial
 
4 musatov
4 musatov4 musatov
4 musatov
 
5 ostroumova
5 ostroumova5 ostroumova
5 ostroumova
 

Similar a Денис Чистяков: Паттерны проектирования

Денис Чистяков: DOM, jQuery и все, все, все
Денис Чистяков: DOM, jQuery и все, все, всеДенис Чистяков: DOM, jQuery и все, все, все
Денис Чистяков: DOM, jQuery и все, все, всеYandex
 
Алексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksАлексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksJetStyle
 
OpenStreetMap на вашем сайте
OpenStreetMap на вашем сайтеOpenStreetMap на вашем сайте
OpenStreetMap на вашем сайтеAlexander Sapozhnikov
 
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...Yandex
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevIosif Itkin
 
Поиск ошибок в программах на языке C#
Поиск ошибок в программах на языке C#Поиск ошибок в программах на языке C#
Поиск ошибок в программах на языке C#Mikhail Shcherbakov
 
На что способны современные статические анализаторы для C#
На что способны современные статические анализаторы для C#На что способны современные статические анализаторы для C#
На что способны современные статические анализаторы для C#Artem Borzilov
 
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...Iosif Itkin
 
Делаем кроссбраузерные тесты поверх Webdriver
Делаем кроссбраузерные тесты поверх WebdriverДелаем кроссбраузерные тесты поверх Webdriver
Делаем кроссбраузерные тесты поверх WebdriverSQALab
 
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...Alexey Paznikov
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Theoretical mechanics department
 
Дмитрий Прокопцев — R-ссылки в С++11
Дмитрий Прокопцев — R-ссылки в С++11Дмитрий Прокопцев — R-ссылки в С++11
Дмитрий Прокопцев — R-ссылки в С++11Yandex
 
Тестирование мультиязычного веб-сервиса a la Russe
Тестирование мультиязычного веб-сервиса a la Russe Тестирование мультиязычного веб-сервиса a la Russe
Тестирование мультиязычного веб-сервиса a la Russe SQALab
 
Тестирование мультиязычного сервиса a la Russe
Тестирование мультиязычного сервиса a la RusseТестирование мультиязычного сервиса a la Russe
Тестирование мультиязычного сервиса a la RusseTatyana Pischasova
 
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...Alexey Paznikov
 
Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный...
Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный...Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный...
Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный...Mail.ru Group
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3Eugeniy Tyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3etyumentcev
 

Similar a Денис Чистяков: Паттерны проектирования (20)

Python i18n
Python i18nPython i18n
Python i18n
 
Денис Чистяков: DOM, jQuery и все, все, все
Денис Чистяков: DOM, jQuery и все, все, всеДенис Чистяков: DOM, jQuery и все, все, все
Денис Чистяков: DOM, jQuery и все, все, все
 
Алексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalksАлексей Иванов: немного о grunt.js #FrontTalks
Алексей Иванов: немного о grunt.js #FrontTalks
 
OpenStreetMap на вашем сайте
OpenStreetMap на вашем сайтеOpenStreetMap на вашем сайте
OpenStreetMap на вашем сайте
 
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
Сергей Горобцов: Идеологии разработки веб интерфейсов, адаптивность, Accessib...
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry Zaitsev
 
Поиск ошибок в программах на языке C#
Поиск ошибок в программах на языке C#Поиск ошибок в программах на языке C#
Поиск ошибок в программах на языке C#
 
На что способны современные статические анализаторы для C#
На что способны современные статические анализаторы для C#На что способны современные статические анализаторы для C#
На что способны современные статические анализаторы для C#
 
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
 
Делаем кроссбраузерные тесты поверх Webdriver
Делаем кроссбраузерные тесты поверх WebdriverДелаем кроссбраузерные тесты поверх Webdriver
Делаем кроссбраузерные тесты поверх Webdriver
 
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование
 
Дмитрий Прокопцев — R-ссылки в С++11
Дмитрий Прокопцев — R-ссылки в С++11Дмитрий Прокопцев — R-ссылки в С++11
Дмитрий Прокопцев — R-ссылки в С++11
 
Тестирование мультиязычного веб-сервиса a la Russe
Тестирование мультиязычного веб-сервиса a la Russe Тестирование мультиязычного веб-сервиса a la Russe
Тестирование мультиязычного веб-сервиса a la Russe
 
Тестирование мультиязычного сервиса a la Russe
Тестирование мультиязычного сервиса a la RusseТестирование мультиязычного сервиса a la Russe
Тестирование мультиязычного сервиса a la Russe
 
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
ПВТ - осень 2014 - Лекция 4 - Стандарт POSIX Threads. Реентерабельность. Сигн...
 
Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный...
Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный...Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный...
Уходим глубоко в Fuzzing и применим его, где только можно, Алексей Набережный...
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
Parallel STL
Parallel STLParallel STL
Parallel STL
 

Más de Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

Más de Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Денис Чистяков: Паттерны проектирования