兴趣是最好的老师,HelloGitHub就是帮你找到兴趣!
简介
分享GitHub上有趣、入门级的开源项目。
这是一个面向编程新手、热爱编程、对开源社区感兴趣人群的月刊,月刊的内容包括:各种编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常Cool。主要是希望大家能动手用起来,加入到开源社区中。
会编程的可以贡献代码不会编程的可以反馈使用这些工具中的Bug帮着宣传你觉得优秀的项目Star项目在浏览、参与这些项目的过程中,你将学习到更多编程知识、提高编程技巧、找到编程的乐趣。
最后HelloGitHub[1]这个项目就诞生了
以下为本期内容|每个月28号发布最新一期|点击查看往期内容[2]
C项目
1、linq4c:如果你想在C中使用隔壁C#的linq方法,那么不妨来使用这个项目!这是它的C语言版。实现了linq的大部分方法(60+)。现在它还在不断完善中,欢迎更多的小伙伴加入共同维护
boolWhereCallback(void*item){char*str=(char*)item;returnstr[0]==h;}void*SelectCallback(void*item){returnnewStr(%s_1,(char*)item);}char*str1=huang,*str2=hai,*str3=feng;ArrayListarray=arrlist_new();arrlist_append(array,str1);arrlist_append(array,str2);arrlist_append(array,str3);Linq*lq=From(array);ArrayListresult=lq-Where(lq,WhereCallback)-Select(lq,SelectCallback)-ToArray(lq);for(inti=0;iarrlist_size(result);i++){printf(%s\n,arrlist_get(result,i));}
C++项目
2、nebula:NebulaGraph是一款开源图数据库,目标是为超大规模的图数据提供高并发、低延时的读、写及计算服务。目前是世界上唯一能够容纳千亿个顶点和万亿条边、并提供毫秒级查询延时的图数据库解决方案。特点:
全对称分布式架构可扩展高可用数据强一致类SQL查询语言
CSS项目
3、iCSS:该项目围绕CSS话题,讲述了CSS相关的技巧、动画实现
Go项目
4、kubesphere:一款在主流容器调度平台Kubernetes之上构建的企业级分布式多租户容器管理平台。提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大降低开发、测试、运维的日常工作的复杂度
5、starcharts:生成GitHub星图的项目
6、ultimate-go:该项目是作者在学习Go过程中,对Go源码以及涉及到的相关的计算机基础知识的心得与总结。适合Go学习者阅读与学习。快来和作者一起深入了解Go源码,了解背后的计算机理论和Go的设计思想
Java项目
7、easyexcel:使用简单、上手快速、占用内存小且避免内存溢出的Java处理Excel工具
/***最简单的读*p1.创建excel对应的实体对象参照{
linkDemoData}*p2.由于默认异步读取excel,所以需要创建excel一行一行的回调监听器,参照{linkDemoDataListener}*p3.直接读即可*/TestpublicvoidsimpleRead(){StringfileName=TestFileUtil.getPath()+demo+File.separator+demo.xlsx;//这里需要指定读用哪个class去读,然后读取第一个sheet文件流会自动关闭EasyExcel.read(fileName,DemoData.class,newDemoDataListener()).sheet().doRead();}8、lila:一款基于Scala语言,完全免费、开源、没有广告、支持多语言的在线国际象棋游戏
9、tablesaw:一款包括数据框和可视化库,可用于加载、转换、过滤和汇总数据的Java实用程序。用Tablesaw处理数据会节省您的时间和精力,它还支持描述性统计,并且能够与Smile机器学习库完美集成。最近两年数据分析师职业大火,做好数据分析,就离不开数据可视化框架。Java工程师掌握一种数据可视化库势在必行,示例代码:
publicclassBoxExample{publicstaticvoidmain(String[]args)throwsException{Tabletable=Table.read().csv(../data/tornadoes_-.csv);Layoutlayout=Layout.builder().title(TornadoInjuriesbyScale).build();BoxTracetrace=BoxTrace.builder(table.categoricalColumn(scale),table.nCol(injuries)).build();Plot.show(newFigure(layout,trace));}}
10、simple-java-mail:一个轻量级Java邮件框架,支持复杂、自定义的发送电子邮件业务。包括经过身份验证的代理、附件、嵌入式图像、自定义标头和属性、强大的地址验证等,亮点是支持身份代理等功能,防止其他其他邮件服务拦截邮件
11、XUpdate:一套基于Android的全量版本更新整体解决方案。它除了提供AndroidSDK外,还附带了SpringBoot搭建的后台服务以及Vue.js编写的后台管理界面。主要解决中小企业Android版本管理混乱的问题,提供可定制化的解决方案。该框架提供了完全可插拔的版本更新,同时为了让使用者使用方便,还提供了后台服务和管理界面,使用的都是现下最流行的技术。完全做到灵活、方便,并提供了大量丰富的文档供大家参阅
XUpdate.newBuild(getActivity()).updateUrl(mUpdateUrl).isAutoMode(true)//如果需要完全无人干预、自动更新,需要root权限.update();
JavaScript项目
12、star-battle:一个使用JavaScriptES6、Canvas开发的飞船射击类游戏
13、markdown-nice:能够自定义样式的Markdown编辑器。支持内容和自定义样式浏览器中实时保存、上传图片、脚注、公式等,输出的内容可一件复制到