兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!
分享 GitHub 上有趣、入门级的开源项目。
这是一个面向编程新手、热爱编程、对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。
在浏览、参与这些项目的过程中,你将学习到更多编程知识、提高编程技巧、找到编程的乐趣。
🎉 最后 HelloGitHub 这个项目就诞生了 🎉
Tips:如果文中的图刷不出来,可以向我们反馈。也可以访问 官网 获取更好的阅读体验。
欢迎关注 HelloGitHub 公众号
以下为本期内容|每个月 28 号发布最新一期
1、Newtonsoft.Json:Newtonsoft.Json 是一款 .NET 平台中开源的 JSON 序列化和反序列化类库,示例代码:
public class Account
{
public string Email { get; set; }
public bool Active { get; set; }
public DateTime CreatedDate { get; set; }
public IList<string> Roles { get; set; }
}
Account account = new Account
{
Email = "james@example.com",
Active = true,
CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, ateTimeKind.Utc),
Roles = new List<string>
{
"User",
"Admin"
}
};
string json = JsonConvert.SerializeObject(account, Formatting.Indented);
// {
// "Email": "james@example.com",
// "Active": true,
// "CreatedDate": "2013-01-20T00:00:00Z",
// "Roles": [
// "User",
// "Admin"
// ]
// }
Console.WriteLine(json);
2、libco:腾讯的开源项目——libco 是微信后台大规模使用的 C/C++ 协程库,2013 年至今稳定运行在微信后台的数万台机器上。
3、kcptun:也许是世界上最快的 UDP 传输工具,支持 macOS/Linux/Windows/FreeBSD/ARM/Raspberry Pi/OpenWrt。
4、AndroidUtilCode:Android 开发人员不得不收集的代码,中文介绍
5、DanmakuFlameMaster:Bilibili 开源的 Android 开源弹幕引擎·烈焰弹幕使。特性:
6、WeFlow:微信出品的一个高效、强大、跨平台的 Web 前端开发工作流工具,官网
7、atrament.js:极小的 JavaScript 画板,在线演示
8、incubator-weex:移动端,跨平台前端框架,详细的中文档
9、aria2gui:Aria2 的 Mac 客户端(下载工具),介绍、使用方法,特点:
10、reddit:reddit.com 网站的源码,通过这个项目,可以学习 Python 在构建大型项目中的使用、项目结构、代码风格、Python 技巧的使用方法等。安装教程
11、httpstat:httpstat 美化了 curl
的结果,使得结果更加可读。同时它无依赖、兼容 Python3、一共才 300 多行。还可以显示 HTTP 请求的每个过程中消耗的时间,如下图:
12、PyMySQL:纯 Pyton 写的 MySQL 库,纯 Python 的好处就是可以运行在任何装有 Python 解释器(CPython、PyPy、IronPython)的平台上。相对于 MySQLdb 性能几乎一样,使用方法也一样,但是 PyMySQL 安装方法极其简单——pip install PyMySQL
,PyMySQL 使用示例代码:
# 下面为例子需要的数据库的建表语句
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) COLLATE utf8_bin NOT NULL,
`password` varchar(255) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO_INCREMENT=1 ;
# -*- coding: utf-8 -*-
import pymysql.cursors
# 连接数据库
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# 创建一个新的纪录(record)
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
# 连接不会自动提交,所以你想下面要调用 commit 方法,存储对数据库的改动
connection.commit()
with connection.cursor() as cursor:
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('webmaster@python.org',))
# 获取一条的纪录(record)
result = cursor.fetchone()
print(result) # 结果输出:{'password': 'very-secret', 'id': 1}
finally:
connection.close() # 操作完数据库一要记得调用 close 方法,关闭连接
13、discourse:Ruby 语言写的论坛,百分之百开源、免费。
14、How-To-Ask-Questions-The-Smart-Way:提问的智慧,提出一个好的问题是解决问题的关键
15、jstraining:阮一峰写的全栈工程师培训材料
16、PTVS:Visual Studio 下的 Python 开发插件
17、the-swift-programming-language-in-chinese:中文版 Apple 官方 Swift 教程《The Swift Programming Language》
18、styleguide:百度前端研发团队的文档与源码编写风格
19、macOS-Security-and-Privacy-Guide:MacOS 的安全和隐私指南,中文翻译版
看完了,还不够?。还不过瘾,那就看看 吧。
点击分享发现的有趣项目
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。