好久没听米老师讲过课,又一次感叹“听君一些话,胜读十年书!”。经过这1个多小的验收,感触挺深的,很多事情一说,嗯,大家都知道,都能说得溜溜的,可一到实际上就不是那回事了。下面我说说经过这一个多小时的验收,我较为深刻的几点:
1.预留字段
我第一次听说也是在考试系统,记得当时我问他们other1是什么时,她们告诉我这是备留字段,这次也用到了,我当时就问他们这有啥好处,他们就说防止以后需求有变化,而且要改动数据库,如果不预留的话,到时和那个有关系的所有都要改动。当时听了觉得也在理。虽说可以动态添加字段,可以逆向工程,实体那儿就可以解决改动问题了,但是其他你用到的地方,如插入一条数据,一般的人会写明往哪几个字段插入数据,但是有的人不那样写,直接写完表名后就接着是插入的数据,如果很多这样的写法,那样如果改变数据库会出很多问题。所以当时就认为这个办法很好。后来您一说这其实是我们“害怕变化”!,一想想,可不是!变是永远不变的,这句话听了N遍,可是具体事情了,就抛之脑后了。当时只想着怎么让自己省事,从不考虑浪费了用户多少的空间,用户使用的效率如何如何,只想着眼前的自己。多为用户着想,这句话都知道,但是不仅要知道,还要在现实中时刻体现到。
2、显示与数据库,不要对应。
这就是时常说的分层思想,解耦思想。可想想我们具体做的时候,首先考虑到的是如何将结果显示就OK,没想到用户时常要变的,用户他们都不知道他们到底要什么东西,今天可能告诉你我要怎样怎样,可是当一出来发现不是我想要的效果,就又说我要那样,可能再做出来还好说不是那样。
3、数据库表可建文件夹(分类)
思维定势,这是我首先想到的,别人大多是那样直接建的数据库表,我们以前也是直接建一绺数据库表,从没想过给他归类,照章办事,从未突破。总结的时候现在能想着要归类了,但是换到其他地方就是将他完全抛之脑后,1+1原则,平时唱得很好听,可是做的时候。。。
4、两极化(考虑使用的人群)
也是说做东西的时候,不要考虑自己,要考虑使用的人群,这是为谁做的。例如,百度,使用百度的人有两种,一种是什么都不会的人,直接在框里输入想要的东西就行;一种是很精通的人,用第一种那样查询太费时间了,直接高级查询,细化查询条件,很快就出来。
想自己的事,做出来的项目自己一人用;想100人的事,做出来的项目100人用。
挺赞同这句话的,想想第一版基础系统确实是那样,那个系统让做开发的使用还行,可是让对研发什么都不懂的客户来说,上手很难,特别是授课那块不知从何入手。当时还佩服老牛了,都不咋会用,现在再用的时候,其实心里老埋怨,咋不能做简单点呢。看百度,就一个框,你想要什么直接输入相关字查询就OK,再回过来看看我们做的东西,百度确实有好多的东西值得我学习。做项目的时候要想着,用这个东西的人群他们确实是什么都不会,回了还要你干嘛?!所以开发的时候要想着是给猪开发,要不然就是猪给开发的!
那么多废话最后总结也就两点,一点是站在用户角度,多为用户考虑。另外一点就是做开发随时都必须考虑的,做什么东西要做灵活,要高内聚、低耦合,等等。
要随时想着一句话:咱是给猪开发的,不然最后就是猪给开发的!