SlideShare a Scribd company logo
Modern Front End
Technology
Ship
Agenda
• Web Technology Trend
• Website technology evaluation
• Frontend/Backend Technology
• Functional Programming
• Nodejs/React/Flux/Redux/Webpack
• Web Timeline
• 網頁設計?
The Most Basic Technology
Socket Programming
Socket Programming Flow
TCP UDP
Socket Programming on LINUX using C
Parent Child1
Child2
Child3
Parent
Parent
Parent
fork
fork
fork
Parent
Child
Regular HTTP Demo http://www.ltn.com.tw
Traditional Backend–Mix code and HTML Together
Rasmus Lerdorf
MVC Structure
MVC Example - CodeIgniter
http://example.com/news/show/1
request
data
Controller
Model View
/Controller/Method/para1/para2/para3...
Frontend - AJAX (Asynchronous JavaScript and XML)
REST API
JSON data
Example: http://www.mediatek.com/
JSON is won already! ref
Frontend Library - jQuery
http://api.jquery.com/show/ https://api.jquery.com/category/selectors/
Frontend/Backend Interaction
2. AJAX Polling1. Regular HTTP
3. AJAX Long Polling 4. WebSocket
Polling vs WebSocket Throughput comparison
前情提要結束.......Take a breath
• 進入主題前,還有一件事情必須先知道......
Functional Programming
Lambda Calculus
Ref: What is a lambda (function)?
What is Lambda Calculus and should you care?
A Tutorial Introduction to the Lambda Calculus
More lambda calculus:
Thinking in Machine
• Imperative JavaScript
inputArray = {“how”, “are”, “you”}
result = {“How”, “Are”, “You”}
“how“ => “How”
{“How”, “Are”, “You”}=>”How Are You”
Thinking in Object
• Object-Oriented JavaScript
textArray = {“how”, “are”, “you”}
result = {“How”, “Are”, “You”}
“how“ => “How”
return “How Are You”
Thinking in Function
• Functional JavaScript
“how“ => “How”
“how are you”=> {“how”, “are”, “you”}“how are you”=> {“how”, “are”, “you”}=>{“How”, “Are”, “You”}“how are you”=> {“how”, “are”, “you”}=>{“How”, “Are”, “You”}=>”How Are You”
Functional Programming !
Comparison
1. Human readable
2. Efficiency
3. Line numbers
Imperative Object-Oriented
Functional Programming
Why Line Numbers Is A Matter
• Norris Number http://www.techug.com/norris-numbers
• Line numbers of code before you hit a wall
• Un-organized code: 1,500~2,000
• Well-organized code: 20,000
Edsger W. Dijkstra
Functional Programming
Functional Programming Concepts
• FP的共同點在於:
• 「沒有副作用」(Side Effect)、「第一級函數」(First-Class Function)。
「沒有副作用」是指在表示式(expression)內不可以造成值的改變;
「第一級函數」是指函數被當作一般值對待,而不是次級公民,
也就是說,函數可當作「傳入參數」或「傳出結果」。
• FP和我們慣用的編寫程式風格,有相當大的差異。
• Imperative Programming認為程式的執行,就是一連串狀態的改變;
• FP將程式的運作,視為數學函數的計算,且避免「狀態」和「可變資料」。
Ref: 思考函數編程(二)Why FP
Functional Programming Concepts
1. Avoiding Mutable State
2. Recursion
3. High-Order Functions
4. Function Composition
5. Lazy Evaluation
Ref: 那些 Functional Programming 教我的事
Call by need
全世界的語言 都往 Functional Programming 發展
http://www.codedata.com.tw/social-coding/paradigm-shift-to-functional-programming/
Ref: What is a lambda (function)?
Functional Programming In Action
Ref: 那些 Functional Programming 教我的事
Let's get into modern front-end technology.
Nodejs
• 2009.5 Ryan Dahl發布於GitHub
• 使用Google V8 engine 的 Web & Socket Server
• 使用Javascript編寫Backend (前後端統一,減少開發成本)
• Single Thread, Event Driven, Non-Blocking IO
• Strongly Community Support: NPM
Nodejs
• Why single thread?
Ref: Nodejs Explained with Examples
Nodejs
Ref: Callback Hell vs. Async vs. Highland
Sounds great? How about this?
Yes...It’s called callback hell.
How to resolve? PromiseJS!
Blocking IO Non-Blocking IO
Nodejs
• Who use Nodejs
Ref: Projects, Applications, and Companies Using Node
React
• Facebook open source project
• 集中散落在四處的程式碼:event binding/control flow/status maintain....
• Just Component
Ref: ReactJS & why it’s awesome
React
• Why amazing?
1. Everything is a component
2. Single source of truth(SSOT)
3. Virtual DOM
Ref: ReactJS & why it’s awesome
Always redraw!
Virtual DOM:
compare virtual/real DOM tree, calculate the
minimize set to re-render
Property, State
View Event
Parent
Always redraw!
SSOT:
Flux
• MVC trouble
Ideal world
Real world
Flux
Redux
• A implementation and improvement of FLUX.
• Three principle:
1. Single source of truth
The state of your whole application is stored in an object tree within a single store.
2. State is read-only
The only way to mutate the state is to emit an action, an object describing what happened.
3. Changes are made with pure functions
GitHub: https://github.com/rackt/redux
Document: http://redux.js.org/docs/introduction/Motivation.html
Which Flux implementation should I use?
UNIDIRECTIONAL USER INTERFACE ARCHITECTURES
Old state
New state
Reducer:
Webpack+Babel
• Webpack bundle multiple files to 1 file.
• Babel compile source javascript file to target javascript file.
Webpack: https://github.com/webpack/webpack
Babel: https://babeljs.io/
Webpack+Babel
• Webpack bundle multiple files to 1 file.
• With minify & uglyfy
Javascript in ES2015
Webpack+Babel
• Isomorphic
Common code
Front-end code back-end code
Babel compile
App.js
Run on browser(ES5)
App.js
Run on server(ES6)
Quick Note
1. Functional Programming 是趨勢,且是現在進行式。
2. Single Thread + Non-blocking IO + Event base 會愈來愈常見。
3. 程式語言的易用性日顯重要。
4. React+Redux+Nodejs 目前是黃金組合。
5. 前端變化的太快了,還是好好寫Driver就好(誤
Reference
• 那些 Functional Programming 教我的事 http://www.slideshare.net/ihower/fp-osdc2012v2
• 當 全世界的語言 都往 Functional Programming 發展 http://www.codedata.com.tw/social-coding/paradigm-shift-to-functional-programming/
• 思考函數編程(一)Language is Functional Again http://www.jerry-tsai.com/2008/05/fp_22.html
• 思考函數編程(三)FP is as FP does http://www.jerry-tsai.com/2008/06/fp-is-as-fp-does.html
• 函数式编程很难,这正是你要学习它的原因 http://www.vaikan.com/functional-programming-is-hard-thats-why-its-good/
• OO vs FP http://blog.cleancoder.com/uncle-bob/2014/11/24/FPvsOO.html
• 函数式编程初探 http://www.ruanyifeng.com/blog/2012/04/functional_programming.html
• Understanding the node.js event loop http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
• An Introduction to Functional JavaScript http://www.sitepoint.com/introduction-functional-javascript/
• March 2015 Web Server Survey http://news.netcraft.com/archives/2015/03/19/march-2015-web-server-survey.html
• Comparison of the usage of Apache vs. Nginx vs. Node.js for websites http://w3techs.com/technologies/comparison/ws-apache,ws-nginx,ws-
nodejs
• socket-programming-筆記 http://kezeodsnx.pixnet.net/blog/post/27462696-socket-programming-%E7%AD%86%E8%A8%98
• GNU Porgramming http://www.tenouk.com/cnlinuxsockettutorials.html
• Web开发技术的演变 http://www.evolutionoftheweb.com/?hl=zh-tw#/evolution/day
• 網站技術發展史 http://jaceju.net/2012/11/21/webdev-history/
• Top 10 web development trends and predictions for 2015 http://www.zingdesign.com/top-10-web-development-trends-and-predictions-for-
2015/#motion-ui
• 1989-2014 網頁設計的演變 https://designrockin.wordpress.com/2014/12/10/1989-2014-
%E7%B6%B2%E9%A0%81%E8%A8%AD%E8%A8%88%E7%9A%84%E6%BC%94%E8%AE%8A/
• 網路演進 http://www.evolutionoftheweb.com/?hl=zh-tw#/evolution/day
• What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet? http://stackoverflow.com/questions/11077857/what-are-long-polling-
websockets-server-sent-events-sse- nd-comet
• Introduction to HTML5 WebSocket http://www.codeproject.com/Articles/531698/Introduction-to-HTML-WebSocket
• Thinking in react https://facebook.github.io/react/docs/videos.html
• React JS and why it's awesome http://www.slideshare.net/AndrewHull/react-js-and-why-its-awesome?qid=c07b596e-8ca4-4a53-8c55-
83dd70756321&v=default&b=&from_search=1
Ad

More Related Content

What's hot (20)

What is front-end development ?
What is front-end development ?What is front-end development ?
What is front-end development ?
Mahmoud Shaker
 
It's Time for Silverlight @iRajLal
It's Time for Silverlight @iRajLalIt's Time for Silverlight @iRajLal
It's Time for Silverlight @iRajLal
Raj Lal
 
Web Application
Web ApplicationWeb Application
Web Application
Sameer Poudel
 
Brandon Miller Resume
Brandon Miller ResumeBrandon Miller Resume
Brandon Miller Resume
brandonmiller3
 
niharika saxena
niharika saxenaniharika saxena
niharika saxena
Niharika Saxena
 
Flash skills for silverlight design and development (30 Abr 2010)
Flash skills for silverlight design and development (30 Abr 2010)Flash skills for silverlight design and development (30 Abr 2010)
Flash skills for silverlight design and development (30 Abr 2010)
Ricardo Castelhano
 
The Egg Analogy: The Problem With Designer and Developer Workflow in Software...
The Egg Analogy: The Problem With Designer and Developer Workflow in Software...The Egg Analogy: The Problem With Designer and Developer Workflow in Software...
The Egg Analogy: The Problem With Designer and Developer Workflow in Software...
Chris Bernard
 
Flex and Zend Framework
Flex and Zend FrameworkFlex and Zend Framework
Flex and Zend Framework
10n Software, LLC
 
Net development
Net developmentNet development
Net development
Vivek Chaturvedi
 
dot net
dot netdot net
dot net
sambhajimeher
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web Development
Sam Dias
 
Net development
Net developmentNet development
Net development
Anurag Gupta
 
Meow Demo
Meow DemoMeow Demo
Meow Demo
Pedro J. Molina
 
Essential as the base for Web DSLs
Essential as the base for Web DSLsEssential as the base for Web DSLs
Essential as the base for Web DSLs
Pedro J. Molina
 
Lead developer position
Lead developer positionLead developer position
Lead developer position
Mark Long
 
TypeScript
TypeScriptTypeScript
TypeScript
Fabian Vilers
 
Front-end Vs. Back-end Development
Front-end Vs. Back-end DevelopmentFront-end Vs. Back-end Development
Front-end Vs. Back-end Development
webdesignjhb9
 
Latest Web development technologies 2021
 Latest Web development technologies 2021 Latest Web development technologies 2021
Latest Web development technologies 2021
SWATHYSMOHAN
 
DrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeDrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low Code
Alejandro Moreno
 
.NET ONLINE TRAINING COURSE CONTENT
.NET ONLINE TRAINING COURSE CONTENT .NET ONLINE TRAINING COURSE CONTENT
.NET ONLINE TRAINING COURSE CONTENT
raaviraja
 
What is front-end development ?
What is front-end development ?What is front-end development ?
What is front-end development ?
Mahmoud Shaker
 
It's Time for Silverlight @iRajLal
It's Time for Silverlight @iRajLalIt's Time for Silverlight @iRajLal
It's Time for Silverlight @iRajLal
Raj Lal
 
Flash skills for silverlight design and development (30 Abr 2010)
Flash skills for silverlight design and development (30 Abr 2010)Flash skills for silverlight design and development (30 Abr 2010)
Flash skills for silverlight design and development (30 Abr 2010)
Ricardo Castelhano
 
The Egg Analogy: The Problem With Designer and Developer Workflow in Software...
The Egg Analogy: The Problem With Designer and Developer Workflow in Software...The Egg Analogy: The Problem With Designer and Developer Workflow in Software...
The Egg Analogy: The Problem With Designer and Developer Workflow in Software...
Chris Bernard
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web Development
Sam Dias
 
Essential as the base for Web DSLs
Essential as the base for Web DSLsEssential as the base for Web DSLs
Essential as the base for Web DSLs
Pedro J. Molina
 
Lead developer position
Lead developer positionLead developer position
Lead developer position
Mark Long
 
Front-end Vs. Back-end Development
Front-end Vs. Back-end DevelopmentFront-end Vs. Back-end Development
Front-end Vs. Back-end Development
webdesignjhb9
 
Latest Web development technologies 2021
 Latest Web development technologies 2021 Latest Web development technologies 2021
Latest Web development technologies 2021
SWATHYSMOHAN
 
DrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeDrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low Code
Alejandro Moreno
 
.NET ONLINE TRAINING COURSE CONTENT
.NET ONLINE TRAINING COURSE CONTENT .NET ONLINE TRAINING COURSE CONTENT
.NET ONLINE TRAINING COURSE CONTENT
raaviraja
 

Viewers also liked (20)

Frontend technologies
Frontend technologiesFrontend technologies
Frontend technologies
Jose Ramon Roblero Ruiz
 
TechTalk #85 : Latest Frontend Technologies
TechTalk #85 : Latest Frontend TechnologiesTechTalk #85 : Latest Frontend Technologies
TechTalk #85 : Latest Frontend Technologies
bincangteknologi
 
Volume 01[1].07 ships and marine technology
Volume 01[1].07 ships and marine technologyVolume 01[1].07 ships and marine technology
Volume 01[1].07 ships and marine technology
Ramesh M
 
Technology sailing effects
Technology sailing effectsTechnology sailing effects
Technology sailing effects
Chris Sandström
 
Front-end technologies for Wonderful User Experience through Websites
Front-end technologies for Wonderful User Experience through WebsitesFront-end technologies for Wonderful User Experience through Websites
Front-end technologies for Wonderful User Experience through Websites
Ready Bytes Software labs
 
Frontend SPOF
Frontend SPOFFrontend SPOF
Frontend SPOF
Patrick Meenan
 
Sinau Bareng Frontend Web Development @ DiLo Malang
Sinau Bareng Frontend Web Development @ DiLo MalangSinau Bareng Frontend Web Development @ DiLo Malang
Sinau Bareng Frontend Web Development @ DiLo Malang
Moch. Zamroni
 
Front end Tips Tricks & Tools
Front end Tips Tricks & ToolsFront end Tips Tricks & Tools
Front end Tips Tricks & Tools
Sandeep Ramgolam
 
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Edureka!
 
Frontend automation and stability
Frontend automation and stabilityFrontend automation and stability
Frontend automation and stability
Máté Nádasdi
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015
Holger Bartel
 
User eXperience & Front End Development
User eXperience & Front End DevelopmentUser eXperience & Front End Development
User eXperience & Front End Development
andreafallaswork
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your Frontend
Ruben Teijeiro
 
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
Grunt js for the Enterprise Vol.1: Frontend Performance with PhantomasGrunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
David Amend
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)
Joseph Chiang
 
Wrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web ApplicationsWrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
Magnolia
 
How to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJSHow to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJS
Phil Leggetter
 
W3 conf hill-html5-security-realities
W3 conf hill-html5-security-realitiesW3 conf hill-html5-security-realities
W3 conf hill-html5-security-realities
Brad Hill
 
Frontend at Scale - The Tumblr Story
Frontend at Scale - The Tumblr StoryFrontend at Scale - The Tumblr Story
Frontend at Scale - The Tumblr Story
Chris Miller
 
TechTalk #85 : Latest Frontend Technologies
TechTalk #85 : Latest Frontend TechnologiesTechTalk #85 : Latest Frontend Technologies
TechTalk #85 : Latest Frontend Technologies
bincangteknologi
 
Volume 01[1].07 ships and marine technology
Volume 01[1].07 ships and marine technologyVolume 01[1].07 ships and marine technology
Volume 01[1].07 ships and marine technology
Ramesh M
 
Technology sailing effects
Technology sailing effectsTechnology sailing effects
Technology sailing effects
Chris Sandström
 
Front-end technologies for Wonderful User Experience through Websites
Front-end technologies for Wonderful User Experience through WebsitesFront-end technologies for Wonderful User Experience through Websites
Front-end technologies for Wonderful User Experience through Websites
Ready Bytes Software labs
 
