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

from http://codecanvas3706.spaces.live.com/blog/cns!5A77585898179960!205.entry 

[当学生的时候, 最好犯一些错误,  经历一些失败.  不经历一些惨痛的失败, 难道要到工作的时候才失败么? ]

个人的失败感言

记得在读完了《梦断代码》之后,我也只是为chandler项目感到一点点惋惜,感觉软件有那么一点点难做。但是今天我却从我的失败中体会到了他们的另外一种心境。我不知道为chandler花费了3年的精力,为chandler费尽心血的卡普尔在项目失败的时候,承受了多大的打击。而我所能体会到得是:将近两个星期,每天7个小时的精力付之东流之后,有一种让人窒息的失落感。软件难做,这不是假的!也许程序员必须在这种现实的无奈和郁闷中成长。

今天凌晨。无意中搜到的MSDN对hook的定义把我对于分程序音量调节的想法,思路全都被给否定了,所有的工作必须从头开始,可是时间已经不够了,无奈,只能把它给砍了。

本来我是想通过api 钩子勾住进程向系统发送的特定请求,然后再调用自己的逻辑代码来控制声音消息的播放,来达到分程序音量调节的目的。可是,hook的定义是:

A hook is a point in the system message-handling mechanism where an application can install a subroutine to monitor the message traffic in the system and process certain types of messages before they reach the target window procedure.

Hook只能勾住系统向窗体发送的消息,不能勾住进程向窗体发送的消息。我这颗幼小而脆弱的心灵就这样被他深深地刺痛了。

现在只能总结一下教训了:

1. 基本上我从来就没有用过windows API,对其一无所知,这使我花费了大量的时间和精力在api的入门上。我觉得使用一种你完全不熟悉的技术从事开发,效率可能为负值。今后对于一些基本的主流技术,都应该有一些了解。

2. 从今天的局面来看,我一开始的方向就是错的。我只是想当然的认为hook能够满足我的需要,而没有仔细的去看他的官方定义,如果能够早一点理解hook的官方定义,那么我也就不需要在这上面花费大量没用的精力了。我觉得,对于你想要使用的关键的技术,一定要有深刻的认识,或者至少应该理解其能干什么,不能干什么!而官方的定义显然是最重要的参考依据!

3. 不管做什么你不能一开始就是错的,方向性的错误真的是会要了人的命呀!所以软件开发不应该仓促地 入手,你花在分析阶段的时间越短,你开发的时间可能会越长,因为大部分时间花在了无用功上面。而我基本上是没有分析就入手了。

4. 一个人是很容易犯错的。在这一段时间里,基本上我是在孤军奋战,因为我们的项目分了好几个相互独立的功能模块,每一个人负责一部分。这就使得我对自己的东西只是有一种片面性的了解,团队其他人员没能给予我帮助,因为大家基本上都是这方面的新手。虽然说web是最大的知识锦囊,但是盲目的搜索很难获得实质性的东西。我觉得项目的开发小组中,至少应该有一个人是某一个方向的专家,这样的话才能够给予开发人员指导性意义的帮助。当然,我们现在都还是学生,大家都在学习,这个条件是不可能满足的。

以此共勉,希望cc小组能做得跟好,加油!!!

———林江

6:31 AM | Blog it

Someone on Windows Live

Favorite

Comments (6)

Picture of xin 邹欣

xin 邹欣 - Nov. 28, 2009 - Delete

很好的总结!
很多同学毕业找工作的时候,在简历上写自己“精通Windows 编程”,但是还不知道MSDN是什么东西。 你已经比他们好多了。

Picture of 健

健 - Nov. 28, 2009

