Winds —关于对开源软件做出第一贡献的深度教程

一旦您把Homebrew摆平了,我们可以继续下一步…

2. Node.js

如果安装了Node.js,则可以使用以下命令检查节点版本:

要么

b)NVM(推荐)

NVM或节点版本管理器是一种流行的开源工具。 它允许您通过短命令在Node.js版本之间跳转。 一切都记录在这里 。 安装很简单,只需执行以下步骤:

第一步

安装NVM:

专业提示 :您可以运行nvm ls-remote命令,它将在控制台中列出所有版本,包括新版本。

现在,如果您运行node-version ,则应该看到已安装的最新版本。

注意 :启动MongoDB的命令是brew服务start MongoDB

4. Redis

Redis很重要,因为它充当我们处理RSS和Podcast feed的工作队列。 我们还将Redis用于未更新项目(例如兴趣)的一些基本缓存。

全球纱线依赖性

我们需要在本地存在一个Node.js依赖项,为此,我们将使用Yarn 。 依赖关系是PM2 ,我们将稍后讨论它。 现在,运行以下命令来安装PM2:

如果一切顺利,您的终端将类似于以下屏幕截图:

第2步:

保存生成的API密钥。

第2步:

单击下面的屏幕快照中突出显示的“查看仪表板”。 或者,首先使用API/p>

第四步

接下来,我们需要在Stream中配置“ Feed Groups ”。 所需的供稿组位于GitHub上 。

  1. 播客 (平面)
  2. rss (单位)
  3. 用户 (单位)
  4. 时间轴 (固定)
  5. user_episode (平面)
  6. user_article (平面)

步骤5

最后,让我们继续获取Stream的凭据。 在创建的供稿组下,您应该看到包含密钥和“秘密”的部分。 保留这些内容,因为稍后在设置过程中将需要它们。

流就这样!

3.阿尔及利亚(0分钟)

阿尔及利亚强力搜索风。 它是应用程序的一项关键技术,在用户体验中起着重要作用。

第一步

阿尔戈利亚(Algolia)超级容易建立; 我们只需要访问他们的 站即可创建一个帐户。

第三步

选择您的数据中心。 就本教程而言,没关系; 但是,我将选择离我最近的美国中部地区。

步骤5

此过程的下一步是创建索引,所有Winds可搜索数据都将存放在该索引中。 要绕过入门过程,请使用此链接直接前往仪表板。 然后单击左侧列中的“索引”按钮。 页面加载后,单击“添加新索引”按钮以生成索引。 随便命名,但要确保可以记下索引的名称。 我将其命名为“ dev_Winds”。

4.哨兵(分钟)

Sentry是我们工具箱中最重要的工具之一。 Sentry捕获后端API中发生的错误,使我们能够在用户甚至不知道的情况下就进行错误修复。

第一步

在此处创建一个新帐户。

单击“创建项目”,您将被重定向。

第三步

通过单击“已经设置好东西了吗中的链接来获取您的DSN。 获取您的DSN。”

大! 既然您已经克隆了存储库,那么我们就可以继续并用yarn安装所需的依赖项。

Winds API

您将想要进入/ api目录并运行yarn命令。 这是一个可以帮助您的小片段:

风应用

假设您位于/ api目录中,则可以移至/ app目录中以进行yarn安装。

建造

在继续之前,我想花一点时间来讨论站点的前端和后端结构。 对于任何应用程序,了解其背后的架构和思考过程都非常重要。

风前端

Winds的前端部分非常简单。 我们使用Create React App(CRA)引导应用程序,然后开始开发过程。 前端代码可以在这里找到: https : //github.com/GetStream/Winds/tree/master/app

风后端

后端API比前端稍微复杂一些。 除了由Node.js提供支持之外,后端还处理几乎所有的业务逻辑-与第三方服务进行通信,协调工作人员以解析RSS,播客和Open Graph数据等。可以在此处查看后端: https: //github.com/GetStream/Winds/tree/master/api 。

ES6标准

我们使用的几乎所有代码都是用ES6编写的。 这使我们能够在保持可读代码的同时保持较小的占用空间。

API路由

路线相当简单。 它们按照名称建议执行操作-将请求路由到所需的目的地。 这是路由文件的简短示例:

API控制器

路由文件调用控制器,并且包含API中大多数(如果不是全部)的业务逻辑。 控制器与模型进行通信,从而允许它们与数据库对话。

有关模式类型的完整列表,请访问Mongoose 站 。

工人执行非常特殊的任务,否则将阻塞流程。 例如,我们使用专用任务来处理RSS feed,Podcast feeds,Open Graph Images等。 如果没有用于这些任务的专用流程,我们的API将会迅速停止运行,并且用户将无法及时收到响应消息-API可能会超时。

我们的员工使用Bull Queue ,这是Redis的排队基础架构。 基本上,我们的API使用Bull Bull.js库插入对Redis的调用,然后我们的工作人员接替该作业并异步处理它。

例如,以下是Podcast.js控制器中的代码,该代码在用户将播客添加到系统后添加了播客(请注意,我们如何将高优先级添加为1):

CLI命令

命令目录保留了与Winds相关的特定任务的代码-这是Winds API的简单而强大的CLI-在需要调试RSS feed时特别有用。 如果您有兴趣, 这里列出了所有命令的入门。

运行“ winds rss https://techcrunch.com/feed/”的示例输出:

风ENV/h3>

有两个地方需要.env( dotenv )文件来运行应用程序: /app/.env以及/ api / tests (假设您将要编写测试)。 您需要在/ app内创建一个.env文件,以使该应用程序正常运行。

这是一个样板文件.env文件,可帮助您入门:

启动MongoDB

现在,您已经将代码克隆到了计算机上,让我们继续并启动并运行MongoDB。 您可以在单独的终端中使用以下命令。

启动Redis

与MongoDB类似,让我们继续并启动Redis。 为此,我喜欢使用本机命令(从您的命令行):

启动后,您应该在终端中看到Redis徽标(如上所示)。

MongoDB与Redis一起启动并运行。 现在是启动Winds的时候了。 转到Winds目录的基本根目录并运行以下命令:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年7月1日
下一篇 2018年7月1日

相关推荐