Sinau Bareng Frontend Web Development @ DiLo Malang
Sinau Bareng Frontend Web Development @ DiLo MalangSinau Bareng Frontend Web Development @ DiLo Malang
Sinau Bareng Frontend Web Development @ DiLo Malang
Moch. Zamroni
 
Front end Tips Tricks & Tools
Front end Tips Tricks & ToolsFront end Tips Tricks & Tools
Front end Tips Tricks & Tools
Sandeep Ramgolam
 
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Edureka!
 
Frontend automation and stability
Frontend automation and stabilityFrontend automation and stability
Frontend automation and stability
Máté Nádasdi
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015
Holger Bartel
 
User eXperience & Front End Development
User eXperience & Front End DevelopmentUser eXperience & Front End Development
User eXperience & Front End Development
andreafallaswork
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your Frontend
Ruben Teijeiro
 
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
Grunt js for the Enterprise Vol.1: Frontend Performance with PhantomasGrunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas
David Amend
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)
Joseph Chiang
 
Wrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web ApplicationsWrangling Large Scale Frontend Web Applications
Wrangling Large Scale Frontend Web Applications
Ryan Roemer
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
Magnolia
 
How to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJSHow to Build Front-End Web Apps that Scale - FutureJS
How to Build Front-End Web Apps that Scale - FutureJS
Phil Leggetter
 
