本文转自雷锋网,如需转载请至雷锋网官网申请授权。
最近,一个 GitHub 标星 1.6w+的项目火了起来,它叫做 HelloGitHub。听名字不难猜到,这个项目源于 『Hello World』,寓意为 GitHub 初次接触者指南。
如果你恰好是一个编程新手,并纠结于该如何开始 GitHub 开源项目的学习与研究,这本手册就恰恰能很好解决这一难题,它的最大亮点就在于 GitHub 入门。
Hello!HelloGitHub
据 HelloGitHub 的创建者自述,他本科就读于计算机专业,目前是一名 Python 程序员。与很多开发新手类似的是,他与 GitHub 之间也是由起初的好奇与困惑、到了解再到之后开始上传自己的项目,逐渐由小白成了可以熟练运用这一工具的能人。
也正是因此,他将自己的摸索过程整理出来,希望能够让更多开发者通过 HelloGitHub 这一项目,更好的运用开源工具,提高自己的开发能力。
从最初在 GitHub 上面创建 HelloGitHub 开源项目;再到后期不断更新月刊;再到之后项目更加成熟后,作者编写了 Web 网站,界面更加友好。
当前,开发者既可以通过 GitHub 直接访问该项目,也可以直接访问 HelloGitHub 网站;两个访问平台上内容大致相同,主要分为了 3 个板块:
-
18 个分类
在这一栏目中,作者将推荐的项目进行了分类,类别包括了:C 项目、C# 项目、C++项目、CSS 项目、Go 项目、Java 项目、JavaScript 项目、Kotlin 项目、Objective-C 项目、PHP 项目、Python 项目、Ruby 项目、Rust 项目、Swift 项目、开源书籍、机器学习、教程以及其它。
每个项目中,都涵盖了大量适合新手的开源项目和其对应地址,网站还设置了收藏功能,便于用户查找。
-
44 期推荐更新
每月 28 号,专栏作者会将这个月收集的精彩项目,例如:流行项目、入门级项目、让生活变得更美好的工具、企业级项目等汇总为一篇文章,并发布为期刊。项目内容几乎涵盖了 18 个分类中的所有类别,推荐项目也会随当下开发者们的关注热度及项目性能体验多方面进行相应的考量,可以当做「新手程序员杂志」月刊进行阅读。
-
个性推荐栏目
除了作者每月的更新之外,每个人也可以推荐自己喜欢的 GitHub 开源项目;当然也可以在这一 part 中,分享自己开发的项目。
有趣的 github 项目列举
当我把这一项目推荐给身边的开发者朋友之后,他也给了我很多积极的反馈。他在这个项目中,发现了很多有趣实用的项目。在此,我选择了部分项目进行详细的分享与展示。
-
Wrk
现代 HTTP 基准测试(实现对一类测试对象的某项性能指标进行定量的和可对比的测试)工具。它集成了多线程设计与事件通知系统(如 epoll、kqueue)提升并发量,可以通过编写 Lua 脚本来进行扩展,例如 HTTP 请求的生成、响应处理、自定义报告。
这是很多开发者都曾经推荐过的 HTTP 性能测试工具,并且操作也非常简单。在开源地址中下载然后进入项目目录,再执行 make 编译,就能在当前目录中生成一个 wrk 可执行文件了。
Wrk 目前已有 22.8k 的星标数,地址为:
https://github.com/wg/wrk
Wrk 使用示例
-
machine-learning-for-software-engineers
一个自上而下的学习路线,软件工程师的机器学习教程(中文版)。
项目作者的主要目标是希望找到一种以实践为主的学习方法,并为初学者抽象掉大多数的数学概念。项目中包含了:机器学习概论、机器学习方法、机器学习项目实践等内容,并整理了大量与机器学习相关的学习资料、视频与心得等,非常适合新手机器学习工程师研读。
该项目已获得 23k 的星标数,项目地址为
https://github.com/ZuzooVn/machine-learning-for-software-engineers
项目部分内容
-
Newtonsoft.Json
一款 .NET 平台中开源的 JSON 序列化和反序列化类库。它支持使用 Json.NET 的 JObject,JArray 和 JValue 对象创建,解析,查询和修改 JSON;使用类似 XPath 的语法查询 JSON;如果需要,Json.NET 支持在 XML 和 JSON 之间进行转换。
其性能可以实现比 DataContractJsonSerializer 快 50%,比 JavaScriptSerializer 快 250%。目前,Json.NET 的下载量和下载量均超过 1 亿,是 NuGet 上排名第一的库。
Newtonsoft.Json 的星标数为 7.4k,地址为
https://github.com/JamesNK/Newtonsoft.Json
性能比较图
-
Simhash
此项目用来对中文文档计算出对应的 simhash 值。simhash 是谷歌用来进行文本去重的算法(详见 simhash 算法原理及实现),现在广泛应用在文本处理中。
特征包含:使用 CppJieba 作为分词器和关键词抽取器、使用 jenkins 作为 hash 函数、hpp 风格(所有源码都是 .hpp 文件里面,方便使用)、项目副产品项目 simhash_server 提供简单的 simhash HTTP 服务。
项目地址为
https://github.com/yanyiwu/simhash
-
SQLAdvisor
美团开发维护的一个分析 SQL 索引索引优化建议的工具,目前已在内部广泛应用,该工具性能较为成熟、稳定。在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务。例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率。
SQLAdvisor 项目则基于 MySQL 原生态词法解析,结合分析 SQL 中的条件,聚合条件,多表加入关系给出索引优化建议。它支持支持常见的 SQL(Insert/Delete/Update/Select),支持多表 Join 并自动逻辑选定驱动表,同时也支持支持聚合条件 Order by 和 Group by。
该项目获得了 4k+的星标,开源地址为:
https://github.com/Meituan-Dianping/SQLAdvisor
SQLAdvisor 架构流程图
-
beijing_bus
适用于 Python 的「北京实时公交」代码。相对于基础工具,这是一款拥有具体功能较为成熟的应用型项目。这一项目向我们展示了实时公交系统开发的原理。这一贴合生活的开发内容难度适中且富有趣味,非常适合新手进行摸索与学习。
项目地址为:
https://github.com/wong2/beijing_bus
代码示例界面
-
Python-goose
文章提取器,goose 可以获取任何新闻文章或文章类型的网页。不仅是提取文章的主体,它可以还提取所有元数据和最有可能的图像候选者,例如:文章的主要图片、文章中嵌入的电影、元描述、元标记等。
该项目已获得 3.5k 的星标数,项目地址为:
https://github.com/grangier/python-goose
使用界面
更多实用功能
目前,HelloGitHub 网站每个月有超过 10w 的访问量。随着用户的增多,网站的功能也有了更新,增加了:搜索、公告栏、RSS、语言排行榜、数据库排行榜、服务器排行榜、API 接口服务等功能。其中部分内容详情如下——
-
编程语言月报
该栏目整理了最新的 TIOBE 编程语言排行榜,并发布了 TOP 50 榜单。通过编程语言排名、流行度等数据的了解,可以帮助我们更好的预测这个不断变化地时代下,编程的未来发展方向。
Top 10 编程语言排名走势图
-
Web server 月报
为关注关注服务器流行动态的开发者们,提供最新 Netcraft 服务器流行度报告。其中,Netcraft 公司官网每月发布的调研数据报告——Web Server Survey 系列,已成为当今人们了解全球网站的服务器市场份额、排名情况的主要参考依据,时常被诸如华尔街杂志、英国 BBC、Slashdot 等知名媒体引用。
2019 年 11 月 Web 服务器排行榜——活跃网站的排名
-
数据库月报
提供了最新 DB-Engines 数据库排行榜,便于关注数据库流行动态的开发者了解相关资讯。
DB-Engines 排名是按人气排名数据库管理系统,涵盖 340 多个系统。排名标准包括搜索系统名称时搜索引擎结果的数量、Google 趋势、 Stack Overflow 网站、LinkedIn、Twitter 等社交网络中的提及的情况,综合比较、排名。
往期 DB-Engines 排名数据
更多详情查看,相关地址整理如下
HelloGitHub 项目地址:
https://github.com/521xueweihan/HelloGitHub
HelloGitHub 网页:
https://hellogithub.com/
排行榜月报快捷查看地址:
https://hellogithub.com/report/db-engines/?url=/periodical/category/C%20%E9%A1%B9%E7%9B%AE/