RSS 2.0 Feed
2004-10 Entries
摘要:在XP中,最让人困惑,也是在实际XP实践中实施得最少的就是结对编程,很多人不理解:XP其它的我都赞同,但是为什么要让两个人在同一台机器上编码?一个键盘两个人抢着打?空着别的机器干吗? 如果是跟我差不多时期读大学的朋友,一定有在宿舍中与别人酣战星际的经历,星际这个游戏不仅需要大量的微操和还要有全局战略意识,特别是在战争中期,不但要微操前线数量庞大的部队,还要注意整体的战略布局,如果跟高手之间的战争还要派运输机到敌人后方进行骚扰,这个时候自己往往已经是头昏脑涨不是忘造兵就是忘记抢矿(这个和程序员的工作真还有点像,在任务重工期紧的时候,不仅要去去计算内存地址还要注意设计模式)。假如两个人一起玩就不一样了,你只要注意操作,同学可以帮你策划战略,到了差不多的时候还会提醒你应该去补农民或者出反隐形,哪怕是水平比你差的同学,作用也非常大,整局玩下来意识清晰头脑清醒,绝少出现忘记造什么建筑或者兵种的失误,而且菜鸟的还可以通过这种方式学习到高手的技巧,迅速提升水平。 大家一定知道我想说什么,对了,XP的结对编程的道理跟这个差不多,如果身边有一个人知道你具体在做什么,知道你脑袋里的想法,他可能会提醒被你不小心忽略了的东西,在碰到问题时能直接帮你出谋划策(不需要你花费一个小时先去让他了解问题是怎么回事),能够帮你理清思路规划代码,这是两个人分别在电脑上各干各的工作方式做不到的,也许项目组降低了一些编写效率,但是却减少了大量调试BUG的时间。...[阅读全文]

posted @ | Feedback (22) |

摘要: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 @ | Feedback (22) |