2018-08-27-重构开发规划
0. 框架需要实现哪些需求?
1.打包资源形成资源列表文件,通过给命名加时间戳的方式解决该文件缓存的问题
2.多环境配置
开发流程用npm script来控制,开发用指定命令,上线的代码用指定命令,用npm script配合cross-env和process.env来控制环境
3.不考虑带node的情况
5.还有哪些公共的事情可以由框架来做?资源loadabale, 公共数据描述message(待定)
1. 技术栈
1. scss/less(待定),引入css module
2.动画库不引入
3.webpack3/4?webpack3.6
4.更多?
2. 开发流程
1.增加结对code review 环节,代码质量不好,结对人连坐承担结果,结对者对代码情况也会相对更熟悉,有特殊情况可以结对者可以直接接手开发或处理问题。
3. 编码规范
1.引入eslint,强制校验
2.git commit 可以参照规范:http://yanhaijing.com/git/2016/02/17/my-commit-message/ (不强制要求,但要清晰,保证自己和别人能看懂)
3.js两个空格,html 两个空格,json两个空格,css两个空格
4.文件夹命名:a-b-c,函数、变量命名参考:
getPropertyInfo,
getValueForProperty,
setValueForProperty,
shouldIgnoreAttribute,
shouldRemoveAttribute,
isAttributeNameSafe,
驼峰式,第一个单词表示函数的作用(get, set, 判断的:should, is 等),后面为目标对象(如:ValueForProperty),长度只要在合理范围内,长一点没关系,但一定要保持语义清晰
(以上来自react源码)
5.注释:函数作用无法通过命名表达时,需要注释,注释不要太长,过于复杂的可以考虑添加注释文档或在readme中添加
6.具体参照:https://github.com/minwe/style-guide/blob/master/React.js.md 和 https://github.com/dwqs/react-style-guide 都是 Airbnb 的开发规范,不同的翻译,两篇结合更好理解,还有 antd 的:https://github.com/ant-design/ant-design/wiki/Code-convention-for-antd
4. 通用部分开发解决方案
1.请求、数据容错处理
包装一层http请求接口,做统一处理
2.防止重复提交的处理
按钮上添加loading图标,且不可点(待定)
3.页面刷新保持数据的处理(通过路由,仅保证查询的情况)
4.表单部分必须用form组件实现,自定义组件(如 sug等)有相应的hack方法,具体遇到可以问我
5.数据加key(https://reactjs.org/docs/lists-and-keys.html)
6.时间戳与日期之间的转换
7.数据加载加loading(表格,搜索等)
8.填写大量数据的页面,离开页面确认
9.引入 lodash 去处理对象,字符串常用的处理方法,⚠️code review的时候需要查看这个问题,确认lodash里有的方法,不要自己实现,避免出现不必要的问题。数组遍历(有返回值,无返回值,判断数组是否包含特定数据等相关方法)使用es6
5. 公共组件、模块抽取(每个组件需形成单独的技术文档,包括输入限定,输出等)
1.组织树
2.人员sug
3.组织sug, sug tree
4.filter配置
5.antd组件有不同规格,比如分页,约定好,要统一