5
5rain6sky
Unregistered / Unconfirmed
GUEST, unregistred user!
计划跟不上变化呀,一个应用最重要的、也是最难的在于搞清楚用户究竟想要什么,
但是用户要么不知道,要么拿不定主意,要么朝三暮四,做过项目的兄弟都深有体会。
这牵涉到的不仅是对象设计的问题,还有数据库设计、具体技术的选择等很多东西,
高级语言把这些东西隔离开了,把程序员的注意力转嫁到语言本身的特性上去了。
再说对象设计的问题,实际工作当中我们经常碰到这样的情况:本来对象A和对象B分工
协作完成了用户的要求,并且也是我们认为最合理的,但是用户的新要求不断地迫使我们
把A和B中的独立的、完整的方法零零散散地摘出来,或者是再揉合成一个对象C,此时ABC
之间的关系已经远非我们所乐见的了。
说这个例子不是想讨论A和B到底应该怎么设计,而是请大家注意这样一个趋势——用户的
思维、也就是现实的思维是在朝着打破对象分界的方向发展的,拆来拆去,最后我们会发现
对象没有了(当然这是一个极端的说法,是为突出这一趋势)。我觉得这只能说明这种方法
本身就有问题,而不应该把希望寄托在“出了问题我总有办法改”上面,改的过程不就是对
自身的一种否定吗?
——一家之言,可能是我太理想化,希望哪位能指出问题的本质所在或是点明彻底的解决途径。
但是用户要么不知道,要么拿不定主意,要么朝三暮四,做过项目的兄弟都深有体会。
这牵涉到的不仅是对象设计的问题,还有数据库设计、具体技术的选择等很多东西,
高级语言把这些东西隔离开了,把程序员的注意力转嫁到语言本身的特性上去了。
再说对象设计的问题,实际工作当中我们经常碰到这样的情况:本来对象A和对象B分工
协作完成了用户的要求,并且也是我们认为最合理的,但是用户的新要求不断地迫使我们
把A和B中的独立的、完整的方法零零散散地摘出来,或者是再揉合成一个对象C,此时ABC
之间的关系已经远非我们所乐见的了。
说这个例子不是想讨论A和B到底应该怎么设计,而是请大家注意这样一个趋势——用户的
思维、也就是现实的思维是在朝着打破对象分界的方向发展的,拆来拆去,最后我们会发现
对象没有了(当然这是一个极端的说法,是为突出这一趋势)。我觉得这只能说明这种方法
本身就有问题,而不应该把希望寄托在“出了问题我总有办法改”上面,改的过程不就是对
自身的一种否定吗?
——一家之言,可能是我太理想化,希望哪位能指出问题的本质所在或是点明彻底的解决途径。