程序如练功,也分为内功和外功,这些话似乎已经老生长谈了,在很多书籍里都可以看到,但看到归看到,得理解这句话的意思,不然有什么用?
软件开发中什么是内功什么是外功呢?我的理解,内功不仅仅是有些书所说的面向对象编程思想,那在面向对象思想出来之前我们的IT人们就不开发软件了?当然不是这样了,所以内功是一种不依赖于语言的东西,是种放之任何项目皆准的东西,有了这样的能力,就知道什么样的项目什么什么样的语言更合适,什么样的项目采用什么样的架构更合适,而且能够掌握一个平衡,没有完美的方式,只有合适的方式,不是所有的项目都需要去找出一种很优雅很完美的架构方式,而且是合适的,先是能用的东西,才有更好的东西,扯得有点远了。另外,内功还包括一些保持软件随时可以发布、合理审查代码、写清晰的代码等良好的习惯。外功仅仅是如何利用语言特性写出更高效,更易懂的代码。
说下项目吧!项目采取一个倒树的结构方式,最大的容器里有两个容器,再下面又分出很多的容器,通信采取事件的方式,每个模块只处理自己能处理的功能,与自己无关的直接向上层抛事件出去,
这样的模式有几个好处:1)利于模块的独立,互不干涉,拔插容易;2)不需要前期长时间的架构,适于需要马上进入代码的情况;3)整体项目不会被个别模块牵制而不能发布。
当然也有缺点:1)会有数据重复的情况,为了模块的独立,每个模块单独处理自己的功能,就最好不要利用单独的数据层,不然有可能会被数据层所牵制,但各模块难免会出现功能重复的情况;2)效率应该不是很高,总没有直达的快嘛!用接口设计架构可以实现消息直达。
具体到具体的功能编码中,这种思考方式同样会用到,城内功能也是分出地图层啦,建筑层啦,格子层啦,效果层啦,操作层啦等,新建建筑拖动建筑时建筑层和操作层各负责各的东西,由最大的容器统一调用,两者不共同持有 一个东西,如:建筑MC不会从建筑层给传到操作层去,而是在操作层生成一个新的表现。还有类要保持类的功能单一、内聚,不出现冗余的类出来,类接口也要清晰,专用,精练。
没有评论:
发表评论