博客从 WordPress 叛逃到 GitHub Pages,然后又从 Jekyll 叛逃到 Hexo「 因为 Node.js,^_^ 」, 在这里重新开始记录一些技术内容,偶尔写点生活感悟。
联系方式:
Mindspop#gmail.com 「# 换成 @」
业余项目经验
1. 基于 Backbone 的 TodoMVC 改进版
- 引入模块开发并使用 CommonJS 规范
- 使用 Webpack 工具加载和打包模块
- 将 HTML 模板独立成单一模块文件,同时让模块 JS 文件加载对应的 HTML 模板文件
- 细化了 View 层的颗粒度,将 View 拆解成:AppView、FooterView、TodoView、TodoListView
- 优化了 View 中 render 方法监听的事件类型,防止当 Model 或 Collection 发生一次变化时,View 多次重复渲染。「原例子中简单监听了 all 事件」
2. 基于 Backbone 的 定制版 2048 游戏
本项目改编了原版的 2048 游戏,设计了 IT 民工、建筑师和打酱油三种角色,增加了一定的趣味性。
- Router 管理
- 游戏有三个角色,角色切换靠 Router 来实现,每一个 Hash 值对应一个角色,当 Hash 值改变时,重新渲染游戏主界面
- View 管理:
- AppView 统筹所有 View:StartView 负责开始界面,MainView 负责游戏界面方块部分界面,HeaderView 负责游戏界面标题部分界面,GridView 负责每一个小方块界面,GameOverView 负责游戏结束提示界面
- 三个游戏角色共享所有的 View,当用户切换角色时重新读取对应角色游戏的数据,从而渲染新的 View
- 数据管理:
- GridModel 负责管理小方块的数据
- GridsCollection 负责管理所有小方块的位置
- HeaderModel 负责管理游戏名称和游戏得分数据
- 三个游戏角色各自拥有一个独立的 GridsCollection 和 HeaderModel,保证在切换游戏角色时保留原来的数据
- 开发理念
- 引入模块开发并使用
CommonJS规范 - 使用
Webpack工具加载、打包和压缩 JS 模块文件,最后打包成 bundle-app.js 和 vender.js 文件,后者都是各种第三方库 - 将
HTML模板独立成单一模块文件,同时让模块 JS 文件加载对应的 HTML 模板文件,提前解析模板,减少客户端渲染模板时间 - 采用
SCSS模块开发理念,将 CSS 拆分成模块单独开发,最后使用Gulp工具自动编译、打包和压缩 CSS「觉得内置 CSS 的方式不适合本项目,所以这里了没有使用 Webpack 引入 SCSS」
- 引入模块开发并使用