现代软件工程系列 学生的精彩文章 (3) 如何在Bug 不断的情况下还能保持平常心...

from:

http://teamkingofcsharp.spaces.live.com/blog/cns!59FC2D3DD66822AA!222.entry

 

感想

  • 平常心
初中的数学老师常常和我说:“你要学会保持一颗平常心”。我是一个不那么豁达开朗的人,对很多事情都会很看重,GPA,排名,游戏的输赢,等等。把事情看得重了,就容易斤斤计较。这些日子赶软工的project的时候,我在为coding和debuging焦头烂额的时候,时而会想起组里那些清闲的人,心里难免不平衡:“凭什么他们就可以这么悠闲自在”。这种不平衡多了,不满的情绪也就越积越多,直接导致了我的上一份感想,或者更确切的说,牢骚。发完之后我觉得心里舒坦多了,很有一种一吐为快的感觉。

第二天是元旦,我参加了一个老乡的聚会,互相谈论着家乡的变化和身边的趣事。整整九个小时,只有开心的交流,没有烦人的软工,让我的心情一扫前几天的阴霾。我忽然发现,之前连着十几天,我每天都是被软工困扰着、烦恼着,“软工”、“分数”,就像两块大石头,压得我喘不过气来。我好像是把“软工”、“分数”看得太重了。这让我想起了我苦心经营了三年的GPA,虽然看到成绩单的时候还是能小小的得意一下,但是这三年追求GPA的日子,确实有点太累人了。

生活中有太多比这区区一门软工课精彩和重要得多的东西,又何必让它成为一种负担呢?很多事情没必要太过看重,用一颗平常心去对待它。

回头看看软工课,问心无愧,结果会是怎样就怎样吧。

  • 兴趣-工作
当初选题的时候,bbs这项功能是我提出来的,因为我对于bbs比较感兴趣,想好好的研究一下,写个带有下帖、发帖、回帖甚至自动抢整的东西玩玩。

兴趣是最好的动力。team project的第一个月,我基本上都在摸索bbs的各个细节,琢磨功能实现,并且乐此不疲。对于我来说,这些功能就是为我自己做的,我的target用户就是我自己,我甚至不care别人会不会想用这些功能。

可惜的是,作为一项Team Project,这个软件的用户不能仅限于我自己,我们也需要考虑别的target users。为自己写软件很简单,我只要自己会用就行了,好不好看,User Experience好不好,只要自己不care,啥都无所谓。但是,考虑到这是一个同时面向其他用户的Team Project,事情就多了:好不好看,有没有足够的提示信息,操作是不是人性化,某些情况下哪些操作是不允许的以免出现bug,性能稳定不稳定,以及能不能按时发布release,都是比较烦人的问题。特别是如果问题较多的涌现而deadline又逼近,着实让人烦躁头疼。

这或许就是兴趣和工作的区别吧。就像很多人很喜欢打魔兽,但是如果让他们去当职业玩家,为了赢得比赛不得不每天练习几十盘,估计很多人都受不了。

  • 需求文档的重要
上学期的软工,每个组都要求写需求和设计文档。当时觉得这是一件无聊又费事的差事。不过这个学期,我也逐渐意识到需求文档的重要了。上学期每个组只有3个人,组内交流起来还是非常方便的。但这学期,人多了,问题也就浮现了。给某人分配一个任务,让他实现某某函数,但是如果没有细致的说明的话,还是很容易出错的。比如,分配一个“删除文件夹”的函数,如果没有相关说明的话,很可能dev直接就把文件夹删除了事了。但是,有可能,用户是设置了一个邮件账号,要把邮件下载到那个文件夹的。现在文件夹被删了,邮件一下下来,发现文件夹不存在,就会出错了。虽然我们成员住的基本都比较近,交流起来挺方便,但是感觉如果有一份详细的需求文档,还是能极大程度的避免上述情况的出现的。(当然,有很多情形是因为事先没想到这种边界情况,这也就需要pm拥有很全面的逻辑思考能力了)

  • 程序员最无奈的事情
就是写完自己的代码调完自己的bug,发现bug仍是一个一个的出现,而且不是自己代码原因的bug,不知道怎么修复,无从下手,干着急只能望bug兴叹……


    ——刘珂

Comments (3)