江哥,说实话,看到这篇日志,面对你每天7个小时的经历投入,我很惭愧。
你比我执着,我一周就放弃了检测耳机插拔的工作。
感觉我上周末就这感觉吧。。。很失落!但是希望马上转向其他的方向,从新开始一块工作,一起加油!
说点儿个人的小观点:可能咱们组的分工导致每个人单独奋战,确实方向上和思路上容易出错和进入死胡同。
这样的分开开发,确实感觉不是我们在开发一个软件工程,而更像每个人开发一个小软件,然后最后拼在一起,少了相互的沟通促进,有些工作的落实和进度、难度、出现的问题,容易出现错误判断……

Picture of TEAM CC

TEAM CC - Nov. 28, 2009

同样身为小组成员之一,首先是对江哥深深的佩服,将最难的一块接下,每天7小时,这是我不敢想象的,惭愧惭愧。其次,说实话我也感受到了计划不足所带来的困难,前一段时间几乎天天都在群里向大家询问各种技术问题,我觉得有很多如果在代码之前的设计时就计划好的,那后来的工作会高效很多。或许这学期繁多的大作业让大家无心设计,只想着赶紧开始赶紧开始。之后便导致了每天至少5小时在软工上,可是进度却进展比较缓慢。设计出的东西达不到大家期望的要求。
还有一个星期就要发布alpha版本了。我们要争取把能做好的做好。小iDLE可能不一定会成为多么优秀的软件,但是它一定会记住我们CC小组每一位成员的成长。江哥加油!!!
----HP

Picture of TEAM CC

TEAM CC - Nov. 28, 2009

我的回复在下一篇日志里@ @
总之,对不起,以及万分感动>____<
——成

Picture of 超 周

超 周 - Nov. 29, 2009

读过,共勉!

Picture of Someone on Windows Live

Someone on Windows Live - Nov. 29, 2009

抱歉提出了hook的方向建议。相信江哥完成后就成这个方向的专家了!

 

 

PM之不得不说的一些话

看了林江的那篇日志,感动万分,也愧疚万分。从TeamWork正式开始到现在的两周时间里,从没有方向一无所知,和大家一步一步的走到这里,有很多感慨都没来得及说。这篇日志,算是个人总结,一表心声吧。

一、道歉

在《移山之道》里,关于PM是这么描述的

Program Manager(程序经理)做的是开发和测试之外的所有事情。有些同学会问 “我写程序都不用测试,那么除了开发和测试之外还有什么事儿?”在公司里开发商业软件可没有那么简单,比如有10个Dev和5个Test 要在一起开发下一个版本的MSN Messenger,那我们到底要做多长时间才能完成?什么事情先做,什么后做?项目进行了一半的时候,领导说我们改名叫Live Messenger吧,那这一改名意味着什么?如何调整进度?最后还剩下两个月的时候,看起来我们的确完不成全部任务,那要怎么办?你又不是Dev和Test的老板,他们凭什么听你的呢?这也是PM的苦。PM的乐看起来在于,他们可以全盘掌控一个产品,广泛了解一个行业,和用户打交道,代表团队出席各种会议,在公司内部的曝光度也比较高。

老师在课上讲到了,PM的工作,应当是总揽全局的。显然,我个人的能力还远没有满足对PM的要求。首先,我没有办法提供技术性指导,特别是在WindowsAPI以及线程的方面,我的了解也甚少。甚至是在分配任务的时候,我也对“耳机插拔感应”以及“分程序调节音量”的难度没有认识。陈健和林江两位同学遇到的困难,也有我的责任。他们两个人的辛苦,我是看在眼里的;而那种从头学起,资料难查又屡屡挫败的感觉,我个人又何尝不理解呢。同时,毋哲和张弓两人也是凭着自己的毅力,克服了那么多困难,完成了两个实际上很有难度的功能。

因此,在这里对CC组的全体成员们表示深深的歉意,以及敬意。

经过了这些事情,我也获得了很多教训。第一、选题上,不该在未了解难度的情况下,贸然定下一些功能,导致了小组成员的无谓辛苦。第二、分配工作上,同样不该在不太了解难度的情况下分配任务。第三、也是最根本的,自身知识的不足,才是导致上面两个问题发生的原因。