W3 conf hill-html5-security-realities
W3 conf hill-html5-security-realitiesW3 conf hill-html5-security-realities
W3 conf hill-html5-security-realities
Brad Hill
 
Frontend at Scale - The Tumblr Story
Frontend at Scale - The Tumblr StoryFrontend at Scale - The Tumblr Story
Frontend at Scale - The Tumblr Story
Chris Miller
 
Ad

Similar to Modern Frontend Technology (20)

Domain Modeling & Full-Stack Web Development F#
Domain Modeling & Full-Stack Web Development F#Domain Modeling & Full-Stack Web Development F#
Domain Modeling & Full-Stack Web Development F#
Kevin Avignon
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a boss
Francisco Ribeiro
 
An evening with React Native
An evening with React NativeAn evening with React Native
An evening with React Native
Mike Melusky
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
Kaxil Naik
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
Maarten Balliauw
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release review
Giang Nguyễn
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
hchen1
 
Financial Project with Spring WebFlux
Financial Project with Spring WebFluxFinancial Project with Spring WebFlux
Financial Project with Spring WebFlux
LINE Corporation
 
Serverless design with Fn project
Serverless design with Fn projectServerless design with Fn project
Serverless design with Fn project
Siva Rama Krishna Chunduru
 
Seattle bestpractices2010
Seattle bestpractices2010Seattle bestpractices2010
Seattle bestpractices2010
Olaseni Odebiyi
 
Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant Killer
Jackson F. de A. Mafra
 