Picture of Yuan CHEN
Yuan CHEN - Jan. 2, 2009
>>感觉如果有一份详细的需求文档,还是能极大程度的避免上述情况的出现的
Agile manifesto里第二项就是:Working software over comprehensive documentation。而且文档会引入新问题,比如某人出了问题后可以理直气壮地跟你讲:“spec没那么写,我当然就没那么做了”。而且按咱们的水平,设计不可能一开始就做得很好,开发过程中三番五次改spec设计的话,我估计又有人要发飙了……
btw:私以为把"需求文档"转成“feature的设计”是最难的过程...

>>就是写完自己的代码调完自己的bug,发现bug仍是一个一个的出现,而且不是自己代码原因的bug,不知道怎么修复,无从下手,干着急只能望bug兴叹……
有一种“奇巧淫技”叫做Test driven development,一种quality ensurance的开发方法,用一堆test case去限定代码的行为,如果别人写的代码有问题,那就用自动测试使其自己fail掉(在它们进入你的视线前:))...

最重要的:人心齐、泰山移...俺就不多说了 :)
送一句邹老师曾经在MS^2培训最后阶段给所有team说的话:脚力尽时山更好,keep moving!
Picture of xin 邹欣
xin 邹欣 - Jan. 3, 2009 - Delete
>就是写完自己的代码调完自己的bug,发现bug仍是一个一个的出现,而且不是自己代码原因的bug,不知道怎么修复,无从下手,干着急只能望bug兴叹……

别人的代码,应该能让同组的人看懂吧。。。
移山之道里谈到了萝卜和白菜的故事,可以看看。
Picture of Ke Liu
Ke Liu - Jan. 3, 2009
因为我不清楚那部分功能……比如我不了解某某协议,要去改实现某某协议的功能部分,那我就得先去好好的研究某某协议,这样就太费时了……而且按照分工,只需要负责实现那部分功能的人去研究就可以了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代软件工程系列 学生读后感 梦断代码

from:http://ttcs.spaces.live.com/blog/cns!C3759CC6FCEEBDD7!121.entry?sa147831050November 10梦断代码读后介绍 一,这本书讲了什么?软件是人们自以为最有把握,实则最难掌握的技术。作者罗森伯格对OSAF主持的Chandler项目进行长期调查&am…

java 中violate_Java中的Volatile关键字

Java的volatile关键字用于标记一个Java变量为“在主存中存储”。更确切的说,对volatile变量的读取会从计算机的主存中读取,而不是从CPU缓存中读取,对volatile变量的写入会写入到主存中,而不只是写入到CPU缓存。实际上,…

java 如何发提示_消息提醒-如何实现收到待办给QQ发送提醒?

一、前期准备一台windows服务器(用于运行QQ机器人)下载QQ机器人框架二、QQ机器人配置1、解压前面下载的机器人框架和httpapi2、打开解压后的 小栗子框架.exe3、在用户列表右击选择添加单个4、添加后右击点添加后的账号选择登录选中QQ5、点击应用中心>点击导入插件>选中前…

顶级程序员的心得 - Coders at Work

这篇博客经历了 CSDN 的历次改版后,格式已经坏了, 我重新写了一篇,重排了格式: 顶级程序员的心得 –– Coders at Work_SoftwareTeacher的专栏-CSDN博客顶级程序员的心得 –– Coders at Work我2009年读了 “Coders at Work”, …

敏捷软件开发宣言–Manifesto for Agile Software Development

敏捷开发, 谁不会呀, 不就是 没文档, 出活快, 用户说啥都能改? 下面是一个笑话, 王屋村的大牛说 - 我最近转手接了一个活, 完事能挣四五万, 我拿过图纸一看, 不就是盖一烟囱吗? 我们是敏捷 (Agile) 的团队,要文档作甚? 马上开始干活! 都快盖好了&am…

教师管理系统设计报告java_教师办公管理系统的设计与实现

随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。教师办公管理系统是一个教育…

顶级程序员的心得–Coders at Work

最新版本在这里: (2584条消息) 顶级程序员的心得 –– Coders at Work_SoftwareTeacher的专栏-CSDN博客https://blog.csdn.net/SoftwareTeacher/article/details/113489014

scrum–yesterday once more

在敏捷开发的 SCRUM 流程中, 一个基本要求就是团队中的成员在每日例会中介绍自己昨天的进度, 今天的计划, 和遇到的困难。 下面是《现代软件工程》课程上一个学生团队在2/18 和 2/19 这两天的报告。 粗粗看去, 不禁有 “昨日重来” 的感觉。 一些同学的任务在2/18 报告的 yest…

