首页 > 代码库 > 失败的项目案例分析
失败的项目案例分析
题外话:印象笔记和有道云笔记的阅后感,感慨老外做出来的产品是具有一种灵性,细节中充斥着人性化;而国人做的产品比较死板(照葫芦画瓢)大致是为了完成任务而做出来的产品吧,功能点人机交互不是很流畅(仅代表个人意见)。
突然联想到自己刚刚结束的一个项目中,(1)缺乏人性化设计:有一些功能点受限于开发期限的问题以及自己开发能力不足,为了实现某一功能而去完成任务,没有太多的去考虑实际使用过程中人机交互,往往缺乏人性化设计的过程。(2)面向过程编码:在开发过程中,大家都是各自完成各自的功能模块,可能会存在彼此交叉的代码以及一些特殊的处理方法等问题,可能是由于缺乏沟通,有很多代码其实是重复性的,完全没有面向对象开发的痕迹,感觉框架定下来以后大家都是围绕着框架针对功能点进行面向过程开发了,完全忘记了面向对象的三大特质:封装,继承,多态;更加忘记了使用设计模式去设计优化自己的代码,整个代码完全就是四不像了,一个类变成了超级类,三头六臂,什么都能干了;完全是低内聚,高耦合了。我一直认为这就是开源框架给我们造成的疑难杂症。为什么这么说呢。现在好多的java开发人员都是只会用java开发,不懂设计模式,不知道spring、struts、hibernate的原理,只会在别人搭建好的框架上针对某一项业务功能进行编码,实际上是非常初级阶段的,为了完成某一功能的编程,这种程度跟我们在大学里考计算机等级考试的编码没有区别。怎样才能提高自己的编程能力,就得从设计模式,重构这两本书上面寻找答案,在现有的项目中去实际,历练。(3)数据库设计混乱:数据库设计的重要性,经济学中有“经济基础决定上层建筑”,同样在软件设计中也是相通的,数据库设计决定着代码结构;好多为了方便操作这里加一个外键,哪里加一个外键,虽然我知道这样做不对,但是我不确定到底影响到哪里,所以也就默许了。(4)代码可读性差:代码注释没有体现出这个类,这个方法,这个字段真正的含义,导致别人修改代码的时候很费力,很费时。(5)代码的可扩展性,可维护性差:由于之前(2)中提到了面向过程的编码导致了类本身失去了其存在的意义,变得无比庞大,无比万能,无比难以理解;根本就没有可扩展,可维护性。我们知道在面向对象中,一个类(class)只能处理某一类或者某一特征的对象的部分属性和行为,也就是说person类就只能干人该干的事儿,animal类则只能干动物该干的事儿,不能混为一摊了。利用接口,抽象类来提出公共的属性或者方法。(6)代码重复:能够复制粘贴的地方就可以重构,将一些常用的方法,属性放到静态类中,这样一来提高性能又避免了代码重复。
能想到的也就这些了,因此准备在过年前这段时间里,将这个项目的代码进行一下重构,提升一下性能啥的吧。刚好也把设计模式和重构的思想活血活用一下也是不错的啊。
印象笔记引起的思考,^_^
加油吧,兄弟
失败的项目案例分析