SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Practice MVC as features,
    not frameworks
                     MVC


        DexterYy @
http://site.douban.com/118836/
)


•   “       ”             LBS

•   “       ”             3D

•   “AJAX   ”

•               web app         Flash

•
XD
XD




•   MVC
•   MVC
“                    ”
•
     “        ”
    ——            WASD

•
    ——   vs       Graph

•
    ——             “      ”
“                         ”
•   Bring real-life to software, rethought for the web
     Google+ slogan    XX

•                                           3D

•   GUI                               Metaphor
“AJAX                ”
•                 /
     viewport           google maps

•
                 JSON

•
    ——     web

•                         “     ”
       overlap                            widget
“                ” web app


•   Single Page App wiki

•                            GUI
    ——           layout

•                                ——
            layout
“       ”
•
                      View
    CouchDB

•             “   ”


•
•                            “
      ”
zhuangbility...
•
•
         URL

•
•
•
•   webapp
MVC
MVC
MVC
•   MVC

•   MVC
MVC
•         MVC

•         MVC

    MVC
MVC
•           MVC

•           MVC

    MVC



          MVC
MVC
•           MVC

•           MVC

    MVC



          MVC
•
•
•
MVC
      &
1.
•              OzJS

•
    CommonJS      module

•

•
•        JS
•

•      Model   View


•   “MVC       ”
•                    “          ”
      micro-framework

•   Thomas Fuchs:
    Zepto and the rise of the JavaScript
    Micro-Frameworks

•   Dustin Diaz:
    Ender.js - The open submodule library
2.                      message passing
•    Alan Kay: "OOP to me means only messaging, ..."
•              PubSub / EventEmitter /
     CustomEvent / ...

•                              Observer

•    MVC
•   Observer

•
      View     Controller

•
•   Observer

•              reset
•   Observer        event


            /       /


“       ”

“               ”



==
3.              URL Router
•               web

•     Single-page WebApp    URL            SEO

•   URL       DOM

•   URL

•   URL

•   UNIX                          Plan 9

•   “Plan 9
                        ”

•   URL    WebApp   “        ”
•            url

•   router         30
4. UI               delegate

 •      uiproxy

 •      UI


 •            DOM
•
     className

•
       class


•   UI
    View
    View
    DOM

•    View
         UI

•                 ——>
                  ——>
                 ——>
5.                 Render
•                  1                2


•                  1            2   DOM


•        API DOM SVG   Canvas
5.                 Render
•                  1                2


•                  1            2   DOM


•        API DOM SVG   Canvas



•                                    API
HTML4
•   template

•   format python

•   convertTpl micro-templating
    John Resig/Underscore
•   DomCanvas
                         layout


•     DOM        Canvas API

•
         ie6

•       SVG
    raphael.js
6.      DataSource

•   Model


•
•
module
 M V     C




    XD
  MVC
Model
•           Model
                     URL

•   Model    View
                Controller        Model

•   Model
                    Model                 make
                             Controller


•
View
•               + UI            View widget/
    View

•   View
      Model Controller                   /
      Martin Fowler       Passive View

•   View
                  web MVC           web
          GUI              UI        DOM
        View View        DOM
View
•     View                  UI
    Controller

    •        UI              DOM

    •     web        UI                        /


    •                     Google+    circle

•                   Cocoa            UI       View
             View                   DOM
                          View
Controller
•
             URL routing API
    widget

•       View     Model


•                                     App

      MVC
MVC
                                     Server Model


    Pluggable
                                    Server Contorller
    Widgets
                             http

/                 /                        Model


    Controller
                  /                        View
      / App

                      /

            URL           UI/DOM    HTML      /         /
MVC
Smalltalk-80   Ruby On Rails


                                       ASP.NET



  Cocoa




                 Model View Controller: History, theory and usage
We need SMART Models, THIN
Controllers, and DUMB Views
MVC   It's no big deal
MVC                It's no big deal

                              Thanks
•                   http://www.douban.com/people/Dexter_Yy/

•         blog http://www.limboy.com

