手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2012年02月的文章

转:结对编程的误区

结对编程在我们现在的工作中真的没有使用这玩意。极限编程也没有用到,我们还是安稳的在一步一步的开发。。。但不代表我们没有尝试过。
其实,在07年的时候,那时候和一哥们就尝试过结对,效率确实上升了不少,但后来仔细想想,正由于两个人水平相近,这样的结对却没有真正带来了效率上升,反而还不如两个人单独开发,事后合并代码。虽然有一些BUG,但总体代码却多写了很多。再过了一段时间,也是和一朋友结对,但效率更低,因为两个人的水平不一致,水平高的受不了水平低的一些低级错误,水平低的却看不明白水平高的在做什么。痛苦。。。后来就放弃了这种想法。
以下是原文:http://www.cnbeta.com/articles/174866.htm
在过去的几年里,我有过许多结对编程的经历。有时在我的团队里进行,有时在客户那里,有时在coding dojo(一种编程模式,几个程序员一起合作完成一个任务),有时在我的开源项目里。对于那些知道如何结对编程的程序员来说,这种模式很棒,很高效。
但是你不能指望在两个程序员面前摆台电脑,就指望他们一开始就做得很棒。结对编程需要学习,程序员需要知道实施者(敲键盘的人)和领航员之间的区别。下面来看看些细节。

在结对编程中,我遇到了一些误区,列在下面。
一、领航员误区
1. 发号施令者
喜欢发号施令的人总是对敲键盘的人说:“到末行,加个反括号,然后…”。他不去关注解决方法和下一步该怎么做,而过度关注一些编程细节。
事实上,他希望他自己来掌控键盘。所以当你碰到一个喜欢发号施令的人,那么将键盘交给他吧,转换领航员的角色。
2. 拼写纠错者
拼写纠错者坐在你旁边,纠正你输入的每个错误字符。当然,他没有时间来真正的进行导航。
和纠错者商量一下,当他给你纠错的时候让他请你喝一杯咖啡(或者任何你想要的东西)。
3. 吹毛求疵者
吹毛求疵者会指责你写的每行代码。当他的意见正确时,他会一意孤行,不用你已经写好的代码,而完全照着他的想法。
就如自由爵士音乐人都是复用其他乐队成员的音符,来构造成一首曲子一样,好的结对编程也应基于现有的基础上进行推进。
试着转换角色,也许吹毛求疵者就会变成一个目中无人的人。
4. 默不作声者
默不作声者是那些几乎不发表意见的人。他仅仅坐在那里看着你工作。
试着问下他对你的方法有什么意见,或者问他下一步该写什么测试代码。
5. 心不在焉者
心不在焉的人企图让你分心,而不是提供给你有建设性的意见,帮你解决问题。
那么让他离开吧,比起一个让自己分心的人而言,不如一个人编程。
二、实施者误区
1. 深藏不露者
深藏不露者仅仅自己敲着代码而不告诉别人他在做什么。领航员不得不靠自己去弄懂代码。关于该用什么方法,该选择哪种设计,领航员和实施者之间完全没有交流。
领航员需要问问深藏不露者关于他的计划或想法。
2. 目中无人的人
目中无人的人通常忽略领航员的所有建议,大多数是因为他们觉得自己的想法或编程技能更胜一筹。
当碰到一个目中无人的人时,立即停止结对编程吧,开始下一个任务吧。自大的人往往也不会是个好的领航员。他们很可能变成发号施令者或是吹毛求疵者。
3. 不知所措的人
不知所措的的人往往不习惯结对编程,非常紧张,不能掌控全局。
确保自己的领航员角色做到最好。小心的提出意见,对于不知所措的人主要给予鼓励。
但是,大多数程序员开始都是这种情况。所以,不要对他们的结对编程期望太高。让他们首先成为一个领航员,或者让能够很好的处理人际交往问题的领航员在他们旁边。
4. 跳跃性很大的人
跳跃很大的人喜欢在代码中进行大范围的跳跃,这样领航员不知道进行到哪里了。
领航员需要让他慢下来,问他关于他的计划,并确保自己比他知道更多的快捷键。
5. 不熟悉工具的人
不熟悉工具的人不知道开发环境的快捷键,效率非常低。
交换角色吧,让他看看你的技巧。或者打印一张印有快捷键的cheat sheet。
我相信还有其他的误区,如果你有什么想法请写在评论留言吧。
原文: planetgeek.ch  编译:伯乐在线
----EOF---
如果上面的事情真的是真的,那证明我们还是有问题,在结对编程的处理上。但我真不敢尝试了。哎