二、感谢

感谢CC小组全体成员!虽然是很老套的话,但是仍然要说。

为了完成这次的TeamWork,小组的每个人都付出了很多的时间和精力。之于我个人,我从小组开发的过程中获得了很多快乐。并不是敷衍的谎话,而是真的觉得,一个小组的人一起散发调查问卷,一起写一个博客空间,一起在群里讨论互助,一起去食堂吃饭,甚至在累的时候一起喊……这些,远比一个人去开发一个软件要快乐得太多。

似乎还没到收工的时候,因此就先打住吧。

总之,能够获得大家的信任成为PM,我十分感动。从此次经历中,我学到了很多。也希望今后,我能不再重蹈覆辙,成为一个真正值得信任的Program Manager。

4:24 PM | Blog it

Someone on Windows Live

Favorite

Comments (2)

Picture of xin 邹欣

xin 邹欣 - Nov. 29, 2009 - Delete

> 在《移山之道》里,关于PM是这么描述的...
我记得这些描述是在《编程之美》 中的。

Picture of TEAM CC

TEAM CC - Nov. 29, 2009

说实话:感觉你做得相当好了!我觉得咱们组的氛围真的很好,尤其我从一开始的由于自己的部分没有进展,而其他组员都进展很快,不好意思参加小组的讨论,到PM和组员的理解,积极加入咱们组的讨论,当时很感动。。。
这次软工,我一般多的时间也是在资料的查找上,尽管最后没有结果,但是对一个软件,或者功能的实现也有了进一步的了解……
team cc 加油!

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

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

相关文章

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

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

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

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

基础知识很扎实 - 但是面试就是做不出来, 怎么办? (长, 慎入)

http://www.newsmth.net/bbstcon.php?boardMicrosoft&gid48785 有人提问: 看了很多的面试题之类的&#xff0c;感觉虽然自己数据结构与算法基础知识很扎实&#xff0c;但还是做不出来&#xff0c;所以请高人指点。 这个问题看似迷惑, 其实提问的人搞混了两件事 - “数据…

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

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

现代软件工程 其实还是人的问题

在《现代软件工程》这门课程上&#xff0c;大家分成6-7人的小组进行项目开发&#xff0c;有项目经理 (PM)&#xff0c;有开发人员 (dev)&#xff0c;测试人员 (test) 等。不久就有PM说&#xff0c;怎么小组里有些人就是不干活&#xff1f; 最早&#xff0c;大家假设所有人都是…

历年高考报考人数和录取人数

