SlideShare a Scribd company logo
统一的模块
    --马全华
Overview

• CommonJS模块规范
• 如何开发可复用于server和client端(
 Neuron)的模块
JavaScript语言

• 函数式
• 面向对象
• 灵活--》混乱 各种框架各种库
CommonJS


• 规范
CommonJS的模块
简单来说

• 模块应该定义:
• 1.依赖于什么
• 2.开放什么API
统一的规范的好处

• W3C规范
• 有利于开发,复用
NodeJS

• 实现CommonJS的子集
• server端实现require,exports
• 很大程度推动了CommonJS
写一个模块
server端使用

• 放到对应的文件夹中
• 正常require就行了
client端使用

• ERRORs!
• 没有require函数,没有exports对象
• 怎么办
我们用的neuron

• 接近于CommonJS
• DP.define
• 耦合
我的观点

• 模块可以依赖其他模块,但不应该依赖
 框架或者运行环境
• CommonJS模块---》框架模块 交给适配
 器
适配器

• 什么是适配器
• 模块到框架的桥梁
CommonJS--》
      Neuron
• neuron_compiler模块
• 单文件模块&包模块---》Neuron需要的
 样子
• 第三方模块---》Neuron
Demo

• 单文件customevent模块
• 文件夹 fx模块
• Underscore
好处

• client和server端模块的复用
• 从框架中解耦
• 第三方开源模块--》neuron
TODO

• neuron_compiler 不止可以做适配器的工
 作
• 其他预编译的工作
问题

• ‘编译’这个动作放在什么时候执行
• 本地开发调试的问题
• CommonJS package 暂不支持

More Related Content

What's hot

CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
 
Ch09 整合資料庫
Ch09 整合資料庫 Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
 
Ch07 使用JSTL
Ch07 使用JSTL Ch07 使用JSTL
Ch07 使用JSTL
Justin Lin
 
Xhtml 2 Introduction
Xhtml 2  IntroductionXhtml 2  Introduction
Xhtml 2 Introduction
Mayy May
 
並行、平行與非同步
並行、平行與非同步並行、平行與非同步
並行、平行與非同步
Justin Lin
 
Angularjs
AngularjsAngularjs
Angularjs
宗哲 謝
 
Ch10 Web容器安全管理
Ch10 Web容器安全管理 Ch10 Web容器安全管理
Ch10 Web容器安全管理
Justin Lin
 
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
 
Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器
Justin Lin
 
2011新版首页总结 技术篇
2011新版首页总结 技术篇2011新版首页总结 技术篇
2011新版首页总结 技术篇传贵 谢
 
深入浅出NodeJS
深入浅出NodeJS深入浅出NodeJS
深入浅出NodeJSsunzhenghua
 
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Justin Lin
 
6. 非同步設計
6. 非同步設計6. 非同步設計
6. 非同步設計
Justin Lin
 
kissy modularization part2
kissy modularization part2kissy modularization part2
kissy modularization part2yiming he
 
02.web sphere培训 应用websphere
02.web sphere培训 应用websphere02.web sphere培训 应用websphere
02.web sphere培训 应用websphere
littlecong
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
 
高效Linux SA
高效Linux SA高效Linux SA
高效Linux SA
Jinrong Ye
 
MySQL运维那些事
MySQL运维那些事MySQL运维那些事
MySQL运维那些事
Jinrong Ye
 

What's hot (20)

CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
 
Ch09 整合資料庫
Ch09 整合資料庫 Ch09 整合資料庫
Ch09 整合資料庫
 
Ch07 使用JSTL
Ch07 使用JSTL Ch07 使用JSTL
Ch07 使用JSTL
 
Xhtml 2 Introduction
Xhtml 2  IntroductionXhtml 2  Introduction
Xhtml 2 Introduction
 
並行、平行與非同步
並行、平行與非同步並行、平行與非同步
並行、平行與非同步
 
Angularjs
AngularjsAngularjs
Angularjs
 
Ch10 Web容器安全管理
Ch10 Web容器安全管理 Ch10 Web容器安全管理
Ch10 Web容器安全管理
 
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
 
Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器
 
2011新版首页总结 技术篇
2011新版首页总结 技术篇2011新版首页总结 技术篇
2011新版首页总结 技术篇
 
深入浅出NodeJS
深入浅出NodeJS深入浅出NodeJS
深入浅出NodeJS
 
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
 
6. 非同步設計
6. 非同步設計6. 非同步設計
6. 非同步設計
 
kissy modularization part2
kissy modularization part2kissy modularization part2
kissy modularization part2
 
02.web sphere培训 应用websphere
02.web sphere培训 应用websphere02.web sphere培训 应用websphere
02.web sphere培训 应用websphere
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
 
高效Linux SA
高效Linux SA高效Linux SA
高效Linux SA
 
MySQL运维那些事
MySQL运维那些事MySQL运维那些事
MySQL运维那些事
 

