文档章节

711总结

zbbmaster
 zbbmaster
发布于 2012/07/11 23:22
字数 1859
阅读 40
收藏 0
在最近的软件开发中发现几个比较影响工作效率和质量的问题,写下来做个总结。

1  缺乏沟通的软件开发

   在开发后台系统CMS的时候 ,课程管理中有一个关于权限管理的功能模块。当时李工提出这个需求后,我们进行了讨论,内容是权限的划分和权限的控制。哪些权限应该分配给产品主管,哪些权限应该分配给产品经理,哪些权限分配给产品编辑等等。在讨论中有一个问题是当课程发布或者上线的时候,主管可以对课程进行修改,然后我就在脑海里记下了:主管可以修改发布或者上线后的课程。 当时我的理解是权限由三部分组成:操作对象(课程)、角色(主管、经理、编辑等)、操作对象的状态(草稿、发布、审核上线、上线等)。 后来李工整理出来了一张权限表,里面清楚的划分出了每一个角色对应的权限。我拿到表之后,看了一会儿,然后就在脑海里面想出了实现思路,权限的控制放到权限层来进行,这个我比较清楚,而不是业务层来实现。 一般权限的判断都是由两部分组成 一个是操作对象,一个是角色或者用户。归纳起来就是 哪个角色可以操作什么。现在以我的理解变成了这样:哪个角色可以在什么状态下操作什么,貌似权限是由3部分组成的,当时隐约的感觉到这块怪怪的。在实现的过程中,果然出了问题,实现的结果是权限层里面出现了业务层的内容,根据我当时的理解权限层里面除了判断操作对象和角色,那么还要加上对课程的状态判断,这样才能准确的判断出这个用户是否有权限。结果就在权限层里面加入了课程状态的获取和判断等业务代码。所以就出现了权限层里面出现了业务代码。当时我总觉的这里有点代码入侵的感觉,由于当时时间紧迫(很大原因是自己思维定式了),我也没仔细想这个问题。再过了2天后,陈爽也要给精彩视频加权限,权限的控制类似课程,那么就要使用我写的这种模式。结果在加入的时候,我当时也想知道我的这种做法是否正确,所以就叫王工给把把关,我给他说了我的实现方式,他看了之后,第一反应就是:权限层里面加入了业务层的东西,不好。然后我就给他讲了课程管理中权限控制的细节和实现的思路。他听了之后说:”当课程需要修改时不应该在发布或者上线状态时修改,应该退回到草稿状态进行修改。然后再发布和上线,这样业务流程比较合理,对上线的课程进行修改你把它看做一个动作,但是这里是2个动作:1 修改课程状态为草稿状态;2 修改课程。这里应该进行拆分”。我也想了一下,发现这个流程比较合理,自己之前想的那个流程忽略了软件设计里面单一职责的规则了。后来对这块进行了重新设计和开发,结果花费了一些额外的时间,本来如果在前期的设计和讨论中如果进行深入沟通,
或者在实现完一小部分后找王工沟通下,那么就不需要这次的修改了,真的是又一次浪费了时间。
      在去年做软件的时候,我才对沟通重视起来,而且发现面对面的沟通真的是最有效的沟通方式(以前半信半疑)。沟通确实能让我们少走一些弯路,而且能开阔你的思维和思路,最主要的是能把问题说清楚,如果你仔细想想以前做过的事情,发现好多问题就是没沟通好才造成不必要的重复或者不必要的误会、错误。

2 功能实现之后缺乏不够仔细的测试

       在最近的开发中,发现开发完一个功能后只是进行了简单的测试 ,而没有进行全面、仔细的测试。没有对该功能的所有异常和正常情况进行测试,结果在测试环境上测试的时候频频出现简单的问题。而且有的问题在这个版本中修复好了,在下一个版本中可能又复现了。改动的时候没有全面的注意到影响的地方,改好之后测试用例想的少。
       所以我想在修改的时候,写下要进行测试的测试用例。比如修改重点地方时,哪些页面会涉及到这部分的修改,
那么就需要记下了这些页面的哪些地方需要重新测试。测试用例可以写简单一点,但是一定要全面。

