摘要:
这是敏捷开发用户故事系列的第三篇。(之一,之二,之三,之四,之五,之六,之七,之八,之九)用户建模的目的,是为了更好地分析用户行为和用户价值,并因此获得商机。用户建模四部曲有一次培训中,分组建模的时候,一位学员就自言自语地说了一句话:“真的啊……我好像不知道谁会使用我的产品……”这其实是一种常见的现象。比如前文所说的敏捷开发管理软件,如果想把一个用户故事描述为“作为一个用户,可以登录“我的空间”,以查看我我在的所有项目的进展以及自己的任务”,就会遇到这个麻烦。所谓领导,肯定想浅层次低能看到多少项目,就看到多少项目,而且最好能汇总一下显示;作为普通程序员,则肯定不止是想知道自己在哪些项目中有任务 阅读全文
摘要:
这是敏捷开发用户故事系列的第二篇。(之一,之二,之三,之四,之五,之六,之七,之八,之九)敏捷开发中的用户故事采用的语法模式看似简单,却蕴含着深刻的思想。“作为一个……,可以……,以(以便)……”不同于一般专注于功能的需求条目描述方法,三个……把角色、功能、价值跃然纸上。然而使用不当,却有可能形似而神不似。下面就三个部分分别举出一个例子。网络游戏的排行榜功能“作为一个玩家,可以通过显示排名,以便让自己在服务器中的地位获得认可。”这个功能可以激发玩家的“斗志”,鼓励购买道具,是个不错的想法,但实现起来却有技术问题:服务器中的玩家太多了,实时查看排名非常不现实。另一个问题是小虾米们其实对自己的排名 阅读全文
摘要:
这是敏捷开发用户故事系列的第一篇。(之一,之二,之三,之四,之五,之六,之七,之八,之九)全系列将涉及何为用户故事,面向客户价值编写故事,用户建模,产品待开发项的分类,故事颗粒度,故事的组织结构,等等若干问题,力求将此中问题尽量解决干净。本系列文章假设正在编写一个“敏捷开发管理软件”,因为来阅读的都是做敏捷开发的,又都是做软件的,会更熟悉一些。用户故事三要素:角色,功能,价值按“作为一个……,可以……,以便……”样式和思路写成的用户需求,就是用户故事。样式是技法层面的东西,它保证了无需太多思考,用户故事中即包含角色、功能、价值这三个要素。角色角色切记不要总是写“作为一个用户”,而是要把用户区别 阅读全文
摘要:
内存读写函数实现进程间通信 上一篇博文讲了使用Windows自定义消息实现进程间的通信,而今天这篇博文讲重点讲解使用内存读写函数实现进程间的通信。 使用内存读写函数实现进程间通信,是使用自定义消息和内存读写函数来实现的,通过上一篇博文,我们都知道了,在使用自定义消息通信的时候,有一个局限性的条件------只能传递长整形的数据,而对于字符串数据,那是无可奈何的。所以,使用内存读写函数是完全可以实现的。 两个内存读写函数: WriteProcessMemory()和ReadProcessMemory(); WriteProcessMemory()函数实现在进程的内存... 阅读全文
摘要:
Windows使用自定义消息实现进程之间通信 Windows程序与其它类型程序的区别就是使用消息,例如键盘或鼠标消息等,在dos系统下的程序没有定义消息。在windows操作系统中,消息不但可以用于进程内的通信,也可以用于进程间的通信。而我这篇博文将讲使用自定义消息实现进程间的通信。 我们都知道,在windows中消息分为两种,即系统消息和用户自定义消息,系统消息定义从0到0x3ff,可以使用0x400到0x7fff定义自己的消息。windows把0x400定义为WM_USER,如果想定义自己的一个消息,可以在WM_USER上加上一个值。当然了,还有另外一种方法,这里就不讲了,而是... 阅读全文