Phalcon / Zephir Introduction at PHPConfTW2013
Phalcon / Zephir Introduction at PHPConfTW2013Phalcon / Zephir Introduction at PHPConfTW2013
Phalcon / Zephir Introduction at PHPConfTW2013
Rack Lin
 
Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology
Jace Liang
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
LINAGORA
 
Beginners Node.js
Beginners Node.jsBeginners Node.js
Beginners Node.js
Khaled Mosharraf
 
Throwing Laravel into your Legacy App™
Throwing Laravel into your Legacy App™Throwing Laravel into your Legacy App™
Throwing Laravel into your Legacy App™
Joe Ferguson
 
Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)Apache Drill (ver. 0.2)
Apache Drill (ver. 0.2)
Camuel Gilyadov
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
VMware Tanzu
 
SpringOne 2016 in a nutshell
SpringOne 2016 in a nutshellSpringOne 2016 in a nutshell
SpringOne 2016 in a nutshell
Jeroen Resoort
 
OpenJDK & Graalvm
OpenJDK & GraalvmOpenJDK & Graalvm
OpenJDK & Graalvm
Oracle Korea
 
Domain Modeling & Full-Stack Web Development F#
Domain Modeling & Full-Stack Web Development F#Domain Modeling & Full-Stack Web Development F#
Domain Modeling & Full-Stack Web Development F#
Kevin Avignon
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a boss
Francisco Ribeiro
 
An evening with React Native
An evening with React NativeAn evening with React Native
An evening with React Native
Mike Melusky
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
Kaxil Naik
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
Maarten Balliauw
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release review
Giang Nguyễn
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
hchen1
 
Financial Project with Spring WebFlux
Financial Project with Spring WebFluxFinancial Project with Spring WebFlux
Financial Project with Spring WebFlux
LINE Corporation
 
Seattle bestpractices2010
Seattle bestpractices2010Seattle bestpractices2010
Seattle bestpractices2010
Olaseni Odebiyi
 
Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant Killer
Jackson F. de A. Mafra
 
Phalcon / Zephir Introduction at PHPConfTW2013
Phalcon / Zephir Introduction at PHPConfTW2013Phalcon / Zephir Introduction at PHPConfTW2013
Phalcon / Zephir Introduction at PHPConfTW2013
Rack Lin
 
Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology
Jace Liang
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
LINAGORA
 
Throwing Laravel into your Legacy App™
Throwing Laravel into your Legacy App™Throwing Laravel into your Legacy App™
Throwing Laravel into your Legacy App™
Joe Ferguson
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
VMware Tanzu
 
SpringOne 2016 in a nutshell
SpringOne 2016 in a nutshellSpringOne 2016 in a nutshell
SpringOne 2016 in a nutshell
Jeroen Resoort
 
