devops相关面试题

  1. 1、发布10+ NPM包,熟悉NRM、NVM。 

1、谈谈你参与发布的NPM包,它们解决了什么问题,有什么特点?

NPM: 是 Node.js 默认的包管理工具

NRM:是 Node.js 源管理工具

NVM:Node.js 版本管理工具

我参与发布的NPM包为mk-form,它通过配置生成和验证复杂表单,简化前端表单开发流程;

二次开发copy-webpack-plugin,解决了运行后报错的问题,让项目成功在生产环境中完成构建。

2、NPM包发布需要注意什么?需要做哪些配置和操作?

1. package.json配置名称、版本、license等信息。 

2. README.md编写包使用文档。

3. .gitignore过滤不需要发布的文件。

4. 登录NPM账户并执行npm publish发布。

3、什么是SDK?SDK开发流程和一般软件开发有什么不同?

SDK是给开发者使用的开发包。SDK开发流程与一般软件开发流程相比,更注重:

1. 简单易用的API设计。

2. 完善的使用文档。

3. 功能精炼,单一目的。 

4. 版本管理与兼容。 

5. 快速迭代更新。 

  1. 2、熟练Node.js,用Koa和Express框架开发过服务端程序。

    1、什么是异步编程,Node.js如何实现异步IO?

异步编程是在完成一个任务时,允许程序执行其他任务,而不会造成程序等待。Node.js通过Callback实现异步IO,在IO阻塞时控制权交给事件循环,而不是等待IO完成。

​​​​​​​2、Koa和Express有什么区别?为什么会有两个框架?

异步流程控制:Koa采用了基于Promise的中间件处理方式,通过async/await语法提供更好的异步流程控制。这使得编写和管理异步代码更加简洁和可读,避免了回调地狱的问题。而Express则采用传统的回调函数风格,需要使用额外的工具库或技术来处理异步操作。

中间件系统:Koa的中间件系统相对更加精简和灵活。它采用了洋葱模型(onion model),允许开发者自由组合和定制中间件,以实现更细粒度的控制和处理请求。相比之下,Express的中间件系统相对更传统,提供了一组内置的中间件和路由系统,更适合简单和快速的开发。

错误处理:Koa在错误处理方面更加强大和灵活。它提供了一种机制来捕获和处理中间件链中的错误,并统一处理错误响应。这使得开发者能够更好地管理和处理应用程序中的错误情况。而Express在错误处理方面相对简单,需要开发者自己实现错误处理逻辑。

1. 更优雅的异步流程控制。Koa使用 async/await 和 Generator,让异步代码更像同步代码,易于阅读和维护。而Express需要嵌套多层回调来解决异步流程,难以维护。

2. 更优雅的错误处理。Koa使用try/catch捕获异步代码中的错误,简单易用。而Express需要在每个异步回调的第一个参数中定义错误处理逻辑,比较繁琐。

3、 服务端渲染和前端渲染有什么不同?如果要在Node.js程序中实现服务端渲染,需要注意什么?

服务端渲染是在服务器生成HTML并返回给客户端。前端渲染是客户端根据数据动态渲染页面。在Node.js中实现服务端渲染需要注意:

1. 渲染视图模板并且输出HTML字符串。

2. 将数据预填充至HTML中。 

3. 页面内资源路径等需要根据请求头中相对路径确定。

4. 客户端会重复渲染,需要在HTML中添加数据存储,在JS逻辑中判断是否需要再次渲染。

  1. 3、熟悉Nginx,设置过gzip压缩、缓存规则和SSL证书。

    1、Nginx的工作模式有哪些?每种工作模式的作用是什么?

Nginx的工作模式有:静态服务、反向代理、负载均衡和动态缓存等。

不同模式的作用分别为:提供静态文件服务、转发请求至后端应用、实现请求分发与平衡、通过缓存提高访问速度。

​​​​​​​2、如何配置Nginx实现SSL证书设置和HTTPS服务?

1. 申请SSL证书或自签名证书。

2. 在Listen指令中指定HTTPS协议和证书路径。

3. 使用ssl_certificate和ssl_certificate_key指定证书和私钥路径。

​​​​​​​3、缓存适用于哪些场景?需要考虑什么因素设置Nginx缓存规则?

缓存适用于访问频率高但内容变化少的场景,需要考虑:

1. 数据更新频率。 

2. 页面个性化需求。

3. CDN与浏览器缓存。

4. 缓存方式与过期规则。 

  1. 4、了解Jenkins、Docker,能自动化部署前端应用。

    1、Docker和虚拟机有什么区别?Docker的容器与镜像是什么关系?

Docker与虚拟机的区别在于Docker通过容器技术可以直接运行应用,不需要引入操作系统映像。而虚拟机需要运行操作系统。Docker容器依赖镜像,镜像是容器运行时的只读模板。

​​​​​​​2、Jenkins的主要功能是什么?如果要实现CI/CD,Jenkins需要安装哪些插件?

 Jenkins的主要功能是持续集成和持续交付。实现CI/CD需要安装:

1. Git插件:拉取代码。 

2. Maven插件:构建Java项目。

3. Docker插件:构建Docker镜像。 

4. Kubernetes插件:部署至K8S集群。

​​​​​​​3、什么是构建流水线?在Jenkins中如何创建和配置构建流水线?

构建流水线是将整个软件交付过程编排在一起的自动化工具链。在Jenkins中通过:

1. 创建Pipeline项目。 

2. 编写Jenkinsfile声明Pipeline流程。

3. 选择“Pipeline script from SCM”接管代码仓库中的Jenkinsfile。 

4. 配置构建触发器为“Webhook trigger for Gitiles SCM”自动触发Pipeline。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络编程及相关概念

网络 概念:两台或多台设备通过一定物理设备连接起来构成了网络 根据网络的覆盖范围不同,对网络进行分类: 局域网:覆盖范围最小,仅仅覆盖一片小区域。 城域网:覆盖范围较大,可以覆盖一个城市。…

打印机怎么扫描文件到电脑?6个步骤!轻松完成!

“在工作时我经常需要用到打印机,有时候需要将部分文件扫描到电脑。但是我不是很清楚应该如何操作,有什么方法可以让打印机快速传输文件到电脑的方法吗?” 在人们的工作和学习中,打印机成了很多用户的必备工具。人们可以用它来打印…

C++中的接口有什么用

2023年12月13日,周三上午 今天上午在适配器模式,我发现如果想真正理解适配器模式,就必须学会使用C中的接口,就必须明白为什么要在C中使用接口,所以重新学习了一下C中的接口 目录 C中的接口有什么用用代码说明“实现多…

python注释规范

Python 中的函数注释通常使用文档字符串(docstring)来提供对函数的说明。文档字符串是放置在函数、模块或类的顶部的字符串,用于描述其功能、输入参数、返回值以及其他相关信息。以下是一些建议的 Python 函数注释规范: 使用三重…

本地搭建Linux DataEase数据可视化分析工具并实现公网访问

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…

软件测试面试中基础与功能的问题

一、 你们的测试流程是怎么样的? 答:1.项目开始阶段, BA (需求分析师) 从用户方收集需求并将需求转化为规格说明书,接 下来在 项目组领导 会组织需求评审。 2.需求评审通过后,BA 会组织 项目…

React中类组件和函数组件的区别?

面试官:说说对React中类组件和函数组件的理解?有什么区别? 一、类组件 类组件,顾名思义,也就是通过使用ES6类的编写形式去编写组件,该类必须继承React.Component 如果想要访问父组件传递过来的参数&#…

剑指 Offer(第2版)面试题 28:对称的二叉树

剑指 Offer(第2版)面试题 28:对称的二叉树 剑指 Offer(第2版)面试题 28:对称的二叉树解法1:递归解法2:镜像二叉树 前序遍历 剑指 Offer(第2版)面试题 28&…

kernel(三):kernel移植

本文主要探讨210官方kernel移植。 配置文件选择 选择配置文件smdkv210_android_defconfig(arch/arm/configs) 修改主Makefile 配置cpu架构和交叉编译工具链 vim MakefileARCH ? armCROSS_COMPILE ? /root/arm-2009q3/bin/arm-none-linux-gnueabi- 初步编译烧…

