Java 值得读源码的开源项目

2023-12-15 19:16:16 +08:00
 errorMsg0xff
前几天听人说 Spring 源码很多设计模式是错误的,jdk 的源码也有不优雅的地方(这里不是黑印度人,没有任何歧视),不知道他是装 x 的,还是事实

所以想问一下大家有没有比较值得读源码的开源项目?或者非常值得读的一段代码
4505 次点击
所在节点    Java
27 条回复
hello2090
2023-12-15 19:32:03 +08:00
他工资多少哇
smalljop
2023-12-15 20:13:49 +08:00
那读一下 go 的源码
xuanbg
2023-12-15 20:28:22 +08:00
值得学习的是设计思想,源码真的没必要去读,除非遇到了 bug
jeesk
2023-12-15 20:53:42 +08:00
什么叫做错误的? 应该说很多代码是为了兼容和历史遗留问题。 并且文件命名晦涩难懂。
awalkingman
2023-12-15 20:56:15 +08:00
netty 吧如果一定要推荐
Leviathann
2023-12-15 21:18:27 +08:00
学下整体架构设计就行了,具体代码写法就别学了,基本都是屎山

spring 那代码我看着就想吐
securityCoding
2023-12-15 21:47:43 +08:00
可以找个 rpc 框架看看 ,比如 dubbo,motan 都很不错
simanW
2023-12-15 22:44:32 +08:00
mybatis 的设计还不错,自我感觉
chenqh
2023-12-15 23:05:47 +08:00
开源项目的源代码维护得越久,就越是屎山,我至今记得我读 celery 那个配置的代码看得我好像被人用大锤猛锤几百下
followNew
2023-12-15 23:24:06 +08:00
商业项目的源码,迭代了很多年,是各种妥协的结果。
看它们只能粗读,细读会进死胡同。

程序员都有点理想化,代码不完美就看成是屎山。
kuituosi
2023-12-15 23:26:32 +08:00
jdk 有历史原因和兼容原因,不可能很优雅
但是无脑挑战 spring 就是脑袋进水了
值得读的源码都是经常用的框架啊
jdk spring tomcat mybatis netty rocketmq dubbo guava
zookeeper nacos
L0L
2023-12-15 23:33:36 +08:00
jdk 里面有两个 concurrentHashMap ,感觉值得看一看
trzzzz
2023-12-16 15:07:54 +08:00
@L0L 是的 我看过 jdk 里面的线程池,还是可以的
pengtdyd
2023-12-16 18:52:34 +08:00
netty
gowk
2023-12-16 20:15:40 +08:00
自荐一下我 Star 过的 Repo: https://github.com/gowk?tab=stars
逛 GitHub 这些年积攒下来的,有些还不错
前几天听说淘宝竟然有打包卖书签的
不知道 Star 的代码库可不可以卖 😂
ychost
2023-12-16 21:29:59 +08:00
Netty 不错,没那么多设计模式,且无论是性能还是易读性都还可以
dlmy
2023-12-16 23:38:37 +08:00
入门:MyBatis
进阶:Netty ,Disruptor
精读:Tomcat ,Dubbo
ikas
2023-12-16 23:41:30 +08:00
自己哪个用的多,就优先读哪个

为啥读源码一定就要是无暇的?还是要自己体会与思考

还有,不一定要读最新的版本,成熟的框架往往都会加入非常多的兼容与妥协,直接选择旧版本看反而更容易理解意图
jiakme
2023-12-17 10:35:47 +08:00
底层: JUC 包
设计模式:
- https://github.com/iluwatar/java-design-patterns
- Spring/SpringBoot: 主要关注 Bean 初始化, SPI, 拓展性设计
网络: Netty
RPC: Dubbo
看完以上, 再结合自身需求看一些其它项目
acerphoenix
2023-12-17 10:42:15 +08:00
上来先简单的,apache 的一些包,

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

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

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

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

© 2021 V2EX