从业余程序员到职业程序员——珠海Kingsoft实习1

“程序的质量是最重要的。”

 

“每个函数都要有返回值, 因为每一个函数都可能失败。”——刚开始感觉BOS是不是在随口说说,或是说错了,后来BOS再三强调了这样做在大型工程中的重要性。回去后自已也开始在还没写函数实体时就加上LRESULT、PROCESS_ERROR、Exit0等语句, 使得一个什么都不做的空函数就用将近十行,再写多一会儿,越来越体会到BOS的意思了,感觉它对构建强壮的程序的确是十分有用,自已也好像对函数的错误代码越来越感兴趣。还有一个就是当你用脚本进行批量UNIT TEST的时候,没有返回值的函数可以说是没用的,对于像WPS那样一个几百万行代码的巨无霸来说,如果没有强大的测试程式,那……

 

“写程序80%的时间是在调试”——深有体会。可以以前体会到这个却没什么行动,现在开始注重自已的代码要为方便DEBUG而写,总是要挖空心思地用各种手段来使自已的代码便开调试。另外一个就是调试工具和技巧也很需要再多多学习。以前全靠cout,现在看来不行了。BOS在点评调试的时候就那么几行SB代码,竞什么内存跟踪,寄存器跟踪,堆栈跟踪都用上了,而且还滚瓜烂熟,对汇编代码一步步单步执行,一个Byte一个Byte地紧盯程序内存……恩,职业程序员……还有一句话,“所有的程序都必须单步调试,观察数据流”——闻所未闻的一句话,还有点不可思意。但静下心来想一想,对于一个质量要求如此高的产品来说,这样做有什么过分的呢?必须用尽一切可能的办法来确保程序的质量,而这还只是一个简单的办法。

 

“永远不要定义未初始化的变量”——从今以后我定义的变量一定都初始化了,不光C++,还有FLEX,JAVA。

 

“要写小而短的函数, 长的函数会有更大的潜在危险性”——这也算是为确保程序质量而采取的一个漂亮的手段吧。我个人也的确喜短小的函数,那样看得舒服,出错的可能性也较小。

 

“不合格的代码老大不会让你CheckIn的”

 

“对函数的测试:UnitTest ,当然还有集成测试,日构建”——还有一句是“单元测试的测试用例要程序员自已找”,因为测试人员将很有可能将这个函数当成一个黑盒。这也许和书上说的可能不一样,但在Kingsoft中应该是实实在在正在发生的事情。

 

“灵活性是需要代价的”——跟你的客户讲, 参数固定的程序需要20万,如果写成参数灵活可变的要40万。

 

“程序需要有自我检测功能”——这又是为DEGUB做出的一个努力。

 

“我的函数可以接收任何不合法的参数,我的函数不会给外界造成任何的影响。”——无论你怎么折腾我都不会当掉,我也不会让你当掉,除非那是你的代码。

 

“高内聚,低藕合”

 

“JAVA和C++程序员是有区别的,前者多注重业务而不管底层实现,后者则是刨根问底那种”——脑海里还漂浮着某人说的“程序语言并不重要”的那句话,但我还是跟BOS有同感,JAVA和C++适应不同人的性格,JAVA还好,特别是那些Script语言的时候,心底总是有种说不出的不爽的感觉,好像是一种不踏实的感觉,又好像不是。反正就是不像在C++里那样,我可以很专注地在内存里移动一个一个的BYTE,我可以控制所有的事情。我想这是一种信任,为什么在家里和爸妈呆在一起的时候如此自然而舒适,但和一个所谓的“朋友”在一起时却全然没有那种感觉,对,这就是信任,Trust。太高级的语言在脚下垫了一层, 而我没法信任它,我也很怕它对这对那的约束,自由多好呀。把一种语言的区别上升到人的性格的区别,至少现在我是实实在在地感受到……

 

 “奇技淫巧”——把  i = i * 4 写成 i = i << 2  这在Kingsoft中往往是一种奇技淫巧的行为。给你一个用了某种技巧的代码,让别人觉得你很高深的样子:其实,这是垃圾代码。好的代码,应该是通俗易懂,引用他的话“我不是在贬低你们,好的代码就是要让你们一看就明白的代码”。炫耀和自作高深有可能会让你的程序付出巨大的代价。百度里的定义:

奇技淫巧qí jì yín qiǎo

【解释】:指新奇的技艺和作品。

【出自】:《书·泰誓下》:“作奇技淫巧,以悦妇人。”

 

BOS —— 从九十年代初开始开发WPS, 应该只是个暨大的本科生,口中没有多少理论,据说只有那些茫茫的程序员生涯中血泪换来的教训。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值