一、概念serverless、为什么(前端)要推动建设 Serverless?
应用的运行演变为更细粒度函数的运行,用户开发特定业务的处理函数,托管给函数平台,按需使用相关的后端服务,通过特定条件的触发完成开发者业务逻辑函数的计算。用户无需为应用持续付费,只需支付函数运行时产生的资源消耗费用,而这,就是 Serverless 服务的模型。
1、更快地创建一个服务且免运维:大量的 Node.js 服务,创建服务,需要申请节点、申请机器,对接构建、部署、日志、监控,还要持续运维。我们希望能更快创建一个服务并且免运维。
2、大量低峰期时间cpu/内存利用率很低,服务不再使用了,资源却仍然占用
3、业务同学可以更专注于业务编码,简单、高效完成这么一个日常开发迭代的流程
cli 设计包含核心模块、默认命令、webpack相关、配置规范、以及基于cli 框架上层打造的插件生态
因为是应用级Severless方案,服务部署过程还是需要经历构建代码、编译镜像、以及整个应用级的部署。故我们基于Runtime的设计,结合Nodejs热更新能力,来支持页面级发布能力,轻量微应用类型工程。它支持静态页面、接口、动态页面、接口、页面模板、中间件等抽象,打造该工程类型的物料生态
不同场景下一致的开发体验,包括创建、构建、开发、部署等执行dev 时会一件启动前端资源webpack服务,同时启动服务端runtime服务,打开导航页面。另外部署,可以执行 sls deploy, 通过 cli 将服务、按场景先后,按流量分组部署到 Severless 平台。也可以通过 Vscode 插件可视化方式进行操作,进行部署、回滚。
是一个面向运营,集合了多个业务线后台系统。这里的菜单栏是配置集成起来的,每个菜单项是一个独立的页面,目前我们还没有采用微前端的一些轻量的隔离方案,使用的是简单、有效的iframe来进行隔离的。每个页面即服务,由每个业务线团队里的每个同学,用他们熟悉的技术栈,通过的前面介绍的微应用解决方案,独立运维。

二、滥用promise.all
用户信息页面挂掉了, 整个页面的是空白的(无数据)。打开浏览器调试了一下,发现只是一个获取用户的接口挂掉了。那么一个接口挂掉了为什么会导致整个页面无数据呢?
传递一个promise的数组,当所有的promise都完成(resolved),回调所有成功的结果, 或者有一个失败, 回调第一个失败的结果。
promise.all将多个promise放在一起处理,能简化回调的处理,一个then回调拿到所有数据进行处理,也能一个catch回调捕获所有的异常。
那么就意味着以下两点:

  • 如果有一个回调执行失败,then是不会执行的,或者说,所有的promise也都失败了
  • 即使有几个promise已经进入resolved状态,也会阻塞在那里直到所有的promise完成。

第一点会使得项目的容错大大降低,也许可能只是一个不关键的数据加载失败,其他所有的数据也不会显示。
第二点有违JavaScript非阻塞的理念,如果一个回调迟迟不能拿到结果,大家就都干等着了。

什么情况下才使用promise.all
几个异步操作是强相关的,后续步骤必须依赖这几个步骤全部成功才能进行。比如假设一个支付操作需要用户账户有余额,并且商品有库存,才能进行下一步操作,那么我们也许需要Promise.all来处理。

