天天看點

《HelloGitHub》第 22 期

公告

年前最後一期,下次就是年後了,老時間 每月的 28 号,年後見~

《HelloGitHub》第 22 期

興趣是最好的老師,HelloGitHub 就是幫你找到興趣!
《HelloGitHub》第 22 期

簡介

分享 GitHub 上有趣、入門級的開源項目。

這是一個面向程式設計新手、熱愛程式設計、對開源社群感興趣 人群的月刊,月刊的内容包括:各種程式設計語言的項目、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源項目大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社群中。

  • 會程式設計的可以貢獻代碼
  • 不會程式設計的可以回報使用這些工具中的 Bug
  • 幫着宣傳你覺得優秀的項目
  • Star 項目⭐️

在浏覽、參與這些項目的過程中,你将學習到更多程式設計知識、提高程式設計技巧、找到程式設計的樂趣。

🎉 最後 HelloGitHub 這個項目就誕生了 🎉

以下為本期内容|每個月 28 号釋出最新一期|點選檢視往期内容

C++ 項目

1、albert:Linux 平台下類似于 Mac Alfred 效率神器。支援開機自啟動、自定義快捷鍵等功能

《HelloGitHub》第 22 期

Go 項目

2、rainbond:好雨開源的生産級無伺服器 PaaS。用于為雲原生應用的整個傳遞流程提供生産級支援,包括基礎設施管理、容器化改造、微服務架構轉型、DevOps 工作流落地、混合雲多雲管理等

《HelloGitHub》第 22 期

Java 項目

3、awesome-java-leetcode:LeetCode 上面主要收集了各大 IT 公司的筆試面試題。該項目為 LeetCode Java 語言的題解集合

4、GSYVideoPlayer:Android 視訊播放器。支援彈幕、濾鏡、水印、截圖、邊播邊緩存、重力旋轉與手動旋轉的同步等多種功能

《HelloGitHub》第 22 期

5、FloatWindow:Andorid 任意界面懸浮窗元件,功能豐富,使用簡單。特性如下:

  • 支援拖動、自動貼邊等動畫
  • 内部自動進行權限申請操作
  • 應用退到背景時,懸浮窗會自動隐藏
  • 等等
《HelloGitHub》第 22 期

6、anychat:純淨的 WebSocket 聊天插件。伺服器絕對控制權的推送機制,合理的線程設計,線上 Demo。功能如下:

  • 對接任何身份系統
  • 個人聊天、群聊天
  • 檢視聊天記錄
  • 離線消息推送
  • 支援嵌入式,通過 iframe 即可進行嵌入
《HelloGitHub》第 22 期

JavaScript 項目

7、webpack-component-loader:在不借助架構的情況下,實作 Web component 的标準。該項目對于了解元件化的概念很有幫助

《HelloGitHub》第 22 期

8、handsontable:強大的開源 HTML5 表格處理工具,适用于中背景的很多業務場景。API 友善、擴充性好、可操作性強,與Execl 等表格處理程式相容好。并支援非常豐富的操作,如資料綁定、驗證、排序及強大的上下文菜單。示例代碼如下:

var data = [
  ["", "Tesla", "Volvo", "Toyota", "Honda"],
  ["2017", 10, 11, 12, 13],
  ["2018", 20, 11, 14, 13],
  ["2019", 30, 15, 12, 13]
];

var container = document.getElementById('example');
var hot = new Handsontable(container, {
  data: data,
  rowHeaders: true,
  colHeaders: true,
  filters: true,
  dropdownMenu: true
});
           

9、learnVue:該項目記錄了染陌學習 Vue.js 源碼的過程中的心得、收獲。以及對于Vue 架構周邊庫的個人見解。可以幫助開發人員深入地了解 Vue.js 源碼

Python 項目

10、shell-functools:把函數式的程式設計帶入 shell,進而讓很多事情變得簡單。通過 Python 的高階函數和内置子產品 os.path 與指令的管道結合,達到了強大、高效的功效。相比于單純的指令實作更加的直覺和容易了解,示例代碼如下:

示例 1
# ls 檢視目前目錄下的檔案
> ls 
document.txt
folder
image.jpg

# 通過 map abspath 展示這些檔案的絕對路徑
> ls | map abspath
/tmp/demo/document.txt
/tmp/demo/folder
/tmp/demo/image.jpg

示例 2
# find 指令找到的檔案和目錄
> find
.
./folder
./folder/me.jpg
./folder/subdirectory
./folder/subdirectory/song.mp3
./document.txt
./image.jpg

# 把找到的結果中的檔案,重命名在末尾追加 .bak (備份檔案)
> find | filter is_file | map basename | map append ".bak"
me.jpg.bak
song.mp3.bak
document.txt.bak
image.jpg.bak
           

11、tqdm:強大、快速、易擴充的 Python 進度條庫。我想通過下面的示例代碼和效果展示圖,你會跑去給這個項目來個 Star 的

from tqdm import tqdm
for i in tqdm(range(10000)):
    pass
# 輸出結果:
# 76%|████████████████████████████         | 7568/10000 [00:33<00:10, 229.00it/s]
           
《HelloGitHub》第 22 期

其它

12、koa-guide:Node.js Web 架構,Koa 的中文文檔

13、API-Security-Checklist:開發安全的 API 所需要核對的清單,中文

14、http2-explained:這是一篇詳細講解 HTTP/2(RFC 7540)的文檔,主要内容包括該協定的背景、思想、協定本身的内容、對一些現有實作的探讨與對協定未來的展望。中文

15、document-style-guide:《中文技術文檔的寫作規範》

換種方式閱讀

  • 網站: https://hellogithub.com
  • GitBook: https://gitbook.hellogithub.com

聲明

如果你發現了好玩、有意義的開源項目 點選這裡 分享你覺得有意思的項目。

歡迎轉載,請注明出處和作者,同時保留聲明。

作者:削微寒

掃描左側的二維碼可以聯系到我

《HelloGitHub》第 22 期

本作品采用署名-非商業性使用-禁止演繹 4.0 國際 進行許可。