今天在论坛上逛,看到一篇“如何删除数组里面的某一元素”(http://topic.csdn.net/u/20090112/15/9ead06a1-006f-472f-96cd-4221cf7e8eb9.html)的问题,仔细分析了作者的需求,其实实现的方法有很多种,在后面的回帖里面都已经给了,我要说的也不是怎么来实现这个需求,我要说的思考问题和解决问题的思路和方法。
其实我们做开发的只是通过我们的IT技术来解决我们实际生产生活中的问题,提供更多的便利和方便,而不是为了做开发而开发。我经常看到程序员为了实现一个需求不停地重复地采用一种方法一头走到底,而不抬起头来看看我这样做是否正确,是否还有其它的方法来同样的达到我的目的。
当我们拿到一个需求时,首先要做的并不是想我用什么技术来实现,先把技术放在一边,先弄清楚这个需求到底解决实际生产或生活当中的什么实际问题,这个需求是否还有可能延伸出其他的需求来,现在这个需求是靠什么来实现的,实现这个需求之后到底能不能解决实际的问题。当思考完这些问题之后,你对这个需求就有了一个全面的认识和理解(思考问题和分析问题)。
经过以上的分析后即可着手考虑怎么来实现。单纯的开发来说,要实现这个需求我有哪些技术或方法能做到,这些技术和方法都有些什么优缺点。
现在再回过头来看看作者的需求,原始字符串 "fff|sssssss|xd",要得到“fff|xd”,其实单就这一个描述来看只是一个简单的字符串分切和拼装的问题,但仔细深入分析后,你会发现这个需求可以这样分析:根据原始字符串中的特定分隔符进行分切,然后再将分切后特定位置的字符拼装成一个新的字符串;进一步扩充这个需求就是根据特定的分隔符拼装任一位置的字符串。当然,实现的技术已经在帖子里面给出了很多。经过这一分析和扩充我们是否考虑把这一需求实现为一个公共的方法呢。
所以我们做开发的时候不能只是为了实现需求而实现需求,要有发散性思维和多向性思维。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15232277/viewspace-541581/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15232277/viewspace-541581/