重构开发规划  
View on GitHub wznonstop

重构开发规划

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组件有不同规格,比如分页,约定好,要统一