项目遇到的难点、印象深刻点总结相关推荐

  1. 面试中 项目遇见的难点答案_2019 百度、头条、小米、360、网易、拼多多等公司 Android 社招面试心得...

    每到"金三银四"的季节,总人很多人去寻找名叫"面经"一样的东西,其实就是一个个具体的题目,然后临阵磨枪,去"背"答案,如果一直是这样的话,我 ...

  2. apache camel_令人印象深刻的第一个Apache Camel版本

    apache camel 在准备下周的CamelOne会议时,我花了一些时间回顾一下Apache Camel项目的历史. 因此,除其他外,我了解了Apache Camel的第一个正式1.0版本 . A ...

  3. 令人印象深刻的第一个Apache Camel版本

    为了准备下周的CamelOne会议,我花了一些时间回顾一下Apache Camel项目的历史. 因此,除其他外,我了解了Apache Camel的第一个正式1.0版本 . Apache Camel 1 ...

  4. 项目中的难点怎么克服_克服大型项目中的文档挑战

    项目中的难点怎么克服 鉴于最近熊猫( Pandas) ,NumPy和Matplotlib等开放源数据科学项目的普及Swift增长,人们对文档的兴趣日益浓厚 ,这不足为奇. 为了帮助您了解所面临的问题, ...

  5. 那些让我印象深刻的五个bug

    相信大家在工作中面试过程中经常被问到,让你印象最深刻的一个bug是什么,这是一个开放性的题目,并没有标准答案,每个人接触过的系统都不一样,遇到过的问题也不一样,可能面试官只是想看一下你的表达能力,以及 ...

  6. Java 开发中遇到的印象深刻的问题

    文章目录 前言 一.Feign调用服务时,get请求参数异常? 二.多数据源的时候,mybatsiPlus的分页失效? 三.springBoot项目中maven引入的包不生效? 四.Reids mas ...

  7. 那些让我印象深刻的bug--02

    有几天没分享文章了,今天来分享一下最近遇到的一个bug,也算是让自己又涨见识了吧,以后测试的场景又要多完善一下了. bug的现象: 同一个接口,在手机上设置不同的时区后,在app上进行请求时,接口返回 ...

  8. 软件测试中遇到的印象深刻的问题及反思

    软件测试中遇到的比较印象深刻的问题: 项目名称是某幼儿园报名网站,首先我介绍一下这个项目,这个项目是用来给某地区的家长抢报幼儿园名额而服务的,毕竟有的幼儿园人气比较火爆,因此会出现人多名额少的情况,从 ...

  9. 机器人演示demo_令人印象深刻的WebGL演示

    机器人演示demo Fresh impressing WebGL demonstrations What is WebGL? This is new modern software library t ...

  10. 5个技巧打造令人印象深刻的LOGO

    LOGO 可能是用户和品牌在视觉上进行沟通的最重要的方式.用户通过它来快速识别对应的公司和品牌,并且很多时候,LOGO本身就奠定了用户和品牌/产品之间沟通的基调.从颜色到形状,从文字到装饰,LOGO种 ...

最新文章

  1. Windows 10 Anaconda Python 3.7 安装 MXNet GPU版
  2. pandas删除缺失数据(pd.dropna()方法)
  3. python做直方图-python实现直方图的应用
  4. STM32的IIC应用详解3
  5. Java 为什么不支持创建泛型化数组
  6. DCMTK:可加载的DICOM数据字典中的字典条目
  7. java中所有的类都继承于_Java中所有的类都是通过直接或间接地继承( )类得到的...
  8. JVM之常用基础参数详解
  9. 全球约39亿人未接入互联网 韩国家庭宽带普及率最高
  10. 照度计与亮度计的区别及如何挑选?
  11. 重磅!中国科协发布2020重大科学问题和工程技术难题
  12. 魔兽世界插件开发-Table Of Contents(TOC)文件
  13. Message: 不允许有匹配 “[xX][mM][lL]“ 的处理指令目标解决
  14. 记录一次成功的EC、BIOS降级操作
  15. PHP经典实用案例1000个
  16. 方维直播源码对接新版腾讯云通信对接新版腾讯即时通信IM
  17. RichText widgets require a Directionality widget ancestor.
  18. 怎么查看oracle是多少位的,查看 Oracle 是32位还是64位的方法
  19. 论文解读:Unprocessing Images for Learned Raw Denoising
  20. 常用室内定位技术总结

热门文章

  1. oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等)
  2. Python学习笔记(基础知识第三篇:列表、元组、字典、集合)
  3. 2WD远程控制小车——云端设计
  4. 千图网免费下载工具(windows版)
  5. html页面上传文件mui,mui 文件上传注意问题
  6. 对vue与angular和react的对比
  7. 速度与压缩比如何兼得?压缩算法在构建部署中的优化
  8. 最简单的Greenplum数据库的安装及配置步骤
  9. 解决ZeroDivisionError: integer division or modulo by zero问题
  10. c atol()函数_atol()函数以及C ++中的示例