类似这种一步一步 debug? 遇到复杂一点的 ,云里雾里的 ,真的有点搞不动啊!!!
投简历已读不回 ,感觉都快自暴自弃,想着提升一下
网络上大部分源码视频讲解也是一言难尽🙃🙃
各位有没有好的学习方法,小弟借鉴一下🧐🧐
1
mrwhyzzz 37 天前
c++吗,看 brpc ,跑一遍 demo 和 test
|
2
iMoutai 37 天前
|
5
zjq07 37 天前
有目的的时候看源码才更有效,有自己的目标和想法,就会有大致的方向,跟着源码走也是一步步验证自己猜想的过程(起码我是这样的)
|
8
deplives 37 天前
同意 #2 捡个软柿子捏啊,很多超大项目代码的组织都是很多设计模式,设计思考的。没有基础的真的是要看到吐
|
9
levelworm 37 天前 via Android
我琢磨着要不先看最早的 commit 。。。
|
10
Rust2015 37 天前
学会合理的使用 GitHub ,还有类 GitHub 的 gitee
在 GitHub 里有个高级功能,就是代码搜索,不知道代码出处,连 ai 不解释不了,你就搜,正常情况下有解 https://github.com/search/advanced |
11
ww2000e 37 天前
运行 各种调试
|
12
ugpu 37 天前
先跑起来到处点一点 分模块感受下这个项目
然后打开项目 先看公共库 配置 然后找到主线程怎么挂载的 在然后怎么管理各个模块的 心里大概有个框架 硬匹配出一个设计模式 如果没有设计模式 你就夸 大道至简. 最后各个模块代码看一看. 看不懂就打日志看怎么运行的 实在不行上单步调试 在看不懂 自信点:这个项目不行 不是你不行 |
13
wangritian 37 天前 1
看源码的学习效率很低,简单了解文件和代码架构就好
对于某个细节功能,直接去搜文档(不限于当前框架)和 gpt |
14
huifer 37 天前
如果可以直接联系我,来录制一个会议视频,点对点回答了。 cWZ5ZDA5NQ==
|
15
grzhan 37 天前
我看代码都是记笔记的,而且是手写书面笔记(可能 ipad pro 记笔记也不错?)比如一个章节就是介绍某个函数或者某个类的,这个函数分成几个部分,又调用了哪几个函数,然后下钻的函数再分别记笔记……
如果理解的部分就不需要抄代码直接用自然语言描述下,不理解的部分就标注待后面回过头看,或者查资料( gpt 、源码分析)来综合理解。 手写笔记有个好处可以翻到前面去和当前下钻的函数和新理解的代码做对照,可能之前不理解的部分看到后面结合一下一下子就理解了。 看完一个部分后可能会找网上的源码分析进行对照,看看自己还有没有什么疏漏的地方。 不记笔记的话还有种办法就是写博客,自己从头介绍一个功能、一个模块的源码分析,这样实际写博客要讲给别人的时候就会知道哪些概念自己还不明白。 当然这些都算是笨办法,效率不是很高,但从结果上来说是让我可以理解、看得进去代码的,而且这也是个热身的过程,随着对于代码理解得越深,很多笔记就会越简略。 |
16
grzhan 37 天前
另外工具的话一般我就用 jetbrains 全家桶,开箱即用,Ctrl+B 下钻函数,Alt+F7 查某个对象某个函数在哪些地方被使用了,Ctrl+Alt+左方向 上翻自己上一个跳转,Ctrl+Alt+右方向 下翻自己下一个跳转,Shift+Shift+Shift 全局搜索,这些基本够用了也挺好用的。
|
17
falsemask 37 天前
说一下个人经验。我当时看的这本书: https://book.douban.com/subject/30452948/,不要介意书比较老,从 xml 解析 bean 开始,了解一下 bean 如何加载。之后可以编译一下 spring 源码,本地边看边加注释。再看 springboot ,一开始不能钻入细节,了解源码整体脉络,之后挑感兴趣的慢慢深入。
|
18
sleepm 37 天前 2
sourceinsight
sourcegraph 善用工具,记笔记 |
20
codegenerator 37 天前
源码分析交流群,一起学习进步
qq: 850243692 |
21
codegenerator 37 天前
@codegenerator 发错了,应该是这个 QQ 群 870794652
|
22
zhouhu 37 天前
带着问题看。
|
23
11232as 37 天前
小项目就看他 release note ,挑项目刚起步时的代码看,有单元测试得直接挑单元测试看。
大项目先捋一捋模块,看官方资料和官方人员的博客,官方资料看不懂得,看别人写的博客和玩具实现,先理解场景和方向,开源码我用 sourcetrail ,支持 java 。 如果有些代码太杂就翻翻它最初几个版本或者几个关键版本的实现,我理解重要模块思想变动的一般很少,但免不了时间长了里面多了些别的,找几个关键版本,最初的版本看最合适。 |
26
sleepm 37 天前
ide 重
这些工具轻 说的是资源占用,cpu ,内存 不过这几年优化,ide 凑活也能看,大纲,方法导航 |
28
iMoutai 37 天前 1
|
29
murmur 37 天前
不看源码,除非要面试,背八股文,需要什么调什么
|
30
holy_sin 37 天前
先横着看,再竖着看
|
31
Edward4074 37 天前
不满足需求或排查问题的时候才看源码,否则就当成黑盒
|
32
lvlongxiang199 37 天前
带着问题看源码, 比如要了解 xx 功能是如何实现的, 最好是先自己想下如果实现 xx 功能, 有哪些小问题需要解决, 再看下他是如何解决这些问题的. 如果这部分功能有单测的话, 那可以 debug 下, 看看跟自己理解的是否一样
(我现在在看 juifcefs sync 这部分的实现 https://juicefs.com/docs/community/guide/sync, 就这个可以提出如下问题 - 看文档描述, 默认是增量同步, 如果存在同名文件, 如何确定是否需要同步 ? - 当同步的文件比较大的时候, 如何优化性能 ? - 如果同步时会 update 文件, 如果同步失败的话, 会不会造成文件损坏 ? 他是如何解决这个问题的 ? 第一次看的时候, 我会把非默认配置的分支都给折叠, 跳过这些逻辑 ) |
33
bruce0 37 天前
我看 redis 源码的经验, 在 linux 上使用 clion 打开, 然后带着问题去看, 比如 get 命令的执行过程, 然后使用 debug 模式启动 redis, 断点调试
|
34
sampeng 37 天前
刚学编程那会会看。现在不看了。这时间花在体验不同的开源项目上更好。当你需要什么功能的时候再去翻就好了。
所以我特别恼火面试问 xx 接口原理的,你看了不代表我看了。我不看不代表我不懂啊。我需要复刻这个接口或者有 bug ,10 分钟的事。。很难么 |
35
paradox8599 36 天前
没必要为了看而看,有什么想借鉴的直接上 https://grep.app/ 搜
|
36
tpeng9240 OP @paradox8599 好的,谢谢
|
37
tpeng9240 OP @paradox8599 好东西
|
38
lyxxxh2 36 天前
先学设计模式。
不然你看这些更复杂的设计模式,也会一脸懵逼。 |
40
zhu327808 36 天前
贴一个我在另外一个问题下的回答吧,可以参考下
--- 我最近接手的项目就是这样,只有一份代码,没有文档,只有一个可用的环境,我的方式是这样的,先理解产品的功能,从功能出发猜测大概是怎么实现的,当然要看的是主流程的功能,把一个整个功能流程了解透,再思考如果是自己做该怎么做 有了上一步的一个梳理带着到底是不是这么实现的,来看代码中的主要流程,先不要关注细节,梳理流程,然后把一整个代码的流程串起来 然后就可以开始解遗留的 bug 了,解 bug 的过程就是了解细节的过程,边解边把一些觉得值得重构的点打上 TODO 再然后就是接新的需求了,新的需求肯定是要改造现有的代码的,那就按自己思路做分层,实在改不动的代码就他妈先包成一个函数,写个自己能懂的函数名字,打上注释能用,不要轻易改动 我现在就是尽量自己的新写的代码就把以前的功能完全重构掉,改不动就封装起来,下层的代码尽量要稳定,上层可以快速迭代 当然屎山就是屎山,不可能一步到位,只能走一步看一步了,也没有时间来完全重写 ps:我这里是一个 golang 的项目,然后被各位大佬硬是写成了 java 的风格,我也是服气的,然后上了他们手撸的依赖注入,导致看代码逻辑都是乱的,你都不知道这个对象是从哪里来的,我的妈呀,头疼 |
41
ixcode 36 天前
问 cursor 啊,
|
42
jeesk 36 天前 via Android 1
看看 0.0.1 版本 的源码就行了
|
43
vfs 36 天前 1
纯个人感受: 不要无缘无故的去读别人源码(除非你是想去学习别人的编码规范)。 大部分时间就是自己写,写到哪里卡住了(比如架构如何设计,功能如何实现,某个 api 怎么调用等),此时就可以去找找别人源码看看了。
|
44
hunterzhang86 36 天前
用 Cursor 也是个方式,直接在 Cursor 里面 @Codebase 问某个细节的问题,一般都还回答的不错。
|
45
kjstart 36 天前
那肯定是粘到 chatgpt 里让它讲给你听啊.
|
46
zzzzzzggggggg 36 天前
@vfs 这个确实,读别人的代码很费劲,自己写个 demo 版本的还行
|
48
vfs 34 天前
@zzzzzzggggggg 反正就个人而言,感觉帮助不大, 浪费大量的实践。 反而是自己开始动手写的时候,才会遇到问题, 才会开始思考怎么来处理,这时候去读别人的代码,就会有所收获。
|
49
DIO 34 天前
找文档详细,学习资料和经验分享多的项目。你不知道设立理念和架构的话,你自己写的再过几年自己都未必看得懂。
|
51
zt5b79527 33 天前
要记笔记或者写博客。
防止学了前面忘了后面,看的过程中时常回顾,也可以前后相互验证。隔一段时间再来看,还就会发现常看常新,总能看出点新东西。 |