Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Knockout: как, зачем, почему
Search
fwdays
March 05, 2013
Programming
0
1.4k
Knockout: как, зачем, почему
fwdays
March 05, 2013
Tweet
Share
More Decks by fwdays
See All by fwdays
Symfony best practices и не только Олег Зинченко
fwdays
0
2.1k
Beyond Testing Михаил Боднарчук
fwdays
0
770
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
1.8k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
950
Маленькая библиотека для большой компании. Антон Шевчук
fwdays
0
3.8k
Phalcon. Что нового? Александр Торош
fwdays
0
1.1k
Выбираем поисковик умом головы. Андрей Аксенов
fwdays
0
1.4k
Past, Present, and Future: The Evolution of PHP Development. Nate Abele
fwdays
0
760
Функциональный тулчейн Nix
fwdays
1
450
Other Decks in Programming
See All in Programming
CursorはMCPを使った方が良いぞ
taigakono
0
140
WindowInsetsだってテストしたい
ryunen344
1
190
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
3
280
Using AI Tools Around Software Development
inouehi
0
1.2k
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
330
イベントストーミングから始めるドメイン駆動設計
jgeem
4
870
Java on Azure で LangGraph!
kohei3110
0
160
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
220
Datadog RUM 本番導入までの道
shinter61
1
310
Webからモバイルへ Vue.js × Capacitor 活用事例
naokihaba
0
740
Benchmark
sysong
0
230
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
250
Featured
See All Featured
Building an army of robots
kneath
306
45k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
We Have a Design System, Now What?
morganepeng
52
7.6k
What's in a price? How to price your products and services
michaelherold
245
12k
Practical Orchestrator
shlominoach
188
11k
GitHub's CSS Performance
jonrohan
1031
460k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Designing Experiences People Love
moore
142
24k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Transcript
как, зачем, почему
как, зачем, почему
• Frontend MV* framework • MIT • Supported by Microsoft
(Visual Studio 2012) Что за зверь?
Для начала немного истории ... 1995-2000
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
2013
Конец 2000х
C V M
C V M
C V M
C V M DAO DAO
C V M DAO DAO
C V M DAO DAO UNIT TESTABLE
C V M
C V M
C ? M
M C ?
declare and automate! FRP
None
None
None
None
None
None
None
C V M
VM V M
VM V M
VM V M DECLARATIVE
VM V M UNIT TESTABLE DECLARATIVE
None
Observable Properties
Change Listeners
Dependent Observable Properties
Dependent Observable Properties with Dynamic Dependency Resolution
(Including Dynamic Observable Properties!) Declarative Bindings based on Dependent Observable
Properties
None
Observable Properties
Зависимые Свойства
Listeners
Bindings
Dynamic Observable Properties
Integrated Templating and Custom Bindings
None
UNIT TESTABLE
close enough FRP?
NICE CLEAN API
VM V M
plain HTML/CSS + knockout bindings + knockout templates mock data
in ViewModels Web Designer
No need to have HTML at all most of the
time! Backend AJAX mocks Front-end Developer
No need to do templating Simple services (most of the
time front-end driven) Backend Developer
None
None
Knockout Ember Angular Кривые обучения
Система диагнозтики рака • 20k LOC не считая библиотек •
HTML5 (Canvas, SVG) + Hadoop Система для флеботомии • 3k LOC of CoffeeScript • getUserMedia API Используем с начала 2011 года
None
Grammarly IDE for Computational Linguists • 1.5k LOC (5k) •
Node.JS + CommonLisp • CodeMirror bindings • Brunch, Request, OMF Future: • Small bits and pieces (dashboards, admin) • New online grammar checker
Gotchas [грабли]
1. Не пихаем JS в байндинги! 2. ViewModel != Model
3. Event delegation происходит в "глубину" 4. Структурируем VM 5. Не пишем на голом jQuery 6. Ищем плагины 7. Фреймворк != Модульность Грабли
2 подхода к постороению страниц Простыня • Удобна для простых
приложений • Удобна для дизайнера • Весь код на одной странице Кирпичи • Reuse • Хорош для крупных и мультистраничных приложений
Knockout http://knockoutjs.com/ http://learn.knockoutjs.com/ https://github. com/SteveSanderson/knockout/wiki http://stackoverflow.com/tags/knockout.js/info
None
We <3
http://urbodydecompose.deviantart.com/art/Tuxedo-cat-166270845 http://okbrightstar-stock.deviantart.com/art/Sleeping-125954264 http://catstock.deviantart.com/art/Sing-33055858 http://www.flickr.com/photos/nautical/133261261/ http://commons.wikimedia.org/wiki/File:WWW_logo_by_Robert_Cailliau.svg http://www.flickr.com/photos/thefangmonster/490423135/ http://www.flickr.com/photos/1uplego/7138185931/ http://www.flickr.com/photos/jotape_es/384293700/ http://www.flickr.com/photos/bmindful/418000489/ http://www.flickr.com/photos/wadem/2923627819/
http://www.flickr.com/photos/p-r-b/3205896562/ http://www.flickr.com/photos/zitona/4147791422/ http://www.flickr.com/photos/kk/106960641/ http://www.flickr.com/photos/bigberto/2767045155/ https://github.com/voodootikigod/logo.js http://www.w3.org/html/logo/ Credits
http://blog.stephenhorlander.com/2009/08/windows-theme-project-progress-report-3 http://www.flickr.com/photos/41027324@N03/4746972869// http://www.flickr.com/photos/m-i-k-e/6020157534/ http://www.flickr.com/photos/mag3737/4935272859/ http://www.flickr.com/photos/joao_trindade/4362414729/ http://www.flickr.com/photos/didmyself/6159223758/ http://www.flickr.com/photos/doglotion/2328627785/ http://www.flickr.com/photos/artlung/4424880628/ http://www.flickr.com/photos/stuckincustoms/4305080531/ http://denaja.deviantart.com/art/shocked-cat-344011338
http://www.flickr.com/photos/kenjonbro/7324363574/ http://www.flickr.com/photos/somebox/5664263870/ http://wulfila.deviantart.com/art/My-Isis-101844874 http://www.flickr.com/photos/10557450@N04/6632470867/ http://www.flickr.com/photos/geminidustin/275375865/