精华内容
下载资源
问答
  • 导读:对那些刚入门前端的开发者来说,前端是一个...大前端的边界到底在哪里? 如何选择? 俗话说,“男怕入错行,女怕嫁错郎”。其实前端开发也一样,从开发工具到前端框架,开发者都面临着选择,选对了技术方向..

    导读:对那些刚入门前端的开发者来说,前端是一个“令人畏惧”的领域,尤其是在你看到前端的技能图谱时,你会发出这样的感叹,前端怎么有那么多的东西要学?我应该从何处学起?我又该如何应对千变万化的前端技术?

    目录

     

    如何选择?

    关于变化

    展开全文
  • 适合普通大学生的前端开发学习路线

    万次阅读 多人点赞 2021-04-12 15:22:41
    虽然帅地的技术栈是后端开发,不过后端和前端显然是一对的,还是经常要和前端打交道,所以在之前也学习过不少前端的知识,下面总结的这套前端学习路线,是我参考了别人大量的学习经历 + 自己的思考 + 咨询前端大佬后...

    大家好,我是帅地。

    假如你没有明确的目标,或许可以按照我说的学习路线来学习一波,我写的每一份学习路线,不会很全面,因为我认为,东西列的太多,反而不利于新手的学习,所以我列举的,都是比较必要的知识,当你把这些知识学了的时候,我相信你不需要别人的学习路线,也能知道自己接下来需要学啥了。

    虽然帅地的技术栈是后端开发,不过后端和前端显然是一对的,还是经常要和前端打交道,所以在之前也学习过不少前端的知识,下面总结的这套前端学习路线,是我参考了别人大量的学习经历 + 自己的思考 + 咨询前端大佬后提取出来的,可能不会像别人一样写一大堆,但你按照这个路线学习之后,应该也不算太差。

    下面推荐的所有书籍,都可以在这个 GitHub 上下载到,里面收集了挺多优质编程书籍:编程的优质书籍整理

    一、入门前端三剑客

    前端和后端相比,需要学习的知识还是要少很多,如果你要入门后端,你可以要学习一大堆只是,但是你入门前端,只要把 HTML + CSS + JavaScript 这三门知识学习了,就基本差不多入门前端了,并且可以利用这三门知识,写出很多漂亮的交互页面,下面讲一讲这三门知识的学习。

    1、HTML

    html 学起来还是挺简单的,无论你是否有编程基础,我觉得都可以快速入门,对于新手,我推荐找个入门的视频看一下,然后跟着视频打代码就可以了,入门教程随便在慕课网啥找个免费的视频就可以了,随便搜索「html入门」即可,或者看菜鸟教程的一个入门教程也行.

    看完视频,也可以看一下文字版的教程,不知道大家有没有看过阮一峰写过的教程,我觉得他写的教程都很棒,所以这里我也推荐下大家看一下阮一峰写的这份 HTML 入门教程,可能可以让你理解的更加透彻:https://wangdoc.com/html/

    大家切勿眼高手低,一定要跟着视频或者书籍上的案例打代码,写代码的编辑器,我推荐 VS-Code,反正选一款你喜欢的编辑器就行,现在这些编辑器都有很多插件,像 VS-Code 这些编辑器,用好一款就可以写各种语言的代码了。

    2、CSS

    没啥好说的,和 HTML 相辅相成,你在学习 HTML 的过程中,其实也一直都在接触 CSS,所以你学了 HTML 之后,感觉几个小时就可以学完 CSS 了,还是一样,推荐找个视频快速入门,不多说。

    html 是一门标签语言,里面有各种各样的标签,很多初学者学了之后可能就把这些标签忘了,有人可能会问,老是忘了怎么办?

    忘了就忘了,没事的,不需要强行记住这些标签,你需要的是:脑子里有个印象,当你这实现某个功能的时候,你知道 HTML 有某个标签可以实现这样的功能就可以了,然后翻开对应的教程,你能够根据教程使用这个标签即可。

    用的次数多了,也就记住了,所以学完 HTML 和 CSS,一定要多多实践,随便打开一个网页,对着葫芦画瓢,自己写一个和它类似的就可以了。

    3、JavaScript

    比起 HTML 和 CSS,JavaScript 会难一些,不过如果你有其他编程语言基础,例如学过 C 语言,Python 或者 Java 啥的,那学期 JavaScript 也是分分钟的事。

    前面的 HTML 和 CSS,我的推荐大家找个视频快速入门即可,但是对于 JavaScript,假如你时间不是很紧,那么我推荐你用书籍系统学一下,有些知识,趁着有时间,一定要系统学,这样可以打下很深的底子,如果你觉得难的话,也可以先用视频快速入门,之后再回过头来钻研书籍,系统过一遍,通过系统学习,你会明白很多原理,学到很多设计思想,我看过一本《JavaScript 高级程序设计》,感觉还好,就推荐这一本吧。

    学了 JavaScript 之后,可以学一学 ES6,面试貌似也经常会问到,可以看一看阮一峰写的一份入门教程:https://wangdoc.com/es6/

    二、框架

    目前前端用的比较多的主要有 Vue 和 React ,在学习框架之前,一定要先用 HTML + CSS + JavaScript 这些做一些项目,因为这些框架的底层实现,其实就是 JavaScript 实现的,然而,居然还有人知道如何使用 Vue,但没学过 JavaScript,这显然不合适,只有你体验过 HTML + CSS + JavaScript ,你才能更好着明白 Vue 和 React 的好处。

    不过对于初学者,可以先学习 Vue,Vue 可能更好入门一些,之前实习的时候,被迫学习了几天的 vue,我是在慕课网先快速入门看的,学起来不难,就是细节容易忘,入门课程直达: https://www.imooc.com/coursescore/980

    不过你看了课程之后,你去做项目的话,其实还是会遇到好多问题的,特别是在网络请求那块,在解决问题的过程中,你就能更加理解一些原理了。

    学到什么程度?

    对于初学者,我的一半建议就是,跟着一份教程,过一遍,然后做对应的项目即可,之后遇到啥,就去搜索啥,不用纠结这个学到什么程度。

    Vue 和 React 随便选一个重点学习即可,我推荐 vue,不过学了 Vue 之后,有时间的话,我建议可以了解下 React,快入通过视频了解,感觉几个小时或者一两天就够了。

    三、数据结构

    无论你是走什么岗位,数据结构都是必须学习的一门课程,从面试的角度来讲,面试基本比问,特别是校招;从个人的提升上来看,学好数据结构与算法,可以让你走的更远。

    但是,数据结构与算法这玩意,可深可浅,不过我觉得至少得掌握如下基础知识:

    1、时间复杂度、空间复杂度

    2、链表、队列、栈

    3、树:初级:二叉树,查找二叉树,进阶:AVL树,红黑树等,至少掌握初级吧。

    4、图(图有好多种算法,深度/广度搜索,最短路径、最小生存树等),对于图,其实无论是面试还是工作,都挺少用到,学起来也有一定难度,假如你时间不多,我觉得可以先不学。

    不过如果你是科班的,那么这些我觉得你大一第二学期把这些都学完是最好的了,没学完也问题不大,有些人可能是先教《离散数学》这本课,为数据结构与算法做铺垫。

    书籍推荐:你学过 JavaScript,所以可以用 Javascript 来写这些数据结构,至于书籍,其实我也不知道推荐啥,网上根据目录找一本:

    把基础数据结构学了之后,我觉得你要保持刷题,这个还是挺重要的,例如可以每天保持刷一两道,刚开始刷会挺吃力,但后面熟练了,就会快很多,不过很多人在吃力的那会,就放弃了,所以也就有了人与人之间的差距。

    我觉得至少把《剑指 offer》刷完吧,刷完之后,可以去把 leetcode 中 top 100 的热门题做了。

    当然,如果你想更加系统着学习算法,可以看我之前写的算法学习路线:谈一谈算法学习之路

    四、计算机网络

    无论是前端开发还是后端开发,说到底都是数据通过网络在多台主机之间的交互,而且对于前端,计算机网络的知识,用的可能比后端还多,特别是 HTTP 这块,所以呢,计算机网络必须好好学,而且还得重点学。

    入门我推荐《图解 HTTP》,不过看完这本我觉得还不够,可以看《计算机网络:自顶向下》这本书,多看两遍,以后面试就可以和面试杆上了。

    一边看一边犯困怎么办?

    我的建议是,硬着头皮死磕一边,因为根据读者的反馈,确实有挺多人跟我说这玩意看着好困,不过我当时学习的时候,看着好带劲,就是了解了很多原因,很爽,然而事实是,有些人,看着却是一种煎熬,,,,学计算机网络,就一条主线:理解一台计算机是如何找到另外一台计算机,并且把数据交付给他的,或者你可以看我这篇科普文章:一文读懂一台计算机是如何把数据发送给另一台计算机的

    五、浏览器工作原理

    学前端,基本天天和浏览器打交道,因为网页上的各种界面,都是由浏览器来渲染的,所以还是非常有必要学习一下浏览器相关的知识。

    如果你在浏览器按 F12,会出现一个「调试」的界面

    image-20210409131708209

    里面有很多东西,例如各种网络请求数据,各种脚本数据,感兴趣的话,可以去研究研究。

    那么具体要学习哪些呢?

    我觉得至少得了解一下本地 cookie ,localStorage,SessionStorage 存储吧,还有就是,如何查看一个 http 的请求状态,浏览器关闭后会做哪些处理之类的。

    总的来说,就是,从我们发起一个 http 请求,到页面展示如初,浏览器都经历了哪些逻辑处理?

    六、进阶

    学完了上面这些,可以学一些帮助我们更好着构建一个前端项目的工具,比较常见的有如下几种:

    Node.js:这个必须学,主要就是可以帮助我们很快着构建出一个 web 项目,一条命令就搞定了,入门可以在慕课网看视频,我之前看过一个,顺便推荐一下:

    进阶或者更甚层次了解,一般都得看书,自己网上搜一本吧。

    Webpack:不同浏览器对 JavaScript 的特性支持的不一致,可以通过构建工具把 JavaScript 代码转换成浏览器能支持的。使用构建工具也能够做到性能优化,比如压缩代码,这个 webpack 可以了解一下,在以后做项目的过程中,还是经常用到 node.js 和 webpack 的,我觉得刚开始会使用就好,后面遇到问题了,在通过问题驱动的方式去深入了家。

    七、学习顺序问题

    这里讲一下学习顺序的问题,就是说学习了 html + css + javascript 之后,我是先学习前端的一些框架好啊,还是学习数据结构与算法好啊,还是学习计算机网络,浏览器工作原理好呢?

    我觉得这个和你时间有关,假如你还是大一大二的话,学校会有数据结构,计算机网络的课程,我觉得跟着学校的顺序学就行,然后的话,像刷题,我觉得有些东西同时做并不会存在矛盾,例如我就建议刷题这个时期,长期保持,然后一边做其他的。

    总的来说,我觉得也可以按照我说的这个学习顺序来学,然后算法那一块,当你学习了 Javascript 之后,就可以穿拆整个过程了。

    最后

    再次强调,这篇文章不是让你成为大神的,学完也不是多厉害,而是,给处于大学迷茫、不知道学啥的你,一个方向,无论你是否是科班,如标题所说,普通/大众。不过我相信,当你学完了这些,你应该会有自己的学习方向了。

    最后,是希望各位还在校的学生,大一可以好好浪,但也要保持应有的学习时间,之后,就好好学习吧。不管你是名校还是非名校,我觉得你在只要这几年认真学,进大公司的几率,真的非常大,这绝对不是鸡汤。

    还有就是,以上说到的书籍,都可以在这个 GitHub 上无套路下载到:[编程的优质书籍整理](

    《程序员内功修炼》第二版强势来袭

    帅地肝了七天七夜,《程序员内功修炼》第二版强势来袭,汇总了高质量的算法、计算机基础文章并且每一篇文章,要嘛是漫画讲解,要嘛是对话讲解,一步步引导,要嘛是图形并茂,例如讲解树的文章
    在这里插入图片描述
    例如讲解算法思想的文章
    在这里插入图片描述
    等等,如果你想学习算法,学习计算机基础,那么我决定这份 PDF,一定会让你有所帮助。当然,如果一是一位有那么点迷茫的在校生,相信我的个人经历,可以给你打一份鸡血,让你更好着去寻找自己的目标。

    如何获取?

    百度云链接:https://pan.baidu.com/s/1ooaT8XzmcBApg7x_Tqo6jQ 密码:lbco

    最后,希望这本 PDF 能够对各位起到实质性对帮助,我也会在后面不断着去完善这本电子书,后面文章多了,可能也会把算法和计算机基础分出来,大家敬请期待。

    作者简洁

    作者:大家好,我是帅地,从大学、自学一路走来,深知算法计算机基础知识的重要性,公众号「帅地玩编程」10万粉丝作者,专业于写这些底层知识,提升我们的内功,帅地期待你的关注,和我一起学习。

    展开全文
  • 现在的前端可以分为大前端和前端两种,学习的课程也是不一样的,那么你知道两者的区别在哪里吗?都是用来做什么的?下面小千就来给大家介绍一下。 大前端和前端的区别 首先前端通常指的都是web前端,web前端的工作...

    现在的前端可以分为大前端和前端两种,学习的课程也是不一样的,那么你知道两者的区别在哪里吗?都是用来做什么的?下面小千就来给大家介绍一下。

    在这里插入图片描述

    大前端和前端的区别

    首先前端通常指的都是web前端,web前端的工作范围就是在web浏览器中,包括网站前端页面,web后端服务器开发或者从后端程序员处调用接口数据开发等等。

    而大前端涉及到的就比较多了,除了传统的web前端之外,还有其他PC界面,移动端,app,小程序等等显示界面都属于大前端开发的范畴。

    大前端开发

    大前端开发的特点就是一次开发能够适用于多个平台,开发者利用技术能够开发出一套应用于web、手机端、app等等多个渠道的前端效果。

    现如今的企业也更多的会去选择大前端人才,这也是为什么现如今的培训班课程都是大前端而不是传统的web前端课程。

    本文来自千锋教育,转载请注明出处

    展开全文
  • 可能很多人都没有听说过,听说这个是大前端的一个趋势,最近两年比较火,如果你还没有听说过,那你就需要注意啦。今天孙叫兽带大家了解一下Serverless。 目录 Serverless要解决什么? Serverless做什么事? ...

    导读:大厂都在做Serverless,他到底是什么东东呢?可能很多人都没有听说过,听说这个是大前端的一个趋势,最近两年比较火,如果你还没有听说过,那你就需要注意啦。今天孙叫兽带大家了解一下Serverless。

    目录

     

    Serverless要解决什么?

     Serverless做什么事?

    一些常见的Serverless平台

    如何理解理解Serverless技术—FaaS和BaaS

    Serverless计算如何工作?

    Serverless使用场景

    Serverless优缺点

    小白操作指南

     工作流程


    Serverless要解决什么?

    问题:前端和后端分离后,彼此独立,这样就导致前端需要关注一些后端关注的问题,如下。

    • 完整的后端应用上线流程

    • 机器管理运维:扩缩容

    • 降级、熔断、限流

    • 域名、性能、监控

    是不是触及了很多同学的知识盲区。作为一个前端,确实大多数人对于服务端的环境,部署基础设施等等东西并不了解。但是现在前端是独立的部署,前端必然面临这些东西。这就是serverless要解决的问题。

     Serverless做什么事?

    问题:是不是可以弄一个工具,我们只需要关心前端代码,服务器的东西工具自动帮我们做好。

    这就是serverless做的事情。如下图,我们只需要关心业务代码,不需要关心服务器的基础设施。

    一些常见的Serverless平台

    (给大家介绍一些serverless的平台,大家可以去尝试一下,有兴趣的可以探索一下哈。)

    如何理解理解Serverless技术—FaaS和BaaS

    Serverless由开发者实现的服务端逻辑运行在无状态的计算容器中,它由事件触发, 完全被第三方管理,其业务层面的状态则被开发者使用的数据库和存储资源所记录。Serverless涵盖了很多技术,分为两类:FaaS和BaaS。

    FaaS(Function as a Service,函数即服务)

    FaaS意在无须自行管理服务器系统或自己的服务器应用程序,即可直接运行后端代码。其中所指的服务器应用程序,是该技术与容器和PaaS(平台即服务)等其他现代化架构最大的差异。

    FaaS可以取代一些服务处理服务器(可能是物理计算机,但绝对需要运行某种应用程序),这样不仅不需要自行供应服务器,也不需要全时运行应用程序。

    FaaS产品不要求必须使用特定框架或库进行开发。在语言和环境方面,FaaS函数就是常规的应用程序。例如AWS Lambda的函数可以通过Javascript、Python以及任何JVM语言(Java、Clojure、Scala)等实现。然而Lambda函数也可以执行任何捆绑有所需部署构件的进程,因此可以使用任何语言,只要能编译为Unix进程即可。FaaS函数在架构方面确实存在一定的局限,尤其是在状态和执行时间方面。

    在迁往FaaS的过程中,唯一需要修改的代码是“主方法/启动”代码,其中可能需要删除顶级消息处理程序的相关代码(“消息监听器接口”的实现),但这可能只需要更改方法签名即可。在FaaS的世界中,代码的其余所有部分(例如向数据库执行写入的代码)无须任何变化。

    相比传统系统,部署方法会有较大变化 – 将代码上传至FaaS供应商,其他事情均可由供应商完成。目前这种方式通常意味着需要上传代码的全新定义(例如上传zip或JAR文件),随后调用一个专有API发起更新过程。

    FaaS中的函数可以通过供应商定义的事件类型触发。对于亚马逊AWS,此类触发事件可以包括S3(文件)更新、时间(计划任务),以及加入消息总线的消息(例如Kinesis)。通常你的函数需要通过参数指定自己需要绑定到的事件源。

    大部分供应商还允许函数作为对传入Http请求的响应来触发,通常这类请求来自某种该类型的API网关(例如AWS API网关、Webtask)。

    BaaS(Backend as a Service,后端即服务)

    BaaS(Backend as a Service,后端即服务)是指我们不再编写或管理所有服务端组件,可以使用领域通用的远程组件(而不是进程内的库)来提供服务。理解BaaS,需要搞清楚它与PaaS的区别。

    首先BaaS并非PaaS,它们的区别在于:PaaS需要参与应用的生命周期管理,BaaS则仅仅提供应用依赖的第三方服务。典型的PaaS平台需要提供手段让开发者部署和配置应用,例如自动将应用部署到Tomcat容器中,并管理应用的生命周期。BaaS不包含这些内容,BaaS只以API的方式提供应用依赖的后端服务,例如数据库和对象存储。BaaS可以是公共云服务商提供的,也可以是第三方厂商提供的。其次从功能上讲,BaaS可以看作PaaS的一个子集,即提供第三方依赖组件的部分。

    BaaS服务还允许我们依赖其他人已经实现的应用逻辑。对于这点,认证就是一个很好的例子。很多应用都要自己编写实现注册、登录、密码管理等逻辑的代码,而对于不同的应用这些代码往往大同小异。完全可以把这些重复性的工作提取出来,再做成外部服务,而这正是Auth0和Amazon Cognito等产品的目标。它们能实现全面的认证和用户管理,开发团队再也不用自己编写或者管理实现这些功能的代码。

    Serverless计算如何工作?

    同步调用的特性是,客户端期待服务端立即返回计算结果。请求到达函数计算时,会立即分配执行环境执行函数。

    以 API 网关为例,API 网关同步触发函数计算,客户端会一直等待服务端的执行结果,如果执行过程中遇到错误, 函数计算会将错误直接返回,而不会对错误进行重试。这种情况下,需要客户端添加重试机制来做错误处理。

    异步调用的特性是,客户端不急于立即知道函数结果,函数计算将请求丢入队列中即可返回成功,而不会等待到函数调用结束。

    函数计算会逐渐消费队列中的请求,分配执行环境,执行函数。如果执行过程中遇到错误,函数计算会对错误的请求进行重试,对函数错误重试三次,系统错误会以指数退避方式无限重试,直至成功。

    异步调用适用于数据的处理,比如 OSS 触发器触发函数处理音视频,日志触发器触发函数清洗日志,都是对延时不敏感,又需要尽可能保证任务执行成功的场景。如果用户需要了解失败的请求并对请求做自定义处理,可以使用 Destination 功能。函数计算是 Serverless 的,这不是说无服务器,而是开发者无需关心服务器,函数计算会为开发者分配实例执行函数。

    Serverless使用场景

    发送通知

    诸如 PUSH Notification、邮件通知接口、短信,这一类服务来说,他们都需要基础设施来搭建。并且,他们对实时性的要求相对没有那么高。即使在时间上晚来几秒钟,用户还是能接受的。在我们所见到的短信发送的例子里,一般都会假设用户能在 60 秒内收到短信。因此,在这种时间 1s 的误差,用户也不会恼火的。

    轻量级 API

    Serverless 特别适合于,轻量级快速变化地 API。其实,我一直没有想到一个合适的例子。在我的假想里,一个 AutoSuggest 的 API 可能就是这样的 API,但是这种 API 在有些时候,往往会伴随着相当复杂的业务。于是,便想举一个 Featrue Toggle 的例子,尽管有一些不合适。但是,可能是最有价值的部分。

    物联网

    当我们谈及物联网的时候,我们会讨论事件触发、传输协议、海量数据(数据存储、数据分析)。而有了 Serverless,那么再多的数据,处理起来也是相当容易的一件事。对于一个物联网应用的服务端来说,系统需要收集来自各个地方的数据,并创建一个个 pipeline 来处理、过滤、转换这些数据,并将数据存储到数据库中。对于硬件开发人员来说,对接不同的硬件,本身就是一种挑战。而直接使用诸如 AWS IoT 这样国,可以在某种程度上,帮助我们更好地开发出写服务端连接的应用。

    数据统计分析等

    数据统计本身只需要很少的计算量,但是生成图表,则可以定期生成。在接收数据的时候,我们不需要考虑任何延时带来的问题。50~200 ms 的延时,并不会对我们的系统造成什么影响。

    Serverless优缺点

    优点

    1. 更快的上市时间我们可以更快地将应用程序推向市场,因为OPS变得更加简单,并且将帮助开发人员专注于他们的开发。 OPS团队无需编写可以处理扩展或担心底层基础架构的代码。此外,团队可以在第三方集成的帮助下更快地构建应用程序,例如OAuth,Twitter和Maps等API服务。

    2.高度可扩展性每家公司都希望他们的应用程序能够更好地运行,零停机时间,并且随着流量的增加而快速,轻松地扩展,但是通过单一的应用程序开发,它可能变得非常困难。随着应用程序负载的增加,Ops团队必须在扩展底层基础架构时保持警惕。由于交通量的增加,停机时间浪费了大量的时间和金钱。但无服务器计算具有高度可扩展性,可以在几秒钟内对应用程序进行缩放和缩放。

    3.低成本在无服务器计算中,开发人员仅在功能运行时付费,与IaaS和PaaS不同,IaaS和PaaS为每台服务器24/7收费。这对于拥有庞大的应用程序,API或微服务设置的公司来说非常有用,这些应用程序,API或微服务目前全天候运行并且100%的时间使用资源,无论是否需要。但是对于无服务器,我们可以按需执行功能并共享资源,而不是全天候运行应用程序,因此我们可以大大减少空闲时间,并使应用程序运行得更快。

    4.延迟和地理定位。改进应用程序的可扩展性取决于三个因素:用户数量,用户位置和网络延迟。在当今世界,应用程序拥有全球受众,这可能会增加延迟。但是无服务器平台可以大大减轻延迟的危险。使用无服务器时,实例化容器以在每个事件调用时运行函数,并且可以在用户的​​地理区域附近创建此容器,这将自动提高应用程序的性能。

    缺点

    1.复杂性增加我们使用应用程序越精细,它就越复杂。每个函数的代码可能会变得更简单,但整个应用程序将变得更加复杂。比如说,我们将应用程序分解为10个不同的微服务。我们必须管理10个不同的应用程序,而在单个应用程序中,它只是一个必须管理的应用程序。

    2.缺乏工具支持 假设我们将单片应用程序分解为50种不同的功能。仍然有各种各样的流程和工具来管理,记录,监视和部署整体应用程序。由于无服务器是市场上的新产品,因此监控或记录运行几秒钟的应用程序是有限的并且具有挑战性,但是随着时间的推移,将会有许多有效的方法来实现这一点。

    3. 与体系结构的复杂性很难决定函数的粒度,并且评估,实现和测试以检查我们的首选项是耗时的。

    4. 管理太多功能会很麻烦,同时忽略粒度会导致我们设置迷你巨石。

    5.实施中的缺点无服务器的最大挑战是集成测试难。

    小白操作指南

    安装

    Serverless是Node.js CLI工具,因此您要做的第一件事是在计算机上安装Node.js。

    注意:无服务器在Node v6或更高版本上运行。

    打开一个终端,然后键入npm install -g serverless以安装Serverless。 

     安装过程完成后,您可以通过在终端中运行以下命令来验证是否成功安装了Serverless:

    serverless

    要查看已安装的无服务器版本:

    serverless --version

    测试

    将业务逻辑与FaaS Provider分开

    class Users {
      constructor(db, mailer) {
        this.db = db;
        this.mailer = mailer;
      }
    
      save(email, callback) {
        const user = {
          email: email,
          created_at: Date.now(),
        };
    
        this.db.saveUser(user, function (err) {
          if (err) {
            callback(err);
          } else {
            this.mailer.sendWelcomeEmail(email);
            callback();
          }
        });
      }
    }
    
    module.exports = Users;
    const db = require('db').connect();
    const mailer = require('mailer');
    const Users = require('users');
    
    let users = new Users(db, mailer);
    
    module.exports.saveUser = (event, context, callback) => {
      users.save(event.email, callback);
    };

     

    现在,以上类将业务逻辑分开。此外,负责设置依赖关系,注入依赖关系,调用业务逻辑功能以及与AWS Lambda交互的代码位于其自己的文件中,该文件的更改频率较低。这样,业务逻辑就不依赖于提供程序,更易于重用和测试。

    此外,此代码不需要运行任何外部服务。取而代之的是真正的dbmailer服务,我们可以通过模拟考试,并断言,如果saveUsersendWelcomeEmail被调用适当的参数。

    可以很容易地编写单元测试以涵盖上述课程。可以通过调用serverless invoke带有夹具电子邮件地址的功能()来添加集成测试,检查用户是否确实保存到数据库中,并检查是否收到了电子邮件以查看是否一切正常。

    部署

    使用无服务器框架进行部署:

    serverless deploy

    无服务器框架将所有语法serverless.yml转换为单个AWS CloudFormation模板。通过依靠CloudFormation进行部署,无服务器框架的用户可以获得CloudFormation的安全性和可靠性。

    • AWS CloudFormation模板是从中创建的serverless.yml
    • 如果尚未创建堆栈,则创建该堆栈时除了S3存储桶(S3存储桶)外,将不存储任何资源,S3存储桶将存储您的功能代码的zip文件。
    • 如果您使用本地构建的ECR映像,则会为您的服务创建专用的ECR存储库。docker login如果需要,您还将通过登录到该存储库。
    • 然后,您的功能代码将打包为zip文件。
    • 如果您使用本地构建的ECR图像,则将它们构建并上传到ECR。
    • 无服务器获取前一次部署的所有文件的哈希(如果有),并将其与本地文件的哈希进行比较。
    • 如果所有文件哈希都相同,则Serverless会终止部署过程。
    • 您的功能代码的Zip文件已上传到您的代码S3存储桶。
    • 任何IAM角色,功能,事件和资源都会添加到AWS CloudFormation模板中。
    • CloudFormation堆栈已使用新的CloudFormation模板进行了更新。
    • 每个部署都会为服务中的每个功能发布一个新版本。

    部署功能

    serverless deploy function --function myFunction

    部署程序包

    serverless deploy --package path-to-package
    • --package标志的参数是先前由Serverless(带有serverless package)打包的目录。
    • 部署过程绕过了软件包步骤,并使用现有的软件包来部署和更新CloudFormation堆栈。

     工作流程

    开发流程

    1. 编写你的函数
    2. serverless deploy仅在serverless.yml对CI / CD系统进行更改时使用。有关为无服务器应用程序设置CI / CD的更多信息,请阅读本文
    3. 在使用serverless deploy function -f myFunction特定的AWS Lambda函数时,可用于快速部署更改。
    4. 用于serverless invoke -f myFunction -l在AWS上测试您的AWS Lambda函数。
    5. 在控制台中打开一个单独的选项卡,然后通过进入流日志serverless logs -f myFunction -t
    6. 编写测试以在本地运行。

    使用阶段

    • 至少要使用devandproduction阶段。
    • 将不同的AWS账户用于阶段。
    • 在较大的团队中,每个成员应使用一个单独的AWS账户和自己的开发阶段。

    较大的项目

    • 将您的应用程序/项目分解为多个无服务器服务。
    • 围绕数据模型或工作流对无服务器服务进行建模。
    • 将无服务器服务中的功能和资源保持在最低限度。

    常用命令

    创建一个新服务

    serverless create -p [SERVICE NAME] -t aws-nodejs

    安装服务

    serverless install -u [GITHUB URL OF SERVICE]

    全部部署

    serverless deploy -s [STAGE NAME] -r [REGION NAME] -v

    部署功能

    serverless deploy function -f [FUNCTION NAME] -s [STAGE NAME] -r [REGION NAME]

    调用功能

    serverless invoke -f [FUNCTION NAME] -s [STAGE NAME] -r [REGION NAME] -l

    流日志

    serverless logs -f [FUNCTION NAME] -s [STAGE NAME] -r [REGION NAME]

     

     

     

     

     

     

     

    【本文正在参与"100%有奖|我的Serverless实战"征稿活动】,活动地址:https://marketing.csdn.net/p/15940c87f66c68188cfe5228cf4a0c3f

     

     

     

     

     

    展开全文
  • 2021大前端技术储备

    千次阅读 2020-12-30 10:38:46
    GMTC全球大前端技术大会是由极客邦科技旗下InfoQ中国主办的技术盛会,关注前端、移动、AI应用等多个技术领域,促进全球技术交流,推动国内技术升级。GMTC为期4天,包括两天的会议和两天的培训课,主要面向各行业前端...
  • 一个31岁转行前端的崎岖成长之路【个人随笔】

    千次阅读 多人点赞 2021-01-27 13:09:16
    30 岁之前》https://juejin.cn/post/6875606903162929159 《前端开发指南》https://roadmap.sh/frontend 《前端学习路线》https://zhuanlan.zhihu.com/p/164701269 《前端从初级到高级如何系统化学习》...
  • 前端——从html到flutter的前端之路

    千次阅读 2021-11-01 16:52:58
    快应用是国内的各安卓厂商联合研发的一个无需下载安装的应用。 想说的话: 感谢"快应用"让我有了写技术博客的初始念头。 在我开发快应用项目的时候,网上的资料很少,开发社区一点都不活跃,经常遇到一
  • 大前端学习路线,完整知识体系(持续更新,欢迎关注点赞) 大家好,我是ITCJF ~~ 最近家里的事情太多了,很久没更新技术文了。期间,也收到了很多小伙伴的鼓励,谢谢大家的帮助和支持,我想感谢大家最好的方式就是...
  • 前端 vue 在可视化大屏领域的工作实践

    千次阅读 多人点赞 2021-06-08 01:13:33
    主要是做物联网及互联网解决方案方向,我上来就接手了这个项目,是一个可视化管理地图,主要用于某国企物业的安全预警的职能,说来也比较倒霉,刚来这公司,公司做这个项目的前端和后端都跑了,然后让我一个月给他...
  • 详解大型前端项目知识点

    千次阅读 2021-01-12 08:36:49
    前端基础架构 项目管理 代码管理 版本管理 CI/CD 缺陷管理 外包管理 开发环境 预发布环境 测试环境 本地开发环境 公有云、私有云环境 规范 代码风格 性能,可用性,可访问...
  • 前端大屏实例汇总

    2021-02-01 13:44:08
    前端大屏实例汇总,网上找的资料整理如下: - 工程化,基于React 和Vue https://gitee.com/MTrun/big-screen-vue-datav - 提供源码的大屏实例(30个) 下载地址进入官网:https://www.narutogis.com/ (下载...
  • 前言 本文采用后端从文件服务器下载文件返回byte数组的方式,前端则使用Blob 对象读取byte数组,并使用a标签的download属性对文件进行重命名。解决了通过直链下载文件时,文件服务器默认返回文件名不人性化的问题。 ...
  • 兜兜转转 又回到了前端开发的路线上 那么开始全力学习!多敲代码 多学习!
  • 正式学习前端大概 3 年多了,接触前端大概 4 年了,很早就想整理这个书单了,因为常常会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看...
  • 前端之变(五):王者归来

    千次阅读 多人点赞 2021-10-12 09:44:39
    本周继续就前端之变阐述自己的思考。 这是本系统的第五篇,前四篇为: 前端之变(一):技术的变与不变 前端之变(二):不变的前端 前端之变(三):变革与突破 前端之变(三):进击的前端 前面几篇文章我已经...
  • 前端之变(终):前端的未来

    千次阅读 多人点赞 2021-11-01 14:57:25
    本周为前端之变的最终篇,前七篇分别是: 前端之变(一):技术的变与不变 前端之变(二):不变的前端 前端之变(三):变革与突破 前端之变(四):进击的前端 前端之变(五):王者归来 前端之变(六):引领式...
  • 1、创建虚拟节点,在创建初是空的 2、createDocumentFragment本身不属于文档流,插入节点时,它本身不插入节点,是它的所有子孙节点即括号中的内容插入节点,相当于一个占位符。 3、当需要添加多个dom元素时,先将...
  • 期末前端web作业——用前端语言写一个小游戏

    万次阅读 多人点赞 2021-12-06 21:40:57
    前端小游戏 导读 期末了有些同学欺负我不会太熟练前端,给我整花活 ???? 偏让我给整一个纯前端的期末作业。 好吧我承认我确实对前端不咋熟练最近也在恶补,想要和我一起恶补的同学在下面资料里面能找到些东西哦...
  • 大前端课程中,汪磊老师更是让我敬佩,我感觉他的知识面非常广,说他什么都懂也不为过,他还总是把我们在学习中会遇到的问题演示出来,或者是提出来让我们注意。最感谢汪磊老师的地方,就是在JS异步章节,直播课中...
  • 大前端需要学哪里技能 1、web前端的各种框架; 2、当下流行的小程序架构; 3、web前端各种技术栈; 4、持续学习的心态; 点这里XZ地址:拉勾大前端高薪训练 拉勾大前端高薪训练营实战工程化 2.1 第一阶段:库/框架...
  • 2020年大前端技术趋势解读

    千次阅读 2020-12-30 08:30:00
    导Lead语如今的前端早已不再拘泥于满足页面展示,而是开始延展到通过全栈来闭环产品。这表明前端已经有能力透过业务深入产业,继而影响商业结果。这种表象的改变背后是本质的转变,从更为宏观的角...
  • 个人设计web前端大作业

    万次阅读 多人点赞 2021-01-30 19:08:52
    这是当时大二第一学期web前端课的课后作业,要求个人设计一个网站各个页面样式,当时还是有太混了,没意识到应该继续学习js,jq,vue。屏幕前的你可不要学当时的我啊。 源代码我个人的CSDN下载找,不需要积分,需要...
  • 大家好,猫哥今天给大家推荐的是排名前十的 10 大前端开源项目,每个都有 100K 左右的 Star,都开源了些啥?相信很多人都不知道吧,今天猫哥带大家来了解一下吧。1. freeCode...
  • web前端大作业毕设

    2021-08-22 22:49:21
    需要源码加QQ2921709778
  • web前端开发微信小程序

    千次阅读 2020-12-28 11:23:29
    2016年1月11日,微信父张小龙时隔多年的公开亮相,解读了微信的四大价值观。张小龙指出,越来越多产品通过公众号来做,因为这里开发、获取用户和传播成本更低。拆分出来的服务号并没有提供更好的服务,所以微信...
  • 前端之变(四):进击的前端

    千次阅读 多人点赞 2021-10-08 10:09:21
    本周继续就前端之变阐述自己的思考。 前面我讲了前端的一些变化,但是事实上,过去数年,前端不仅是在自己的技术方向发生了巨大的变化,它试图向所有技术方向发起进攻,取代其主流技术。那这一切又是怎么回事,现状...
  • 前端之 form 详解

    千次阅读 2021-01-12 20:12:50
    如何在浏览器中使用页面中的信息,我们称为“客户端脚本编程”,而如何把信息提交给Web服务,并将数据库保存在数据库中,我们通常称为“服务器端脚本编程” 在早期,所有可交互的HTML元素都应该放在HTML表单中,...
  • ps插件 Cutterman 蓝湖 PxCook 学习及网站 阮一峰的个人网站 - Ruan YiFeng's ... Support tables for HTML5, CSS3, etc 移动端自适应 Rem自适应js精简版flexible.js-前端开发博客 面试题 前端面试题 - 程序员本营
  • 2020 年前端技术发展盘点

    万次阅读 多人点赞 2021-03-30 08:36:09
    但是在 2020 年里面前端技术的发展依然没有停止脚步。 而我们作为前端开发者,必定需要对技术的更新换代有所了解。虽然我们不需要去学习所有新出来的技术。但是时刻保持 “了解” 和 “理解” 这些技术是有必要的。...
  • 大前端进击之路(二)JS异步编程

    千次阅读 多人点赞 2021-01-03 18:24:53
    大前端进击之路(二)|JavaScript异步编程 打工人!打工魂!前端才是人上人!此系列总结于大前端进击之路过程中的学习,如果文章中有不对的地方,希望大家能进行批评改正,互相进步。 经典面试题 我们先来看一道...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 937,849
精华内容 375,139
关键字:

大前端之路