新浪博客前端架构分享主要探讨了新浪博客在构建其富互联网应用程序(RIA)时采用的前端架构策略,旨在提高代码的可维护性、扩展性和性能。本文将深入解析其中的关键概念和技术。
代码框架分为三个主要部分:sina包、lib包和product包。sina包作为基础库,是整个架构的基石,它提供了底层服务,不涉及具体的产品功能,但为上层代码提供了基础服务。其特点是功能粒度小,通过抽象接口隔离了实现细节,使得代码更易于管理和扩展。
lib包则包含通用的可复用功能组件和交互效果,这些组件服务于各个产品,如登录、建议功能等。它们是跨产品的公共功能,旨在减少代码重复,提升效率。lib包的结构允许开发者创建独立的模块,方便不同项目共享。
product包是各个产品代码的独立区域,比如博客相册、个人中心、活动站等。每个产品代码都根据自身的特定需求进行编写,并通过打包发布调用lib和sina包的模块。这样的设计确保了代码的独立性,便于维护和扩展。
代码加载与执行是架构中的关键环节。新浪博客采用Job机制来组织和加载代码。Job是一个可执行的任务,可以包含一组相关的功能。例如,Job1、Job2、Job3等代表不同的功能集合。Job通过页面ID(Pageid)进行组织,一个页面可能由多个Job组成,而一个Job也可以在多个页面中复用。通过$registJob函数注册Job,然后在页面加载完成后通过main函数启动Job执行。
页面加载流程大致如下:
1. 页面HTML中引入Boot.js脚本,这个脚本会在DOM加载完成后执行。
2. Boot.js会调用main函数,main函数负责添加并启动Job。
3. 开发过程中,开发人员可以使用未压缩和合并的代码进行调试,这使得调试工具能更好地工作。而上线时,代码会被合并和压缩,以减少网络传输的体积,提高加载速度。
开发流程遵循以下步骤:
1. 从SVN获取对应产品的代码库。
2. 使用本地开发环境(如XAMPP)进行开发和调试。
3. 将代码上传至专用的开发服务器进行进一步测试和验证。
新浪博客的前端架构体现了模块化、可重用和可扩展的设计原则,通过Job机制优化了代码加载和执行流程,同时通过细致的开发流程保证了代码质量和项目的顺利进行。这种架构对于大型Web应用来说尤其重要,因为它能有效地管理复杂性,提高开发效率,并且能够适应不断变化的产品需求。