新生活新开发
新生活下班的时间变晚了,高节骤的生活让人压抑。这里的框架很自由可以说是想怎么写就怎么写,无pureMVC的影子真是件快事。以前老觉得解耦重要,可是想想新的项目,有多少旧东西可用,来来去去就底层交互,加载,缓存等这些东西是需复用的,其它的模块新项目都有不同逻辑。
这里的模块化开发虽然无框架,单例想用就用,觉得有必要重用的地方就用模式解耦,没必要就干脆直接引用访问,不解耦。以前一直觉得这样开发会乱,去年带队时不敢搞,现在算是知道这样做是有可行性的。
最近又是带新人,大公司就是有实力,招的新人底子也不错。正规大学出来的学生起码数据结构,设计模式这些他们有过概念,点一下他们就知道哪里应该怎么用了。
不过实践这东西真是急不来,跟当年的我一样,觉得这东西好就想什么地方都用。拿MVC来说,新人们只要是代码就分三层,有时真没什么必要,比如一个连连看,把每一个方块的数据都分出去一个数据层。然后写码的时候要改个x,y都要刷新一次,代码写起来很麻烦。用模式就是为了复用,而连连看的方块数据需要复用的几率有多少,如果是换写成对对碰,方法数据我不分出去,直接写在Sprite里面也照样是复用的。而一个小游戏最常见的关卡,成就,剧情这些模块,应该复用的模块他们却写得很紧耦。硬生生的分了个数据层,可是关卡数据没用vo数组,而是个静态变量写死在model里面,这样虽然是用了MVC,可代码一样是没有复用性可言。
归根结底还是经验最重要,例如新手学了设计模式,知道这样那样写代码可以复用,可是他们并不知道自己的项目中哪些是应该复用的哪些是没必要复用的。个人觉得,那些东西大概知道怎么一回事就行了,真正要做的就是实践,给自己定任务,刚开始多写几个小游戏,写的量多了,把自己写的东西拿出来总结一下,这些游戏哪些地方是能复用的,自然就懂了。抱着本书从第一个研究到最后一页半个月,一个月过去了,还是个莫名奇妙的阴影。总的来说就实践跟总结吧。
还想说说数据结构,有人问,干嘛搞这么麻烦要用链表,直接数组不就得了,as的数组出栈进栈队列操作全都有。这问题我也不知道怎么个答法。没写过C,没接触过指针的人自然不知道堆栈干嘛要自己写。事实上as里我也觉得没必要,我做过测试,自己写的链表不管怎么写,怎么提速效率都不及官方的Array。还有排序也是,排序我也有贴子做过测试,只有快排是比官方sort快一些的,而快那一点点意义也并不大。唯一好处就是稳定,因为官方排序是不稳定排序,但是,需要稳定排序的地方有多少呢?
同个理,数据结构这东西也是知道个大概就行了,用的时候再去查。比如写地图搜路的时候就去翻翻图的应用,写寻路的时候就去搜二叉优化树。别把自己大脑当硬盘用。背那些东西,除了面试时候装一下,平时真没必要。
还很多初学设计和初学结构的人都会觉得自己比那些没听过的人强,这种思想是严重问题的。一个有经验的人学两天就会总结出自己的项目贯通。没经验的就乱用模式。技术强与不强是看你听过那个模式后能不能快速想到在哪里用。而不是听到模式后快速的背出它的概念。
技术的东西虽然多,只要专到一定基础,每项都不难,解耦其实也只是这一堆不难的技术当中的其中一种而已。