关于编程语言开源项目的一些疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
maokg
V2EX    程序员

关于编程语言开源项目的一些疑问

  •  
  •   maokg 2024-08-13 13:34:03 +08:00 1575 次点击
    这是一个创建于 431 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前看到 cpython 和 kotlin 在 github 上开源的仓库,应该是关于编译器的。
    如果普通程序员想对这些仓库从熟悉、到学习、最后可以做出点小贡献,这样递进,需要学习哪些额外的知识?主要目的就想一窥这种超大型项目的开发和修 bug 流程,以及一些优秀的代码设计方式。
    10 条回复    2024-08-22 09:17:15 +08:00
    liangjiahui
        1
    liangjiahui  
       2024-08-13 13:54:07 +08:00
    计算机基础、扎实的目标语言基本功,熟悉各种设计模式,然后就是理解能力去看人家的源码
    diagnostics
        2
    diagnostics  
       2024-08-13 13:57:20 +08:00
    编码到一定经验就看得懂了,当然前提是接触的代码一直都是“较高”质量,而不是只有业务的。
    diagnostics
        3
    diagnostics  
       2024-08-13 14:02:55 +08:00
    我以我看:akka 、lettuce 、netty 、kafka 、redis 、spring 的经验来讲

    1. 首先是先入手源码的基础框架,一般从书籍上获得,实在没有就看文档解释,例如我看了 Kafka 源码剖析的结构部分,akka 实战、netty 实战、java 网络编程
    2. 有了整体架构的概念,自己也会根据 API 写代码,那就知道自己会想看什么知识
    3. 知道想看啥,也得会背后相应的知识,如 lettuce 的源码要求很懂网络编程,还有状态机; akka 要求分布式、响应式的一些原理,kafka 要求文件 IO 编程,网络编程,分布式系统
    4. 从一个问题去看人家怎么写的


    简化版:

    1. 框架
    2. API
    3. 理论
    4. 工业级实践

    懂 1 、2 、3 不一定会写 4 ,4 写出来要高性能、测试完善,还是要功力的。
    diagnostics
        4
    diagnostics  
       2024-08-13 14:03:43 +08:00
    @diagnostics #3

    补充一个,如果不懂架构和理论基础,去看源码没有意义,真要看,快速补一下理论知识(就算是片面也可以)
    Austaras
        5
    Austaras  
       2024-08-13 14:17:18 +08:00
    如果只是想去 PR ,那找 good first issue 直接开干就好了,当然前提是熟悉使用的语言;如果想要了解编译器是怎么运行的,那最好还是找本书看看
    maokg
        6
    maokg  
    OP
       2024-08-13 16:06:54 +08:00
    @diagnostics 感谢!感觉要重读编译原理了
    maokg
        7
    maokg  
    OP
       2024-08-13 16:09:26 +08:00
    @Austaras 感谢!我先去看看 good first issue 的难度
    maokg
        8
    maokg  
    OP
       2024-08-13 16:10:16 +08:00
    @liangjiahui 看过一些 Android framework 的源码,设计模式知道是知道,但属于那种不能得心应手的识别
    windcode
        9
    windcode  
       2024-08-21 17:08:15 +08:00
    最好找一些汇总了「社区任务清单」的开源项目,相比 good first issue ,这种的 Maintainer 已经整理好适合新人入门的 issue 并且做了难度分类,比如: https://github.com/KusionStack/karpor/issues/463
    直接领一个开搞,提交 PR 后 Maintainer 一般会认真 review ,如果有不符合流程或者规范的地方都会提醒你,走一边流程基本就清楚这些项目的研发流程了。
    maokg
        10
    maokg  
    OP
       2024-08-22 09:17:15 +08:00
    @windcode 十分感谢!这对我很有帮助
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1320 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:15 PVG 01:15 LAX 10:15 JFK 13:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86