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

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兴叹……


    ——刘珂

4:31 AM | Blog it
Comments (3)

 

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!
 

xin 邹欣 - Jan. 3, 2009 - Delete
>就是写完自己的代码调完自己的bug,发现bug仍是一个一个的出现,而且不是自己代码原因的bug,不知道怎么修复,无从下手,干着急只能望bug兴叹……

别人的代码,应该能让同组的人看懂吧。。。
移山之道里谈到了萝卜和白菜的故事,可以看看。

 

Ke Liu - Jan. 3, 2009
因为我不清楚那部分功能……比如我不了解某某协议,要去改实现某某协议的功能部分,那我就得先去好好的研究某某协议,这样就太费时了……而且按照分工,只需要负责实现那部分功能的人去研究就可以了

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

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

相关文章

Linux中.rpm,Linux中rpm的使用

1、安装rpm -i 需要安装的包文件名举例如下:rpm -i example.rpm 安装 example.rpm 包;rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的…

现代软件工程系列 学生的精彩文章 (4) 为用户服务

from: http://teamkingofcsharp.spaces.live.com/blog/cns!59FC2D3DD66822AA!421.entry 赞一下Office的用户体验今天我做API Hook,开了个Word想截获它的系统调用。结果由于我的程序写屎了,Word一开就崩。崩了大概10次以后,再启动Word的时候…

现代软件工程系列 学生的精彩文章 (5) 其实还是人的问题

http://springgreen9527.spaces.live.com/blog/cns!354E19E8B3074CC7!171.entry?sa370423590 TM 1.0发布感想 课程快要结束了,回想起整个课程来,和最初的设想差别的确很大,我也没有想到我们这组的进展会如此的不顺利。用一句话来说&a…

arm linux head.s,arm-linux head.S 源代码分析

arm-linux head.S 源代码分析arm-linux head.S 源代码分析这是ARM-Linux运行的第一个文件,这些代码是一个比较独立的代码包裹器。其作用就是解压Linux内核,并将PC指针跳到内核(vmlinux)的第一条指令。Bootloader中传入到Linux中的参数总共有三个&#xf…

现代软件工程系列 学生的精彩文章 (6) 我们其实还不懂互联网

from http://cid-ba6a52af193f301f.spaces.live.com/ 第一次把我们自己的写的东西放在网上让别人去用,今天过得非常有传奇色彩,我决定讲个长故事来纪念我们的发布第一天。 由于找不到能放软件的地方,我们把软件以附形式件放在了zol的论坛&am…

linux制作cpio镜像文件,制作CPIO格式的INITRD

LINUX内核自从2.6版以后,就大力推荐CPIO-INITRD.现在各大LINUX发行版的INITRD都是CPIO格式的.这次主要说下如何制作CPIO-INITRD.首先假设咱们已经用BUSYBOX或KLIBC或别的什么做好了根文件系统,位于~/rootfs下.按照IBM DEVELOPERWORKS里的文章说,可以用以下命令制作CPIO-INITRD:…

现代软件工程系列 结对编程 两周写好3D 陆战棋

from: http://cid-ba6a52af193f301f.spaces.live.com/blog/cns!BA6A52AF193F301F!122.entry Oh,my pair project From new Pair(HuangShuo,WangGuan) 签入代码,发送邮件,关上Flex Builder。纠结了差不多两周的Pair Project终于能够有个了结了&#xff…

现代软件工程系列 学生精彩文章(7) 宝贵的教训

from http://codecanvas3706.spaces.live.com/blog/cns!5A77585898179960!205.entry [当学生的时候, 最好犯一些错误, 经历一些失败. 不经历一些惨痛的失败, 难道要到工作的时候才失败么? ] 个人的失败感言 记得在读完了《梦断代码》之后,我也只是为chandler项…

深度Linux安装火狐,deepin或Ubuntu安装最新版Firefox,并设置去掉标题栏

第一步:使用一下命令下载并安装Firefox################################### 先卸载老板Firefoxsudo rm -Rf /opt/firefox*sudo rm -Rf /usr/bin/firefoxsudo rm -Rf /usr/share/applications/firefox.desktop# 下载最新版Firefoxwget "https://download.mozil…

现代软件工程 作业 个人项目

