惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
Webroot Blog
Webroot Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Threat Research - Cisco Blogs
V2EX - 技术
V2EX - 技术
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
S
Schneier on Security
I
InfoQ
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The GitHub Blog
The GitHub Blog
S
Security @ Cisco Blogs
O
OpenAI News
W
WeLiveSecurity
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
人人都是产品经理
人人都是产品经理
Cloudbric
Cloudbric
The Last Watchdog
The Last Watchdog
The Hacker News
The Hacker News
Google Online Security Blog
Google Online Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
NISL@THU
NISL@THU
T
Tailwind CSS Blog
V
Visual Studio Blog
PCI Perspectives
PCI Perspectives
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
D
DataBreaches.Net
B
Blog RSS Feed
N
News and Events Feed by Topic
N
News and Events Feed by Topic
H
Heimdal Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
Latest news
Latest news
V
Vulnerabilities – Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
V
V2EX
aimingoo的专栏
aimingoo的专栏
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Register - Security
The Register - Security
Help Net Security
Help Net Security

BMPI

构建自己的信息简报 2.0 我的退休计划:把无期变成有期 从情绪化交易到系统化投资 策引2025 实盘大考:当算法跑赢人性 三十五 我的AI投资助手 我的投资之路 BMPI周记008:设止损而勇试错 BMPI周记007:经济下行 BMPI周记006:时光机 BMPI周记005:直播小完结 BMPI周记004:不要做空 BMPI周记003:十年前的今天 BMPI周记002:交易之难 BMPI周记001:开始直播 对交易的思考 AI驱动开发:从Prompt到Product(直播) 策引全球投资组合:A股1号 策引全球投资组合:A股2号 策引全球投资组合:A股3号 策引全球投资组合:A股全球 策引全球投资组合:加密币1号 策引全球投资组合:加密币2号 策引全球投资组合:美股1号 策引全球投资组合:美股2号 策引全球投资组合:美股3号 策引全球投资组合:美股4号 策引全球投资组合:美股全球 全球投资开户完全指南:A股与美股篇 我的2023 全球经济中的隐形巨人 海外银行证券开户薅羊毛小记 我与ChatGPT结对编程的体验 ChatGPT背后的语言模型简史 ChatGPT应用开发小记 我的AI阅读助手 SQLite的文艺复兴 2022亏了多少 # 组合季报(2022Q4) AI降临 构建自己的信息简报 Real-time Web应用开发新体验 我的巨亏经历 # 组合季报(2022Q3) Google软件工程之工具篇 构建自己的杠杆 我的投资助手 Google软件工程之过程篇 Google软件工程之文化篇 交易之难 # 组合季报(2022Q2) 从技术难题中学习 编程语言是如何实现并发的之并发模型篇 疫情与战争 # 组合季报(2022Q1) 编程语言是如何实现并发的之操作系统篇 编程语言是如何实现泛型的 写在第二十五万字 走进 Web3 财富常识 复盘2021 # 组合季报(2021Q4) 分布式系统中的时间 分布式系统下的认证与授权 如何学习一门技术 K8S 云原生应用开发小记 使用 Beancount 管理家庭财务 三周年小记 # 组合月报(202109) 仓位管理是核心 # 组合月报(202108) 云端 IDE 护城河还在但城没了 # 组合月报(202107) 构建高质量的信息输入渠道 最牛指数 # 组合月报(202106) 国际化与本地化 慢慢变富 # 组合月报(202105) 失败驱动开发 加密币挖矿小记 家庭资产配置的阶段 # 组合月报(202104) OKR + GTD + Note => Logseq 我的个人项目技术栈 长期投资之难 # 组合月报(202103) 我的人生管理系统 当别人的股票基金上涨时 # 组合月报(202101) 基于Serverless实现静态博客访问统计功能 构建终身学习体系进行自我提升 我的家庭理财规划 投资的秘密 # 组合月报(202012) 零成本搭建现代博客之优化国内访问速度 我的绘图工具箱 关于银行分期贷款的坑 # 组合月报(202011) 投资交易的心理建设 # 组合月报(202010) 大跌时我们能做什么 # 组合月报(202009) 双均线交易策略 # 组合月报(202008) Serverless应用开发小记 投资理财书籍推荐 # 组合月报(202007) 200万小目标 # 组合月报(202006) 零成本搭建现代博客之加载速度优化篇 零成本搭建现代博客之订阅推送篇 我常用的浏览器插件 零成本搭建现代博客之SEO优化篇 什么是SEO 零成本搭建现代博客之搭建篇 用Markdown可以做什么 什么是互联网广告 使用AWS Lambda提高网站图片加载速度1X倍
善用GitHub
马大伟 · 2022-11-12 · via BMPI

18:36 | 4092 字 | 次阅读

  • GitHub是好的学习平台
  • GitHub是好的写作平台
  • GitHub是好的开发平台
  • 利用GitHub打造个人技术影响力
  • 基于GitHub的生态
  • GitHub Next
