积分系统开发总结
2015-07-02 22:46
176 查看
1、把握需求。
例如切月份,实际上是一个代价特别大的功能,因为若要对以往的月份评分,就要保留以往月份一整套的数据。当时并没有考虑到这点就开始做了,最后才发现根本做不了。这是最大的一个失误。
后来发现做不了之后,就想着把切月份功能做成一个展示历史数据的功能。但是之后发现也没必要这样做,因为用户是不需要查这些历史记录的。虽然有权知道,但是并不是一个必须的功能。而且也不该在这里做,应该在一个专门展示历史记录的地方做。并且历史记录有历史记录的逻辑,我依据谁给谁评得分得出的下属历史记录虽然行得通,但是依据这个找到主创团队,然后关联项目而得出历史记录就很怪异了。
这两个需求的变更耗费了几天的时间才改好,尤其是第一个,涉及面广,导致代码复杂度的无谓增加。
2、把握进度。
多了解一下其他人的进度情况,及时反馈。
3、还是把握需求
OA是我家,增加新功能一定要谨慎,一定要详细考虑这个功能带来的影响。先审核需求,设计方案,最后才开始编码。
其次,以简洁为主,没必要展示的信息就不展示。把握主干与核心。
4、entity命名
entity的命名关系到整个模块所有对象的命名,所以一定要命名好。有时,由于数据库表的命名按照规范是要以模块打头的,例如score_dept_own,这时entity可以适当的去掉模块名,变成DeptScore,这样命名会清晰很多。
5、类属性命名
像积分系统中,分数的种类太多,可用积分、已分配积分、已用积分、变来变去,很难命名。先命名了useScore
6、缓存 PK SQL
SQL:适合复杂逻辑,需要各种运算的系统。
缓存:适合只简单筛选,逻辑不复杂的系统。
例如切月份,实际上是一个代价特别大的功能,因为若要对以往的月份评分,就要保留以往月份一整套的数据。当时并没有考虑到这点就开始做了,最后才发现根本做不了。这是最大的一个失误。
后来发现做不了之后,就想着把切月份功能做成一个展示历史数据的功能。但是之后发现也没必要这样做,因为用户是不需要查这些历史记录的。虽然有权知道,但是并不是一个必须的功能。而且也不该在这里做,应该在一个专门展示历史记录的地方做。并且历史记录有历史记录的逻辑,我依据谁给谁评得分得出的下属历史记录虽然行得通,但是依据这个找到主创团队,然后关联项目而得出历史记录就很怪异了。
这两个需求的变更耗费了几天的时间才改好,尤其是第一个,涉及面广,导致代码复杂度的无谓增加。
2、把握进度。
多了解一下其他人的进度情况,及时反馈。
3、还是把握需求
OA是我家,增加新功能一定要谨慎,一定要详细考虑这个功能带来的影响。先审核需求,设计方案,最后才开始编码。
其次,以简洁为主,没必要展示的信息就不展示。把握主干与核心。
4、entity命名
entity的命名关系到整个模块所有对象的命名,所以一定要命名好。有时,由于数据库表的命名按照规范是要以模块打头的,例如score_dept_own,这时entity可以适当的去掉模块名,变成DeptScore,这样命名会清晰很多。
5、类属性命名
像积分系统中,分数的种类太多,可用积分、已分配积分、已用积分、变来变去,很难命名。先命名了useScore
6、缓存 PK SQL
SQL:适合复杂逻辑,需要各种运算的系统。
缓存:适合只简单筛选,逻辑不复杂的系统。
相关文章推荐
- css 实现三角形 实现过程
- Python 2.7.9 Demo - ini文件的读、写
- 英汉词典
- 页面自动跳转
- 便宜货猎手
- linux2.6下的GNU C __attribute__ 机制简介
- Python 调用系统命令
- Python学习之三【对象和类型&&运算符】
- 正则表达式解析
- NYOJ 214 单调递增子序列(二)
- Windows API贪吃蛇游戏
- Python 2.7.9 Demo - JSON的编码、解码
- BZOJ 2038 小Z的袜子(hose)(分块暴力)
- opencv学习日常之随机数发生器RNG
- cubieboard 资源
- 用递归方法计算行列式的值
- phpcms 添加顶踩功能
- java求两个数的最大公约数和最小公倍数
- 欢迎使用CSDN-markdown编辑器
- LeetCode_Disjoint-Set_Longest Consecutive Sequence