当前位置:C++技术网 > 资讯 > 个人开发的经验总结分享

个人开发的经验总结分享

更新时间:2015-06-27 18:53:03浏览次数:1+次

    我出于性格原因极其讨厌管理系统。觉得编程无非就是三部分。1,交互。2,存储。3,处理。其中交互是做起来最繁琐的。也是一般的程序员花心思最多的部分。所以我们十分有必要研究这个。交互如果能够做的简单,那么我们就可以把更多的精力放在存储的安排管理和处理的简洁高效上。
    我说的交互,主要分成程序员和用户的交互,引擎、IDE和程序员的的交互,程序员自身函数与函数、类与类的交互。程序员和网络的交互(查资料)。程序员和用户的交互由于主要是根据需求调研来的,就不说了。
    我们观察U3D的编程,能轻易发现,它有一个基类,是所有东西(不论是技能,是表格,是灯光,是摄像机,单位等等)的基类GameObject。为毛这样?我的理解是它可以用虚函数把接口做得非常简单。(虚函数,即当把子类的对象赋给基类指针 *a 或基类引用&a时,a->虚函数 或 a.虚函数 即 调用子类的同名虚函数。)说白了就是提高函数名的复用性,减少函数的名字。
    重载和泛型(

template<class T>
func(T t)
{}//为了调用变量
     或
tempalte<typename T>
CClass<T>::func()
{}//为了调用 T 类型中的函数

    莫不如此。可是很多人,包括我们在内,是怎么做的呢?我们不用重载,我们懒得用泛型,而是宁可在函数里多加一个至数个参数,以表明其调用方式。这就使得我们自己写的函数,我们自己调用的时候都经常傻傻分不清楚。我个人的看法,如果能够大幅提高调用方便性,不怕重载得多。泛型这个东西还是少用。因为用过的都知道越是基类用泛型,其运行速度将大幅度下降。

    对付bug的方式。一般有两种。从根本上修改以消除bug(多用于我们自己写的函数和类),或精确的推测出bug的出现条件和出现时间,在它出现后马上进行调整以掩盖bug(多用于使用别人的包、类库和很多东西集成的时候)。我要说的是,在掩盖bug的时候我们一定要选择一种可扩展性非常好的方式。即使日后再加别的东西的时候,也能够很好的掩盖这个bug,而不要使用那种仅仅能在目前这个问题掩盖bug的主要影响的方式。判断可扩展性好不好的方式是绞尽脑汁的想,以后还有什么东西能用到这个出bug的函数、控件、部分。

    函数间的交互,传参的时候,我们会尽量避免那些难以获取的参数,或是必须经历数个过程才能拿到的参数,而把这些不得不做的东西放到函数内部去实现。这样我们调用的时候就会简洁得多。并且思路清晰得多。容易获取的参数主要就是那些基本的类型,比如string(字符串),int,bool。
    在类的内部我们尽可能的做一个用于比较,转换的函数或接口,(比如swap啊,ToString啊等等)或是用友元的方式重载运算符。这样那些不得不做却非常繁琐的工作我们就可以只做一次了。如果你想要不必每个类都写一遍这些破玩意,那就弄个基类写上这些吧。全局函数也行,斟酌使用。反正基类的一些静态函数,函数或是func()const,能在很大程度上代替全局函数,并且更加规范易用,简洁明了,关联性更强。
    至于编译器的那些函数,我推荐去这个http://www.cplusplus.com网查,比在线msdn快,点的也方便。如果看不懂鸟语,可用猎豹浏览器。该浏览器有翻译插件。