Fork me on GitHub

《HelloGitHub》第 47 期

兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!

简介

分享 GitHub 上有趣、入门级的开源项目。

这是一个面向编程新手热爱编程对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目让生活变得更美好的工具书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。

  • 会编程的可以贡献代码
  • 不会编程的可以反馈使用这些工具中的 Bug
  • 帮着宣传你觉得优秀的项目
  • Star 项目⭐️

在浏览、参与这些项目的过程中,你将学习到更多编程知识提高编程技巧找到编程的乐趣

🎉 最后 HelloGitHub 这个项目就诞生了 🎉


以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容

C++ 项目

1、modern-cpp-features:该项目介绍了现代 C++(C++11 以及之后的版本)语言和库的新特性。它能够帮助大家更快地入手新时代的 C++

2、CPlusPlusThings:这是一个适合 C++ 初学者从入门到进阶的教程。解决了面试者想要深入 C++ 及如何入坑 C++ 的问题。除此之外,该仓库拓展了更加深入的语法分析、多线程并发等的知识,是一个比较全面的 C++ 从入门学习到进阶提升的项目

Go 项目

3、7days-golang:用 Go 在 7 天时间内实现 Web 框架、分布式缓存等应用的实战教程

4、cli:GitHub 官方基于 Go 语言开发的命令行 GitHub 工具。用它可以在终端中执行 GitHub 的常用的管理 Issue、切分支、Clone 等操作

Java 项目

5、FXGLGames:此项目包含 FXGL 框架构建的游戏示例。该游戏框架无需安装或设置开箱即用,游戏可以轻松打包到单个可执行文件.jar。示例代码:

public class BasicGameApp extends GameApplication {
    @Override
    protected void initSettings(GameSettings settings) {
        settings.setWidth(800);
        settings.setHeight(600);
        settings.setTitle("Basic Game App");
    }

    public static void main(String[] args) {
        launch(args);
    }
}

6、quarkus-quickstarts:Quarkus 开源的 Java 多种框架 demo 项目集合。这些示例项目可以快速启动、结构清晰,初学者可用作 Java 的实战项目,老手可以当作项目脚手架。启动示例:

mvn quarkus:dev
mvn clean package -Pnative
./target/amqp-quickstart-1.0-SNAPSHOT-runner

JavaScript 项目

7、showdoc:一款基于 JavaScript 实现的开源在线文档工具。支持:多端编辑查看、权限管理、文档导出、Markdown 语法等,功能虽不多但已足够用了。推荐自建自用、小团队内部使用

8、qier-progress:这是一个用于缓解用户焦虑,给予用户请求回馈的顶部进度条。该项目使用 ts 重构了万星 star 的 nprogress 项目,打包体积更小、且支持了多彩模式、自定义高度和颜色等,最重要的是有良好的类型注解。该项目结构简单、代码量也比较少,非常利于学习 ts 相关用法和作为实战项目。示例代码:

const qprogress = new QProgress()
qprogress.start()
qprogress.finish()

9、image-compress-without-backend:一个纯前端在线图片压缩小工具。即无需上传照片到服务器,一切都在浏览器端完成,快速而高效。非常适用于图片压缩后质量要求不是很高的场景,比如:移动端图片展示等

10、breathe-relaxer:一个在线放松网站的项目。带上耳机,点开网站然后深呼吸

11、wx-promise-pro:支持 finnaly、typescript 的微信小程序异步解决方案。特性:

  • 方便集成:一处引用,处处使用
  • 把微信小程序所有异步 API promise 化并挂在到 wx.pro 对象下
  • 支持 ES2018 finally 特性
  • 支持 TypeScript 开发
import { promisifyAll, promisify } from 'wx-promise-pro'
// promisify all wx‘s api
promisifyAll()
// promisify single api
promisify(wx.getSystemInfo)().then(console.log)

Objective-C 项目

12、simplenote-macos:一款 macOS 上免费开源的记事本应用

PHP 项目

13、clean-code-php:PHP 代码的整洁之道,整理了一系列整洁代码实操。小到变量细道 SOLID 都有涉猎,中文译版