# GitHub
## 学习平台
- GitHub Search
- GitHub Stars
- GitHub Dev
## 文字创作
- GitHub Markdown
- GitHub Pages
- GitHub Discussions
## 代码创作
- GitHub Codespaces
- GitHub Copilot
- GitHub Actions
- GitHub Projects
- GitHub Packages
## 技术影响力
- GitHub Profile
- 开源项目
## 生态
- SSO
- Cloudflare
- Vercel
- Railway
## GitHub Next
- AI
- 语音编程
- 协作
- 可交互文档

GitHub是微软旗下的一个在线软件源代码托管服务平台,也是一个拥有八千多万开发者用户的社区。很多开发者应该对GitHub有一定的了解,但非技术人员大多可能并不会去使用它。本文更多是想给非技术人员来介绍这个平台,看完这篇文章,希望能让更多人在上面来学习、创作与展示自己的作品。

GitHub是好的学习平台

GitHub拥有非常多的开源项目,这些开源项目中的一些已经成为了IT行业的软件基石,比如Linux内核项目。

如果你想学一门软件开发的技术,比如学会用Python做一些数据分析,那GitHub就是这方面最好的一个学习平台。为什么这么说?

学习首先是需要找一个好的教程,在GitHub上最不缺的就是教程类的项目。以Python为例,通过在GitHub上搜索,可以很容易找到这个Awesome Python的项目,它收集了很多Python相关的教程、项目、库等等,你可以在这个项目中找到你想要的学习资料。而且因为它是一个Star数近十五万的明星项目,被很多开发者认可,所以上面推荐的资料质量也是非常高的。

当然GitHub并不完全是英文的,中文资料也很多,不过我还是推荐尽可能使用英文的资料,如果你要走技术之路,英文是必须的。

找到教程学习后,接下来就是去开发一个真正的项目了。按正常的流程,我们需要在我们的电脑上配置复杂的软件开发环境,就这一步已经让很多人望而却步了。但是在GitHub上,你可以直接在网页上编辑代码,然后提交到GitHub上,这样你就可以在任何一台电脑上开发你的项目了。这个功能叫做GitHub Codespaces

比如下面就是我在开发的一个开源项目,其是一个基于Python的项目,我可以在网页上直接编辑代码,然后提交到GitHub上。

在上图红框部分可以创建一个免费在线的开发环境,打开后就是一个网页版的VSCode。也就是说GitHub给了你一个云端开发环境(一个拥有Root用户权限的Linux系统,可以配置安装任何软件)!这个开发环境可以一直存储在云端,在任何时候打开就可以继续开发,保存在上面的文件也不会被删除。

有时候当你只想阅读其他人的代码时,在GitHub网页上按下.键就会自动打开一个在线VSCode的开发环境,相比网页可以更方面的阅读与搜索代码。

GitHub还提供了强大的代码搜索功能,除了在GitHub.com上搜索外,还可以在GitHub code search上搜索,这个搜索引擎可以搜索GitHub上的所有的公开仓库代码。我觉得它提供了类似sourcegraph的体验,包括更好的代码符号跳转功能。

在一个浏览器内搞定代码的搜索、阅读与开发功能,我觉得这是非常震撼的,起码在十几年前是不可能的。

如果你并不想写代码,只想写点文字,GitHub也能给你带来非常好的写作体验。

GitHub是好的写作平台

基于Markdown的写作一直是我推崇的,早在十年前,我在Wordpress上写作,Wordpress提供了最简单的网站搭建体验,以至于全球有超过四成的网站都是用Wordpress搭建的,包括个人博客。但Wordpress的搭建还是太麻烦了,虽然现在很多国内的云服务商都提供了一键搭建Wordpress的功能,但还是有很多限制,比如不是免费的,需要备案,需要维护服务器等。

在GitHub上写作非常简单,只需要一个GitHub账号,然后在GitHub上创建一个仓库,然后在仓库里创建一个Markdown文件,就可以开始写作了。写作的内容就是Markdown格式的文本,GitHub会自动将Markdown转换为HTML,然后在浏览器上显示出来。

除了这种方式,还可以使用Cloudflare Pages,它可以将GitHub仓库里的内容自动部署到Cloudflare的CDN上,这样就可以使用自定义域名了。

如果你想要更好的写作体验,还可以使用这个vuepress-theme-hope的开源项目,它提供了非常强大的定制能力,使用方式却很简单,比如我用它在GitHub上搭建了一个文档网站:free4chat开发手记。在每个页面的底部都有一个在GitHub上编辑此页的按钮,点击后就可以直接在GitHub上修改这个页面,修改后提交,GitHub会自动重新构建网站,然后你就可以在网站上看到修改后的内容了。

由于GitHub的仓库会自动保存每次修订的历史记录,如果出错也可以回退到之前的版本,再也不担心数据丢失的问题了。

当然这个博客也是在GitHub上搭建的,你可以在这个仓库查看到它的原始文件:bmpi-dev/bmpi.dev

