首页 > 其他分享 >阅读代码技巧

阅读代码技巧

时间:2022-11-05 14:47:42浏览次数:62  
标签:分析 功能 调用 技巧 代码 阅读 体验

如何快速上手?

一、了解业务

梳理实现的业务功能

1.系统有没有文档、教程、分享文章等
2.代码的主要业务功能是什么
3.业务功能使用的角色是哪些,数量是多少,种类是多少
4.业务功能的运营、产品、技术负责人是谁

自己走一遍产品功能

1.通过客户的角度去体验一遍功能,特别是一些TOC的产品
2.通过测试账号去体验一遍功能,在系统上线的时候,一般需要自测,因此可以找到当时的账号进行验证。比如一些TOB的场景,无法通过客户的角度去体验的,就可以通过内部测试账号去体验

二、阅读代码

分层阅读,了解代码的核心流程,关注主要的模块、类和方法

1.入口类
2.核心接口
3.核心对象
4.核心持久化能力

三、分析调用

分析调用链路即分析运行态,不运行的代码是没有任何意义的。

1.分析系统调用关系
2.分析系统的主干链路、耗时、上下文入参、返回值等等

分析线上调用开源工具arthas:https://link.zhihu.com/?target=https%3A//arthas.aliyun.com/en-us/

对于无法在本地启动的代码,结合线上、预发利用日志、在线调试等工具。

四、深入阅读

根据代码的复杂度,针对复杂的部分逐行的阅读分析和调试,精准的对代码块进行分析:上下文入参是什么,返回值是什么,实现方式是什么,是否持久化,代码能否进一步抽象,分析代码设计的好坏,代码是否符合当前的需要,性能是否能继续优化。

其他

第一步从阅读别人的优秀代码开始,然后更进一步把自己的优秀代码分享给别人。成长不是一瞬间的事情,,是一步步,学习和思考习得。

标签:分析,功能,调用,技巧,代码,阅读,体验
From: https://www.cnblogs.com/augustine0654/p/16860130.html

相关文章

  • 20行代码简单python爬虫,爬虫实例
    函数介绍 函数功能简单介绍 库函数介绍 importrequests#请求网页fromlxmlimportetree#对网页进行解析函数功能介绍  函数1 defgetdata(url):......
  • #Primavera Unifier:关于零代码/低代码平台特点【1/3】
    在之前对Unifier的介绍中,我提到了Unifier应用的一个非常关键的特征,及零代码快速配置使用,而为了更好的介绍OraclePrimaveraUnifier 的零代码特点,以下我将通过3篇内容来逐......
  • #Primavera Unifier:关于零代码/低代码平台特点【2/3】
     在之前对Unifier的介绍中,我提到了Unifier应用的一个非常关键的特征,及零代码快速配置使用,而为了更好的介绍OraclePrimaveraUnifier 的零代码特点,以下我将通过3篇内容来......
  • JS代码压缩
    JS代码压缩本文分享一种技术,用于实现JS代码压缩。该技术使用LZW算法。LZW算法又叫“串表压缩算法”,简而言之,通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩......
  • 个人写代码的几个要点
    另外额外说一点,如果思路不清晰不妨先将业务逻辑通过注释打出来然后按照逻辑去写,如果没写注释写完后再打一遍注释有助于检查一遍逻辑和代码 保证业务清晰度,比如:一段逻辑要完......
  • 2023最新傻瓜式下载喜马拉雅音频文件,看不懂代码的你值得拥有
    傻瓜式教学如果还是学不会那不然,洗洗睡吧首先打开喜马拉雅网页版,随便点击一个节目,这里我用平时常听的“3分钟心理学”举例https://www.ximalaya.com/album/11848122......
  • 老资源分享之《Opengl游戏编程》代码
    徐明亮教授编写、同时应该也是他翻译的《3D游戏引擎》和《游戏物理学》  这本书的代码是以光盘提供的、鉴于现在人们都不用光盘了、那么贴个百度云链接吧: 链接:http......
  • Java swing 连连看小游戏 开发小系统 项目源代码 实训实验毕设
    Javaswing连连看小游戏开发小系统项目源代码实训实验能满足学习和二次开发可以作为初学者熟悉Java的学习,作为老师阶段性学习的一个成功检验不再是单调的理解老师空泛......
  • 低代码有哪些典型应用场景?
    低代码的应用场景取决于低代码平台的自身的架构体系与功能,目前大多数低代码平台还是以B端为主,即提供浏览器模式的方式提供简单的基于模块预定制、存储过程预定制之类预先......
  • 代码随想录第二十四天 | 回溯算法
    今天结束了二叉树的学习,开始新的一章了77.组合classSolution{List<List<Integer>>res=newArrayList<List<Integer>>();List<Integer>list=newArra......