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

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

补充一个,如果不懂架构和理论基础,去看源码没有意义,真要看,快速补一下理论知识(就算是片面也可以)
Austaras
37 天前
如果只是想去 PR ,那找 good first issue 直接开干就好了,当然前提是熟悉使用的语言;如果想要了解编译器是怎么运行的,那最好还是找本书看看
maokg
37 天前
@diagnostics 感谢!感觉要重读编译原理了
maokg
37 天前
@Austaras 感谢!我先去看看 good first issue 的难度
maokg
37 天前
@liangjiahui 看过一些 Android framework 的源码,设计模式知道是知道,但属于那种不能得心应手的识别
windcode
29 天前
最好找一些汇总了「社区任务清单」的开源项目,相比 good first issue ,这种的 Maintainer 已经整理好适合新人入门的 issue 并且做了难度分类,比如: https://github.com/KusionStack/karpor/issues/463
直接领一个开搞,提交 PR 后 Maintainer 一般会认真 review ,如果有不符合流程或者规范的地方都会提醒你,走一边流程基本就清楚这些项目的研发流程了。
maokg
29 天前
@windcode 十分感谢!这对我很有帮助

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064612

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX