分享
 
 
 

也谈中外程序员的差别

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

这个题目比较大,我不想作什么评论,只是说说自己工作中的一些经历,拿来与大家分享,希望对那些已经进入软件开发的或者正准备进入这一行业的有些启发。

我在一家外企的软件中心工作,有四年的时间了,公司是通讯行业的欧洲公司,我们的工作主要是根据中国的客户需求,在公司的产品上作一些客户化的工作。人们都说外企比较人性化,特别是欧洲的公司,但在客户的需求压力和与国内本地厂商激烈竞争下,我们还是常常加班的,而且很多时候不能遵循公司的开发流程,如果按照流程来办,那么意味着项目交付期要延长,需要的人员也更多,编码时很多细节也就不太在意,只求能够比竞争对手早实现需求,早交付项目。这样的事情一直延续了三年之久,直到我参与到了一特殊的项目,这个项目从项目管理到实现的各个方面都给我很大感触,我在这里只说一些开发过程中很小,很细微的事情,但我认为这些和一个工程师的素质有很大关系。

去年,客户提出了一个比较新的产品需求,要实现的话,在原有的产品上修改是不可能的,只能重新开发,按照常理,这样的任务是需要在公司的总部完成的,但需求是中国客户提出的,原文都用中文写成,所以在中国这里组成了一个中外混合的开发队伍,从公司总部的研发中心来了五个工程师,我们这里也有五个人参加。项目经理,技术专家都是外国人,这个专家年龄已经超过四十岁了,有两个女儿。另外三个是年轻人,都是正宗的计算机专业毕业,在公司最少的也工作了两年,我们这边是清一色年轻的工程师,工作年龄最长的五年,最少的只有不到一年的时间,三个计算机专业毕业,另外两个是自学转到程序开发上的。 项目在一开始我们就感受到的很大的不同,这些主要是项目管理上的事情,留待以后再讲。

按照各个人的工作背景,我们划分了任务,核心模块和框架由这个专家来写,其余的去完成划分好的模块。代码定期的集成,然后提供给测试组去测试。我们都知道外国人做事情比较认真,而且专业素质非常高,虽然没有商量过,但我们都有一个共同的意识,好好干,不要让他们看贬了,所以在编程上非常注意自己的代码质量,而且反复推敲,优化。但在我们还是感受到了差距,尤其是在项目初期的几次集成中。因为大家都对客户的需求了解的清楚,也都掌握了实现这些需求的技术。在代码的功能实现上我们很少受到(Challenge)置疑,主要在很多的细节上,而且外国同事非常直接,我们虽然处得不错,但发现代码中有错误或者不好的地方,他们都会直接当面指出来,丝毫不留情面。这让我们开始很难接受,不免有些情绪,背地里常常咒骂这些鸡蛋里面挑骨头的老外,但情绪归情绪,平心而论,没有他们这么直接的意见,我们也不会在技术有一个较大的提升。

那么都有那些细节的问题呢?我大致分成三类。

1. 代码风格 我们虽然在编程时也遵循编码规范,但时间长了,往往在一些小的地方表现出各自的喜好来,而他们则在任何时候都表现出严格的遵守编码规范,比如,大括号的对齐,要求大括号要单独占一行,if,else语句必须用大括号括起来,即使只有一句表达式。而我们常常在if,else只有一句表达式的时候,不加大括号,而他们则不,每处都规规矩矩的加上。还有就是变量的命名,大家都知道程序的可读性非常重要,我们在命名函数和一些全局变量时非常注意,但在函数内部的局部编码命名时候比较随意,这是他们所不能接受的,比如看到我们代码中出现这样的语句就会非常气愤:int temp1,temp2;他们马上就说不明白temp1,temp2代表了什么,在读这个函数时容易混淆。要求即使局部变量的名称也要尽可能的代表它的意义。 关于可维护性,还有一个例子,大家都有这样的经验,有些部分的代码是要改上很多次的,不管代码的好坏,如果已经通过测试了,通常在改这部分代码的时候,大家不会直接删除掉,而是将这部分代码注释起来,这个大家都知道,但他们对注释起来的代码也有要求,就是需要加上注释说明为什么要注释掉。记得当时有个老外指着我的一行注释的代码问我为什么,其实很简单,我和他讲为什么,为什么,他却对我说,他需要的不是我讲的内容,而是要我把讲的内容加上去。

2. 性能优化 我们做的是嵌入式系统的开发,运行速度是用户非常关注的一个因素,可以这么讲,比如我们的系统运行速度比竞争对手慢,不代表我们拿不到订单,但如果拿不到订单,很明显,运行速度慢是一个最好的理由。所以从一开始我们就非常关注性能的优化,比如设计最好的算法等等,但还有一些细节是我们开始时没有注意到的,最常见的例子,在很多判断条件下,我们通常的做法是按照设计时的Use Case来写,这样有的时候就出现这样的情况,最有可能发生的事情,也是最常见的判断条件,没有放在判断的起始位置,而是在中间,倒是没有出现在最后的情况。老外们则比较注意,他们把用户使用时最常出现的判断都写在了代码的开始,这样软件在使用上的整体性能就比较好。

3. 代码稳定 这个我忘记有什么具体的例子了,只是记忆中他们对异常情况的处理有时近乎苛刻,按照我们那时的说法,什么变态的情况他们都想得出来,也都要在程序上做处理。

工程师之间的差别,决定了他们开发出的产品的差别,通过这个项目,我明白为什么很多外国的产品要比中国的产品好,不光是软件,其他别的产品,飞机,汽车,或是一个吃饭的勺子,我们的产品和外国的差异往往也在这些细微的地方。 另外让我比较感慨的是,在国内,很多程序员不知道自己三十岁后干什么。而且最要命的,这不仅仅想法而已,而是现实的环境就是这样,三十还继续编程序被认为没有出息,非得升到去作一个什么经理才成,才能有所发展,自己的事业才能发展,自己的工资才能有个新的跃升,但好像国外并没有这种现象,上面提到项目里的专家已经四十多岁了,还在编程,大家对他都很佩服,有段时间近乎崇拜。他写的框架非常优雅,我们在这个框架基础上能非常容易的实现各个模块,代码写的干净漂亮,层次感很强,读起来感觉很舒服。他写的核心模块也很少出错。没有多年的功力是写不出那样的代码的。

当然,我们中方的员工也有优点,我们都很勤奋,好学,而且聪明。老外们把生活看的很重,上班和生活分得很清楚,不愿意加班。而我们晚上常常加班到很晚,完成的模块比他们多很多,这是他们感到很惊讶的。同时在和他们的代码集成,评审过程中,学到了很多东西,编程水平提高的很快,在项目末期基本上就没有遇到什么challenge了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有