Tags: xp, 极限编程, 结对编程

巧用VMware虚拟机NAT端口映射使外网访问虚拟机

以下内容只针对vmware(我只在Server上试过),不知道其他软件怎么样。
遇到的问题是这样的,有朋友的虚拟机出了点问题,想让我帮忙看看,可是如果通过 QQ远程连上去,再打开虚拟机会很卡,所以想到,是否可以让我直接SSH连接上,但因为虚拟机是NAT方式的连接,即IP是私有的,无法直接连上,找了些资料,发现NAT端口映射可以搞定。

以下是资料介绍:原文来自:http://www.linuxso.com/linuxrumen/141.html

  NAT中隐藏的端口映射,说明一下环境,利用当然是VMnet8网络连接,在虚拟机中架设win2003的WEB服务器利用WEB默认80端 口,IP为192.168.10.4,真实主机winxp系统有两个IP,内网连接192.168.10.1,外网上IP为 221.196.193.220。外网其他计算机,可以通过访问我的真实主机221.196.193.220,访问到win2003的WEB。

  首先说下原理,因为WEB服务是利用80端口,所以在Win2003上建立了WEB服务,80也就自动被打开,因为Win03是内网 ip(192.168.10.4),外网无法通过访问这个地址,找到我的web服务,但是可以通过外网地址(221.196.193.220)访问我的 XP系统,XP又能连接到Win2003,所以把80映射到我的Winxp的系统上是有可能的!

  那么废话了,现在说实际操作,打开--编辑--虚拟网络设置--NAT选项卡,如下图:

大小: 36.98 K
尺寸: 500 x 375
浏览: 2461 次
点击打开新窗口浏览全图

选择编辑,打开NAT设置,这里保持默认就可以,如果你对你自己的网络很熟悉,可以更改网关等项目

大小: 33.66 K
尺寸: 336 x 376
浏览: 2295 次
点击打开新窗口浏览全图

直接打开端口转递,这里就是NAT的端口映射配置了,用实例的WEB服务举例,因为WEB属TCP连接,所以在TCP和UDP上我都做了,转换,点击添加

大小: 18.16 K
尺寸: 422 x 158
浏览: 2086 次
点击打开新窗口浏览全图

主机端口,填入真实主机要被转换的端口,这里我用FTP又举了个例子,在真实的主机上1021上建立了FTP服务,这样访问时就需要ip后加:,如ftp://192.168.1.1:1021便可正常访问了,这里因为我的XP上没有web服务所以主机端口添的依旧是80.

  虚拟机IP地址,填入内网虚拟机的IP,这个是Win2003的IP,服务端口,对应那个服务就填入哪个端口,你可以参考其他文章,常用端口.

  描述,无所谓了,写个自己能看懂的就行,不些也没问题啊~

  这样一来,你的朋友就可以在IE下输入http://221.196.193.220/ 访问到你虚拟机中Win2003下的WEB服务了,什么?还不可以?自己访问成功可是其他人都不行?

  呵呵,不要急,如果你是WINXP SP2的系统,去看看你的防火墙设置吧,添加端口,不用我说了吧,安全起见,把TCP和UDP都加到例外中,就ok了~

  PS:1、在虚拟机里配置好IIS和动态域名解析软件

  2、如果你的主机处于内网中,请在路由器上设置端口映射,如果主机直接连接互联网,可以忽略此步骤。

-------

嗯,我是作了22端口映射,然后ssh主机的IP,果然能够连上,这下子操作起来访问很多了。

 

Tags: vmware

VPS好象今天崩了