3 思维定式的无奈

       在开发中不知不觉发现自己思维定式, 也不知道为什么就这么形成了,对一些功能的实现习惯用自己熟悉的方法实现,而没有更多的方法可以参考或者借鉴。实现某一个功能都是凭借当前的思维和经验来实现,或者会出现前几天实现了,感觉还行,也觉得非常合理。但是过了几天再次看这块儿就发现有问题,而且有时候会突然觉得当时是怎么想的,为什么会这么想,并发现当时的想法明显不对。这个可能是短期的思维定式。
在对功能的测试过程中 ,发现也形成了思维定式,在测试中测试的出发的局限在功能的实现和正确流程的测试,而没有更多的异常测试和用户体验方面的思考。也许这就是人们常说的:当局者迷,旁观者清。
       后来想想造成思维定式的原因可能是:缺乏沟通,缺乏那种对软件功能模块从设计到实现,测试,到最后使用的沟通;经验不够是不是也是一方面原因呢,也许是看技术方面的东西少了;每天精力不够可能对短期的思维定式有影响。
       对目前自己的思维定式只是发现阶段,没有具体的解决方法。

       上面这几个问题是自己在工作比较突出的问题,在这里写下来看看今后会不会有所改善,如果改善了说明确实总结了,如果未改善说明问题更严重
 ,最起码说明上一级出了问题,即总结本身就有问题。
       时间浪费不起,既来之,则安之。
 

© 著作权归作者所有

共有 人打赏支持
zbbmaster
粉丝 55
博文 67
码字总数 38770
作品 0
西安
高级程序员
加载中

评论(1)

zbbmaster
zbbmaster
写的不错
Android MediaMuxer录像(支持G711音频)

Android平台的MediaMuxer是个非常好的录像库,它能将H.264视频+AAC音频存储成.mp4格式的文件,而且稳定性、同步效果都非常好。 MediaMuxer在安卓版的EasyPlayer和EasyPusher都用到了该方法来...

jyt0551
2017/05/27
0
0
求助大神,打算做个教务信息查询,可是POST返回的数据和浏览器的不一致

求助大神,打算做个教务信息查询,可是POST返回的数据和浏览器的不一致 Android虚拟机获取到的返回的部分信息为 10-15 11:27:29.701: V/test(401): 10-15 11:27:29.711: V/test(401): 10-15 ...

wuguohao
2013/10/16
296
0
AAC转码工具库--EasyAACEncoder

EasyAACEncoder 是EasyDarwin开源流媒体服务团队整理、开发的一款音频转码到AAC的工具库,目前支持G711a/G711u/G726/PCM等音频格式的转码,跨平台,支持Windows/Linux/arm....

匿名
2016/01/22
516
0
iOS9 HTTP 不能正常使用的解决办法

今天升级Xcode 7.0 bata发现网络访问失败。 输出错误信息 The resource could not be loaded because the App Transport Security policy requires the use of a secure connection. Google......

TomatosX
2015/09/17
104
0
如何更好地设计RESTful API?

如何更好地设计RESTful API? 目前对于大多数项目来说, 前后端分离,接口调用, RESTful API使用越来越流行。但是如何设计更好,更容易让人理解的API还是需要下一番功夫的。 下面我将介绍如果...

Adam_DENG
2016/11/14
1K
6

没有更多内容

加载失败,请刷新页面

加载更多

下一页

(一)软件测试专题——之Linux常用命令篇01

本文永久更新地址:https://my.oschina.net/bysu/blog/1931063 【若要到岸,请摇船:开源中国 不最醉不龟归】 Linux的历史之类的很多书籍都习惯把它的今生来世,祖宗十八代都扒出来,美其名曰...

不最醉不龟归
26分钟前
6
0
蚂蚁金服Java开发三面

8月20号晚上8点进行了蚂蚁金服Java开发岗的第三面,下面开始: 自我介绍(要求从实践过程以及技术背景角度着重介绍) 实习经历,说说你在公司实习所做的事情,学到了什么 关于你们的交易平台...

edwardGe
33分钟前
7
0
TypeScript基础入门 - 函数 - this(三)

转载 TypeScript基础入门 - 函数 - this(三) 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.4 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
43分钟前
0
0
Spark core基础

Spark RDD的五大特性 RDD是由一系列的Partition组成的,如果Spark计算的数据是在HDFS上那么partition个数是与block数一致(大多数情况) RDD是有一系列的依赖关系,有利于Spark计算的容错 RDD中每...

张泽立
51分钟前
0
0
如何搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已...

Java大蜗牛
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部