Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Frameworks in 2015
Search
Андрей Листочкин (Andrey Listochkin)
April 26, 2015
Programming
180
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Frameworks in 2015
Андрей Листочкин (Andrey Listochkin)
April 26, 2015
More Decks by Андрей Листочкин (Andrey Listochkin)
See All by Андрей Листочкин (Andrey Listochkin)
Everybody Stand Back! I Know Regular Expressions
listochkin
0
240
Command-line scripting with Rust. Wait, what?!
listochkin
0
420
Server Memory - BuildStuff Ukraine 2019
listochkin
0
76
Server Memory - Chernivtsi JS 2019
listochkin
1
170
10 Years Later
listochkin
0
400
Managing Managers - DevTalks iHUB
listochkin
0
87
Time, Numbers, Text
listochkin
1
670
Software Licensing: A Minefield Guide
listochkin
0
190
We Make Bots. For Real
listochkin
0
480
Other Decks in Programming
See All in Programming
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
270
FreeBSDでZabbixを動かす
kenkino
0
360
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
290
カツオ、ご期待ください
suneo3476
0
150
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
350
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.9k
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
390
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
190
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.5k
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
450
AWSに止められる覚悟してますか?
morizo_1984
2
510
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2.2k
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
310
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
The SEO Collaboration Effect
kristinabergwall1
1
590
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
320
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
440
Fireside Chat
paigeccino
43
4.1k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
Mind Mapping
helmedeiros
1
390
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Transcript
Frameworks in 2015 Andrey Listochkin @listochkin github.com/listochkin github.com/dev-ua
Frameworks in 2015
@listochkin frontendua.im
None
2015
Angular Ember React
MVC
MV*
*V*
***
Architecture
BIG Apps
GMail ~2007 800k
Your App Today ~1.5m
Frameworks Matter
bootstrap server DOM data 3rd-party ...
Write It By Hand
Ecosystems
Ember Ember Data Ember CLI Ember Inspector Ember Deploy LiquidFire
EmberFire Ember Paper
Ember vs React
Ember Ecosystem vs React Ecosystem
None
Missing Piece?
Abandon
Wait
Implement
and Share
Dynamics of Ecosystems
Dynamics of Open Source
Done == Dead
jQuery
Backbone
It Works!
All Bugs Fixed
No one wants it :(
Reinvent
Refactor
Bikeshed
Change!
Abandon
Batman JS Spine Knockout Can JS Durandal JavaScript MVC
Wait
Ember FastBoot
Angular 2
Mixins in React
Implement
Builds
Ember CLI
Grunt vs Gulp Browserify vs Webpack Test’em vs Karma Selenium
vs Protractor
and Share
Gold Rush
Young Ecosystems
React Flux
493 results for 'flux' https://www.npmjs.com/search?q=flux
We've found 1,276 repository results https://github.com/search? q=flux&l=JavaScript&type=Repositorie s
Facebook Flux Reflux Fluxxor Fluxible by Yahoo Alt Flummox Marty.js
McFly Lux Fynx Fluxy
Rivalry
AngularStrap vs UI Bootstrap
Unification
Ember CLI Deploy
3 projects
merged into one
6 core contributors
925 packages http://www.emberaddons.com/
Open Source is HARD
Github stars Green Badges Great Docs Big Early Adopters API
compatibility Issues Triaging
Dynamics
forced to change
missing pieces
great artists steal Steve Jobs Pablo Picasso Igor Stravinsky William
Faulkner T. S. Eliot W. H. Davenport Adams
None
common future
Predict to Future-proof
framework-agnostic architecture
since summer 2013
architecture = decisions
code
tools
dependencies
code
spacial
None
components
YUI 2007
Widgets
Angular Directive 2009
custom elements
Twitter Flight January 31, 2013
Modern Components
data down events up
React sans vDOM
Polymer May 16, 2013
<stock-badge ticket=”msft” range=”yoy” chart=”linear”>
React May 29, 2013
Ember 1.0 rc8 Aug 29, 2013
Ember Components
Rethinking Best Practices video Oct 30, 2013
components
None
dumb vs smart
dumb UI-only No dependencies No domain state
dumb is good
double wrap
smart wraps dumb
higher-order components
Route-driven Views
Nested UI
None
global UI state vs local UI state
Router.map -> @route 'talk/new', path: 'talks/new' @route 'schedule', { path:
'talks' }, -> @route 'talk', path: ':talk_id'
Router.map -> @route 'talk/new', path: 'talks/new' @route 'schedule', { path:
'talks' }, -> @route 'talk', path: ':talk_id'
Router.map -> @route 'talk/new', path: 'talks/new' @route 'schedule', { path:
'talks' }, -> @route 'talk', path: ':talk_id'
Router.map -> @route 'talk/new', path: 'talks/new' @route 'schedule', { path:
'talks' }, -> @route 'talk', path: ':talk_id'
{{outlet}}
components = tags
outlets = iframes
shallow hierarchies
UI-only components
livereloadability
share
Router + Components
Route Handler loads data handles actions
Component shows DOM DOM events => actions manages children
Router + Components
got a form? write a component! even when you don’t
reuse
Ember
controllers views components++
Angular
smallest controllers possible
directives++
angular 1.4 router UI router
React
react-router
depth
MVC
None
“easy”
Backbone
Models Sync Data binding
better
Identity
Unidirectional Data flow
immutability+FP
CQRS
Operation Transforms
Offline Mode
distributed systems
None
Battlefield
flux
flux in any framework
Monadic Data Dependencies Declaration
GraphQL
None
None
Write-Only DOM
Ember Glimmer
JSX as a Data Structure
future
ES6
ES.Next + addons
@Decorators async type annotations JSX
@Stateful({ initialize (props) { return { count: 0 }; },
reducers: { increment (props, state) { return { count: state.count + 1 }; } } }) class Counter { static propTypes = { count: PropTypes.number.isRequired, increment: PropTypes.func.isRequired }; render () { const { count, increment } = this.props; return ( <button onClick={increment}> Pressed {count} times. </button> ) } }
class MyComponent extends HTMLElement { ... }
Aurelia Angular 2.0 React Ember
tools
Ember CLI
Build Test Runner Dependencies Dev Server Generators Addons
generators
tool enforces conventions
Angular React
React Hot Loader
live reload++
Ember Inspector
Render Tree Routing Data Explorer DI Container Deprecations Promises Performance
Chrome Firefox IE Safari
dependencies
ember install:addon liquid-fire
component library build step tool ...
testing
UI tests
visit('talks/new'); fillIn('input.title', 'My Cool Talk'); click('button.submit'); andThen(() => { equal(
find('ul.talks li:last').text(), 'My Cool Talk'); });
Selenium
“Native”
pluggable renderers
jQuery vs Zepto
DOM vs Cocoa, QT
Native UI JS for App and Network
Rolling Releases
None
challenges
Angular 2 React Ember Router y y y Components y
y y ES.next y y y vDOM w y w FP+immutable n w w monadic declarations n w n Data n w y Asset Pipeline n n y Addons n n y UI testing n n y Browser Tools n n y Hot Reload n y n Isomorphic w y w Native n y n Rolling Releases n n y
Ember Productivity
React Innovation
Angular Popularity
you don’t have to be productive, innovative, or popular to
be successful
@listochkin frontendua.im
None