2007年九月月 发布的文章

浅谈如何编码使程序更易维护

毕业后就一直从事于服务器端程序的开发,主要客户是中国移动,大家知道移动的产品都是电信级的,稍出差错后果都是严重的,所以在我们平时的工作中除了研发之外,还有的就是对我们卖给移动的产品的维护性工作,而这种维护性工作要求就是要"迅速解决现场的问题"。这几个月维护工作占据了我很大一部分精力,说实话,有些烦了,但是从另外一个角度来看,也说明了我们的产品在维护性方面做的不够好,否则移动的工作人员或当地的技术支持人员通过手册或者查看系统日志的方式就可以解决问题的。这让我反思。

一般来说,我们的产品在交付时都是有详尽的用户手册的,现场人员可以根据维护手册来查找问题所在。另外维护工作也是分层次的,在运行我们产品的各省移动公司都有我们的当地技术支持人员,而移动自己的网管人员在多年的维护过程中也逐渐的积累了丰富的问题解决经验。一般问题发生后,移动的人员都会试着自己来尝试解决,当其无法解决时,会将问题告诉当地的技术支持人员,只有在技术支持人员也解决不了问题的时候,问题才会反馈给我们研发人员,而研发人员就成为了系统的最后一道保护伞了。移动人员的素质我们自然控制不了,我方技术人员我们会尽可能的通过培训和讲解的方式传授解决问题的办法,并通过他们自己在维护过程中积累经验,但是一旦问题提交给研发人员,我们就需要在远程以最快的时间将问题解决。

研发人员一般来说对业务熟悉,对功能是如何实现也有把握,但是一个系统往往是很庞大的,很可能是经过"几代人"前离后继"(前人离职了,后人来继承)完成的,所以到最后很可能整个产品组内没有一个人对整个系统的每个角落都了如指掌的,这时问题就出现了。

对于研发人员来说,他们最擅长的就是通过问题现象去到代码里分析,现场产品因为在运行,一般来说我们不可能去用调试工具直接调试现场运行的程序的。而问题的现象一般是通过系统日志体现出来的;也就是说在研发人员解决问题这层,系统的运行日志对解决问题起着至关重要的作用。这样一来系统日志设计的好坏直接会影响到你解决问题的效率和质量。

而通过日志定位问题所在的代码位置一般有如下几个现象:

[现象一]  当你用某一个错误日志去search in project的时候,居然发现:
if (condition1 | condition2 | condition3)
      你查询的日志输出;
输出该日志的条件是多个或的关系,而且每个condition也许是一个复杂的函数调用,这会大大延长你跟踪问题的时间;

解决方法:
a) 尽量减少condition1 | condition2 | condition3的使用;
b) 对于复杂和关键地方的处理,给出"点睛"的注释;

[现象二] 当你用某一个错误日志去search in project的时候,居然发现:
Project中存在不止一条这样的错误日志,其位置可能分布在Project的不同源文件中的不同位置。这同样会大大延长你跟踪问题的时间和难度。

解决方法:
我们套用"幸福的家庭往往是相同的,不幸的家庭各有各的不幸"来说明:成功的日志往往格式相同,失败的日志各有各的特征。如果每条错误日志的特点都不相同,那么当我们search的时候,就可以一次定位问题所在了。

[现象三] 当你用某一个错误日志去search in project的时候,居然发现:
该日志是在一个宏的定义中输出的,而该宏散布在Project的各个角落。

解决方法:
不要在宏(广泛使用的宏)中做任何日志输出。

当然上述的某些解决方法可能与代码的可读性或者精炼性有悖,这就要看你是如何抉择的了,根据具体情况三思而后行。

另外对于查找问题而言,关键而详尽的注释会给研发人员带来很大帮助,否则他就很可能陷入复杂的业务逻辑中,长时间不能自拔了。

以上一点私人见解,仅供参考。

三场比赛确立诺坎普新国王

