• 开源项目


    那些年的开源项目,你跑起来了吗?

     

    那些年,我的电脑还只是用来打 Dota 的游戏机。

    那些年,我为了完成毕设到处找源码。

    那些年,我第一次知道书后的光盘中竟然藏有代码。

    就这样我靠着这份代码顺利毕业,和兄弟们互道一句:“分头打钱,有事儿TP!”,独自踏上了程序员之路。

    那是我第一次体验到源码的威力,后来机缘巧合之下我闯入 GitHub 的世界。期间我创建的 HelloGitHub 共分享了 1900 多个开源项目,连载 5 年收获了 4.9w Star。

    地址:https://github.com/521xueweihan/HelloGitHub

    我也从最初找不到源码愤然地叉掉 GitHub 网站,到后来如获至宝般地收获了各种开源项目,跌跌撞撞地闯进来了 GitHub 的大门。回想起第一次把开源项目跑起来的场景,我眼中饱含泪水仰天长啸:“如果当年会这手,就不会被毕设压制得毫无还手之力!”


    随着开源项目的不断流行,对开源感兴趣的人也越来越多。大多数刚接触 GitHub 的人都是为了寻找某个有趣的开源项目、解决问题的开源项目或者慕名而来(HelloGitHub),但当你准备上手体验开源项目的时候,可能就会被不知道项目怎么下载没找到中文版不会运行运行报错等问题卡住,这时你的双手已经摸到了 GitHub 大门,但就是怎么使劲儿都拽不开!

    这些问题我在刚接触 GitHub 那些年都遇到过,我懂那种无助和沮丧。所以就有了这篇文章,希望我的经验和总结能够对你有所帮助,同时我还根据开源项目运行起来的难易程度,将文章分为:需要编程知识 和 不需要编程知识 两个部分,最后补充了一些如何快速看懂文档、找到问题答案的方法。

    如果你不止一次尝试运行开源项目,但都以失败告终。那这次不管你会不会编程,只要读完这篇文章就一定能踹开 GitHub 的大门!

    一、我不会编程

    “东西制造出来就是给人用的!” 只要掌握打开它的方法,就会多一个顺手的工具。

    ​HelloGitHub 中有很多让人想要上手一试的开源项目,而且大多数项目根本不需要任何额外的操作和知识下载就能用,想要上手它们只需要找到下载地址就可以了。这里我总结了几个常见的下载入口:

    • Releases:项目发布页面
    • 官网:点进去就会看到下载地址
    • 应用商店:拿着应用名字去 谷歌商店(Android)、App Store(macOS)搜索

    下面将举例进行详细介绍,同时还会有如何在线体验、如何找到中文版等。

    1.1 Releases

    Releases 是 GitHub 项目的发布页面,这里提供各种安装包的下载链接以及最新版本。比如这个项目:

    ShareX:免费的 Windows 截屏录制工具。功能强大支持全屏截图、滚动截图、检测窗口截图、GIF 录制等,截图后还支持在图片上增加文字、水印、特效、马赛克等,最后可直接上传图床得到链接,丝滑地完成整个截图流程。

    Releases 页面入口位置如下图:

    点击进入后就能看到安装包和源码压缩包的下载地址,选择想要下载的包即可。

    最后列举一下常见的安装包文件后缀:.exe(Windows)、.dmg(macOS)、.tar.gz(源码压缩包、Linux)、.apk(Android)

    1.2 官网

    有些开源项目并没有把安装包放到 Releases 页面,这个时候就需要去官网下载。这里用 VSCode 举例,一般情况下开源项目的官网地址,都放在很显眼的位置(项目首页),比如 VSCode 就放到了 About 部分。

    进入官网,下载地址就映入眼帘,还自动匹配了系统。

    关键字:Download、Releases

    1.3 点开就能玩

    有些开源项目贴心地提供了在线预览和试玩的地址,点开就能玩。比如:

    react-tetris:用 React+Redux+Immutable 做的俄罗斯方块,包含详细的技术介绍。在线试玩

    在线体验的链接一般在:About、项目首页和官网的 Demo、Online 字眼的链接

    1.4 有没有中文

    虽然 GitHub 上面的英文项目占了很大部分,但其中也有提供了中文描述、中文文档、中文版本的开源项目。如果你在 GitHub 看到一本很好的开源书籍、教程、资料、文档,想找找有没有中文版本。可以尝试在项目首页、官网寻找关键字:中文、Chinese、zh、cn,比如:

    git-tips:常用 Git 命令集合。中文版本

    总结:不会编程也可以玩 GitHub 开源项目的方法:

    1. 下载安装包:Releases、官网
    2. 在线体验:Demo、Online 点开就能用
    3. 找中文的关键字:中文、Chinese、zh、cn

    二、我会编程

    “不重复造轮子” 靠谱的开源项目,可以节约大量的开发时间。近距离接触大神们的代码,耳濡目染你也会慢慢变强。这部分我将分为:库、服务和项目,下面将逐一介绍它们的安装、部署和运行的方法。

    2.1 库

    当你找到一个解决问题的库,不要着急 clone 项目。一般情况下开源库都提供了对应编程语言的包管理器安装命令,一条命令就能完成安装。比如:

    • Python:pip install rich
    • Go:go get github.com/gorilla/websocket
    • Ruby:gem install ruby-pinyin
    • JavaScript:npm install echarts --save
    • 等等

    又或者前端 CSS 和 JS 对应的 CDN 链接,直接拿来用即可。

    normalize.css:用来消除浏览器默认样式的 CSS 库。不同浏览器对于同一个元素会有不一样的默认样式,比如:超链接线的颜色。相较于 reset(重制样式)解决办法,normalize.css 采用更加和平且高效的方式,解决了浏览器默认样式的问题,尽可能让同一个 CSS 文件在不同的浏览器上显示效果一样。

    CDN:https://cdn.jsdelivr.net/npm/normalize.css

    关键字:pip、npm、CDN 等

    2.2 服务

    这里的“服务”特指数据库、缓存、搜索等基础服务,这种基础服务的开源项目都会详细地提供不同操作系统的安装方式。比如:

    meilisearch:Rust 写的轻量级开源搜索引擎。

    部署方式:

    • macOS:brew update && brew install meilisearch
    • Docker:docker run -p 7700:7700 -v "$(pwd)/data.ms:/data.ms" getmeili/meilisearch
    • Linux:curl -L https://install.meilisearch.com | sh

    关键字:install、brew、docker、curl、apt、yum 等

    2.3 项目

    其实项目(完整的应用)大多是由库、基础服务组成,所以要把一个开源项目跑起来,就三板斧

    1. 安装依赖库、服务
    2. 初始化配置
    3. 找到启动入口

    这里拿一个 Web 项目举例:

    wagtail:强大的开源 Django CMS(内容管理系统)。专注于内容管理,不束缚前端实现。有趣的 StreamField 技术让你的内容变得灵活且不失结构,竟然还支持 A/B 测试,Google 和 NASA 都在用它。

    运行步骤:

    1. 安装库:pip install wagtail
    2. 初始化项目:wagtail start mysite
    3. 进入目录:cd mysite
    4. 安装依赖:pip install -r requirements.txt
    5. 初始化数据库:python manage.py migrate
    6. 新建超级管理员:python manage.py createsuperuser
    7. 启动项目:python manage.py runserver
    

    关键字:start、run、main、init、begin、server

    总结:不同编程语言的项目,在部署、安装、运行各个步骤都有区别,但你只需牢记三板斧关键字,就能项目中找到答案。如果没找到,请看下一部分!

    三、作者留下的答案

    “你遇到的问题,大多数情况下别人都遇到过。” 开源项目的作者把项目开源,第一个愿望就是有人用。所以,如果你在使用中遇到问题,先去寻找下作者留下的解决办法,然后找找有没有遇到同样问题的人,没有的话可以向作者提问。实在不行,就去源码中寻找答案!

    3.1 文档

    项目首页展示的都是关键信息,一般情况下只会给出文档的链接和示例代码的片段。

    如果首页的信息不够用,就去文档中寻找办法:

    1. 完整浏览文档的快速开始部分,记下常用函数和功能(上手)
    2. 带着问题看文档,善用文档的搜索功能,搜问题的关键字(遇到问题)

    关键字:document、doc、wiki、example、demo、usage

    3.2 Issues

    Issues 是 GitHub 项目的提问页面,作者会在这里回复大家的问题。如果你遇到问题,不要着急提问先在 issues 搜一下,看看有没有相同问题已经问过了,没准就找到解决办法了。

    提问时提供的信息越多:系统、环境、异常信息、做过的尝试,得到的答复越准确,还可以拿着问题再去搜索引擎碰碰运气。

    关键字:issues、error、fail、close

    3.3 在源码中找答案

    源码面前没有秘密,同时作者也会在注释中留下线索,助你找到问题的答案。无需下载和安装插件,仅需 2 步就能在线阅读源码:

    1. 把输入法切换到英文
    2. 在项目首页按下 .

    总结:寻找问题最快的方式不是提问,而是找到“答案页”。你遇到的每个问题都是变强的垫脚石,对问题多些耐心、多些尝试、少些提问,久而久之你解决问题的能力就会有质的飞跃,运行起开源项目也会更加得心应手。

    最后

    以上就是我总结的《如何把 GitHub 项目跑起来》的所有方法,希望对你有所帮助。那些年我踩过的坑,希望你通过本文可以轻松跃过。

    找找那些年不会玩、运行不起来的开源项目,实验下本文介绍的方法好不好用。如果没有就去 HelloGitHub 找找有趣的开源项目吧!

    最后,GitHub 访问慢、无法访问等网络问题,可以试试:

    https://raw.hellogithub.com/

  • 相关阅读:
    SQL Server 深入解析索引存储(非聚集索引)
    class.forName的官方使用方法说明
    使用C++实现学生管理系统
    hdu5033 Building 单调队列
    leetCode 72.Edit Distance (编辑距离) 解题思路和方法
    IOS7 textkit 的相关
    nodejs即时聊天
    5种语言混合编程:C++、JS、python、Lisp、汇编
    java Semaphore信号亮-同意多个任务同一时候訪问这个资源--thinking in java21.7.6
    关于Android的.so文件所须要知道的
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/15943694.html
Copyright © 2020-2023  润新知