首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于软件工程师/程序员,如何快速理解业务代码

背景

一些知识

数据驱动编程

业务逻辑的信号

阅读一个函数

如果模块中用到数据库

如果业务代码中涉及到了一些数据常量

常识

步骤

心态

背景

这几天没任务,公司里带我熟悉业务的大哥叫我看看公司项目中的各个模块的功能实现,熟悉那些我还没用接触过业务。 大部分的功能模块我都看了一遍,大致理解业务流程,和大哥交流的前几个模块的功能都很流畅。最后的一个功能模块,我看了两天(当然不是全天时间都花在这上面):

第一天是找错接口了,看的代码实现的是根本不是目标的功能的实现代码,直到和大哥交流的时候,才发现这个问题。

第二天找到了对应的实现后,今天看了几小时,以为理解了业务流程,但是交流的过程中有了新的认识,发现之前的理解不对,也就说不出所以然了。说不下去,真尴尬,哈哈

理解公司的业务代码,不是拿到代码就直接开始看,还是有一定的方法和策略在里面。我写这篇文章的目的就是反思、总结自己这两天的糟糕的表现,让自己以后避免这种情况。

当然之前或多或少我也思考过如何快速上手一个项目,但是真到用起来的时候,我忘记了。而且,我有点心急也高估自己了,以为这功能很简单(理解之后确实简单),直接从代码中寻找线索,这样很大概率是行不通的。

一些知识

数据驱动编程

数据驱动编程的核心出发点是相对于程序逻辑,人类更擅长于处理数据。数据比程序逻辑更容易驾驭,所以我们应该尽可能的将设计的复杂度从程序代码转移至数据。

所以几乎可以认为业务逻辑最终目的都是通过修改数据来实现的,所以一定要把握住数据的流向。

业务逻辑的信号

主要体现在代码中的这几个地方:

阅读一个函数

需要注意的地方:

参数

返回值(return 语句)

根据返回值,看它实在什么时候赋值和改变的

如果模块中用到数据库

需要明白:

每个字段的含义是什么?

各个字段的含义是什么?

什么时候进行的CURD操作?

no SQL还要关注expire time

如果业务代码中涉及到了一些数据常量

也要弄明白这些常量:

含义是什么?

什么时候赋值?

什么时候取用?

常识

变量和函数的命名和其完成的功能是有关联的(这是程序员的基本修养,如果自己写代码的时候没有注意这个问题,那...)

步骤

明确模块的业务功能

假设自己来实现这个功能,自己会如何实现,画出自己的设计方案的主要步骤和架构

(运气好的话)如果有条件,当然是请教负责这个项目或者这个模块的老司机啦,代码可能都是他亲手写的,没有人比他更了解这个模块的实现。你只需要他从整个项目或者整个系统的角度来给你说一下就可能会给你的理解带来极大的帮助,甚至给你节约数个小时的时间。

如果没有条件请假熟悉整个项目的人,那你就要带着自己的设计来阅读这部分代码了,阅读的过程中还有时不时的思考,和自己的假设一样吗?如果与自己的假设不一样,就要探究如何不一样了,孰优孰劣?

接着就按方法来实际阅读思考了

心态

别高估自己

别心急,思维清晰、心平气和情况下完成不了的事情,急于求成的情况下你说能完成好吗?

理解业务功能与逻辑不仅仅是代码语法和代码逻辑的问题,更重要的是对行业的认知,这就因行业与业务而异了,这就需要自己下功夫了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190122G1F9RG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com