什么是程序中的逻辑问题?
所谓程序逻辑,一般认为是实现功能要求的上下文关系;包括代码的组织方式,算法,设计等方面。通常情况下它主要取决于详细设计的优劣;好的详细设计可以提供一个非常流畅的上下文关系。而程序员所做的工作,其实就是怎样组织好代码内部的逻辑关系。但是实际的情况是:我们的详细设计大多作不到这么详细,而且很多设计的工作甚至留给了开发人员自己去做;这种情况下,再加上项目时间紧,程序员的代码基本上成了一锅粥。对外好像功能实现了,检查一下代码,开发人员本身都不知道自己写的是一些什么东西。规范一些的公司,会提供一些对代码风格检查的工具,在开发阶段强制程序员来完善代码外在样式。但是代码内部的逻辑呢?怎么去把握,就只能靠程序员自身的素质了。而这一点对于以后的维护等阶段的影响甚至比详细设计都重要,需要一个很好的办法来解决。
其实最简单的办法就是应用“设计模式”。也许有开发人员或管理人员马上会笑,“设计模式”?怎么可能?但是,它的确可能解决我们对问题。我可以根据我的经验来问:一般会认为“模式”对应于设计,但是提供给你的设计能做到不需要程序员再设计的地步了吗?(这个还不包括需求频繁改变,涉及频繁改变等更严重的问题)也许马上会有人说“模式”大多数作开发的人都知道啊,什么工厂,代理等。但是其他的你知道吗?很多程序员知道一些模式,但是只是“一些”。如果你学过了模式,知道了各种模式。那么你在实际项目中用过吗?你知道状态,命令链等模式对你的代码管理有什么样的帮助吗?等等这些问题。细想一想,很多其实我们没有做到。
一般开发人员说到”设计模式“的时候,往往把它归到“设计”阶段。但是编码阶段(特别是实际项目中我们不可能很明确的将各个阶段明确分开的时候)同样需要设计。对模式的应用是开发人员和管理人员真真需要重视的,它真真能够让开发人员写出一流的代码,然维护更容易进行。如果能在编码中对模式的应用相对if ,else 那样自然而然。开发会变得更有趣更有意义。