•                   http://site.douban.com/118836/

•           MVC        module https://github.com/dexteryy/OzJS/tree/master/
    mod

Contenu connexe

Tendances

125 고성능 web view-deview 2013 발표 자료_공유용
125 고성능 web view-deview 2013 발표 자료_공유용125 고성능 web view-deview 2013 발표 자료_공유용
125 고성능 web view-deview 2013 발표 자료_공유용
NAVER D2
 
Be German About Your Frontend
Be German About Your FrontendBe German About Your Frontend
Be German About Your Frontend
Arush Sehgal
 
Javascript library toolbox
Javascript library toolboxJavascript library toolbox
Javascript library toolbox
Skysoul Pty.Ltd.
 

Tendances (20)

Web components - An Introduction
Web components - An IntroductionWeb components - An Introduction
Web components - An Introduction
 
Building Custom Visual Composer Elements
Building Custom Visual Composer ElementsBuilding Custom Visual Composer Elements
Building Custom Visual Composer Elements
 
2013 04-02-server-side-backbone
2013 04-02-server-side-backbone2013 04-02-server-side-backbone
2013 04-02-server-side-backbone
 
125 고성능 web view-deview 2013 발표 자료_공유용
125 고성능 web view-deview 2013 발표 자료_공유용125 고성능 web view-deview 2013 발표 자료_공유용
125 고성능 web view-deview 2013 발표 자료_공유용
 
What's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovationWhat's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovation
 
One APK to rule them all
One APK to rule them allOne APK to rule them all
One APK to rule them all
 
BBUI
BBUIBBUI
BBUI
 
Introduction to require js
Introduction to require jsIntroduction to require js
Introduction to require js
 
SEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer ExperienceSEE 2009: Improving Mobile Web Developer Experience
SEE 2009: Improving Mobile Web Developer Experience
 
Wheel.js
Wheel.jsWheel.js
Wheel.js
 
Building native Win8 apps with YUI
Building native Win8 apps with YUIBuilding native Win8 apps with YUI
Building native Win8 apps with YUI
 
LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?LinkedIn Mobile: How do we do it?
LinkedIn Mobile: How do we do it?
 
Web design v roku 2013
Web design v roku 2013Web design v roku 2013
Web design v roku 2013
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overview
 
Java Script
Java ScriptJava Script
Java Script
 
Drupal goes Mobile
Drupal goes MobileDrupal goes Mobile
Drupal goes Mobile
 
Client-Side Packages
Client-Side PackagesClient-Side Packages
Client-Side Packages
 
Test
TestTest
Test
 
Be German About Your Frontend
Be German About Your FrontendBe German About Your Frontend
Be German About Your Frontend
 
Javascript library toolbox
Javascript library toolboxJavascript library toolbox
Javascript library toolbox
 

En vedette

Linux 系列分享[1] 概览
Linux 系列分享[1]   概览Linux 系列分享[1]   概览
Linux 系列分享[1] 概览
rainoxu
 
PHP MVC Tutorial
PHP MVC TutorialPHP MVC Tutorial
PHP MVC Tutorial
Yang Bruce
 
基于原型的JavaScript面向对象编程
基于原型的JavaScript面向对象编程基于原型的JavaScript面向对象编程
基于原型的JavaScript面向对象编程
zhangdaiping
 

En vedette (20)

Spring 3 MVC CodeMash 2009
Spring 3 MVC   CodeMash 2009Spring 3 MVC   CodeMash 2009
Spring 3 MVC CodeMash 2009
 
Mvc architecture
Mvc architectureMvc architecture
Mvc architecture
 
Is SQLcl the Next Generation of SQL*Plus?
Is SQLcl the Next Generation of SQL*Plus?Is SQLcl the Next Generation of SQL*Plus?
Is SQLcl the Next Generation of SQL*Plus?
 
Linux 系列分享[1] 概览
Linux 系列分享[1]   概览Linux 系列分享[1]   概览
Linux 系列分享[1] 概览
 
