写开源项目是简历的加分项,在面试官眼里绝对是亮点,竞争力爆棚!很多招聘里写着:有开源项目的优先!
IT行业,大家的共识是:有开源项目的,一定是技术大佬!事实也确实是这样,有开源项目的同事,技术比其他同事强了不是一点点。
无论是求职、职业生涯、还是对技术的追求,三年以上的开发者,极其有必要学写开源项目!
开源项目有哪些种类?
开源项目有以下几种。
第一种:工具(组件)
比如:fastjson、hutool、Mybatis-Plus、Shiro
一般没有管理页面。
第二种:中间件
比如:Xxl-Job、Nacos、RabbitMQ
一般有管理页面。
第三种:框架
比如:Spring、SpringBoot、Vue。
第四种:实际项目
比如:若依
第五种:特定需求
比如:MySQL数据库、编辑器。
开源项目参考
站长写了9个开源项目,8个组件类,1个中间件类。我写开源项目的初衷:没有相关工具,或者现有的工具太难用了。下边的开源项目大部分已经在生产环境稳定使用了,得到了同事极高的评价。
组件
- nicetool:超好用的Java工具类:稳定、方便。最大程度利用SpringBoot原生工具。
- nicelog:强大的Java日志组件。支持:手动打印日志;自动收集Controller、XXL-JOB、Feign、RabbitMQ、RocketMQ、Kafka的日志等等。
- nicelimit:Java限流组件。
- nicelock:一个注解,即可使用Java的分布式锁。(基于Redisson)
- nicerefresh:自动刷新。比如:Spring项目中@Value的值。
- nicecommon:SpringBoot Web项目的公共代码。包括:配置类、全局响应处理、全局异常处理等。
- nacos-open-api:封装Nacos的Api。
- niceauth:Java权限工具,方便、快捷、开箱即用。
中间件
- router4j:动态路由的平台,用于提高Java后端开发和调试效率。 使用router4j,可以将某个url请求路由到指定的机器上,只需在可视化页面上将path绑定到应用实例的ip和端口上即可。
写开源项目必备技能?
写开源项目不是一蹴而就的,需要掌握必备技能,否则可能面临问题:1.bug多 2.不优雅 3.不实用 4.难扩展。
需要掌握的技能如下:
| 技能 | 说明 | 参考文章 | 参考书籍 |
| Java反射 | 在开源项目中很常用。比如:获得对象的值。 | https://way2j.com/a/2673 | 《Java开发实战经典》 |
| Java注解 | 新写注解,或者读取注解内容,就会用到。 | https://way2j.com/a/2730 | 《Java开发实战经典》 |
| Spring的AOP | 用于对方法之前、之后、异常等处理。 | https://way2j.com/a/966 https://way2j.com/filter?c=273&c2=147&c3=153&c4&c5&c6&t | |
| SpringBoot的Starter | Starter可以做到:引入依赖即可使用。 | https://way2j.com/a/994 | |
| SpringBoot条件注入 | 可以通过配置进行Bean的开关(功能开关)。 | https://way2j.com/a/2483 | |
| SpringBoot时间和大小 | 可以用2s、3k等表示时间和大小,很方便。 | https://way2j.com/a/3354 |
自己写一个开源项目
之前介绍过如何写一个日志组件,地址:SpringBoot-手写日志组件 – 自学精灵
这里发布一个课后作业:将这个日志组件,改写为开源项目。

请先 !