前阵子被甲方改了47稿,差点崩,后来想通一个理:学技术也别老追风向。我这人懒,不爱报班买焦虑,不如把每天离不开的小工具扒开看。
就拿天天用的终端文件管理器说。哪天卡住了不搜教程,顺着依赖链往源码里钻。读完才懂它缓存逻辑为啥那么设计,比十篇博客都通透。其实读着读着发现文档有个错别字,顺手提PR改掉,隔天被merge,门槛低到几乎为零。
后来把源码里抠出来的写法挪进自己项目,别人的轮子慢慢长成肌肉记忆。用
前阵子被甲方改了47稿,差点崩,后来想通一个理:学技术也别老追风向。我这人懒,不爱报班买焦虑,不如把每天离不开的小工具扒开看。
就拿天天用的终端文件管理器说。哪天卡住了不搜教程,顺着依赖链往源码里钻。读完才懂它缓存逻辑为啥那么设计,比十篇博客都通透。其实读着读着发现文档有个错别字,顺手提PR改掉,隔天被merge,门槛低到几乎为零。
后来把源码里抠出来的写法挪进自己项目,别人的轮子慢慢长成肌肉记忆。用
你那个"卡住不搜教程直接钻源码"的劲头我挺服的。其实不过说实话这招性价比很看前提:工具天天用、痛点够具体,钻下去才值当。拿一个不熟的项目练手,依赖链一展开十几个repo,三天连入口都没摸透,纯亏时间。其实
我自己是:真卡了先搜十分钟看有没有人踩过同坑,没有再下源码。博客不丢人,官方文档里写的设计why,源码里经常压根没留。
用???楼主你这帖断在’用’字上没发完吧,催更啊btw
甲方改47稿那段我看完直接代入窒息,太真实了。我倒不是钻源码那挂的,但你说的’把每天离不开的东西扒开看比报班强’我挺吃这套,平时折腾啥我也爱顺着往下摸,比听人讲十遍都顶用。提PR改错别字被merge那个门槛低到离谱,有点手痒想去试一把
顺带提个细节,"门槛低到几乎为零"得看具体项目。我前阵子给一个天天在用的小工具提过文档修正,光配 git sign-off、确认 CLA 就花了小半个晚上,merge 还等了一周多。改错别字本身确实零门槛,但前置那套流程对新人谈不上友好。
再说"隔天被merge",这运气挺难得。不少维护者是凭兴趣业余干活,响应快慢看精力,跟改动难易没关系,有些项目 issue 堆半年无人问也是常事。小项目、个人维护的确实丝滑,但别一概而论。
能顺着依赖链往源码里钻,这习惯本身比提几个 PR 值钱。
读你那段"卡住了不搜教程,顺着依赖链往源码里钻",我第一反应是这招确实爽,但把它当成默认路径可能有点贵。
我前年也干过类似的事。当时用个Python的HTTP库,碰上个诡异的超时行为,没忍住直接钻进源码,顺着urllib3一路追到socket层,前后花了快两个晚上才定位到是个默认参数的坑。后来顺手一搜,Stack Overflow上三年前就有人把答案贴得明明白白,两分钟能看完。
不是说读源码没用,恰恰相反,你那种"读完比十篇博客通透"的获得感我完全理解。但"通透"和"解决问题"是两笔账。源码深读属于高固定成本、低边际成本的事,一旦钻进去,顺带把整条依赖链的设计意图都摸了,这种收益是搜教程给不了的。可绝大多数时候你只是想让程序今晚能跑起来,这时候搜索引擎的低边际成本就把你从两晚的坑里捞出来了。
所以我的做法是分场景:纯粹卡住、要快速解套,先搜;有余力、想真正吃透一块,再去读源码。两者互补,不是替代。你要是完全不搜教程,等于每次都付一遍全额固定成本,性价比未必高。
你那些"钻源码"的时刻,是每次都钻到底,还是也有随手搜一下的?
门槛低到几乎为零这句值得商榷。严格来说改错别字确实容易过,可动到核心逻辑时,被merge前往往要review好几轮。我见过改了仨月还在等review的,你这回运气不差。
顺着依赖链钻源码这招我也在用,比收藏夹里吃灰的教程管用。
你说的把别人写法挪进自己项目那点,我想补一句:捡思路可以,别顺手把人家的依赖树也搬过来。能几行自己写清的就别引库,项目养着养着就比原作者还臃肿了。简约点,轮子只借最要紧那一下。
你那个终端文件管理器叫啥?最近正好在挑,想扒个缓存设计干净的。