云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站空间_凤岗网站建设_限时特惠

小七 141 0

戈兰尼Golang&Angular系列第1部分:开发和保护Golang API本系列将向您展示如何使用Golang和Angular开发现代应用程序。

在本系列中,您将学习如何使用Golang和Angular构建现代应用程序。在第一篇文章中,您将使用Golang构建一个安全的后端API,它将支持待办事项列表应用程序。然后,在第二部分中,您将使用Angular开发待办事项列表应用程序的前端。为了方便身份管理,您将在后端API和Angular应用程序中使用Auth0来验证用户。如果需要,您可以在GitHub存储库中找到本文中开发的最终代码。"我正在用@angular和@golang开发一个现代应用程序。"在推特上留言为什么选择高朗和棱角分明如前所述,本系列的首选技术是后端的Golang和前端的Angular。在本节中,您将了解这两种平台的更多信息,以及为什么它们是当今开发应用程序的最佳选择。果郎概况Golang(或者简称Go)是Google发明的一种静态类型和预编译的编程语言。在过去的几年里,Golang已经成为一种非常流行的语言,是Docker、Kubernetes和所有Hashicorps程序套件等项目的首选语言。Golang不像其他编程语言。这个平台有一个非常强大的标准库,可以在使用第三方库之前走得很远。此外,Golang还因为被编译成一个二进制文件而引人注目,它对并发性有着惊人的支持,有利于测试和基准测试,并且有一个很棒的社区支持它。虽然很神奇,但歌郎绝不是完美的语言。不过,我每天做这项工作的原因很简单。除了Python或Ruby,我不相信还有一种语言能像Golang那样及时有效地交付。注意:想知道为什么我没有选择Ruby或Python?主要原因是我更喜欢静态类型的编译语言。这种编程语言使应用程序速度更快,并避免了最终用户的依赖地狱。另外,我选择Golang是因为它具有优秀的跨平台编译支持,这使得它作为一种编程语言更具吸引力。角度概述目前,编写前端web应用程序唯一可行的选择是使用JavaScript。所有的浏览器都支持它到令人满意的程度,因此,使用它可以避免奇怪的依赖性和兼容性问题。所以,选择前端技术很容易,对吧?不!在撰写本文时,目前有三种主要的框架/库供专业web应用程序开发人员使用。他们反应过来了,Vue.js版,角的。如果你去那里研究,你可能会发现另外100个更小的框架。但是,就目前而言,他们仍然需要证明他们能够处理生产就绪的应用程序。现在,你可以在网上找到这样的文章:"frameworkx比frameworky&Z要好得多,因为任何原因"。或者,您可以找到一些文章,其中描述了所有提到的三个框架由于一些新的框架而基本上已经死了。进入前端框架的政治和讨论是不值得的。事实上,如果你坚持使用三个主要框架/库中的一个,你就能完成同样的事情。而且,它们产生的结果也非常相似。如果你仔细看一下,你会发现所有这些前端解决方案都使用Yarn或NPM在node_modules目录中下载数百兆字节的"上帝知道什么",然后将所有这些压缩到更小的HTML和JavaScript文件中。尽管如此,我觉得你应该解释一下为什么我选择角型的这份工作。我喜欢Angular,因为它包含了我所期望的web框架的所有东西。一些标准组件,易于管理库,路由和身份验证支持等等。基本上来说,Angular让生活变得轻松,那么,谁不喜欢轻松的生活呢?。React也是一个超级强大的库(也是这个工作的一个很好的替代方案)。但是,我有OCD(强迫症)的问题,HTML元素被添加到JavaScript文件中。就像很多人对他们盘子里的食物互相碰有问题一样。最后,还有Vue.js版,这也是一个非常强大和流行的框架。到目前为止,我还不能告诉你一个技术上的理由来选择角型Vue.js版. 不过,我知道的一点是,Angular仍然比Angular更受欢迎和支持Vue.js版. 然而,我开始与角度和角度做我的工作。不管怎样,Angular是谷歌支持的另一个项目,很像Golang。这个框架是从它的老兄弟AngularJS发展而来的,它是几年前的JavaScript框架。新角度没有那么受欢迎,我认为有几个原因。例如,现在竞争越来越激烈,主要是React和Vue.js版. 在第一次出版的时候,也没有一些角度上的变化。最后一个原因(这会引起很多混乱)是版本控制约定。负责Angular的团队没有制作像2.2.1.1这样的版本,而是认为所有破坏性的更改都会导致整个版本聚合。所以,Angular的当前版本(在撰写本文时)是Angular 6。这使得Google很难(讽刺地)引用它也很奇怪,有很多不同的方法来引用它:Angular、Angular 2+、Angular 6等等。尽管如此,我仍然认为Angular是一个优秀的web应用程序前端框架。我喜欢它利用TypeScript的使用,从而使代码的结构标准化,正如前面提到的,我喜欢angular cli工具箱(它提供了我所需要和期望的所有现成工具)。先决条件在本教程中,您需要安装Golang,节点.js,角的。但是,正如您将看到的,这个过程非常简单。对于初学者,您可以访问Golang提供的官方安装说明来安装编程语言。之后,您需要安装节点.js(NPM附带)。为此,您可以按照这里描述的说明进行操作。然后,安装后节点.js和NPM,您可以发出以下命令来安装Angular CLI工具:npm安装-g@angular/cli注意:通过在上面的命令中添加-g,可以使NPM全局安装Angular CLI工具。也就是说,在发出这个命令之后,您将在终端的所有新会话中使用ng命令。使用Golang构建后端api在本节中,您将学习如何使用Golang构建后端api。为了方便您的生活,您将使用Gin,一个用Golang编写的httpweb框架。和许多其他框架一样,Gin是一个开源项目,简化了API端点的创建。需要记住的是,在本文中构建的内容与Golang的标准库无关。你之所以使用杜松子酒,唯一的原因是它简化和标准化了流程,使你的生活更轻松。用Golang创建内存中的待办事项列表在开始开发web服务器之前,您将开始编写处理待办事项列表的组件。为了简单起见,该组件的实现将由一个静态对象组成,该对象将在内存中存储所有待办事项。基本上,这个组件将工作在一个非常简单的数据库(一个不将数据持久化到磁盘上的数据库)。通常,这不是启动开发过程的坏方法。实现数据库的模拟版本(在实现实际数据库之前)不仅使测试更容易(而且可以从项目一开始就做),而且还可以帮助为存储(或数据库)暗示一个接口。说得够多了,是时候开始使用后端API了。默认情况下,Golang将在GO\u PATH环境变量中查找包。这个变量通常指的是用户目录中的一个位置(例如,在类Unix系统上,这将是~/go,在Windows上,这将是%USERPROFILE%/go)。然后包存储在$GO_PATH/src/中,因此,将项目放在那里会使您的生活更加轻松。对于本教程,您可以将Golang项目放在~/go/src中/github.com网站//golang angular(您可能需要创建其中一些目录)。在本文的其余部分中,这个目录将被称为projectroot或简称为./。注意:您必须用自己的GITHUB用户名替换。也就是说,你确实有一个GitHub账户,对吧?因此,在项目根目录(./)中,创建一个名为todo的新目录。然后,在这个目录中,创建一个名为待办事项代码如下:打包待办事项进口("错误""同步""github.com/rs/xid")变量(列出[]待办事项mtx公司sync.RWMutex一次同步。一次)函数初始化(){一次。做(初始列表)}函数初始化列表(){列表=[]待办事项{}}//任务的Todo数据结构,其中包含要执行的操作的说明类型Todo struct{ID字符串`json:"ID"`消息字符串`json:"消息"`完成bool`json:"完成"`}//Get从todo列表中检索所有元素func Get()[]待办事项{退货清单}//Add将根据消息添加新的todofunc Add(消息字符串)字符串{t:=newTodo(消息)mtx锁()list=追加(list,t)mtx解锁()返回t.ID}//Delete将从Todo列表中删除Todo函数删除(id字符串)错误{位置,错误:=findToLocation(id)如果出错!=无{返回错误}RemoveeElementByLocation(位置)返回零}//Complete将把完整的布尔值设置为true,并将todo标记为//已完成函数完成(id字符串)错误{位置,错误:=findToLocation(id)如果出错!=无{返回错误}setTodoCompleteByLocation(位置)返回零}func newTodo(msg string)待办事项{