SlideShare uma empresa Scribd logo
1 de 26
新浪博客前端架构
新浪博客 RIA 开发团队
皓杨
Blog :
http://blog.sina.com.cn/randomail
Email :
Random.Hao.Yang@gmail.com
2010 年 10 月 30 日
代码框架
代 的加 与 行码 载 执
流程开发
架 例构实
代 框架码
sina 包sina 包
lib 包lib 包
productproduct
Javascript 框架概览
基础库
通用组件
产品需求
sina 包结构
是基 ,最底 的代础库 层 码
上 提供服为 层 务
不涉及 品需求产
sina 包
功能 粒度小颗
隔离了细节,提供抽象的接口
lib 包结构
lib 包
提供通用的可 用功能复
组件
交互效果
各 品之 的公共功能产 间
托盘
登录
suggest
一般的配置信息
product
博客
相册
个人中心
活 站动
product
各 品代 独立产 码
方便管理、维护、扩展
通过打包发布
用调 lib 和 sina 包的模块
品需求针对产 编码
以 Job 的形式注册代码
通过不同的页面 id 加载代
码
代 的加 与 行码 载 执
Job1Job1
Pageid
页
面 1
页
面 2
页
面 3
Job2Job2 Job3Job3 Job4Job4 Job5Job5 Job6Job6
Pageid Pageid
代 按码 Job 加载
Job
Job 通过 pageid 组织
一个大的功能可拆分成多个 Job
可把复杂的问题相对简单化
一个 Job 可以被多个 面使用页
相同的功能可复用
Job 代码
$registJob(“jobTest", function () {
alert(“I am a job test,ha~ha~ha~”);
}
$registJob(“jobTestToo", function () {
alert(“I am 还是 a job test,la~la~la~”);
}
pageid 引 代导页 码
function main () {
var job = new Jobs();
job.add("jobTest");
job.add("jobTestToo");
job.start();
}
Boot.js
<script
type="text/javascript”
src="http://host/boot.js">
</script>
面 点装 完成后 行入口页 节 载 执 function
__addDOMLoadEvent(main);
流程开发
模式调试
上 模式线
模式开发
未压缩合并的代码
支持调试工具
合并压缩的代码
线上文件名为页面 id.js
序开发顺
1. 从 SVN 中取出代码
不同的产品在不同的 svn 目录(博客、相册、个人中心、
活动站)
2. 始本地 和开 开发 调试
1) XAMPP 搭建本地开发环境
2) ftp 到专门的开发机
3. 提交到 SVN
合并代码
解决因多人开发造成的代码冲突
4. 打包测试
5. 上线
专门的打包工具(合并、压缩、生成页面 id.js )
打包的 shell 命令: sh –p 产品名 – t svnTag 地址 – o
在 svn 中生成一个新的上线 tag
专门的上线系统上线
序开发顺
流程开发 图
架 例构实
SinaDialog UML
Q & A
[Baidu web frontend_conference_2010]_[sina_blog_architecture]

Mais conteúdo relacionado

Semelhante a [Baidu web frontend_conference_2010]_[sina_blog_architecture]

Introduction of JIOPi
Introduction of JIOPiIntroduction of JIOPi
Introduction of JIOPinetstarry
 
Django敏捷开发 刘天斯
Django敏捷开发 刘天斯Django敏捷开发 刘天斯
Django敏捷开发 刘天斯liuts
 
Linux软件工程师
Linux软件工程师Linux软件工程师
Linux软件工程师xiaotingting
 
常用Js框架比较
常用Js框架比较常用Js框架比较
常用Js框架比较Adam Lu
 
产品线中的思考
产品线中的思考产品线中的思考
产品线中的思考fangdeng
 
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AILangchain and Azure ML and Open AI
Langchain and Azure ML and Open AIKo Ko
 
淘宝前端架构(玉伯)[懒懒交流会#38]
淘宝前端架构(玉伯)[懒懒交流会#38]淘宝前端架构(玉伯)[懒懒交流会#38]
淘宝前端架构(玉伯)[懒懒交流会#38]taobao.com
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统klandor
 
Postoffer前端架构设计
Postoffer前端架构设计Postoffer前端架构设计
Postoffer前端架构设计fangdeng
 
前端&服务器
前端&服务器前端&服务器
前端&服务器fangdeng
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发mysqlops
 
EasyGame分布式网络游戏服务器解决方案
EasyGame分布式网络游戏服务器解决方案EasyGame分布式网络游戏服务器解决方案
EasyGame分布式网络游戏服务器解决方案qiaojie
 
Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异cleverpig
 
移动Web开发框架jqm探讨
移动Web开发框架jqm探讨移动Web开发框架jqm探讨
移动Web开发框架jqm探讨newker
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2致远 郑
 
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 TaiwanAlan Tsai
 
电子书项目总结 前端
电子书项目总结 前端电子书项目总结 前端
电子书项目总结 前端jay li
 
Twitter 與 ELK 基本使用
Twitter 與 ELK 基本使用Twitter 與 ELK 基本使用
Twitter 與 ELK 基本使用Mark Dai
 

Semelhante a [Baidu web frontend_conference_2010]_[sina_blog_architecture] (20)

Introduction of JIOPi
Introduction of JIOPiIntroduction of JIOPi
Introduction of JIOPi
 
Django敏捷开发 刘天斯
Django敏捷开发 刘天斯Django敏捷开发 刘天斯
Django敏捷开发 刘天斯
 
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
 
Linux软件工程师
Linux软件工程师Linux软件工程师
Linux软件工程师
 
常用Js框架比较
常用Js框架比较常用Js框架比较
常用Js框架比较
 
产品线中的思考
产品线中的思考产品线中的思考
产品线中的思考
 
Demo review
Demo reviewDemo review
Demo review
 
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AILangchain and Azure ML and Open AI
Langchain and Azure ML and Open AI
 
淘宝前端架构(玉伯)[懒懒交流会#38]
淘宝前端架构(玉伯)[懒懒交流会#38]淘宝前端架构(玉伯)[懒懒交流会#38]
淘宝前端架构(玉伯)[懒懒交流会#38]
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
Postoffer前端架构设计
Postoffer前端架构设计Postoffer前端架构设计
Postoffer前端架构设计
 
前端&服务器
前端&服务器前端&服务器
前端&服务器
 
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
 
EasyGame分布式网络游戏服务器解决方案
EasyGame分布式网络游戏服务器解决方案EasyGame分布式网络游戏服务器解决方案
EasyGame分布式网络游戏服务器解决方案
 
Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异
 
移动Web开发框架jqm探讨
移动Web开发框架jqm探讨移动Web开发框架jqm探讨
移动Web开发框架jqm探讨
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2
 
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
 
电子书项目总结 前端
电子书项目总结 前端电子书项目总结 前端
电子书项目总结 前端
 
Twitter 與 ELK 基本使用
Twitter 與 ELK 基本使用Twitter 與 ELK 基本使用
Twitter 與 ELK 基本使用
 

[Baidu web frontend_conference_2010]_[sina_blog_architecture]