浅谈 Javascript 性能优化
浅谈 Javascript 性能优化浅谈 Javascript 性能优化
浅谈 Javascript 性能优化
 
Steve Jobs Announces iTown - Douban Special Event, Jan 2012
Steve Jobs Announces iTown - Douban Special Event, Jan 2012Steve Jobs Announces iTown - Douban Special Event, Jan 2012
Steve Jobs Announces iTown - Douban Special Event, Jan 2012
 
SQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle DatabaseSQLcl overview - A new Command Line Interface for Oracle Database
SQLcl overview - A new Command Line Interface for Oracle Database
 
Learning JavaScript in Three Web Apps(中文)
Learning JavaScript in Three Web Apps(中文)Learning JavaScript in Three Web Apps(中文)
Learning JavaScript in Three Web Apps(中文)
 
通用JS时代的模块机制和编译工具
通用JS时代的模块机制和编译工具通用JS时代的模块机制和编译工具
通用JS时代的模块机制和编译工具
 
Git 零基础介绍
Git 零基础介绍Git 零基础介绍
Git 零基础介绍
 
PHP MVC Tutorial
PHP MVC TutorialPHP MVC Tutorial
PHP MVC Tutorial
 
A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!
 
Oracle SQL Developer Tips & Tricks
Oracle SQL Developer Tips & TricksOracle SQL Developer Tips & Tricks
Oracle SQL Developer Tips & Tricks
 
不断归零的前端人生 - 2016 中国软件开发者大会
不断归零的前端人生 - 2016 中国软件开发者大会不断归零的前端人生 - 2016 中国软件开发者大会
不断归零的前端人生 - 2016 中国软件开发者大会
 
Web前端性能优化 2014
Web前端性能优化 2014Web前端性能优化 2014
Web前端性能优化 2014
 
基于原型的JavaScript面向对象编程
基于原型的JavaScript面向对象编程基于原型的JavaScript面向对象编程
基于原型的JavaScript面向对象编程
 
Node way
Node wayNode way
Node way
 
Mvp in practice
Mvp in practiceMvp in practice
Mvp in practice
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
 
Frontend django, Django Web 前端探索
Frontend django, Django Web 前端探索Frontend django, Django Web 前端探索
Frontend django, Django Web 前端探索
 

Similaire à 新版阿尔法城背后的前端MVC实践

Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
Chris Canal
 
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
Takayuki Kyowa
 
6 weeks 6 months live project summer industrial training in cmc limited 2012
6 weeks  6 months live project summer industrial training in cmc limited  20126 weeks  6 months live project summer industrial training in cmc limited  2012
6 weeks 6 months live project summer industrial training in cmc limited 2012
CMC Limited
 
Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門
Wen-Tien Chang
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
Ganesh Kondal
 
Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)
johnnybiz
 
Getting Started with the ArcGIS API for JavaScript, Esri, Julie Powell, Antoo...
Getting Started with the ArcGIS API for JavaScript, Esri, Julie Powell, Antoo...Getting Started with the ArcGIS API for JavaScript, Esri, Julie Powell, Antoo...
Getting Started with the ArcGIS API for JavaScript, Esri, Julie Powell, Antoo...
Esri Nederland
 

Similaire à 新版阿尔法城背后的前端MVC实践 (20)

Sugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeSugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a time
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
 
JavaScript in Universal Windows Platform apps
JavaScript in Universal Windows Platform appsJavaScript in Universal Windows Platform apps
JavaScript in Universal Windows Platform apps
 
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
 
Rhodes
RhodesRhodes
Rhodes
 
6 weeks 6 months live project summer industrial training in cmc limited 2012
6 weeks  6 months live project summer industrial training in cmc limited  20126 weeks  6 months live project summer industrial training in cmc limited  2012
6 weeks 6 months live project summer industrial training in cmc limited 2012
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
 
Mobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to NativeMobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to Native
 
Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the Scenes
 
WCM-7 Surfing with CMIS
WCM-7 Surfing with CMISWCM-7 Surfing with CMIS
WCM-7 Surfing with CMIS
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in Share
 