关心足球的球迷都会及早得到这条消息,在今天凌晨举行的西甲联赛第6轮的一场比赛中,豪门巴塞罗那以4:1狂扫弱旅莱万特队,也许本场比赛中上演了帽子戏法的亨利更吸引人的眼球,但是回顾这阶段巴萨参加的1场欧冠,两场联赛,你会发现在混世魔王小罗缺阵的情况下,另一位诺坎普新国王诞生了。

巴萨今年联赛的阵容,可谓是欧洲最豪华,其前场的超级进攻阵容真是用什么辞藻表达都不过分。但是事情却往往不像人们看到的那样一番风顺,巴萨在联赛前三场的表现可谓一般,一胜两平落后皇马4分。这时候小罗被冷藏了,梅西站了出来,在国家队和俱乐部队都是核心的梅西在因国际比赛劳累后复出了。梅西在球场上真是好比巴萨的一柄手术刀,在对方球队的"身体"上任意划切,势不可挡。从第四轮联赛开始到今天的第六轮联赛,梅西分别贡献了2球、2球、一球,更值得欣喜的是本轮梅西除了一个漂亮的进球外,还给亨利送上了两次助攻,可以说梅西正日渐成熟,也逐渐加强了其前场的进攻组织能力。这里还不得不提到的就是上一场巴萨主场对里昂的欧冠联赛小组赛,正式因为梅西的全场闪光巴萨才顺利以3:0击败对手取得开门红。目前的梅西也许最大的敌人就是自己,只要合理分配体力,保护自己免受伤病之扰,梅西必将成为未来诺坎普之新一代国王,而且是最年轻的国王。

整体实力差距太大,女足复兴需来日

相信很多人看了昨晚的女足vs.巴西的比赛,比赛输了固然让国人伤心,但是我们又不得不承认我们的实力照比巴西女足已经差了一个档次,下一步要做的就是虚心学习,努力提高了。

从昨晚的比赛来看,女足除了在某几个时刻有某几个人闪亮那么一下之外,整场比赛都在巴西人的节奏控制之下。无论是个人能力还是整体攻防女足都是彻头彻尾的输了。巴西人展现出来巴西男足般华丽的脚法与意识,这是场上中国女足都没法相比的,而且可以看得出来,差距已经不小了。这些年来,女足不仅在世界上成为二流,就是在亚洲,在澳大利亚、日本、韩国逐渐崛起的情况下,中国女足也已经有些力不从心了。本届世界杯日本女足表现出来的战斗力不禁让我们想到日本男足,日本为了其国家足球振兴制订了百年足球复兴计划,百年啊!不光是计划,日本人将具体措施落实的很好,在日本学校里足球培训体制健全,训练规范。经过近10年的发展,日本女足从去年开始逐渐开始有所收获。日本人的这种魄力和方式真是值得我们中国足协好好反思和学习。说实话,亚洲人在足球天赋上来讲的确要比欧美人种有差距,这才需要我们通过细致计划、系统训练并通过整体的提高来与足球强国抗衡;99年的那届老女足有那么好的战绩,一是因为那帮队员的确个人能力出众,整体能力强;二也是因为当时的各国女足刚刚起步不久,传统的足球强国女足正在复兴中。从本届女足各国的表现来看,传统的一些足球强国的女足队伍已经开始赶超了。

女足输了,肯定有人会骂足协;这种骂声已经持续了n多年了,中国足球要么从这些骂声中崛起,要么就继续沉沦下去。足球水平的提高是需要一代一代人的努力啊。如果足协不好好规划,还是那么急功近利的话,那只能让中国足球复兴的日子更加遥远了。




这里是Tony Bai的个人Blog,欢迎访问、订阅和留言!订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:


以太币:


如果您喜欢通过微信App浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:



本站Powered by Digital Ocean VPS。

选择Digital Ocean VPS主机,即可获得10美元现金充值,可免费使用两个月哟!

著名主机提供商Linode 10$优惠码:linode10,在这里注册即可免费获得。

阿里云推荐码:1WFZ0V立享9折!

View Tony Bai's profile on LinkedIn


文章

评论

  • 正在加载...

分类

标签

归档











更多