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
780
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
1.9k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
980
Маленькая библиотека для большой компании. Антон Шевчук
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
780
Функциональный тулчейн Nix
fwdays
1
460
Other Decks in Programming
See All in Programming
Reading Rails 1.0 Source Code
okuramasafumi
0
210
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
300
Design Foundational Data Engineering Observability
sucitw
3
200
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
1
220
AIコーディングAgentとの向き合い方
eycjur
0
270
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
300
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
150
複雑なドメインに挑む.pdf
yukisakai1225
5
1.2k
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
120
Navigation 2 を 3 に移行する(予定)ためにやったこと
yokomii
0
230
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
160
Rancher と Terraform
fufuhu
2
400
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Optimizing for Happiness
mojombo
379
70k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Site-Speed That Sticks
csswizardry
10
810
Context Engineering - Making Every Token Count
addyosmani
3
43
Producing Creativity
orderedlist
PRO
347
40k
Designing for humans not robots
tammielis
253
25k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
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/