清风文录

2007年7月14日星期六

C++

使用C++开发做了几年,并且自己业余时间开发了一个完整的Posix的SIP服务器架构,因此,期间体会若干,记录之以此分享。之前,仔细看一遍《设计模式》的书是很有必要的,这是指导如何设计的基础。

其一,抽象出所需要设计功能的最简单的流程,就是需要从最基本的角度去看待业务的功能,进行基本类的设计。譬如:通信的功能,通常就是把消息从一个地方发到另外一个地方,基于此设计最基本的类,然后根据具体的业务功能需要,再进行子类的设计,通过不断的细化来完成业务功能。不要指望可以一步到位的设计好所有的结构,因为,事物是不断发展的,业务也是如此,因此,在明显看到需求的地方进行子类的设计,在尚不清楚的地方可以用函数,或者其他的方法解决问题。以后,再对需要持续改进,久而久之,程序的框架就会显得清晰和有条理。在此过程中,根据需要使用虚拟继承。

其二,不要过分追求技巧,好的程序的判别标准是别人给的,因此,让别人能看懂程序如何实现是至关重要的。如果用指针之类去提高效率,可是几个星期之后,别人阅读时不知所云,则显得得不偿失了。毕竟,硬件是在不断发展的,提高效率,优化程序,还是交给硬件和编译器优化器去做吧,在这一点上,JAVA无疑是非常成功的。因此,我还想和负责面试的同事说说,不要用那些指针,括号去为难人,考察应聘者对于程序的设计能力显得更重要,你总不想在同事离职之后接手他程序时什么都看不懂吧。

其三,如果你学习C++原理,但是实在搞不清楚虚拟表怎么实现,那就不要去管他了。没有读过JAVA的GC代码的人难道就不能做一个好的JAVA程序员了吗?务实的学习如何把程序写的简洁清晰,培养良好的开发习惯,如要不知疲倦的写测试用例,并且“画蛇添足”的多写注释,对于开发真正为我们生活服务的产品来说,显得更加重要。


标签:

0 条评论:

发表评论

订阅 博文评论 [Atom]



<< 主页