现在会读很多代码,小组同事写的、API、框架等,在这个问题上,感触颇深。
在读到一个主要逻辑的时候,如果它调用其它地方的方法,后面的处理要使用这个方法返回的数据。通常代码都相当多的,也不会在短时间内就能理解所有的逻辑。这时候我就会很困惑:根据调用的方法名称大概理解下概念,继续往下面读代码?还是点进去,看那个方法里面到底是什么?
如果那段代码里面还有很多外部调用,那更会面临更多的困惑。
难道这不是一个“深度优先”与“广度优先”的问题吗?
深度优先:遇到外部调用方法,点进去看它里面的处理逻辑,等看完,返回到主代码继续;
广度优先:先不管它里面怎么实现的,继续看后面的代码,等把主体代码理解通透后,再回头看每个模块的深层实现。
在经历过几次像这样的抉择后,再结合下实际的效果,我选择“广度优先”。
很可能在遇到这样调用其它地方代码的逻辑时,在没有搞清楚这部分代码做什么,产生什么样数据之前,往下读会越来越吃力。但等把外面的那段代码理解明白后,可能就不知道调用处的逻辑了,我经常会碰到这些的问题。
只好先根据命名和逻辑揣测下它的实现和返回的数据,再继续往下看,等这个架构比较清楚了,再回过头来看具体每块的逻辑。
尤其在使用spring时,会有很多外部的代理调用,等你每个都想看明白后,就不知道原调用处在做什么了。
更多的可能是我的大脑缓存不够吧。
分享到:
相关推荐
本源文件CPP中代码使用深度优先和广度优先遍历图的算法。
以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。 注: 1.代码共182行。 2.代码经过多次编译运行,无错误。
广度优先搜索和宽度优先搜索的动画演示,均为gif图,大家可以自行看看,理解思路或者放Ppt里很好用,怎么分数是5分,编辑不了了? 请管理员修改为1分,谢谢
①使用深度优先搜索来解决八数码问题 ②使用广度优先搜索来解决八数码问题 ③使用过程式表示和实现八数码问题 以及相关代码详细注释 过程式知识表示是将有关某一问题领域的知识, 连同如何使用这些知识的方法,均...
深度优先搜索、广度优先搜索实验C++代码 int visited[Maxsize]={0}; struct ArcNode//弧的结点结构 { int adjvex;//该弧所指向的顶点的位置 struct ArcNode *nextarc;//指向下一条弧的指针 InfoType info;//该弧...
深度优先及广度优先算法c语言源码,深度优先及广度优先算法c语言源码
图的深度优先和广度优先遍历,下载下来可直接运行。你值得拥有
图的广度优先,深度优先算法 c语言描述版。
图的构建,邻接矩阵转化为邻接表的实现。邻接表的深度优先遍历和广度优先遍历。
本程序方便的实现了图的深度、广度优先遍历,txt文档代码复制即可使用。
主要介绍了深度优先与广度优先Java实现代码示例,具有一定借鉴价值,需要的朋友可以参考下。
使用邻接表表示法创建无向图,然后使用非递归算法进行深度优先遍历和广度优先遍历
分别采用广度优先遍历和深度优先遍历实现八皇后的求解问题。源代码(.java)文件
图的遍历,查找最短路径 广度优先遍历 深度优先遍历
基于深度优先算法、广度优先算法、动态规划、分支限界法、回溯法、贪心算法解决TSP问题python源码.zip基于深度优先算法、广度优先算法、动态规划、分支限界法、回溯法、贪心算法解决TSP问题python源码.zip基于深度...
该代码解决了最短路径问题(给定带权有向图G=(V, E),对任意顶点vi,vj∈V(i≠j),求顶点vi到顶点vj的最短路径...代码使用了广度优先搜索和深度优先搜索;枚举法、回溯法来解决最短路径问题,其中结果存储使用文件。
以邻接表为存储结构,实现创建图、销毁图、查找顶点、获取顶点值、顶点赋值、获得第一邻接点、获得下一邻接点、插入顶点、删除顶点、插入弧、删除弧、深度优先搜索遍历、广深度优先搜索遍历等操作 注: 1.系统设计 2...
深度优先搜索和广度优先搜索的代码....
自己写的一个基于MFC对话框应用程序的迷宫小程序,支持广度优先搜索和深度优先搜索,可自定义迷宫,支持迷宫的存档与加载,功能完善。包含完整代码和可执行文件,可供C++数据结构课程学习与交流使用。
迷宫问题-广度优先遍历 迷宫 代码 算法