01 2012 档案

摘要:这是敏捷开发一千零一问系列的第十篇。(在这里提问,之一,之二,之三,问题总目录)问题总体架构设计在什么时机进行?是每个迭代做还是先做完再迭代?方案之前提到了在时间的角度上,从技术和商业层面上的架构设计,下面看看横向的架构设计。方案1:开发人员全体参与架构设计敏捷开发整体上是一个崇尚“跨职能”的管理方法,开发和测试融合(所以才有很多类似自动化测试、单元测试、持续集成这些需要开发人员强参与的测试活动),开发与产品融合(开发人员要参与客户价值分析)等等,所以在架构设计与编码这两块,也不会分得很开,不能有人专门做架构,另外一些人专门编写代码。一方面,“架构设计”一旦变成一个文档,就要被写,被读,效率不 阅读全文
posted @ 2012-01-30 18:09 Java EE 阅读(136) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第九篇。(在这里提问,之一,之二,之三,问题总目录)问题总体架构设计在什么时机进行?是每个迭代做还是先做完再迭代?这是少数几个被提到的技术问题。在两天的培训课程之后,最后剩下的纯的技术问题一般只占1/5都不到,多数都是管理问题,而管理问题中,又基本上是人的管理问题,这也说明了在“心法人事物”中,心总是第一位的。方案最早想写成方案1、方案2,但感觉有点像说是有不同的很多并行方法,之后又改成步骤1、步骤2,又有点把事线性化了。现在干脆写回成方案123吧,总之越往后的越终极一些,也越难以一步到位。方案1:Sprint0对于长期的项目,常常引入“Sprint0”的概念。Sp 阅读全文
posted @ 2012-01-20 10:48 Java EE 阅读(141) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第八篇。(在这里提问,之一,之二,之三,问题总目录)问题在Team中,TeamLeader给人指定任务时,基本没有选择怎么办?(因为大家对别人的工作都不熟悉)方案步骤1:如果团队已经习惯了沉闷地自己开发自己的工作,办公室里边总是静悄悄的,那么一个可行的起点,是Leader可以先与大家进行松结对,就是不断地指导有难题的人。实际上当大家听到有人在交流的时候,就会侧耳听听,如果听到自己感兴趣的话题,也会积极参加。步骤2:下一步,可以主动喊某些人一起交流,比如“老张,过来帮忙看看小李这个问题”,这样交流的范围就逐渐扩大到3个人,而且老张-小李之间也建立了联系。一个宽敞点的办 阅读全文
posted @ 2012-01-19 11:58 Java EE 阅读(122) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第七篇。(在这里提问,之一,之二,之三,问题总目录)问题松结对编程中,师傅对徒弟安排任务时,对于有想法的徒弟提出的意见怎样解决?方案步骤0:正心,诚意。人们到底是在管理一个人(控制,监督,指令)还是领导一个人(帮助,引导,培养),被管理者和被领导者其实心里是一清二楚的。因此在师徒关系中,不能为了师徒而师徒,而是要找到师+徒这个体系的目的,把心态放在把事情做好而非维护师徒结构上,从这个角度看问题才能做好下面的事情。步骤1:师傅日常要多在收尾的时候检查徒弟的代码,指出其中的问题,以让徒弟正确认识自己的水平。软件开发有一个好处是比较理性:好的就是好的,没有什么可争辩的;. 阅读全文
posted @ 2012-01-17 10:18 Java EE 阅读(111) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第四篇。(在这里提问,之一,之二,之三,问题总目录)有一次课程上居然来了一个非开发人员,他是个网站的业务人员,提出了这个问题,并被评为课堂最佳问题之一。问题一线业务部门应该怎样具体参与到敏捷开发中来?答案方案1:敏捷开发中有很多活动是需要业务部门参与的,如果没有时间,第一个要参与的事情是“评审会”,就是阶段性验收产品的会议。在会上应该思考产品在实际应用中是否可用,并提出改进意见。但是要注意改进意见不要急于实现,而是应该询问下一步原来的计划,或许原来的计划更加重要。如果能在评审会上对产品未来的应用做出一点预测,对之后的迭代会有帮助。方案2:如果能选出一个代表,参与到计 阅读全文
posted @ 2012-01-12 12:04 Java EE 阅读(183) 评论(0) 推荐(0)
摘要:头文件 time.h 函数用途 函数名 得到处理器时间 clock 得到时间差 difftime 设置时间 mktime 得到时间 time 得到以ASCII码表示的时间 asctime 得到字符串表示的时间 ctime 得到指定格式的时间 strftime 摘要: 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字: UTC(世界标准时间),Calendar Time(日历时... 阅读全文
posted @ 2012-01-11 21:29 Java EE 阅读(308) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第五篇。(在这里提问,之一,之二,之三,问题总目录)本问题被评为某次课程最佳问题之一(每场2~4个)。问题怎样让团队成员完成从派活到主动要活?方案步骤0:在一个传统团队中,多半是由一个人(一般是项目经理)估算、分配、监督任务完成。由于这个人处于鸡的角色(请参考百度“猪与鸡”),所以真正承担任务的人要冒任务被错误估算和分配导致绩效低下的风险,引起大家的不满。按时完成了经理领导有方,延期了则总能找到一个临时工来顶缸,事情永远做不好。步骤1:“领导”和“管理”的区别在于后者利用权力行事,而前者亲自带领队员。比如如果项目经理仍然估算和分配任务,但是会主动帮助认为估算不对、任 阅读全文
posted @ 2012-01-11 11:42 Java EE 阅读(115) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第四篇。(在这里提问,之一,之二,之三,问题总目录)这个系列的文章太多,除了用于总结性篇章外,请访问“问题总目录”查找感兴趣的具体问题。初始问题对于不断更新的需求,导致需求优先级的判断出现了错误,知道项目周期后期才发现,怎么办?答案1. (临时方案)确保所有排序均是由PO完成的常常出现所谓现场客户、由客户出PO、由一个销售当PO的情况,都是应该避免的。PO一方面要熟悉具体的需求和原始目的(广度与细度的要求),另一方面则应该对产品的商业目标、终极目的了然于胸(高度与深度),才能站在企业立场而非简单的客户价值立场。从这一方面看,“有无限时间陪着我们的现场客户”和“一个销 阅读全文
posted @ 2012-01-10 11:26 Java EE 阅读(185) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第三篇。(在这里提问,之一,之二,之三,问题总目录)也是般若敏捷系列第十二篇。(之一,之二,之三,之四,之五,之六,之七,之八,之九,之十,之十一,之十二)共振共振是以无我、无住精神推广敏捷时的具体做法。很容易被简单理解为循序渐进,但这样理解不全面,这也是为什么会出现“共振”这个奇怪的词汇。之前的无我、无住,也都很难找到完整替代的又没有歧义的词汇或语句。循序渐进很多人都梦想有一家企业,高层领导支持,企业文化适合,队员个人能力超强,团队合作顺畅,就只差自己这个项目经理去推广敏捷。但睁开眼一看,自己的企业不是如此,因此“我们实际企业不适合推广敏捷”。很多时候组织架构、产 阅读全文
posted @ 2012-01-10 10:38 Java EE 阅读(181) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第二篇。(在这里提问,之一,之二,之三,问题总目录)也是般若敏捷系列第十一篇。(之一,之二,之三,之四,之五,之六,之七,之八,之九,之十,之十一,之十二)无住在般若敏捷系列中已经提过,包括不住于法,不住于空。不住于法就是不停留在一种固定的方法上。如果把“敏捷”理解成一个名词,就会出现一个问题:什么是敏捷?又会扩展成Scrum是敏捷,还是XP是敏捷?RUP是不是敏捷?等等问题。如果把“敏捷”理解成一个形容词,也就是“敏捷的开发方法”,大致能找到敏捷新的定义:敏捷是一种轻量级的开发方法。如果把“敏捷”理解成一个副词,也就是“敏捷地开发”,就会找到一个更新的定义:敏捷就 阅读全文
posted @ 2012-01-10 10:37 Java EE 阅读(117) 评论(0) 推荐(0)
摘要:这是敏捷开发一千零一问系列的第一篇。(在这里提问,之一,之二,之三,问题总目录)也是般若敏捷系列第十篇。(之一,之二,之三,之四,之五,之六,之七,之八,之九,之十,之十一,之十二)做敏捷开发时间长了,就感觉很多事情都理所当然,越发觉得“问题很可贵”,最近做培训的时候收集了一些问题,很多现场来不及解答,逐一发表在这里。如何解决一个问题知识多了自然可以解决问题,经历多了自然也可以积累经验,但是在一个只出现10年的领域,还有一堆只工作了10多年的年轻人中间,必然有一天会遇到从来没有人解决过的问题,这时候怎么办呢?掌握解决问题的心法是核心。对这个系列而言,就是要掌握用敏捷开发的方法解决问题的心法。掌 阅读全文
posted @ 2012-01-10 10:36 Java EE 阅读(109) 评论(0) 推荐(0)
摘要:一,题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。二,题目难点在于时间复杂度控制在O(n)三,方法一 1,分别从数组前,数组后向中间查找。直到前后相遇!! 2,当前得到currentSum>sum说明:大的数太大(数组递增,后面的数太大)。应该将指向最后的标记向前挪动 3,当前得到currentSum<sum说明:大的数太小(数组递增,前面的数太小)。应该将... 阅读全文
posted @ 2012-01-10 00:11 Java EE 阅读(368) 评论(0) 推荐(0)
摘要:(1)首先通过一个例子看(int)和(int&)的区别:float a = 1.0f;cout << (int)a << endl;cout << (int&)a << endl;cout << boolalpha << ( (int)a == (int&)a ) << endl; // boolalpha 用符号形式表示真假float b = 0.0f;cout << (int)b << endl;cout << (int&)b <&l 阅读全文
posted @ 2012-01-07 22:26 Java EE 阅读(167) 评论(0) 推荐(0)
摘要:送给那些即将找工作的人1 文化百度提倡“简单,可依赖”,我的理解是做出来的产品要靠谱,要有很好的用户体验。以搜索起家的百度,对产品质量相当看中,因为当用户认定你做得不好,没口碑后可立马更换搜索引擎。公司设有专门的质量部门,各个产品都会配备有QA人员,负责产品质量。从每年校招也能看出来,做测试的比例大概是研发的二分之一。而腾讯提倡“拿来主义”、“微创新”。腾讯很多产品都是抄袭别人的,然后再想办法在此基础上做一些适应性改变,并称其为“微创新”。由于腾讯IM软件的用户粘性比搜索引擎强太多(从3Q大战就能看出来),他不会像百度一样强调产品质量,测试人员较少,公司强调快速跟进市场,抢占市场,动作比传统大 阅读全文
posted @ 2012-01-07 00:15 Java EE 阅读(272) 评论(0) 推荐(0)
摘要:信号函数:gint gtk_signal_connect(GtkObject *object,gchar *name,GtkSignalFuncfunc,gpointer func_data);回掉函数的格式:void callback_func(GtkEidget *widget,gpointer callback_data);GTK的事件:gtk组件的行为或者X服务器发送的事件可以与下列事件联系起来:button_press_event 按钮按下button_release_event按钮释放motion_notify_event鼠标移动delete_event使用窗口管理器关闭dest. 阅读全文
posted @ 2012-01-05 14:26 Java EE 阅读(547) 评论(0) 推荐(0)
摘要:由于GTK 3.0将许多GTK 2.0的API都丢弃,转到GTK 3.0下编译后有些不适应,所以感觉能在GTK 3.0下调试成功这个Demo还是很成功的。源码#include <gtk/gtk.h> int main( int argc, char *argv[]) { GtkWidget *window; GtkWidget *layout; GtkWidget *image; GtkWidget *button; gtk_in... 阅读全文
posted @ 2012-01-05 09:34 Java EE 阅读(298) 评论(0) 推荐(0)
摘要:第一讲第一节∶移动光标 ※※ 要移动光标,请依照说明分别按下 h、j、k、l 键。 ※※ ^ k 提示∶ h 的键位于左边,每次按下就会向左移动。 < h l > l 的键位于右边,每次按下就会向右移动。 j j 键看起来很象一支尖端方向朝下的箭头。 v 1. 请随意在屏幕内移动光标,直至您觉得舒服为止。 2. 按下下行键(j),直到出现光标重复下行。---> 现在您应该已经学会如何移动到下一讲吧。 3. 现在请使用下行键,将光标移动到第二讲。提示∶如果您不敢确定您所按下的字母,请按下<ESC>键回到正常(Normal)模式。 然后再次从键盘输入您想要的命令。提示 阅读全文
posted @ 2012-01-03 15:25 Java EE 阅读(311) 评论(0) 推荐(0)