devops相关面试题

2023-12-14 07:58:47
  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。

文章来源:https://blog.csdn.net/weixin_49307011/article/details/134848189
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。