`
climber2002
  • 浏览: 64459 次
  • 性别: Icon_minigender_1
  • 来自: 法国
社区版块
存档分类
最新评论

跟国外程序员工作感受123

阅读更多
算上上次出差,来巴黎也有两个多月了,也租到房子了,慢慢适应了现在的生活,现在小记一下与国外程序员一起工作的感受。首先得说下我们公司在巴黎跟La ciota都有分部,不过感觉公司的重心在向La ciota那边偏移,巴黎这边虽然有很多人都从工程师学校毕业(这儿的工程师学校可不是国内的职高,比一般的college都好得多),但是水平感觉比La ciota那边低一些,起码我还没碰到那么多高手级达人。这边可以跟很多国家的程序员一起工作,有法国人,突尼斯人,加蓬人,还有罗马尼亚mm程序员呢。下面分别分一二三点说说感受,

1. 清闲。刚来这里我有时候闲的发慌,浑身不自在,不知道该干什么,项目需求分析做完后我们老大又招了三个外包给我们写单元测试跟集成测试,我向老大提议,单元测试应该是自己来写的,因为这种白盒测试需要很清楚程序的逻辑才行。我们老大一句话就把我给顶回去了:我觉得你的工作量太大了,没有时间写单元测试囧。大哥啊,你给我安排的工作我一般顶多花1/3的时间就做完了,其余时间都不知道干啥,就这工作量还大啊。

2. 细致。不得不说国外程序员还是比国内细致的多。这是我跟许多国外程序员工作感受最深的。他们的程序一般都有很多注释,不过有一点不好的是他们注释喜欢用法语,而且有的变量名也喜欢用法语。我们组三个外包的测试,其中两个跟我打交道比较多,一个是突尼斯过来的博士哥们,一个是一个膀大腰圆的黑哥们,单看外表肯定不会觉得他是个写程序的。博士哥们给我写测试的时候把我的代码认真通读了一遍,设计了很多很多的case,如果我自己写单元测试,有一些隐藏的小bug我肯定发现不了的。这也刺激我多次重构我的代码,挖空心思决心把程序写的像优秀作文一样漂亮,变量名,函数名争取一看名字就知道是啥意思。逻辑复杂一点的地方也都加上注释,总之是比国内认真多了。

3. 自由。法国人最崇尚自由了,这点在工作上也能体现出来,不管工作进度如何,每天的下午茶还有长假是免不了的。这里每年年初每个人就把自己的假期告诉leader,然后leader根据假期来安排工作量,即使项目再紧张,这个假也是雷打不动的。不过这种自由有时也体现在程序上,那个黑哥们,写起程序来那叫一个自由,类里面的成员变量,有的第一个字母大写,有的第一个字母小写。我们那个系统最核心的东东就是Command模式,Command里面有个execute方法,我写每个Command都尽量重构出许多辅助函数方便测试,不过这黑哥们说他就测execute就行了,测了execute就相当于测了所有的函数,我后来看他的测试,我晕,一个无比复杂的测试,一个mock object里面创建出另一个mock object,这分明不是测试程序逻辑而是测试mock objects去了。不得已给他重新写了一个TestCase,他看了说比他的test要good一些。

123先说到这里,456有机会再讲。
分享到:
评论
49 楼 frenchmay 2009-02-23  
john813 写道
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?


貌似你还不太懂重构的意义。能第一遍就写出“好”的代码的人压根还不存在。因为即使最优秀的程序员日后回头看自己当初认为最“好”的代码时,可能也不会满意的。

更何况,很多优秀的库和框架本身就是从原来做项目时的“烂”代码重构出来的。

好的代码应该是简单的,易用的。
servlet就是最好的例子。
48 楼 climber2002 2008-09-30  
pioneer21th 写道
楼主,你的2点和3点是有些矛盾的。
像那些自由的代码,像大写开头的变量不应该重构吗?


看看这里,他已经被fire了,他的代码也重构了。
47 楼 pioneer21th 2008-09-30  
楼主,你的2点和3点是有些矛盾的。
像那些自由的代码,像大写开头的变量不应该重构吗?
46 楼 protti 2008-09-04  
cuiyi.crazy 写道
gigix 写道
刑天战士 写道
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?

这话我坚决不同意,就连架构都是靠错误堆出来的……


我就不明白为什么到今天还有人说那样的话
无数人,全球领先的软件组织,都想做一个漂亮架构今后五年都可以顺利扩展
事实证明这种良好的愿望从来就没有实现过


SAP的架子据说几十年没有动过....
如果真是这样的,这个就算了~



根本不是一个级别的,不具备可比性。
45 楼 elimago 2008-09-04  
cuiyi.crazy 写道
gigix 写道
刑天战士 写道
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?

这话我坚决不同意,就连架构都是靠错误堆出来的……


我就不明白为什么到今天还有人说那样的话
无数人,全球领先的软件组织,都想做一个漂亮架构今后五年都可以顺利扩展
事实证明这种良好的愿望从来就没有实现过


SAP的架子据说几十年没有动过....
如果真是这样的,这个就算了~


那應該先統計一下幾十年前sap的架子花了多少時間,重構了多少次,
44 楼 elimago 2008-09-04  
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?


沒看過重構那本書麼?
43 楼 elimago 2008-09-04  
fxbird 写道
比如仓库叫SOKO


那是正常的,我们这边有个sb,技术一般因为日语好去日本好几年了,现在也是个小小的决策人,一个远程管理系统,他非在我们设计好的数据库表中加了一大堆的冗余字段,我们问他为什么,他说为了以后在直接手工到数据库里面查看数据方便,靠,当时抽他的心都有了,他tmd又不是计算机,跑数据库里查数据?
42 楼 kimmking 2008-09-01  
5年啊

5年啊


--------------


一整套技术系统恐怕都整个革命了
再“漂亮架构”也是昨日黄花

41 楼 sunway0420 2008-09-01  
lordhong 写道
climber2002 写道
lordhong 写道
国外长假那个爽啊... 法国是4个星期还是8个星期啊?


我们年假是25天,不过法国是每周35小时工作制,如果你每周工作40小时的话,可以每年多出来10天年假,所以是35天。

日啊... 爽死了...  
美国年假10天... 每周起码40小时... 不能比啊不能比...


法国也不是所有的地方都清闲的, 也要看公司跟职位了,我们上班到晚上8点9点的日子也不少。
40 楼 cuiyi.crazy 2008-08-10  
gigix 写道
刑天战士 写道
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?

这话我坚决不同意,就连架构都是靠错误堆出来的……


我就不明白为什么到今天还有人说那样的话
无数人,全球领先的软件组织,都想做一个漂亮架构今后五年都可以顺利扩展
事实证明这种良好的愿望从来就没有实现过


SAP的架子据说几十年没有动过....
如果真是这样的,这个就算了~
39 楼 perrywky 2008-08-10  
什么公司这么爽啊
38 楼 xzj127 2008-08-10  
顶 。。期待 !
37 楼 achun 2008-08-09  
好,我要争取在本地也达到这种工作环境.
36 楼 chinata 2008-08-08  
john813 写道
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?


貌似你还不太懂重构的意义。能第一遍就写出“好”的代码的人压根还不存在。因为即使最优秀的程序员日后回头看自己当初认为最“好”的代码时,可能也不会满意的。

更何况,很多优秀的库和框架本身就是从原来做项目时的“烂”代码重构出来的。

那要看你怎么定义这个“第一遍”,如果你的第一遍是指第一遍敲出的代码,那你是对的(传说knuth可以写代码一次编译通过,但是那个不是我们讨论的范围)。但如果你说的是第一遍指第一个跑通功能的稳定alpha的话,我觉得平常我的alpha版本的代码质量就很好啊:)
还真以为代码可以改好啊,重构的毒太深了吧。你去把自己5年前写的代码拿出来试着改好一下?要改啊,不是让你重写啊,你不相信就去试一试。重构的目的是让你可以在更低的代价下“重写”代码,而不是改代码。
每个人回头看自己的代码都是不满意,这不奇怪。问题是,改得更好吗?什么是更好?重写会更好,我是相信的,但是可以改的更好,lol。你这里说的改,很大程度上改得是设计,而不是代码。如果真能改的更好,就不会有那么多开源框架就无法向回兼容了。
设计级别的重构,是有可能提高质量的,但是较低的代码和类结构级别,如果第一遍写了一坨屎,那差不多反映水平了,难道有时间写第二遍就不是一坨屎了?难道写个复杂的功能,1个小时和10个小时写出来的会有什么本质区别,也许有些人会有区别吧,但是我觉得即使这样,也不建议他们浪费这个时间。
写程序和做设计,是个非常依赖本能和直觉的事情,就好像你做选择题,当最后不能确定答案是B还是C的时候,再怎么挣扎也是没用的。
35 楼 cuiyi.crazy 2008-08-08  
climber2002 写道

1. 清闲。刚来这里我有时候闲的发慌,浑身不自在,不知道该干什么,项目需求分析做完后我们老大又招了三个外包给我们写单元测试跟集成测试,我向老大提议,单元测试应该是自己来写的,因为这种白盒测试需要很清楚程序的逻辑才行。我们老大一句话就把我给顶回去了:我觉得你的工作量太大了,没有时间写单元测试囧。大哥啊,你给我安排的工作我一般顶多花1/3的时间就做完了,其余时间都不知道干啥,就这工作量还大啊。


这个赞啊;这个羡慕啊;
34 楼 huangyonghy321 2008-08-08  
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?

第一遍就写出好代码?当兄台接到本应一个星期做出来的东西却让你一天做出来的时候,不知你能写出什么样的代码?你说这话让我想起小时候老师跟我说的一句话,一篇好文章是改出来的。用在代码上我相信也是一样的道理,“代码越改越烂”不敢苟同。
33 楼 john813 2008-08-08  
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?


貌似你还不太懂重构的意义。能第一遍就写出“好”的代码的人压根还不存在。因为即使最优秀的程序员日后回头看自己当初认为最“好”的代码时,可能也不会满意的。

更何况,很多优秀的库和框架本身就是从原来做项目时的“烂”代码重构出来的。
32 楼 gigix 2008-08-08  
刑天战士 写道
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?

这话我坚决不同意,就连架构都是靠错误堆出来的……


我就不明白为什么到今天还有人说那样的话
无数人,全球领先的软件组织,都想做一个漂亮架构今后五年都可以顺利扩展
事实证明这种良好的愿望从来就没有实现过
诸如chinata这样的言论究竟是出于想当然的猜测呢还是他自己的美好憧憬呢?
31 楼 刑天战士 2008-08-07  
chinata 写道
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?


这话我坚决不同意,就连架构都是靠错误堆出来的……
30 楼 chinata 2008-08-07  
ccxw1983 写道
如果给我多些时间,我也会写的很好,多重构几次的。
可是……
没有足够的休息,也没有足够的精力写出有艺术性的代码。

没有什么好代码是改出来的,代码只会越改越烂。
需要学习的第一遍就写出好代码,只有基础良好的代码才有机会改得更好,你见过啥好代码是作者从烂代码改了几十遍改出来的?
没有什么代码是有艺术性的,设计也许还勉强能和艺术搭上边,代码的艺术性是啥?

相关推荐

    C++程序员的婚礼

    1995年,达瑞和卡娜这对程序员夫妇决定在国外举行婚礼。由于这对新人远赴美国旧金山完成婚姻登记,为了让亲朋好友也能感受到这份喜悦,他们决定在回到英国剑桥后举办一场特殊的告别活动。这个活动不仅是为了告别,更...

    中外程序员成长之路

    国外程序员如何适应这些工作模式,如何在全球化背景下的技术问题中找到自己的定位,这部分内容为我们提供了丰富的信息和启示。 “反思篇”则是对于程序员职业生涯的深刻反思,它不仅包括对编程理念的探讨和对技术...

    程序员成功之路The road ahead for programmer

    - **自我认知**:询问读者对程序员职业的看法,是否感受到编程带来的乐趣和成就感。 - **职业认同感**:编程不仅仅是一项技术活动,更是对个人价值和兴趣的体现。 ### 4. 技术世界的广袤 - **电脑与想象力**:...

    程序员-文档工程师.pptx

    在国外,文档工程师是一个非常重要的角色,需要接受大量的、高水准读者的考验,并且要跟踪不断创新的技术,感受产品周期的压力。以加拿大为例,同样四年经验的系统分析员的薪水在¥55000;而文档工程师为¥65000,...

    美国上数据库课程的感受

    为了更好地完成项目,我参考了几本不同的教材,并且向一位经验丰富的美国程序员寻求帮助,从而顺利完成了项目。 班级规模相对较大,大约有50名学生,但只配备了一名TA。尽管TA的存在提供了辅助,但并非所有学生都会...

    C, C++学习之路之感想.doc

    利用在线社区,如国内的CSDN、VCKBase,以及国外的CodeProject、CodeGuru和SourceForge,可以获取帮助,分享问题解决方案,同时节省自我摸索的时间。参与讨论和协作,可以迅速提高编程技能。 经验积累是程序员成长...

    游戏策划基础教程基础篇定位与分工教材.pptx

    在国外,游戏产业的分工通常更加细致,有时候音效的工作会与美术合并,共同构建游戏的视听感受。这样的分工有助于提高游戏开发的效率和质量,使游戏策划能够更加专注于游戏设计本身。 游戏策划不仅需要拥有专业的...

    acreport 中国式报表控件 邵见

    它将一些国外的报表功能强大的特性与灵活的表格制作功能相结合,操作简单 方便、计算功能强大、容易与程序集成及易于扩充,是迄今为止国产最完美的 报表组件。如果你用过FastReport,你会感受到FastReport功能的强大...

    一个月挑战c++ 电子书

    这些年为了工作,也学习过很多其它的语言,包括时下正在流行的JAVA与C#等等,在这里不得不说的是,作为一个程序员,一个能够适应当前中国工作环境的程序员,你要学的还远不止这些,包括数据系统,等等,等等。...

    《一个月挑战C++》 chm格式电子书

    这些年为了工作,也学习过很多其它的语言,包括时下正在流行的JAVA与C#等等,在这里不得不说的是,作为一个程序员,一个能够适应当前中国工作环境的程序员,你要学的还远不止这些,包括数据系统,等等,等等。...

    Java图形界面设计工具在教育测量软件上的应用 (1).pdf

    随着社会的发展,人们对考试的要求也越来越高,不仅希望通过考试将考生进行排名,人们也希望考试能够提供更多的信息来促进今天的工作和学习。在这样背景下,传统的纸笔测验就有了很大的局限性。当前编制通用的教育...

    算法I-IV(C++实现)— 基础、数据结构、排序和搜索(第三版)

    本书作为国外经典计算机科学教材,详细介绍了算法在软件开发中的应用,并特别强调了C++语言的实践操作。 本书共分为四个部分,内容覆盖了算法的基础知识、数据结构、排序算法以及搜索算法。Sedgewick在新版中对内容...

    Java开源的下一代社区平台Symphony.zip

    很多系统界面上仍然保持着老式风格,远远没有跟上时代发展的脚步,它们没有创新、好玩的特性,缺少现代化的交互元素和用户体验 大部分系统是从程序员的角度进行设计的,没有考虑实际的产品、运营需求,这类系统...

    64k粒子动画集合 经典

    这种小型程序通常被称为“64KB演示”或“64KB杰作”,它们展示了程序员如何在极其有限的资源下创造出令人惊叹的视觉效果。 描述中提到的“外国人有多牛,吓人!”是对这一技术成就的赞叹。这表明国外的开发者在64k...

    基于单片机控制的游戏机设计

    在美国,许多计算机软件工程师利用业余时间编写各种游戏程序,这些游戏不仅提高了程序员自身的编程技能,还促进了计算机软件的发展。随着时间的推移,电子游戏逐渐成为了一种集剧情、音乐、美术、动画和技术于一体的...

    大数据与电子政务.doc

    例如,正是基于政府开放的航班数据,有程序员建立了航班延误时间的分析系统 (flyontime.us),指导乘客适当安排时间,避免了因航班延误造成的乘客与航空公司 的矛盾。 英国也参照美国的经验,于几年前开放了政府...

    【锐普版权作品】商务汇报模板.pptx

    他们乐于接受高要求、大挑战,将快乐融入工作,从而让观众在观看演示时也能感受到快乐。 【客户群体】方面,锐普的服务对象包括了广泛的用户,其中男性用户占大多数,同时有相当比例的女性用户。无论是国内还是国外...

    基于ios的影院在线订票系统.doc

    国内外已有多款成熟的在线订票应用,如国内的猫眼、淘票票,国外的Fandango等。这些应用通常提供多平台支持,具备智能化推荐、会员优惠、社交分享等功能。然而,随着技术的不断进步,用户对系统的个性化、安全性和...

    django基于python的电影评论数据分析系统论文.docx

    特别是在娱乐领域,电影评论作为观众评价电影质量、分享观影感受的重要途径,其数据量日益庞大。传统的电影评论管理方式已无法满足海量数据的存储、分析与展示需求。因此,开发一款基于Python的Django框架和Mysql...

Global site tag (gtag.js) - Google Analytics