今天好象VPS崩了一次。上次也有过,不知道是怎么回事。
看LOG也没有明显的记录,郁闷了,看来openVZ还是会有点小缺点,不象xen相对比较稳定。
不知道是否同一台服务器的某些人负载过大导致的,因为我自己的机器还是几乎不占资源的。

纠结啊。
看来要物色便宜的xen服务器了

Tags: vps

知识点: RAD Studio XE2新特性概览:多平台支持、原生iOS与Android、HD与3D动画及云

本文只是一个知识点,主要是Vampire和我说delphi可以开发原生IOS应用了,所以我觉得很奇怪就找了找资料,随手就把这篇infoQ的文章贴了出来。当然我的delphi是一塌糊涂,不过bobby和mpeg就不一样了,他们曾经靠这吃过饭 ,所以他们开发IOS就方便了。
嗯 ,原文在这里:http://www.infoq.com/cn/news/2011/09/RAD-Studio-XE2

继去年8月30日发布XE产品线到现在已经过去一年多的时间了,Embarcadero正准备发布其新版本的RAD Studio XE2工 具,其中包含了Delphi XE2、C++Builder XE2、RADPHP XE2及Prism XE2。此次发布带有很多新特性,最引入关注的莫过于对跨平台开发、Windows 64位、Amazon Cloud API、Native Android与iOS及HD与3D动画的支持了。

长久以来,众多Windows开发者都在使用Delphi与C++Builder针对微软平台创建应用,但现在他们也将目光瞄向了Mac OS X。其IDE并不能运行在Mac上,但编译器所生成的库则可以通过网络安装并运行在Mac计算机上,这样同一套源文件就会有两个应用库了。Delphi支 持Windows 64位,包含一个调试器和部署管理器。

Delphi与C++Builder还带有FireMonkey,这是一个新的平台,用于针对Windows、Mac OS X与iOS创建HD与3D动画。这些原生应用利用CPU与GPU来绘制动画,并且可以通过LiveBindings与任意数据类型进行连接。

Delphi与C++Builder应用可以部署到Amazon EC2与Windows Azure上,同时支持Amazon Simple Storage Service API、Queue Service与SimpleDB。

RADPHP现在则瞄准了iOS与Android设备,能以可视化的形式展现出应用在各个移动设备上的样子。开发人员还可以从PHP生成针对这些平台的原生应用。RADPHP使用了jQuery Mobile控件来设计界面。

除了对原有特性的增强外,Delphi Prism还增加了不少新特性,如下所示:

  • 全新的Oxygene Compiler 5.0
  • 编辑器可以显示出错误的详细信息、范围以及说明
  • 代码编辑器可以即时显示出编译错误
  • 针对选定的新错误的修复支持
  • 语言软接口与鸭子类型
  • 匿名接口实现
  • 增强的Oxidizer集成

资源:感兴趣的读者可以在这里查看RAD Studio XE2中更加完整的增强列表。

查看英文原文:New in RAD Studio XE2: Multiplatform, Native iOS&Android, HD&3D Animation, and Cloud

--------
对于XE最早的了解还是来自于delphi4php可惜那个项目实在让人失望,不知道这次这个怎么样

Tags: macosx, delphi, ios, android

备份:sqlserver to mysql

从sqlserver转到mysql上相对还是比较方便的,外面的工具层出不穷,比如dbconverter之类的,可惜它是商业版,而且,15M左右,还TNND没有破解版。
问了一下google和百度,最终度娘没有帮我解决,而且谷哥告诉我答案了:http://www.cnblogs.com/andrew-blog/archive/2011/12/03/SQL_mss2sql.html
然后下载到本地。做个备份,以后可以直接用
下载:mss2sql.rar
只有1.3M哦,非常好用,昨天帮一个朋友转数据的时候,只花了大约半小时左右转换了将近1G左右的数据。

由于用法简单就不多做介绍了,sqlserver的登录可以直接选系统登录,而不需要输入密码,你懂的。甚至可以支持远程导入,黑黑。。。当然这受限于网络带宽的传输了。
如果还不会,就看我上面的URL吧,里面有图文教学,不过我相信,即使没有教学,也是下一步下一步就会搞的。

Tags: sqlserver, mysql, convert

Records:43123456789