如何参加java开源项目_有哪些适合大学生的开源项目?怎么参与?

谢邀。题主的问题有点大,其实有很多优秀的适合大学生参与的开源项目,在这里就十分粗糙的将大学生定义为初学者好了,并分类推荐 Java / Java Web / C++ / C / C# / PHP / Android 等一语言的优秀入门项目,大家各取所需。

然后再讲讲怎么参与开源项目,其实对于大学生来说,最主要的还是夯实基础,这也是参与开源项目的首要前提。

Java

1. 项目名称:springboot-learning-example

项目简介:spring boot 实践学习案例,是 spring boot 初学者及核心技术巩固的最佳实践。

2. 项目名称:DockerFly

项目简介:Dockerfly是基于 Docker1.12+ (Docker API 1.24+) 开发出Docker 管理工具,提供里最基本的基于 Docker 的管理功能,目的是能够方便广大Docker初学者以及 Docker 管理员能够快速的进行Docker 容器的管理和维护。

3. 项目名称: jFinal-Paladin

项目简介:以jfinal为底层的java后台基础框架,结合了beetl、druid、shiro、ehcache; 初始目的是为了学习jfinal,最终目的形成一个工作中比较通用的基础后台框架; 希望给初学者提供些参考。

4. 项目名称:spring-authority

项目简介:是由 spring+springmvc+hibernate+spring-security +easyui +boostrap 写的一个框架集合,目前实现了一个基础的权限管理系统,权限是基于细粒度的过滤,对于初学权限设计的人来说也算是个最简洁的权限实现,基于它来做项目,它只是做了一些绝大部分项目都应该做的一些基础功能。

Java Web

1. 项目名称:分布式敏捷开发系统架构 zheng

项目简介:基于 Spring + SpringMVC + Mybatis 分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位 J2EE 企业级开发解决方案。

2. 项目名称:基于 JAVA 极速框架 JFinal

项目简介:JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 。

JFinal 有如下主要特点:MVC 架构,设计精巧,使用简单;

遵循 COC 原则,零配置,无 xml;

独创 Db + Record 模式,灵活便利;

ActiveRecord 支持,使数据库开发极致快速;

极简、高性能 Template Engine,十分钟内掌握基本用法;

自动加载修改后的 java 文件,开发过程中无需重启 web server;

AOP 支持,拦截器配置灵活,功能强大;

Plugin 体系结构,扩展性强;

多视图支持,支持 FreeMarker、JSP、Velocity;

强大的 Validator 后端校验功能;

功能齐全,拥有 struts2 的绝大部分功能;

体积小仅 580K;

3. 项目名称:分布式快速开发平台 iBase4J

项目简介:iBase4J 是 Java 语言的分布式系统架构。 使用 Spring 整合开源框架。使用 Maven 对项目进行模块化管理,提高项目的易开发性、扩展性。系统包括5个子系统:公共功能、系统管理 Service、系统管理 Web、业务 Service、业务 Web。公共功能:公共功能(AOP、缓存、基类、调度等等)、公共配置、工具类。

系统管理:包括用户管理、权限管理、数据字典、系统参数管理等等。

业务相关:您的业务开发。 可以无限的扩展子系统,子系统之间使用 Dubbo 或 MQ 进行通信。

4. 项目名称:企业应用开发框架套件 Tiny

项目简介:本项目使用灵活,可以整个使用,也可以只用其一个或几个部分。学习成本低,上手容易 核心的稳定性,核心部分使用尽量少的第三方框架及包。方便的外延性,不影响对第三方框架的使用 现有资产的可延续性,不管以前有什么软件资产,只要愿意,都可以方便的集成、复用。易于知识积累,真正做到越用越强。易于集群与水平扩展,能做到不间断提供服务。

5. 项目名称:微服务化开发平台 AG-Admin

项目简介:AG-Admin 是国内首个基于 Spring Cloud 微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用 Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、JWT Token、Mybatis 等主要框架和中间件,前端采用 Layui 组件。

6. 项目名称:后台管理系统 Guns

项目简介:Guns 基于 Spring Boot,致力于做更简洁的后台管理系统,完美整合 springmvc + shiro + mybatis-plus + beetl!Guns 项目代码简洁,注释丰富,上手容易,同时 Guns 包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架。

Guns v3.0 新增 REST API 服务,提供对接服务端接口的支持,并利用 JWT TOKEN 鉴权机制给予客户端的访问权限,传输数据进行 md5 签名保证传输过程数据的安全性。

C++

1. 项目名称:轻量级嵌入式脚本语言 fakescript

项目介绍:fakescript 是一款轻量级的嵌入式脚本语言,使用 c++ 语言编写,语法吸取自 lua、golang、erlang,基于 flex、bison 生成语法树,编译成字节码解释执行。与 lua 相比,运行速度不相上下,更易使用,源代码可读性更强。

脚本特性:语法类似 lua。

全部为函数。

支持 array,map,可以无限嵌套。

支持 fake testfunc(param1) 产生 routine,实现假多线程效果。

支持 C 函数和类成员函数的绑定。

自带解释器,JIT 部分支持。

支持多返回值。

