摘要: 一、结对编程“结对编程(Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员。两个程序员经常互换角色。” ——维基百科 基于上面的描述,我们对结对编程有了大致的了解。从直观上看,它具有以下几大优点: 1) 互相学习。学习相互间的设计思路、开发技巧。 2) 互相backup。一人有事,另一人顶上。 3) 规避风险。通过及时沟通,促使问题尽早暴露并解决。 除了以上... 阅读全文
posted @ 2012-12-27 16:17 信客 阅读(1828) 评论(12) 推荐(1) 编辑
摘要: 敏捷项目管理我们团队已经试行了近三轮,现将在实践过程中的体验分享给大家。一、写在前面敏捷项目管理实施前,一直在倡导做项目、需求要敏捷,在保证质量的同时尽可能的快速完成开发任务,但很少有真正实践的机会。之前的需求开发流程基本如图1所示。(图1 基本开发流程图)该流程最大优点是需求能快速上线。需求方提出的需求,基本都希望能尽快上线。各开发针对自己开发的需求,在需求方要求的时间内完成对需求的开发,发布上线。缺点:1)不利于产品发展。开发人员满足于开发眼前需求,缺少对产品的整体认识,对产品发展的贡献不足;2)不利于开发人员的成长。需求一个接一个的开发,纯粹为开发需求,缺少沉淀和总结,开发人员很累;3) 阅读全文
posted @ 2012-09-25 20:36 信客 阅读(2613) 评论(5) 推荐(5) 编辑
摘要: 继上一篇《MongoDB初窥》之后,想必大家对自动生成的主键objectId有所好奇,为什么会是一个24位的字符串。今天,就对objectId的生成原理做一次比较深入的挖掘。一、ObjectId的组成首先通过终端命令行,向mongodb的collection中插入一条不带“_id”的记录。然后,通过查询刚插入的数据,发现自动生成了一个objectId,4e7020cb7cac81af7136236b。具体操作如图1所示。图1 插入/查询数据“4e7020cb7cac81af7136236b”这个24位的字符串,虽然看起来很长,也很难理解,但实际上它是由一组十六进制的字符构成,每个字节两位... 阅读全文
posted @ 2011-09-18 23:26 信客 阅读(50278) 评论(9) 推荐(12) 编辑
摘要: NoSql,一种应对纯动态网站的超大规模和高并发需求的东东,目前正得到非常迅猛的发展。对其最为常见的解释是“non-relational”或者说是“Not Only SQL”,非关系型数据库。NoSql的种类很多,有列存储型、图存储型、对象存储型等等。今天主要是初窥MongoDB,文档存储型的NoSql。一、 简介MongoDB中的mongo取自humongous(巨大)的中间部分,结合DB就成了MongoDB这个名词。顾名思义,它的目的主要是用来处理大量数据,解决海量数据存储的同时又具有良好的查询性能。当然,其实它不是为了取代传统关系型数据库,而是对其补充。因为不是所有的数据都需要二维关系及 阅读全文
posted @ 2011-09-12 21:14 信客 阅读(3379) 评论(10) 推荐(5) 编辑
摘要: 我们在开发系统的过程中,有时候需要用图形的方式表现数据,这样可以直观而又清晰地知道数据间的关系以及掌握数据的价值。Web页面上实现绘图的方式有很多,也有很多现成的框架,如JFreeChart、JavaApplet、Javascript绘图组件、Flex等等,但往往会感觉到使用高级语言去动态生成统计图表、实时曲线图时,不但编写起来非常繁琐,而且从美观的角度上讲也是很难设计。有时候感觉太笨重了,绘出来的图像又会失帧,想与客户端交互也非常麻烦,如果想要被搜索引擎检索,那更加感觉到不可能。项目中,我们尝试了VML矢量标记语言,满足了需求。如图1,展示了页面模板间的关系。图1 页面模板关系图一、 VML 阅读全文
posted @ 2011-09-12 17:20 信客 阅读(1361) 评论(0) 推荐(1) 编辑