代码因思想而美丽
作为程序员中的一位普通青年,我也是在青春 无知与懵懵懂懂中走上了编码人生路。对编码这份工作,曾经为之迷茫、彷徨,甚至恐惧过,也曾经为之激动、醉心,甚至沉迷过。现在静心 下来想想,自己还能以此为乐的原因就是代码中溶入了自己创造与思想,不感枯燥无味。以一种创作作品的心态对待编码过程,就会乐于其 中,编码能力才会不断提升。
编码态度:多看 多 问 多思
代 码无小事,每行代码都可能关乎产品的命运。因此,我一直对代码保持一种敬畏感,对每行自己写下的或者用到的代码都要清楚了解其作用、 引起的结果,不带疑问去写代码。
不 管提交的代码多还是少,我总会在代码提交阶段进行三遍自检:上库前通读看一遍,确保功能没有问题;在SVN提 交时,通过提交界面再对比看一遍,确保上库的东西都是自己想上库的,并且没有低级错误;上库后再看一遍,确保代码已经正确上库,并且 做最后的检查。低级问题往往出现在最简单的代码中,正所谓:“泾溪石险人兢慎,终岁不闻倾覆人。却是平流无石处, 时时闻说有沉 沦。”
对 程序员而言,没有变化的单人世界一定是完美世界了。可惜现实是你要与一大帮子想法不同、水平不同的程序员共同应对一直增长的、还有说 变就变的客户需求。仅仅功能正确的代码不足以应对这些。因此编码时我会多思考下:其他人甚至新员工能否一眼看明白?能否供其他人或模 块使用?客户需求扩展了需要大动干戈吗?
我 有一个代码生存原则——经过多轮版本冲击,历练打磨后还能完整无缺生存下来的代码就是好代码。这些年经过我手,干掉的代码数以万计。 我自己在编码时,就会不停问自己,这些代码会沦落到被别人干掉吗?这些代码如何写才能长久生存?
经 过这些思考,会帮助我做正确的决定,大到需求分析、架构设计,小到函数命名、变量定义。
编码技能:始于读、发于思、成于行
关 于技能,我是在通读数遍C语 言四大经典,在工作中编写了数万行代码,并不断总结后开始入门;是在阅读《代码大全》、《人月神话》后获得启迪,又做了数次重构及独 立模块开发后开始有所悟;是在接触到面向对象编程,十多遍苦读《模式设计》、《Thinking in C++》、 《The C++ Programming Language》,并独立用C++重写近十万行的MiniWindow源码后开始有质的提升。
强 烈推荐对编程有兴趣的同学深入学习面向对象的思想与分析方法。有些“大牛”仅仅通过多年的经验积累和对代码的感觉,使用面向过程的方 法也能组织出优美的代码,但是对我这种资质一般的人来说,面向对象编程真是个软件技能提升的捷径。面向对象的书籍、文章、论文现在都 泛滥成灾了,个人经验是:读书百遍,不如动手一遍。面向对象最好的学习方法就是实战:在阅读后实战,在实战中总结,在总结后再印证所 读。
编码实践:多思考,少编码
程 序员没有熟练工之说,软件技术能力不会简单地随着工龄增长而增长。如果一直用旧的思维与方法编码,却希望出现新的结果,那一定是疯 了。
因 此平时我会多接触不同的编程思想、理念,不停地审视自己的代码,思考代码如何组织,而不是只简单根据需求实现代码。不思考,无进步。 只有多思考了,才会少写代码。真正经过思考后写出的好代码如同美女:多一行则嫌臃肿,少一行则会不足。
对 自己的代码要狠,要以挑媳妇的眼光挑剔每行代码,边写代码边回头审视,并进行精炼。写完一段代码后也立即进行精炼,能少写一句话,绝 不多费一行码。完成整个特性或者模块后,一定回头想三遍。以我自己的经验看,新写的代码总感觉很满意,过一段时间再来看代码,却总有 可以优化的地方。可见好代码是琢磨出来的。
好 的程序员也一定要是一个为他人着想的好人,编码时我会时刻想着别人能否容易地读懂,能否方便地重用,能否快速地扩展。
这 些,就是我的编码之道。
作为程序员中的一位普通青年,我也是在青春 无知与懵懵懂懂中走上了编码人生路。对编码这份工作,曾经为之迷茫、彷徨,甚至恐惧过,也曾经为之激动、醉心,甚至沉迷过。现在静心 下来想想,自己还能以此为乐的原因就是代码中溶入了自己创造与思想,不感枯燥无味。以一种创作作品的心态对待编码过程,就会乐于其 中,编码能力才会不断提升。
编码态度:多看 多 问 多思
代 码无小事,每行代码都可能关乎产品的命运。因此,我一直对代码保持一种敬畏感,对每行自己写下的或者用到的代码都要清楚了解其作用、 引起的结果,不带疑问去写代码。
不 管提交的代码多还是少,我总会在代码提交阶段进行三遍自检:上库前通读看一遍,确保功能没有问题;在SVN提 交时,通过提交界面再对比看一遍,确保上库的东西都是自己想上库的,并且没有低级错误;上库后再看一遍,确保代码已经正确上库,并且 做最后的检查。低级问题往往出现在最简单的代码中,正所谓:“泾溪石险人兢慎,终岁不闻倾覆人。却是平流无石处, 时时闻说有沉 沦。”
对 程序员而言,没有变化的单人世界一定是完美世界了。可惜现实是你要与一大帮子想法不同、水平不同的程序员共同应对一直增长的、还有说 变就变的客户需求。仅仅功能正确的代码不足以应对这些。因此编码时我会多思考下:其他人甚至新员工能否一眼看明白?能否供其他人或模 块使用?客户需求扩展了需要大动干戈吗?
我 有一个代码生存原则——经过多轮版本冲击,历练打磨后还能完整无缺生存下来的代码就是好代码。这些年经过我手,干掉的代码数以万计。 我自己在编码时,就会不停问自己,这些代码会沦落到被别人干掉吗?这些代码如何写才能长久生存?
经 过这些思考,会帮助我做正确的决定,大到需求分析、架构设计,小到函数命名、变量定义。
编码技能:始于读、发于思、成于行
关 于技能,我是在通读数遍C语 言四大经典,在工作中编写了数万行代码,并不断总结后开始入门;是在阅读《代码大全》、《人月神话》后获得启迪,又做了数次重构及独 立模块开发后开始有所悟;是在接触到面向对象编程,十多遍苦读《模式设计》、《Thinking in C++》、 《The C++ Programming Language》,并独立用C++重写近十万行的MiniWindow源码后开始有质的提升。
强 烈推荐对编程有兴趣的同学深入学习面向对象的思想与分析方法。有些“大牛”仅仅通过多年的经验积累和对代码的感觉,使用面向过程的方 法也能组织出优美的代码,但是对我这种资质一般的人来说,面向对象编程真是个软件技能提升的捷径。面向对象的书籍、文章、论文现在都 泛滥成灾了,个人经验是:读书百遍,不如动手一遍。面向对象最好的学习方法就是实战:在阅读后实战,在实战中总结,在总结后再印证所 读。
编码实践:多思考,少编码
程 序员没有熟练工之说,软件技术能力不会简单地随着工龄增长而增长。如果一直用旧的思维与方法编码,却希望出现新的结果,那一定是疯 了。
因 此平时我会多接触不同的编程思想、理念,不停地审视自己的代码,思考代码如何组织,而不是只简单根据需求实现代码。不思考,无进步。 只有多思考了,才会少写代码。真正经过思考后写出的好代码如同美女:多一行则嫌臃肿,少一行则会不足。
对 自己的代码要狠,要以挑媳妇的眼光挑剔每行代码,边写代码边回头审视,并进行精炼。写完一段代码后也立即进行精炼,能少写一句话,绝 不多费一行码。完成整个特性或者模块后,一定回头想三遍。以我自己的经验看,新写的代码总感觉很满意,过一段时间再来看代码,却总有 可以优化的地方。可见好代码是琢磨出来的。
好 的程序员也一定要是一个为他人着想的好人,编码时我会时刻想着别人能否容易地读懂,能否方便地重用,能否快速地扩展。
这 些,就是我的编码之道。