Ad

Recently uploaded (20)

Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and CollaborateMeet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Meet the Agents: How AI Is Learning to Think, Plan, and Collaborate
Maxim Salnikov
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 

Modern Frontend Technology

  • 2. Agenda • Web Technology Trend • Website technology evaluation • Frontend/Backend Technology • Functional Programming • Nodejs/React/Flux/Redux/Webpack
  • 5. The Most Basic Technology Socket Programming
  • 7. Socket Programming on LINUX using C Parent Child1 Child2 Child3 Parent Parent Parent fork fork fork Parent Child
  • 8. Regular HTTP Demo http://www.ltn.com.tw
  • 9. Traditional Backend–Mix code and HTML Together Rasmus Lerdorf
  • 11. MVC Example - CodeIgniter http://example.com/news/show/1 request data Controller Model View /Controller/Method/para1/para2/para3...
  • 12. Frontend - AJAX (Asynchronous JavaScript and XML) REST API JSON data Example: http://www.mediatek.com/ JSON is won already! ref
  • 13. Frontend Library - jQuery http://api.jquery.com/show/ https://api.jquery.com/category/selectors/
  • 14. Frontend/Backend Interaction 2. AJAX Polling1. Regular HTTP 3. AJAX Long Polling 4. WebSocket
  • 15. Polling vs WebSocket Throughput comparison
  • 16. 前情提要結束.......Take a breath • 進入主題前,還有一件事情必須先知道...... Functional Programming
  • 17. Lambda Calculus Ref: What is a lambda (function)? What is Lambda Calculus and should you care? A Tutorial Introduction to the Lambda Calculus More lambda calculus:
  • 18. Thinking in Machine • Imperative JavaScript inputArray = {“how”, “are”, “you”} result = {“How”, “Are”, “You”} “how“ => “How” {“How”, “Are”, “You”}=>”How Are You”
  • 19. Thinking in Object • Object-Oriented JavaScript textArray = {“how”, “are”, “you”} result = {“How”, “Are”, “You”} “how“ => “How” return “How Are You”
  • 20. Thinking in Function • Functional JavaScript “how“ => “How” “how are you”=> {“how”, “are”, “you”}“how are you”=> {“how”, “are”, “you”}=>{“How”, “Are”, “You”}“how are you”=> {“how”, “are”, “you”}=>{“How”, “Are”, “You”}=>”How Are You”
  • 21. Functional Programming ! Comparison 1. Human readable 2. Efficiency 3. Line numbers Imperative Object-Oriented Functional Programming
  • 22. Why Line Numbers Is A Matter • Norris Number http://www.techug.com/norris-numbers • Line numbers of code before you hit a wall • Un-organized code: 1,500~2,000 • Well-organized code: 20,000 Edsger W. Dijkstra
  • 24. Functional Programming Concepts • FP的共同點在於: • 「沒有副作用」(Side Effect)、「第一級函數」(First-Class Function)。 「沒有副作用」是指在表示式(expression)內不可以造成值的改變; 「第一級函數」是指函數被當作一般值對待,而不是次級公民, 也就是說,函數可當作「傳入參數」或「傳出結果」。 • FP和我們慣用的編寫程式風格,有相當大的差異。 • Imperative Programming認為程式的執行,就是一連串狀態的改變; • FP將程式的運作,視為數學函數的計算,且避免「狀態」和「可變資料」。 Ref: 思考函數編程(二)Why FP
  • 25. Functional Programming Concepts 1. Avoiding Mutable State 2. Recursion 3. High-Order Functions 4. Function Composition 5. Lazy Evaluation Ref: 那些 Functional Programming 教我的事 Call by need
  • 26. 全世界的語言 都往 Functional Programming 發展 http://www.codedata.com.tw/social-coding/paradigm-shift-to-functional-programming/ Ref: What is a lambda (function)?
  • 27. Functional Programming In Action Ref: 那些 Functional Programming 教我的事
  • 28. Let's get into modern front-end technology.
  • 29. Nodejs • 2009.5 Ryan Dahl發布於GitHub • 使用Google V8 engine 的 Web & Socket Server • 使用Javascript編寫Backend (前後端統一,減少開發成本) • Single Thread, Event Driven, Non-Blocking IO • Strongly Community Support: NPM
  • 30. Nodejs • Why single thread? Ref: Nodejs Explained with Examples
  • 31. Nodejs Ref: Callback Hell vs. Async vs. Highland Sounds great? How about this? Yes...It’s called callback hell. How to resolve? PromiseJS! Blocking IO Non-Blocking IO
  • 32. Nodejs • Who use Nodejs Ref: Projects, Applications, and Companies Using Node
  • 33. React • Facebook open source project • 集中散落在四處的程式碼:event binding/control flow/status maintain.... • Just Component Ref: ReactJS & why it’s awesome
  • 34. React • Why amazing? 1. Everything is a component 2. Single source of truth(SSOT) 3. Virtual DOM Ref: ReactJS & why it’s awesome Always redraw! Virtual DOM: compare virtual/real DOM tree, calculate the minimize set to re-render Property, State View Event Parent Always redraw! SSOT:
  • 35. Flux • MVC trouble Ideal world Real world
  • 36. Flux
  • 37. Redux • A implementation and improvement of FLUX. • Three principle: 1. Single source of truth The state of your whole application is stored in an object tree within a single store. 2. State is read-only The only way to mutate the state is to emit an action, an object describing what happened. 3. Changes are made with pure functions GitHub: https://github.com/rackt/redux Document: http://redux.js.org/docs/introduction/Motivation.html Which Flux implementation should I use? UNIDIRECTIONAL USER INTERFACE ARCHITECTURES Old state New state Reducer:
  • 38. Webpack+Babel • Webpack bundle multiple files to 1 file. • Babel compile source javascript file to target javascript file. Webpack: https://github.com/webpack/webpack Babel: https://babeljs.io/
  • 39. Webpack+Babel • Webpack bundle multiple files to 1 file. • With minify & uglyfy
  • 40. Javascript in ES2015 Webpack+Babel • Isomorphic Common code Front-end code back-end code Babel compile App.js Run on browser(ES5) App.js Run on server(ES6)
  • 41. Quick Note 1. Functional Programming 是趨勢,且是現在進行式。 2. Single Thread + Non-blocking IO + Event base 會愈來愈常見。 3. 程式語言的易用性日顯重要。 4. React+Redux+Nodejs 目前是黃金組合。 5. 前端變化的太快了,還是好好寫Driver就好(誤
  • 42. Reference • 那些 Functional Programming 教我的事 http://www.slideshare.net/ihower/fp-osdc2012v2 • 當 全世界的語言 都往 Functional Programming 發展 http://www.codedata.com.tw/social-coding/paradigm-shift-to-functional-programming/ • 思考函數編程(一)Language is Functional Again http://www.jerry-tsai.com/2008/05/fp_22.html • 思考函數編程(三)FP is as FP does http://www.jerry-tsai.com/2008/06/fp-is-as-fp-does.html • 函数式编程很难,这正是你要学习它的原因 http://www.vaikan.com/functional-programming-is-hard-thats-why-its-good/ • OO vs FP http://blog.cleancoder.com/uncle-bob/2014/11/24/FPvsOO.html • 函数式编程初探 http://www.ruanyifeng.com/blog/2012/04/functional_programming.html • Understanding the node.js event loop http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/ • An Introduction to Functional JavaScript http://www.sitepoint.com/introduction-functional-javascript/ • March 2015 Web Server Survey http://news.netcraft.com/archives/2015/03/19/march-2015-web-server-survey.html • Comparison of the usage of Apache vs. Nginx vs. Node.js for websites http://w3techs.com/technologies/comparison/ws-apache,ws-nginx,ws- nodejs • socket-programming-筆記 http://kezeodsnx.pixnet.net/blog/post/27462696-socket-programming-%E7%AD%86%E8%A8%98 • GNU Porgramming http://www.tenouk.com/cnlinuxsockettutorials.html • Web开发技术的演变 http://www.evolutionoftheweb.com/?hl=zh-tw#/evolution/day • 網站技術發展史 http://jaceju.net/2012/11/21/webdev-history/ • Top 10 web development trends and predictions for 2015 http://www.zingdesign.com/top-10-web-development-trends-and-predictions-for- 2015/#motion-ui • 1989-2014 網頁設計的演變 https://designrockin.wordpress.com/2014/12/10/1989-2014- %E7%B6%B2%E9%A0%81%E8%A8%AD%E8%A8%88%E7%9A%84%E6%BC%94%E8%AE%8A/ • 網路演進 http://www.evolutionoftheweb.com/?hl=zh-tw#/evolution/day • What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet? http://stackoverflow.com/questions/11077857/what-are-long-polling- websockets-server-sent-events-sse- nd-comet • Introduction to HTML5 WebSocket http://www.codeproject.com/Articles/531698/Introduction-to-HTML-WebSocket • Thinking in react https://facebook.github.io/react/docs/videos.html • React JS and why it's awesome http://www.slideshare.net/AndrewHull/react-js-and-why-its-awesome?qid=c07b596e-8ca4-4a53-8c55- 83dd70756321&v=default&b=&from_search=1

Editor's Notes

  • #4: http://mrjamie.cc/2010/08/24/web3-vs-web2/ https://zh.wikipedia.org/wiki/Web_3.0 http://www.bnext.com.tw/article/view/id/37993
  • #10: http://www.slideshare.net/ihower/fp-osdc2012v2 https://zh.wikipedia.org/wiki/%E6%8B%89%E6%96%AF%E5%A7%86%E6%96%AF%C2%B7%E5%8B%92%E5%A4%9A%E5%A4%AB
  • #11: http://www.slideshare.net/ihower/fp-osdc2012v2
  • #12: http://www.slideshare.net/ihower/fp-osdc2012v2
  • #13: REST(Representational State Transfer) http://www.javaworld.com/article/2079190/scripting-jvm-languages/6-things-you-should-know-about-node-js.html
  • #14: REST(Representational State Transfer)
  • #17: http://www.sitepoint.com/introduction-functional-javascript/
  • #18: http://stackoverflow.com/questions/16501/what-is-a-lambda-function
  • #19: http://www.sitepoint.com/introduction-functional-javascript/
  • #20: http://www.sitepoint.com/introduction-functional-javascript/
  • #21: http://www.sitepoint.com/introduction-functional-javascript/
  • #22: http://www.sitepoint.com/introduction-functional-javascript/
  • #23: https://www.youtube.com/watch?v=AKiq3JxCVi4
  • #25: http://www.jerry-tsai.com/2008/05/why-fp.html
  • #26: http://www.slideshare.net/ihower/fp-osdc2012v2
  • #27: http://stackoverflow.com/questions/16501/what-is-a-lambda-function
  • #28: http://www.slideshare.net/ihower/fp-osdc2012v2
  • #29: http://www.sitepoint.com/introduction-functional-javascript/
  • #30: http://www.slideshare.net/xfzhang/full-stackdevelopment-with-node-js?qid=0fb3b659-230d-4d68-966b-1e68dcf7ce50&v=qf1&b=&from_search=1
  • #31: http://www.slideshare.net/gabriele.lana/nodejs-explained-with-examples?next_slideshow=1
  • #32: http://www.slideshare.net/xfzhang/full-stackdevelopment-with-node-js?qid=0fb3b659-230d-4d68-966b-1e68dcf7ce50&v=qf1&b=&from_search=1 https://github.com/nodejs/node-v0.x-archive/wiki/Projects,-Applications,-and-Companies-Using-Node Linkedin 2012.10 Groupon 2013.10 2013.5 Paypal 2012.4 4week Walmart 2014/E Wordpress 2014/E
  • #33: http://www.slideshare.net/xfzhang/full-stackdevelopment-with-node-js?qid=0fb3b659-230d-4d68-966b-1e68dcf7ce50&v=qf1&b=&from_search=1 https://my.modulus.io/companies-using-node https://github.com/nodejs/node-v0.x-archive/wiki/Projects,-Applications,-and-Companies-Using-Node Linkedin 2012.10 Groupon 2013.10 eBay 2013.5 paypal 2012.4 4week Walmart 2014/E wordpress 2014/E
  • #34: http://www.slideshare.net/ssuser60dc67/react-55621545?qid=c07b596e-8ca4-4a53-8c55-83dd70756321&v=default&b=&from_search=8 http://www.slideshare.net/AndrewHull/react-js-and-why-its-awesome?qid=401926ed-c578-452e-9117-c9f54e62cf5c&v=default&b=&from_search=1
  • #35: http://www.slideshare.net/ssuser60dc67/react-55621545?qid=c07b596e-8ca4-4a53-8c55-83dd70756321&v=default&b=&from_search=8 http://www.slideshare.net/AndrewHull/react-js-and-why-its-awesome?qid=401926ed-c578-452e-9117-c9f54e62cf5c&v=default&b=&from_search=1 http://facebook.github.io/flux/docs/todo-list.html
  • #36: https://www.dotblogs.com.tw/blackie1019/2015/04/14/151049
  • #37: https://www.dotblogs.com.tw/blackie1019/2015/04/14/151049
  • #38: http://npm-stat.com/charts.html?package=redux&author=&from=2014-08-05&to=2016-01-05 http://inakianduaga.github.io/redux-state-history-example/
  • #42: Publish–subscribe pattern