如何快速理清大型项目业务逻辑

引言

本篇文章为了探讨如何快速上手一个大型项目。针对经验尚浅需要快速接手一个项目的开发人员。

当他们拿到一个大型程序后,他们便开始一句一句的阅读分析,夜以继日,悬梁刺股。可结果依然不理想,往往进入以下状态:

1、花费了很长时间,也没有多大进展,与当时预计的日期相差甚远。

2、由于周期较长,他们往往在重复阅读分析最初的极小部分。就像有的童鞋读书一样,几个月前读的是前两章,几个月后还是那两章,原地踏步。

3、他们没法弄清程序的结构,云里雾里,看不清前方的路,也记不住走过的路。久而久之便形成胆怯心理,当接手一个新功能后,在士气上已经失败了,渐渐地丢了那股初出茅庐时的勇气。

这样的状态对他们产生极负面的影响:

其一,任务不能如期完成,导致成本一再飙升;其二,不便于他们能力的提升,因为要能力提升往往需要去更多的研究他们实现的系统或优秀的开源项目。

解决办法

以下是如何快速理清程序脉络,业务流程的方法建议:

1、搭环境、跑代码

当你拿到一个程序后,即使你不看代码,通过交接人的介绍、项目经理的介绍、其他同事的介绍,也应该知道它是干什么的。然后,知道了大致功能后,把环境建立起来,想办法让程序运行一遍。在一般情况下,要做到这一点不难。

为什么推荐首先运行程序呢?因为建立好的运行环境,一方面可以初步验证一下此程序的功能,以及正确性完整性;另一方面方便接下来的分析调试,为断电调试和日志调试提供了可能。

2、掌握程序的结构

如果是开源项目,那就想办法找到作者提供的WiKi设计说明等。

如果是企业内部开发项目,则一般都会有完整的文档,不要舍弃文档阅读代码,这样一定没有什么好果子吃,其实程序都是在试图对业务流程进行“代码解释”,即将业务流程转化为if-else,尊重文档的作用至关重要。

3、先整体,再局部

整体是相对的,所以,我们以相对的整体来说,将大致的整体逻辑理清,再去研究细节实现。

不要一开始便逐字逐句的阅读代码,这种方法是最低效。这些童鞋往往是先了解各个点,再将点串也线,线串也面。他们直到最后也不一定看清楚程序的真面目,或经过几个月才豁然开朗。整个过程如地狱般煎熬。

而推荐的方法是:先整体再局部,先平面再线点。这样不仅更高效,而且轻松。

4、大胆猜想,小心求证

在阅读程序的过程中,我们往往对某一处或几处逻辑不肯定,可能是这样,也可能是那样。

当处在这种状态下,我们往往不知道如何选择,停滞不前。

其实这个时候不需要顾虑太多,大胆猜想,将自己的假设带入到逻辑分析中去,看看是否可以得到验证。那么需要注意的就是,需要保持一个客观的角度去验证我们的猜想,此时也需要小心谨慎避免过度猜想,以免走偏。

5、调试程序

我们可以通过断电调试和日志调试来进行代码逻辑的追踪,或日志分析。

关于日志分析,我需要多说两句,如果一上来就看日志的话,我认为是非常糟糕的方式,如果在测试的情况下日志会变得非常混乱。建议先掌握业务逻辑,根据业务逻辑文档,慢慢的把实现与业务逻辑对应起来,顺便通过日志分析来完成理清业务逻辑的目的

6、熟悉关键表

数据的存储是应用程序的根本,不论什么项目,都需要与数据库打交道。

对于关键表的结构、字段含义、业务流程中涉及到的相关表操作等等,都应该在前期快速掌握,建议先刻意的记忆,能达到比较熟练的查询业务中需要的数据的效果。这在加速熟练业务方面大有裨益

7、适当的背一背关键业务流程

如果项目比较正规,且有相关的UML流程图,一定要打印出来,在进行实现-需求对照过程的时候,一定要手拿流程图去熟悉业务流程。把关键的流程,或者分配给你的业务流程记在心里。

有人可能会疑惑,为什么要背业务流程?这是因为,从个人的经验来看,前期如果能够快速的记住流程和步骤,能够对后期熟悉业务有非常大的好处。不要抵触记忆流程的方法,因为代码的实现者在实现的过程中一定是不断的去思考业务流程的,所以实现者一定能够清楚的记忆流程中的每个细节。所以,看别人的代码一定要先做到流程在心中、代码似亲生。花点时间背一背流程图,绝对有好处!

终极奥义:百度

如果进入一个新的业务领域,相关的知识不懂就百度百度。

你可能感兴趣的:(如何快速理清大型项目业务逻辑)