Web / JavaScript 全栈工程规范
【书写】
- 字符编码 UTF-8
- 列宽 80 列,缩进 4 空格
- 括号外有必要空格,多行语句间有必要空行
- 行末清除空白符
- 总行数 3~5 屏
【行文】
- 前端以 HTML 5、CSS 3、ECMAScript 5 标准规范为基准,老版浏览器引入相应 polyfill 作补丁;后端以 ECMAScript 6、Node.JS 6.5 标准 API 为基准
- 前端 JavaScript 模块化遵循 AMD 规范(外部库 CDN 优先),后端则为 CommonJS
- 尽力数据局部化,不污染全局作用域 —— 优雅地使用“闭包”
- 推荐“函数式编程”风格,只保留必要的局部变量
【架构】
- 宏观上贯彻“以数据为中心”的思想,前后端各自的数据处理 基于 Stream 模式,前后端对接 耦合点只有 RESTful API
- 微观上前端基于 Web组件化思想拆分 UI 模块,通用代码尽力遵循 “面向接口编程”的面向对象编程范式
- 自主封装的异步函数必须返回 Promise 对象,以兼容 async / await
【流程】
- 立项:在 GitLab 开发组 WFE 下创建 public 代码库,并用 ReadMe.md 写明关键信息
- 需求:一个功能点建一个 Issue,并指派给开发者、打上相应的 Label
- 排期:将 Issue 划分至不同的 MileStone(设好 deadline)
- 开发
- [ before ] pull --> diff --> merge
- [ after ] diff --> [ before ] --> commit --> push
- 提交:【动作】简介 [[ Close / Fix / Resolve ] [group/repo]#issue_number]
- 【新增】:增加新模块,实现设计的功能
- 【修正】:修复 bug(故障),让设计的功能可运行
- 【优化】:完善用户体验细节,让设计的功能更易用
- 【重构】:提升性能、稳定性、安全性、可维护性,让设计的功能更可靠
- 【同步】:更新开源基础库、技术文档、源分支变更
- 【移除】:旧模块