java 类加载生命周期_Java类的加载与生命周期

一、概要:类的生命周期从类的 加载、连接、初始化 开始,到类的 卸载结束;二、几个阶段:加载:查找并加载类的二进制数据。(把类的.class文件的二进制数据读入内存,存放在运行时数据区的方法区;类…

软件工程 动物世界

在一个神奇的国度里生活着许多动物, 其中有猪, 鸡, 和鹦鹉。 它们每天搞头脑风暴, 琢磨如何创业, 最后鹦鹉提议它们合伙开一个早餐店: 具体分工如下: 猪: 提供猪肉, 做熏猪肉 (bacon) 鸡: 提供鸡蛋, 做煎蛋 鹦鹉: 提供咨询, 它会每天阅读大量博客, 给其他团队成员提供建议, 例…

java filterinputstream_java.io.FilterInputStream.close()

全屏java.io.FilterInputStream.close()方法关闭此输入流并释放与该流关联的所有系统资源。声明以下是public void close() 方法的声明:public void close()参数NA返回值该方法不返回任何值。异常IOException -- 如果发生I/ O错误。例子下面的例子显示了public void…

软件工程 敏捷的酒后问答

来源:《构建之法》 王屋村移山公司的程序员果冻最近请假参加了一系列敏捷的培训, 有好事者传言他和 “a-girl”勾搭上了, 其他年轻同事有点坐不住了, 也表示要参加此类活动。 几天后, 果冻回到公司, 给所有人发了一枚写有 “Agile” 的胸章。 他纠正大家的发音, 这个…

现代软件工程 怎么教好课 (读书笔记)

0. 教师教学有培训和参考书么? 我从来没想到过我会在大学里教书, 而且还教了好几年, 好几个学校。 当时接到任务的时候, 我把它当作实习生培训和新员工培训的”学院版”, 还是继续强调实践, 反馈, 合作, 就这么开讲了。 在微软公司, 做大部分和人相关的事情, 都得先有一个培训…

php oci 11g.dll下载,Oracle oci.dll

Oracle oci.dll是在32位PLSQL Developer软件访问Oracle 11g 64位数据库必须的系统dll文件,用于支持连接访问数据,如果系统出现相关dll文件缺失,就需重新下载,有需要的朋友快来巴士下载网下载吧!Oracle 11g oci.dll文件…

软件工程 案例分析作业

现代软件工程 构建之法 作业https://bbs.csdn.net/forums/SoftwareEngineering?typeId1723 软件工程作业 案例分析 (建议作为个人或结对作业) 很多同学有疑惑: 软件工程课是否就是枯燥的理论课? 或者是几个牛人拼命写代码,其他人抱大腿的…

php的数据模型包括,数据库中模型的分类有哪些

数据库中模型的分类:1、概念数据模型,面向用户、面向现实世界的数据模型,描述一个单位的概念化结构;2、逻辑数据模型,可以通过实体和关系勾勒出企业的数据蓝图;3、物理数据模型,具有以实物或画图…

php 万分之一几率,那万分之一的概率啊……

【今日】不要心存侥幸心理,那万分之一的概率啊……也许就是发生在自己身上。【正文】1老公抱着暖暖,大踏步的向前走去,兴奋的说:“我刚在群里问了一下,还没人回复,你说不会两家店全部装修吧?这万分之一的概…

JS常用事件大全

事件 事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行。 注意:事件名称大小写敏感。若是事件监听方式,则在事件名的前面取消on。 1. 鼠标事件 给btn按钮添加点击事件,点击弹出 你好! 2. 键盘事件…

php3绕过,PHPB2B注入#3(绕过过滤)

PHPB2B某处注入绕过过滤。官方最新版本. https://github.com/ulinke/phpb2b/archive/master.zip详细说明:1.注册企业会员。2.注册企业会员且通过审核。发布产品。漏洞文件。virtual-office/product.phpContent-Disposition: form-data; name"data[product][sor…

java五子棋实训训心得,java五子棋实习报告

java五子棋实习报告 Java 程序设计基础 实习报告 课程名称 Java 程序设计基础 实习题目 java 五子棋 专 业 班 级 学 号 学生姓名 指导教师 Java 实习报告 一、一、J JAVAAVA 技术介绍技术介绍 Java 技术是一门编程语言,也是一个平台,它基于 Java 虚拟机…