14、ext-collections:一个 C 语言实现的 PHP 扩展库。提供了类似 Java stream API 和 kotlin.collections 的一系列库函数,方便开发者优雅、快速地操作 PHP 数组。

  • 提供了丰富的 PHP 数组操作函数,有助于提高开发效率和代码的可读性
  • 使用 C 语言实现,比同类 PHP 实现性能更高
  • 初学者可以通过阅读此项目代码帮助自己入门 PHP 扩展开发
$employees = [
    ['name' => 'Alice', 'sex' => 'female', 'age' => 35],
    ['name' => 'Bob', 'sex' => 'male', 'age' => 29],
    ['name' => 'David', 'sex' => 'male', 'age' => 40],
    ['name' => 'Benjamin', 'sex' => 'male', 'age' => 32]
];
// Trying to get an array of names of male employees,
// sorted by the descending order of their age.
$names = Collection::init($employees)
    ->filter(function ($value) {
        return $value['sex'] == 'male';
    })
    ->sortedByDescending(function ($value) {
        return $value['age'];
    })
    ->map(function ($value) {
        return $value['name'];
    })
    ->toArray();
// You got $names == ['David', 'Benjamin', 'Bob'].

Python 项目

15、wttr.in:一个 Python 实现的命令行查看天气工具

16、activitywatch:一个记录你的时间都花在哪的 Python 项目。支持 Web 可视化,效果如下

17、akshare:一款基于 Python 的开源金融数据接口库。提供了股票、期货、期权、基金、数字货币等金融产品的基本数据、实时和历史行情数据、衍生数据,包含数据采集、数据清洗、到数据落地的一套开源工具。满足了金融数据科学家、数据科学爱好者在金融数据获取方面的需求。示例代码:

import akshare as ak
bond_df = ak.bond_spot_deal()
print(bond_df)

   债券简称 成交净价(元) 最新收益率(%)  涨跌(BP) 加权收益率(%) 交易量(亿)
0          19国开15   98.97   3.5750    1.00   3.5826   None
1        19附息国债03   99.82   2.7714    0.14   2.7772   None
2        19附息国债11   99.87   2.8000    0.25   2.7963   None
3        19附息国债04  100.82   2.9832   -1.54   2.9747   None
4        15附息国债05  102.95   3.0359   -1.41   3.0359   None

18、repoll:基于 Django 开发的 redis 集群管理、监控工具。功能包括:标准化申请流程、管理配置、监控接口等,减轻了运维人员的痛苦

Swift 项目

19、Mos:一个用于在 macOS 上平滑鼠标滚动效果或单独设置滚动方向的小工具。让你的滚轮爽如触控板般丝滑

其它

20、devops-exercises:这个仓库包含了 DevOps(开发运维)常见、流行服务相关的面试问题和回答,推荐给从事运维的同学

21、book:《Rust 编程语言》这是官方出品的关于 Rust 的入门书籍

22、OnlineToolsBook:该项目收集了一些有趣、实用的在线工具网站,点开即用

23、my-mac-os:该项目罗列了作者自用、收集的 macOS 上实用、炫酷的软件。我从中找到好几个炫酷、实用提高工作的工具,你也赶快来挑挑吧

24、structured-text-tools:用于处理结构化文本数据(日志、JSON、YAML 等)的命令行工具列表

25、incubator-apisix:一个云原生、高性能、可扩展的微服务 API 网关。它是基于 Nginx 和 etcd 来实现,和传统 API 网关相比,APISIX 具备动态路由和插件热加载,适合微服务体系下的 API 管理

26、app-ideas:该收集了各类应用的想法,并按照易学程度把应用进行划分。你可以通过这个项目提高编程技术、学习新技术

开源书籍

27、cookbook-2nd:《IPython Cookbook 第二版》

机器学习

28、google-research:非官方整理的 Google AI Research 集合项目

29、Retinanet-Pytorch:一个以 Pytorch 深度学习库实现的 retinanet 目标检测模型。项目拥有清晰的结构、完善的注释以及详细的使用说明。适用于有些许深度学习基础的初学者进行学习或在实际的目标检测项目中使用


最后

如果你发现了 GitHub 上有趣的项目,欢迎在 HelloGitHub 项目提 issues 告诉我们。

关注 HelloGitHub 公众号获取第一手的更新

posted @ 2020-02-29 08:32  削微寒  阅读(1152)  评论(0编辑  收藏  举报