自带 profile,可获取脚本各个函数运行时间。

支持热更新。

支持 Int64。

支持 const 定义。

支持包。

支持 struct。

支持打包 bin 文件或可执行文件。

自带 gdb 风格的命令行调试器,以及 vs 风格的可视化编辑调试ide。

可在 C 里直接通过接口调用,开始命令行调试。

2. 项目名称:基于 C++11 的轻量级网络框架

项目简介:本项目是一个基于 C++11 的轻量级网络框架,基于线程池技术可以实现大并发网络 IO。

网络库tcp/udp 客户端,接口简单易用并且是线程安全的,用户不必关心具体的 socket api 操作。

tcp 服务器,使用非常简单,只要实现具体的 tcp 会话(TcpSession 类)逻辑,使用模板的方式可以快速的构建高性能的服务器。

对套接字多种操作的封装。

线程库:使用线程实现的简单易用的定时器(AsyncTaskThread)。

读写锁。

信号量的封装(ios下用条件变量实现)。

自旋锁。

线程组。

简单易用的线程池,可以异步或同步执行任务,支持 functional 和 lambad 表达式。

3. 项目名称:轻量级开源词典软件 AlphaDict

项目简介:它是一个轻量级的开放词典格式的开源词典软件,你可以制作自己的词典, 也是一个跨平台的软件支持 linux, unix and windows。

功能特性:支持大量第三方词典格式:cedict,startdict,dicts,info,IDP,etc。

屏幕取词功能。

生词本。

容易制作自己的词典。

C

1. 项目名称:IP地址定位库 ip2region

项目简介:准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java、php、c、python、nodejs、golang查询绑定和Binary,B树。内存三种查询算法,妈妈再也不用担心我的ip地址定位。

C#

1. 项目名称:轻量级的代码生成工具 CodeBuilder

项目简介:CodeBuilder 是一款简单易用且轻量级的基于数据库物理模型的代码( C# / java / ruby / php / xml 等)生成工具。

PHP

1. 项目名称:轻量级通用后台 lyadmin

项目简介:lyadmin 是一套轻量级通用后台,采用 Bootstrap3 制作,自带权限管理,模块化开发。

2. 项目名称:轻量论坛社区系统 StartBBS

项目简介:StartBBS(起点开源社区系统)是一个基于 CodeIgniter 框架开发的 PHP 新型社区系统,她轻量小巧、简单易用、强大高效,又简称 ”STB(烧饼BBS)”

Android

1. 项目名称:基于环信的轻量级 IM

项目简介:Android 轻量级 IM 开源项目,基于环信 Sdk3.x 版本。项目中基础架构类似 MVP,但不是按照安卓官方标准来的,而是在自己的理解上精简了部分,且没有做整体的 MVP 封装,但是应该不会影响代码理解。

主要功能:聊天模块,包含文字聊天、语音聊天、发送图片、短视频、实时音频通话、实时视频通话。

通讯录:可获取系统通讯录,和环信好友关系整合。

拨号器:自定义的简单拨号盘,方便老人直接拨打电话。

IOS

1. 项目名称:轻量级日志打印工具类 xxlogger

项目简介:xxlogger 是日志打印工具类,提供对 java,object-c,c 的支持。xxlogger 中的 xx 指某种语言。

关于如何加入:

1. 在加入一个开源项目之前,明确动机。

大部分同学在参与开源项目之初,更多的肯定是兴趣和热情,有可能觉得自己的程序比别人写得好,更好用;有可能觉得能够在某些空白领域给人提供帮助;等等。

其实做专业有关还是纯兴趣,这个不重要,对于一个开源项目来说,关键是你要对这个方面有专业性的知识,并且有足够的场景和资源去验证你的想法。

大量的开源项目在几个版本之后就被放弃,甚至这其中有很多非常前途的项目,是非常可惜的。

2. 参与开源项目的方法。

参与开源项目需要付出相应的时间、精力以及耐心,毕竟除了大神们的开源项目,多数开源项目早期,都是很冷清和孤独的,大学生们也要在完成自己课业的前提下再参与。首先是选择开源项目,主要根据自己的能力、时间、擅长的领域,有空缺的事情。

其次是入手实践,从小的issue讨论,和pull request做起。

最后是精通使用,发展到Contributor,到Committer,逐步提高在项目中的位置。

这中间要克服的主要有几个客观因素:是否有足够的运用场景,让你深度运用并熟悉这个开源项目。

项目原创团队以及PMC团队,是否保持项目的开放。开源不等于开放。接受pull request也不等于开放。是否允许参加核心功能的贡献,以及接口、路标的设计。

你的诉求是否符合项目的路标和创建初衷,是否为定制化需求。这里有一个重要的论点,回调钩子也属于这个核心功能,这方面原创团队会异常谨慎,任意的钩子都意味着后期维护和兼容性保障,所以,要求项目提供钩子,不是一个简单的讨论和pull request。

语言表达能力和沟通能力。特别很多高级项目都是国外项目,你的英语能力,逻辑性,都是国外团队非常看重的。

更多参与、运营、打造开源项目品牌文章请查看:

你可能感兴趣的:(如何参加java开源项目)