使用对象处理流ObjectOutputStream读写文件

注意事项: 1.创建的对象必须实现序列化接口,如果属性也是类,那么对应的类也要序列化 2.读写文件路径问题 3.演示一个例子 (1)操作的实体类FileModel,实体类中有Map,HashMap这些自带的本身就实现了序列化。 public class File…

Gradio: 实时性能反馈的机器学习演示工具 | 开源日报 No.107

comfyanonymous/ComfyUI Stars: 17.5k License: GPL-3.0 这个项目是 ComfyUI,它提供了一个图形化界面和后端来设计和执行复杂的稳定扩散工作流程。 节点/图表/流程图接口用于实验并创建复杂的稳定扩散工作全面支持不同版本的 Stable Diffusion异步队列系统部分更新…

薅github的羊毛-用pages建自己的博客或资源站 - 博客工具 - 2/2

笔者调研了好多个静态博客工具,最后锁定Hexo了,但不等于其他博客不行。我只吐槽两个 Hugo - 难用Gridea - 简直就是骗钱的,我交钱用不了 theme没有链接,同步也同步不了,估计以前是可以,现在经营不下去&…

十大经典排序算法知识体系终结篇

目录 一. 前言 二. 冒泡排序(Bubble Sort) 2.1. 概念 2.2. 算法步骤 2.3. 代码实现 三. 选择排序(Selection Sort) 3.1. 概念 3.2. 算法步骤 3.3. 代码实现 四. 插入排序(Insertion Sort) 4.1. …

wireshark使用

1、抓包界面介绍 2、过滤 (1) ip过滤 or 端口过滤 ip.src 192.168.1.104 显示源地址为192.168.1.104的数据包列表 ip.dst192.168.1.104, 显示目标地址为192.168.1.104的数据包列表 ip.addr 192.168.1.104 显示源IP地址或目标IP地址为192.168.1.104的数据包列表 port 80 …

C++进阶篇9---类型转换

C语言中的类型转换 在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与 接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型 转换和…

RRC下的NAS层

无线资源控制(Radio Resource Control,RRC),又称为无线资源管理(RRM)或者无线资源分配(RRA),是指通过一定的策略和手段进行无线资源管理、控制和调度,在满足服…

2.操作符详解

1.10进制转二进制方法 所以125的二进制就是1111101 2.2进制转8进制: 从2进制序列中右边最低位开始向左每3个2进制位换算为一个8进制位,剩余不够3个2进制位的直接换算 例:01101011转为01 101 011 即1 5 3 即8进制的153 还原回去的话: 将3化为011放最右边,5化…

使用PM2,在生产环境稳定运行你的node项目

PM2 一个 node&#xff0c;本身就用几行代码&#xff0c;就可以启动个 server 进程&#xff0c;监听个端口&#xff0c;为大家提供 Web 服务 一、依赖安装 npm install pm2 -g 二、命令行启动 普通执行启动 pm2 start <js 文件路径 >.js 携带参数启动 pm2 start < 某种…

【数学】整除与同余

基本概念 在数论中&#xff0c;整除不得不说是一种最为基础的知识了。 a a a 整除 b b b&#xff0c;记作 a ∣ b a|b a∣b 设 a , b ∈ Z a,b\in\Z a,b∈Z 且 b ≠ 0 b\ne 0 b0&#xff0c;则 b ∣ a b|a b∣a 当且仅当 ∃ q ∈ Z \exist q\in\Z ∃q∈Z 满足 q b …

re:Invent 云端历程:Swami Sivasubramanian 博士主题演讲-数据共生与开放

re:Invent 云端历程&#xff1a;Swami Sivasubramanian 博士主题演讲-数据共生与开放 亚马逊云科技 re:Invent 大会简介 亚马逊云科技 re:Invent 是亚马逊云科技为全球云计算社区举办的学习大会。是云计算领域的行业风向标&#xff0c;科技界的全球年度重磅盛会。 亚马逊云科…