如果想给网站添加评论功能,可以使用giscus,它会自动将评论保存到GitHub仓库的Discussions里,这样就不用担心评论数据丢失的问题了。比如本博客的评论数据都在这里:bmpi-dev/bmpi.dev/discussions

GitHub是好的开发平台

GitHub是最好的开发平台。从上面的内容相信你可以看出来,GitHub围绕软件的搜索、阅读与开发体验方面做了很多改进。甚至用一个浏览器就可以完成软件产品的开发、测试与部署。本文不会详细的介绍GitHub的全部功能,但以下这些功能是我感觉非常值得尝试的:

  • Jupyter Notebook:对机器学习有很好的支持,比如直接在网页执行Notebook内的代码并将结果渲染出来。
  • GitHub Codespaces:提供一个在线的云端IDE,可以在浏览器里直接编辑代码,然后在云端编译、运行、调试代码,非常方便。甚至还提供了GPU的实例,可以训练机器学习模型。
  • GitHub Copilot:提供一个在线的AI代码自动补全功能,可以根据上下文对你的代码自动补全,甚至包括写博客!(这篇文章的一部分就是这个AI小助手自动撰写的,你能看出来吗?)
  • GitHub Actions:提供一个Pipeline as Code的CI/CD服务。比如可以实现,当博客文章更新时,自动发送通知给订阅者,我的博客就实现了类似的功能,具体的实现可以看这个文件:.github/workflows/gh-pages.yml
  • GitHub Packages:提供类似Docker Hub的软件包管理功能。

最重要的是,这些功能很多都提供了免费的额度,足够日常使用了,你要做的就是去创作,利用技术杠杆去实现自己的想法。

利用GitHub打造个人技术影响力

打造个人技术影响力,可能是很多开发者无偿在GitHub上创造各种开源项目的一个主要原因。而技术影响力又可以让开发者能获得更多的机会,比如获得更多的工作机会,影响更多的人等。

在GitHub上你可以找到很多很厉害的人,比如前端大佬antfu,Elixir的作者José Valim,通过关注这些人的动态,了解最新的技术趋势,不断提高自己的技术能力。

GitHub也是一个很好的技术展示平台,你可以通过创建自己的GitHub Profile来展示自己的技术栈,比如我的GitHub Profile。也可以用这个工具GitHub Profile README Generator来生成自己的GitHub Profile。

基于GitHub的生态

GitHub的生态系统非常庞大,有很多SaaS服务可以与其集成,从而提供完美的开发体验,比如:

  • SSO:很多技术网站都提供了GitHub的SSO集成,尤其是和开发者SaaS服务相关的网站,如果要使用这些服务,则必须要有一个GitHub账号。
  • Cloudflare:全球最流行的CDN,和GitHub集成后,Cloudflare Pages可以实现自动部署,当代码push到GitHub后,Cloudflare会自动将网站发布到Cloudflare的全球网络节点中。
  • Vercel:和Cloudflare Pages一样,集成GitHub后,可以自动部署网站到Vercel的CDN网络中。我的一些小工具就是部署到Vercel上的。
  • Railway:提供了后端服务包括数据库的托管,集成GitHub后,可以自动部署应用到Railway的服务器上。

这些SaaS服务同样都提供了一些免费额度,轻度使用,可以免费做很多小项目。

GitHub Next

GitHub Next正在探索一些能影响软件开发未来的方向,目前有几个方向挺有意思的:

  • AI:或者说深度学习模型,正在逐渐的改变世界,比如GitHub Copilot正是基于深度学习模型来实现代码自动补全的功能。未来基于GitHub Copilot的代码重构、写自动化测试、与开发者结对编程也不是不可能的事情,当然让AI帮我们写文章,或者合写文章也是一件自然而然的事情。
  • 语音编程:如果能通过自然语言与GitHub Copilot沟通,那编程将会变成搭积木一样的简单,一些基本的功能就可以通过语音来实现,而不需要写代码。这事想想就觉得不可思议,甚至有种托尼·斯塔克与贾维斯对话去制造钢铁侠战甲的感觉。
  • 协作:由于疫情的出现,远程工作正变得越来越流行(或者说需要),远程结对编写代码目前还没有什么比较好的方式,解决多人如何在同一个代码库实时协作是个有意思的领域。
  • 可交互文档:虽然GitHub现在对Markdown的支持已经非常好了,但这种支持还仅限静态的,如何让文档变得可交互,让文档更有表达性,也是一个值得进一步挖掘的方向。

虽然我注册GitHub有很多年了,但逐渐投入越来越多的时间在上面还是在这几年。尤其是这两年来,我愈发觉得GitHub正在逐渐改变软件开发的常规模式,尤其是GitHub Copilot的出现,以及一条龙式的开发体验,甚至以后从代码的设计、开发、测试到部署都可以在GitHub网页上完成,这些都是我之前想象不到的。

希望这篇文章能让读者对GitHub有个全新的了解,如果你还没有注册GitHub,那就赶紧去注册一个吧。