我学编程这几年(2)

      曾经在MS实习的时候,我本来准备看一些软件工程之类的书,我Mentor建议我先学好一些基础的东西,对于软件工程这件事情的态度,则是在不断实践中学习。用一个时髦的说法,就是去收获一个属于自己的软件工程,或者最佳实践。现在想想很对,我一路走来,编码风格的转变,都是在吃了很多很多的苦头之后,去看看别人的经验,然后吸收自己很有感触的东西,然后纳为己用。我从来没有刻意的去安排时间去系统的学习如何写代码,很多时候都是在自己学习新语言,或者烦了无数错误之后,学习一些理论,进行改进。要找个理论支撑的话,就扯扯Kent Beck在《实现模式》里面有一个观点:尽量少的提前做出改变。因为现在的时间的重要程度是大于未来的时间的重要程度的。回顾一下自己一路走来的变化吧:

      最开始用Pascal写代码的时候,考虑的就是怎么实现算法。当时基本没有对代码质量、实现模式等东西的思考。很多东西都是写在主程序里面,到处都是全局变量,因为感觉全局变量用的很方便。

      后来,由于吃了一些亏,开始慢慢的注意着把函数分开,变量慢慢变成局部变量,变量名也开始逐渐使用一些有意义的缩写。也用一些结构体之类的东西。

      去了MS之后,自己更加注意一些编码风格方面的问题,去遵从自己知道的.net的编码规范。变量在要用的地方再申请。使用面向对象的一些基础特性。开始尝试的抽象出一些东西。

      到了今天,我仍然记不清SOLID原则,我也不知道自己到底使用了它们当中哪些原则。准备最近把这一块补一下。但是从最近写代码的感觉来看,我又有了一些变化。比如从Objective里面吸收的长变量名风格,这导致了我现在的变量基本没有缩写了。现在也会尽量把数据和操作封装到单独的类,把变化率一致或者相近的元素放到一起,会让类尽可能的小,让每个方法都尽可能的小,会写一些必要的注释,尝试使用TDD。还有就是前两天从Kent Beck中学到的:成对编程。比如,如果写了get函数,就会写set函数。

      感觉以前的这种粗放的、自由的增长模式的好处就是一旦学习了一些新的东西,会很容易产生共鸣,然后理解并且记住,甚至最后进行演绎。这样最终很有可能会收获属于自己的编程风格。但是这样做的坏处就是:成长相对缓慢。因为只有在你充分不爽的时候,才会去寻求改变。而且通常改变了一个小的习惯之后,就会让不爽的情绪下降一些,然后又可以维持很久。由于在近期可能自己的工作环境可能会有很大的变化。新的环境对开发人员的要求可能会提高很多,所以有必要在近期进行一些更为集中的学习,提高自己的代码质量。

     研一上学期,我接触了很多新的语言。个人感觉学习新的语言不止可以学到新的语言,还对旧语言的学习与掌握有很大的帮助。orz,我的《七周七语言》要抓紧看了……要学习的东西太多,慢慢弄吧。Slow is smooth, smooth is fast。

posted on 2013-03-02 23:03  hibix  阅读(300)  评论(0编辑  收藏  举报

导航