Luyan

追求,探索,研究,创新...
随笔 - 58, 评论 - 663, 引用 - 54

导航

关于


标签

每月存档

最新留言

广告

关于星际与XP的结对编程

在XP中,最让人困惑,也是在实际XP实践中实施得最少的就是结对编程,很多人不理解:XP其它的我都赞同,但是为什么要让两个人在同一台机器上编码?一个键盘两个人抢着打?空着别的机器干吗?

如果是跟我差不多时期读大学的朋友,一定有在宿舍中与别人酣战星际的经历,星际这个游戏不仅需要大量的微操和还要有全局战略意识,特别是在战争中期,不但要微操前线数量庞大的部队,还要注意整体的战略布局,如果跟高手之间的战争还要派运输机到敌人后方进行骚扰,这个时候自己往往已经是头昏脑涨不是忘造兵就是忘记抢矿(这个和程序员的工作真还有点像,在任务重工期紧的时候,不仅要去去计算内存地址还要注意设计模式)。
假如两个人一起玩就不一样了,你只要注意操作,同学可以帮你策划战略,到了差不多的时候还会提醒你应该去补农民或者出反隐形,哪怕是水平比你差的同学,作用也非常大,整局玩下来意识清晰头脑清醒,绝少出现忘记造什么建筑或者兵种的失误,而且菜鸟的还可以通过这种方式学习到高手的技巧,迅速提升水平。

大家一定知道我想说什么,对了,XP的结对编程的道理跟这个差不多,如果身边有一个人知道你具体在做什么,知道你脑袋里的想法,他可能会提醒被你不小心忽略了的东西,在碰到问题时能直接帮你出谋划策(不需要你花费一个小时先去让他了解问题是怎么回事),能够帮你理清思路规划代码,这是两个人分别在电脑上各干各的工作方式做不到的,也许项目组降低了一些编写效率,但是却减少了大量调试BUG的时间。

posted on 2004-10-28 17:57:00 by 5drush  评论(22) 阅读(5070)

精确的判断网络是否可用

Socket类的Connected属性往往不能精确的判断出网络是否连接,下面这段代码可以解决这个问题

/// <summary>
/// 是否已经连接
/// </summary>
public virtual bool Connected
{
 get
 {
  try
  {
   //检查socket的状态是否可读
   if(m_socket.Connected && m_socket.Poll(0, SelectMode.SelectRead))
   {
    byte[] aByte = new byte[1];
    //因为TCP/IP协议无法精确的判断网络是否可用
    //试读一个字符,Peek参数指定读取的字符不会从缓冲区中移除
    //假如可读则表示连接可用
    if(m_socket.Receive(aByte, 0, 1, SocketFlags.Peek) != 0)
     return true;
    Close("Disconnected.");
    return false;
   }
  }
  catch(SocketException e)
  {
   OnException(e);
  }
  return m_socket.Connected;
 }
}

posted on 2004-10-04 00:50:00 by 5drush  评论(22) 阅读(10040)

Powered by: Joycode.MVC引擎 0.5.2.0