设计思考
最近在师父的帮助下完成了一个小的工具设计,这个小的设计花了我蛮长的时间,一直在更改,变化,直到现在算是设计完成,这里做下总结思考。
首先,自己想做的是一个基于mysql的单表数据操作类,有着最基本的单表增删改查,还有单表特殊操作,比如审核,获取默认情况下的单表数据等(这些是基于基本操作的,为更方便的管理,因为将单表的所有操作在一个类中控制起来,就能够很好的管理),然后它能移植到各种数据库框架下,比如系统使用的是Adodb,或者有可能就是php提供的mysql操作等。
但是由于之前的分析很乱,这个东西经历了无数个版本。因为设计思路很乱,分析不够透彻,最主要的就是体现在,直接由需求到代码,或者中间只做了少量的分析后就开始写代码。这样,每当想到新的情况、新的功能、新的问题时都要改变代码,所以这个东西一直都没完成。现在回想起来主要有以下几点原因:
1、没有考虑条件、基础,在自己认定的默认的条件下工作,而不考虑到底是什么条件,什么环境。比如开始在思考单表操作时,根本没想到它是建立在db表的基础上,它就必须维护或者说引用一个数据库连接,这样才能确定表,否则表就没有存在的意义。这样,就老是分不清,具体这个数据表类该做什么,而db又该做什么,是不是需要一个新的东西来连接两者,使他们分工,都会很糊涂,迷茫不清。还比如你要写程序,你要用什么语言,用什么数据库,虽然它可能是已经定下来了,比如你要用php+mysql,但是你得思考这个基础,看它是不是坚固的,不会变的,默认的,已经形成的,不代表就没有条件,只是没有去思考,没有去确定,这样当这种条件改变的时候,你头痛的事情就来了。
2、跳跃的思维,没有根据来源的造物。在思考数据表该做什么事的时候,没有思考清楚,总是再想它需要什么功能,感觉它要处理数据表的操作,但是却没有思考,这个数据表的操作又是怎么来的,它自己能做吗?不能做应该由谁来做,它做的话会有哪些限制,这些都没去想,只是想了,它应该处理数据表的操作。又给自己带来了迷茫,困惑。
经过这个小小的设计,学到了一个至关重要的理念,就是设计不能有空中楼阁,不能进行跳跃,任何概念,都必须弄清楚,怎么来的,做了什么,需要什么。看看认真的思考后,那么思考全面了这个概念也就出来了,抽象也就出来了,剩下的实现就很容易了。