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

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

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

    补充一个,如果不懂架构和理论基础,去看源码没有意义,真要看,快速补一下理论知识(就算是片面也可以)
    Austaras
        5
    Austaras  
       136 天前
    如果只是想去 PR ,那找 good first issue 直接开干就好了,当然前提是熟悉使用的语言;如果想要了解编译器是怎么运行的,那最好还是找本书看看
    maokg
        6
    maokg  
    OP
       136 天前
    @diagnostics 感谢!感觉要重读编译原理了
    maokg
        7
    maokg  
    OP
       136 天前
    @Austaras 感谢!我先去看看 good first issue 的难度
    maokg
        8
    maokg  
    OP
       136 天前
    @liangjiahui 看过一些 Android framework 的源码,设计模式知道是知道,但属于那种不能得心应手的识别
    windcode
        9
    windcode  
       128 天前
    最好找一些汇总了「社区任务清单」的开源项目,相比 good first issue ,这种的 Maintainer 已经整理好适合新人入门的 issue 并且做了难度分类,比如: https://github.com/KusionStack/karpor/issues/463
    直接领一个开搞,提交 PR 后 Maintainer 一般会认真 review ,如果有不符合流程或者规范的地方都会提醒你,走一边流程基本就清楚这些项目的研发流程了。
    maokg
        10
    maokg  
    OP
       127 天前
    @windcode 十分感谢!这对我很有帮助
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   972 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 20:27 · PVG 04:27 · LAX 12:27 · JFK 15:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.