Viewers also liked

"Entendre la mobilitat a l’empresa: més enllà del mòbil!"
"Entendre la mobilitat a l’empresa: més enllà del mòbil!""Entendre la mobilitat a l’empresa: més enllà del mòbil!"
"Entendre la mobilitat a l’empresa: més enllà del mòbil!"
Penedesfera
 
Git使用入门
Git使用入门Git使用入门
Git使用入门dpf2e
 
Estrategias de estudio
Estrategias de estudioEstrategias de estudio
Estrategias de estudio
misa5
 
Flujograma del chuño
Flujograma del chuñoFlujograma del chuño
Flujograma del chuño
Deyssy Azaña A
 
Ridley Scott
Ridley ScottRidley Scott
Ridley Scott
jacko789
 
StandOut Assessment C.Torres
StandOut Assessment C.TorresStandOut Assessment C.Torres
StandOut Assessment C.Torres
Christian Valdivia Torres
 
Basic marketing question
Basic marketing questionBasic marketing question
Basic marketing question
rashed55
 
Schizophrenia disorder presentation for advanced psy
Schizophrenia disorder presentation for advanced psySchizophrenia disorder presentation for advanced psy
Schizophrenia disorder presentation for advanced psy
ChauNguyenDavis1
 

Viewers also liked (8)

"Entendre la mobilitat a l’empresa: més enllà del mòbil!"
"Entendre la mobilitat a l’empresa: més enllà del mòbil!""Entendre la mobilitat a l’empresa: més enllà del mòbil!"
"Entendre la mobilitat a l’empresa: més enllà del mòbil!"
 
Git使用入门
Git使用入门Git使用入门
Git使用入门
 
Estrategias de estudio
Estrategias de estudioEstrategias de estudio
Estrategias de estudio
 
Flujograma del chuño
Flujograma del chuñoFlujograma del chuño
Flujograma del chuño
 
Ridley Scott
Ridley ScottRidley Scott
Ridley Scott
 
StandOut Assessment C.Torres
StandOut Assessment C.TorresStandOut Assessment C.Torres
StandOut Assessment C.Torres
 
Basic marketing question
Basic marketing questionBasic marketing question
Basic marketing question
 
Schizophrenia disorder presentation for advanced psy
Schizophrenia disorder presentation for advanced psySchizophrenia disorder presentation for advanced psy
Schizophrenia disorder presentation for advanced psy
 

Similar to Share module

Maven技术及诸葛商城应用(1)
Maven技术及诸葛商城应用(1)Maven技术及诸葛商城应用(1)
Maven技术及诸葛商城应用(1)
诸葛修车网-诸葛商城
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS
國昭 張
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿
Liu Allen
 
How to ASP.NET MVC4
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4
Daniel Chou
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
TechParty@UIC
 
基于Seajs的项目构建
基于Seajs的项目构建基于Seajs的项目构建
基于Seajs的项目构建
Zhang Xiaoxue
 
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
 
Introduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 FeaturesIntroduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 FeaturesJeff Chu
 
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkMvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkCevin Cheung
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
Qiangning Hong
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
Xuefeng Zhang
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Will Huang
 
移动端跨平台技术原理
移动端跨平台技术原理移动端跨平台技术原理
移动端跨平台技术原理gorillazf
 
Js高级技巧
Js高级技巧Js高级技巧
Js高级技巧
fool2fish
 
Ioc & in direction
Ioc & in directionIoc & in direction
Ioc & in direction
育汶 郭
 
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
Jeff Chu
 
Azure 迁移之道
Azure 迁移之道Azure 迁移之道
Azure 迁移之道
Tao Wang
 
iOS 设计模式简介
iOS 设计模式简介iOS 设计模式简介
iOS 设计模式简介Xiaobo Zhuge
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 

Similar to Share module (20)

Maven技术及诸葛商城应用(1)
Maven技术及诸葛商城应用(1)Maven技术及诸葛商城应用(1)
Maven技术及诸葛商城应用(1)
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿
 
How to ASP.NET MVC4
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
Dpl in action
Dpl in actionDpl in action
Dpl in action
 
基于Seajs的项目构建
基于Seajs的项目构建基于Seajs的项目构建
基于Seajs的项目构建
 
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
 
Introduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 FeaturesIntroduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 Features
 
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkMvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
 
移动端跨平台技术原理
移动端跨平台技术原理移动端跨平台技术原理
移动端跨平台技术原理
 
Js高级技巧
Js高级技巧Js高级技巧
Js高级技巧
 
Ioc & in direction
Ioc & in directionIoc & in direction
Ioc & in direction
 
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
 
Azure 迁移之道
Azure 迁移之道Azure 迁移之道
Azure 迁移之道
 
iOS 设计模式简介
iOS 设计模式简介iOS 设计模式简介
iOS 设计模式简介
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 

Share module