Android Development 201
Android Development 201Android Development 201
Android Development 201
 
Getting Started with the ArcGIS API for JavaScript, Esri, Julie Powell, Antoo...
Getting Started with the ArcGIS API for JavaScript, Esri, Julie Powell, Antoo...Getting Started with the ArcGIS API for JavaScript, Esri, Julie Powell, Antoo...
Getting Started with the ArcGIS API for JavaScript, Esri, Julie Powell, Antoo...
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

新版阿尔法城背后的前端MVC实践

  • 1. Practice MVC as features, not frameworks MVC DexterYy @
  • 2.
  • 3.
  • 5.
  • 6. ) • “ ” LBS • “ ” 3D • “AJAX ” • web app Flash •
  • 7. XD
  • 8. XD • MVC • MVC
  • 9. ” • “ ” —— WASD • —— vs Graph • —— “ ”
  • 10. ” • Bring real-life to software, rethought for the web Google+ slogan XX • 3D • GUI Metaphor
  • 11. “AJAX ” • / viewport google maps • JSON • —— web • “ ” overlap widget
  • 12. ” web app • Single Page App wiki • GUI —— layout • —— layout
  • 13. ” • View CouchDB • “ ” • • “ ”
  • 15. • • URL • • • • webapp
  • 16. MVC
  • 17. MVC
  • 18. MVC • MVC • MVC
  • 19. MVC • MVC • MVC MVC
  • 20. MVC • MVC • MVC MVC MVC
  • 21. MVC • MVC • MVC MVC MVC
  • 22.
  • 24. MVC &
  • 25. 1. • OzJS • CommonJS module • • • JS
  • 26. • • Model View • “MVC ”
  • 27. “ ” micro-framework • Thomas Fuchs: Zepto and the rise of the JavaScript Micro-Frameworks • Dustin Diaz: Ender.js - The open submodule library
  • 28. 2. message passing • Alan Kay: "OOP to me means only messaging, ..." • PubSub / EventEmitter / CustomEvent / ... • Observer • MVC
  • 29. Observer • View Controller •
  • 30. Observer • reset
  • 31. Observer event / / “ ” “ ” ==
  • 32. 3. URL Router • web • Single-page WebApp URL SEO • URL DOM • URL • URL • UNIX Plan 9 • “Plan 9 ” • URL WebApp “ ”
  • 33. url • router 30
  • 34. 4. UI delegate • uiproxy • UI • DOM
  • 35. className • class • UI View View DOM • View UI • ——> ——> ——>
  • 36. 5. Render • 1 2 • 1 2 DOM • API DOM SVG Canvas
  • 37. 5. Render • 1 2 • 1 2 DOM • API DOM SVG Canvas • API
  • 38. HTML4
  • 39. template • format python • convertTpl micro-templating John Resig/Underscore
  • 40. DomCanvas layout • DOM Canvas API • ie6 • SVG raphael.js
  • 41. 6. DataSource • Model •
  • 42.
  • 43. module M V C XD MVC
  • 44. Model • Model URL • Model View Controller Model • Model Model make Controller •
  • 45. View • + UI View widget/ View • View Model Controller / Martin Fowler Passive View • View web MVC web GUI UI DOM View View DOM
  • 46. View • View UI Controller • UI DOM • web UI / • Google+ circle • Cocoa UI View View DOM View
  • 47. Controller • URL routing API widget • View Model • App MVC
  • 48. MVC Server Model Pluggable Server Contorller Widgets http / / Model Controller / View / App / URL UI/DOM HTML / /
  • 49. MVC Smalltalk-80 Ruby On Rails ASP.NET Cocoa Model View Controller: History, theory and usage
  • 50. We need SMART Models, THIN Controllers, and DUMB Views
  • 51. MVC It's no big deal
  • 52. MVC It's no big deal Thanks • http://www.douban.com/people/Dexter_Yy/ • blog http://www.limboy.com • http://site.douban.com/118836/ • MVC module https://github.com/dexteryy/OzJS/tree/master/ mod