MSRA Advanced Software Engineering Project: Individual Project - Word frequency program 2010/11/1 考察重点: 基本算法的实现; 基本I/O; 字处理; 程序效能分析; 简单测试用例 Implement a console application to tally the frequency of words under a directory (…

现代软件工程 团队博客作业 如何评价个人在团队中的绩效

在现实社会中有很多团队合作的项目, 他们是如何评价个人在团队中的绩效呢? 例如下面的情况: • 一群人把一堆砖头从A地搬到B地• 一个剧组排演话剧• 一群队员在职业球队踢球• 医生和护士做手术• 计算机系的一群老师教课• 一群学生做软工项目 (PM, Dev, Test) (这是重点) …

手势在c语言的作用,手势态度在人际交往中的重要性

一、人际交往的定义及其在社会活动中,人们运用语言符系统或非语言符系统相互之间交流信息,沟通情感的过程就是人际交往。人际交往是人们共同活动的特殊形式。任何个人或群体进行的交往,总是为达到某种目标、满足某种需要而展开的。二、人际交…

现代软件工程 结对编程 (I) 三维棋类游戏

Pair Project I 3D Board Game Turn a usual 2D board game into 3D by transferring board and game rules into 3D. Goal: how to collaborate in explorative situation (new requirement, new language, lots of ambiguity) 把一个二维的棋类游戏变成三维游戏, 两周时…

洛谷找最小值c语言,洛谷 P1478 陶陶摘苹果(升级版) C语言实现

原题地址:P1478 淘淘摘苹果(升级版)- 洛谷题目描述又是一年秋季时,陶陶家的苹果树结了n个果子。陶陶又跑去摘苹果,这次她有一个a公分的椅子。当他手够不着时,他会站到椅子上再试试。这次与NOIp2005普及组第一题不同的是&#xff1…

现代软件工程 结对编程 (II) 电梯调度 算法和测试框架

[很多同学完成了上一个结对编程项目后, 很想知道下一个项目是什么, 我们这次要练习如何设计 接口, 测试框架, 和算法. ] [博客园的朋友们也可以试一试怎么高效地解决这个问题] 现代软件工程系列 结对编程 (II) 电梯调度程序 ------- Pair Project II Elevator Scheduler D…

c语言入门自学为什么要用,为什么要将C语言作为入门语言?

编程是向计算机发出指令以执行特定任务或执行指令的行为,目前专业行业和学术界使用数百种编程语言。一个人需要熟悉并且能够使用至少几种编程语言进行编程才能作为目前专业开发者的成功。学习编程的最好理由在于它对所有人开放,你不需要大学学位即可通过…

c语言case接收字符,switch-case-break:字符释义 | 新思维:C语言程序设计

【问题:字符解释】从键盘输入一个字符,当输入的字符为“y”或“n”或“c”时,分别显示“Yes”、“No”、“Cancel”,输入其他字符时显示“Illegal!”。#include int main(int argc, char *argv[]){char cgetchar();switch(c) {cas…

现代软件工程讲义 如何提出靠谱的项目建议

互联网时代对于创新者来说, 既是一个伟大的时代, 又是一个糟糕的时代。 你有很多机会做出影响世界的产品, 但是, 似乎任何想法都被别人想到过了, 做出来了, 上市了, 移植到各种平台上去了… 那么我们后来人除了羡慕别人生得早, 还有什么机会呢? 但是往往不经意间, 在同学们…

现代软件工程 教学计划 中国科学技术大学-微软亚洲研究院联合培养班

屈指一算, 我已经讲了3年 <现代软件工程>, 教了 4 个班。 2007 - 2009 清华大学理论计算机科学研究中心 (姚班) 2009 北航计算机系还有在北大合作的教学: 2007 - 2009 北京大学软件学院 (课程名叫 - 微软软件实现技术, 我是讲师之一) …

c语言程序设计主编张玉生教材答案,清华大学出版社-图书详情-《Visual Basic程序设计实验指导》...

前言Visual Basic程序设计实验指导本书是《Visual Basic 程序设计教程》的配套实验指导书&#xff0c;全书内容分为四部分。第1部分为实验指导&#xff0c;设计了18个实验&#xff0c;每个实验都是编者精心设计和选择的&#xff0c;所构思的实验内容选材合理&#xff0c;实验目…