阅读哪个 java 开源项目源代码能极大提升功力?

2016-10-25 14:58:45 +08:00
 Acheron
14505 次点击
所在节点    Java
35 条回复
q397064399
2016-10-26 07:08:44 +08:00
@wuyukai 写吧,我虽然写代码很多年了,最早应该是 15 岁开始写 ASP ,不过一直都是业余爱好,现在毕业快一年了,
已经打算要走上码农这条路了

原理,我个人认为是完全没必要深究的,在实际开发中,有需要就深入探索一下,专门花时间没有必要,
像 ORM 框架,其实没什么新技术,无非就是虚拟机运行时反射获得注解,然后通过一些文法规则给你自动构建
Java 对象模型-数据关系 ,你自己去深究这些原理,也搞不出个什么名堂来,顶多写个小轮子,实际意义不大,如果你的业务有高并发需求或者存储层有十分繁琐的任务再去深入了解这方面的知识也不迟,找工作为目的的话,最好是会用 熟练就好,有精力的话 前后端兼顾是最好,

数据库方面,这么多年,底层用的还是那套玩意,无非是 B 树等常见的数据结构,作一下了解,写 SQL 的时候有优化方面的帮助

我个人是从来不提倡搞一门技术,就一定要去深挖,第一没必要,第二很多技术刚开始很难用,但随着社区发展,技术门槛会越来越低,而且时代在变化,一门技术存在的价值也是在不断变化的,很多年前, Javascript 是作为一门十分糟糕商业早产儿出现的,但是因为各种原因,它并没有死,反而越活越好。而 Java 最早在国内开始大行其道的时候,应该是 05 左右,最早写 Java 是被 C++程序员鄙视的,而现在 Java 现在基本上是企业应用以及移动开发的首选
q397064399
2016-10-26 07:16:50 +08:00
@wuyukai 如果是学生的话,就好好深入钻研底层知识,框架神马基本上是个熟练工,早晚都会
best practise
ihuotui
2016-10-26 08:47:54 +08:00
netty dubbo spring
wuyukai
2016-10-26 09:39:43 +08:00
@q397064399 好的,非常感谢这么详尽用心的回答,收获颇丰。确实是学生, 985 小硕研二,过一年就毕业找工作了,非科班,所以知识基本是自学。

JSE 方面基本是从研一开始学的,学完基础后也敲了一些基础的代码,那时应该还只是会点皮毛吧,还不算入门。后来因为课程繁忙及导师项目导致自由时间不多基本就放那了。

后面到研二没课轻松点了的时候重新捡起来又学一遍 JSE ,然后朝着 java web 的方向一路走过来,包括 html/css ,数据库 mysql ,现在的 servlet/jsp 。这些也没有深究,代码也不是写的很多,基本是敲敲书上的例子,然后保证书上的每个例子的代码知其所以然,再高级的东西就没有深入了。

因为 java web 涉及的东西还是挺多的,自己也快毕业了,除了 JSE ,其他地方不敢花费太多的时间,但是基础又不能略过的太多,要不然代码看不懂也是浑身难受,至少知道这些知识点知道去搜索引擎搜什么。其实我跟你的想法差不多,做个略懂基础,工具,框架熟练的码农哈哈,因为这样才能找到工作吧😂,需要深究的东西以后再深入
wizardoz
2016-10-26 10:31:01 +08:00
你自己写的 star 超过 1000 的那个,逃~
chocotan
2016-10-26 13:14:55 +08:00
我以前也萌生过阅读某个大框架的源码的想法, 然而,连这个框架功能都没摸清 都不会用还看啥源码

光看源码没啥用,实践才能提升功力,但也可能是我自己太笨了
我只有实际项目中用到一些知识的时候才会去看与这部分有关的代码, 比如给 xstream 加了个小功能, dubbo 是如何跟 spring 整合的, spring-boot 缓存自动配置里是怎么用 aop 的.......
q397064399
2016-10-26 13:49:11 +08:00
@wuyukai 很快要找工作的话,真的没必要深究,何况你不是科班,同我一样 是为了找工作,真没必要深究, Java 把 Util 给用熟,框架基本上会就行了,
一开始深挖没有必要 而且很浪费时间,大多时候的业务场景 也不需要多么牛逼深奥的技术,有时间深挖的话,我个人建议还不如多掌握一门技术,例如把前端也搞一搞

http://jonwinters.pw 你看我的小论坛,花了 4 天写的玩意,基本上是我上初中时候自学 SQL 的知识 写的玩意,没有 ORM 全是手写的 SQL 分页用的 SQL TAG 也是 SQL 查询然后做过滤处理,但是前端技术跟我初中那个时候学的前端概念就不一样了,那个时候我玩的都是 Jquery ,全是 DOM 操作,样板代码十分多,一般简单的页面都是后端脚本渲染的,现在流行 MVVM 框架,填了 Javascript 的大坑,双向绑定,前端抗起了渲染跟交互的大坑,后端只管提交数据了,不过目前我这个小论坛前端交互效果还很差,很多都没完善,不过后端基本搞定了
inisun
2016-10-26 13:49:49 +08:00
设计模式和算法基础跟不上的话,读这些源码真的有点受不了,不过 spring 的代码确实值得看看,而且也有帮助看源码的书籍
ZiLong
2016-10-26 15:17:54 +08:00
看完大家评论,突然想说 lz 最应该阅读的是**剑指 offer**(逃
gowk
2016-10-26 16:18:42 +08:00
Apache Common DBUtils
Mybatis
另外有两个比较简单的 MVC 框架,可以看看( github ):
https://github.com/mastermay/Spectre
https://github.com/JeffLi1993/fast-framework
cjyang1128
2016-10-26 23:25:37 +08:00
netty 、 Spring
unique
2016-10-27 08:04:13 +08:00
楼主可以看看我 github 有什么好玩的, java 相关 https://github.com/biezhi
cs4814751
2016-11-01 20:51:37 +08:00
@wuyukai 跟你的情况基本一模一样 要不要加个好友聊下
wuyukai
2016-11-01 22:55:37 +08:00
@cs4814751 微信: wuyukai879293 ,不过我这段时间都忙着老师的项目了,糟心
errorlife
2016-11-04 12:27:59 +08:00
@wizardoz show me the url.ths

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

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

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

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

© 2021 V2EX