全国历年参加高考人数和录取人数统计 (1977年&#xff5e;2010年) 时间&#xff08;年&#xff09;参加高考人数&#xff08;万人&#xff09;录取人数 &#xff08;万人&#xff09;录取率 &#xff08;%&#xff09;1977570274.7%197861040.26.6%1979468286.0%1980333288.4%1…

android音乐进度条设计代码,【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等...

作者&#xff1a;程序员小冰&#xff0c;GitHub主页&#xff1a;https://github.com/QQ986945193新浪微博&#xff1a;http://weibo.com/mcxiaobing首先给大家看一下我们今天这个最终实现的效果图&#xff1a;当然&#xff0c;这里的进度&#xff0c;是我们手动触摸控制的。截图…

顶级程序员的心得ndash;Coders at Work

[原文在 www.yishan.cc 连载, 现在合成一篇] 我去年读了 “Coders at Work”, 对15 位顶级程序员的采访&#xff0c; 总共600页。 从采访的模式看&#xff0c;有点像“艺术人生”&#xff0c; 一般都是音乐起&#xff0c;讲小时候的故事&#xff0c;你怎么开始写程序的? (…

android动态表格数据类型,华为运动表GT表盘主题制作教程

控件介绍运动表 GT单图控件用于显示一张静态图片&#xff0c;通常用作背景图、图标等。属性区域操作说明&#xff1a;1) 图片路径&#xff1a;点击 号图标选择图片。注&#xff1a;图片尺寸不得超过所选表盘 DPI 大小&#xff0c;如&#xff0c;选择 390 X 390 表盘&#xff0…

cnblog 的小问题 - 尽在 null 中

在Chrome 上发送消息的时候, 出来一个内容为 “null” 的错误。 期望: 至少要用一个缺省的错误信息 “网站内部错误, 请稍后再试 …” 来代替 null.

android icon 圆角半径,iOS和安卓APP启动图标的尺寸和圆角值详解

今天在APP设计交流群里&#xff0c;又有不少的初学的APP设计小伙伴都在问ios端和安卓端的启动图标尺寸大小和圆角半径大小。第一部分&#xff1a;我们先来看看iOS端的图标的尺寸和圆角大小详解A、iOS6和之前版本&#xff0c;应用图标的半径都可以通过四分之一圆角绘制出来。512…

炁体源流 鸿蒙,一人之下:八绝技中最强被曝光,没想到炁体源流落榜,第一在后头...

如今有很多朋友都喜欢在空下来之后看一下动漫给自己解解乏&#xff0c;相比起明星们所在的综艺和影视而言&#xff0c;动漫只要做得好&#xff0c;是不存在啥演技不好&#xff0c;外形让人不喜欢、性格太差劲、太假等等情况的。所以近年来咱们也发现越来越多青少年喜欢上了动漫…

scrumndash;yesterday once more

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

android studio导入eclipse项目各种问题,eclipse项目导入android studio 各类问题及解决方法...

随着时间的推移&#xff0c;技术的推进&#xff0c;开发android的IDE&#xff0c;逐渐由 eclipse转移到android studio&#xff0c;但… 我们的拖延症是很严重的&#xff0c;只要eclipse能用一天就绝不迁移&#xff0c;只到有一天&#xff0c;项目越来越大&#xff0c;引入的第…

android 名片识别 简书,iOS 自己实现 名片识别 三 图片处理

主题: 图片处理声明:下面这些图片仅供学习使用0.png1.剪切图片根据矩形特征剪切图片// property (nonatomic , strong) CIImage *img;//property (nonatomic , strong) CIRectangleFeature *feature;_img [_img imageByCroppingToRect:_feature.bounds];1.png2.图形矫正根据特…

用积分来衡量博客的成绩

I was told the “积分" in CNBLOGS site is a fair reflection of the popularity and activity of a blog. The score is a linear function of the following factors: (the page view of your blogs, the comments from others to your blogs, your comments to ot…

清华大学 现代软件工程 - 实战经验分享

在前两节课中, 老师给大家描绘了关于软件工程和创新的理论和美景。 那么在实践中, 我们的软件工程师是怎么创新的? 我们请两位清华的校友和大家聊聊他们自己做的项目, 也和大家探讨一下软件工程师的工作, 生活和职业发展。 分享题目1: Sora Project - turn cutting edge re…

html5图片碎片效果,html5 canvas实现图片玻璃碎片特效

今天要为大家带来一款html5 canvas实现的图片玻璃碎片特效。图片以玻璃碎片的形式出现到界面中&#xff0c;然后似玻璃被打碎的效果渐消息。效果图如下&#xff1a;实现代码&#xff1a;html代码&#xff1a;js代码&#xff1a;// canvas settingsvar imageWidth 768,imageHei…

软件工程 之 动物世界

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

现代软件工程 电梯调度的挑战

目录 2022 年对 《开源软件开发导论》项目的要求 以前的需求文档 电梯作业的挑战和参考 1. Background - pair programming exercise 2. Requirement to Student pairs 2.5 Explanation of BUS program: 3. Testing 参考文献 2022 年对 《开源软件开发导论》项目的要求…