2024年最全软件服务工程 -- 概念性知识点总结,2024年最新阿里p6前端面试

前端资料汇总

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。
最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿。

5. 欧几里得距离、皮尔逊相关系数、Cosine 相似度(余弦)、Tanimoto 系数(谷本)以上系数越大越相似,需要根据具体数据类型场景具体选用,请说明基于什么数据类型场景选用不同的相似度判断?为什么?

6. Apriori 算法有五种改进性能方法,请分别解释它们的原理?

7. 什么是 DevOps?DevOps 工具链中常用的工具有哪些(至少 3 个)?DevOps 模式的应用领域有哪些?

8. 简述 REST 和 SOAP 协议,并说明相比于 SOAP,REST 有哪些优点?

9. 云计算系统的 5 个层次?以及云计算的基本特征(至少 5 个)?

10. Django 是一个开放源代码的 Web 应用框架?请详细描述该应用框架

11. Dubbo 是什么?它有什么特点?

12. 一个项目能否被设计成微服务的架构,需要考虑的因素是什么?

13. 微服务中划分服务有哪些可以参考的设计策略?判断良好服务的标准是什么?

14. 请比较 Dubbo 还是 Spring Cloud 的区别?

15. Service Mesh (网格服务)是什么机制?请加以描述

16. 在微服务最初设计时,对于轻量级的通信协议选择遵守哪些规则?

17. 如何使用 Jenkins 进行持续集成开发?

18. Scrum 开发有哪些组成部分?


1. 请描述 RESTWeb 服务架构

RESTWeb服务确保能够对用户进行身份验证,并授权允许其访问和使用的资源。确保信息从收集之时起到存储之时以及以后提供给被授权人时的保密性和完整性①如果匿名用户试图访问资源,服务将返回401未经授权的响应并拒绝访问;②在基本身份验证中,密码以简单的纯文本格式通过网络传递,这种格式非常不安全,为了解决这个问题,选择一个HTTPS协议,它对携带密码的HTTP管道进行加密。③在摘要式身份验证中,客户机向服务器发送凭证摘要。默认情况下,客户端使用MD5计算摘要。它优于基本身份验证。要求高安全性的应用程序应实现自定义身份验证方案使用HMAC(自定义哈希消息身份验证代码)方法,在该方法中,服务器向客户端传递用户ID和密钥,然后可以将此密钥用于所有进一步的登录请求。④遵循应用程序安全原则,比如验证服务器上的所有输入

RestWeb的主要约束条件:(1)使用C/S模型。将用户接口和数据存储分离。(2)通信必须在本质上是无状态的。(3)响应内容可以在通信链的某处被缓存。(4)分层系统设计。(5)统一接口。

REST基本设计原则一: 使用HTTP的方法进行资源访问二: 使用无状态/无会话的服务设计三: 用目录结构风格的URL设计来表示资源四: 使用XML或JSON来传输数据。

2. 请解释控制反转(IoC)的原理和举例说明在什么情况下用到 IoC?****

控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当IoC被使用,一个对象依赖的其它对象不会通过自己创建或者查询以来对象,而是以被动的的方式被传递。 IoC和JNDI可以被认为是相反的,当容器在对象初始化时未等对象进行请求就率先主动将依赖传递给它。   IMediaFile imf = Assembly.Load(ConfigurationManager. Settings[“AssemName”]).CreateInstance(ConfigurationManager. Settings[“MediaName”]);

这个具体对象是哪一个,全由配置文件控制,就是控制反转。即对象的控制权进行转移,转移到第三方,例如IoC容器。

3. AJAX 分别通过什么机制实现标准化呈现、实现动态显示和交互、进行数据交换与处理、 进行异步数据读取、绑定和处理所有数据?

Ajax使用XHTML和CSS标准化呈现; Ajax使用DOM实现动态显示和交互; Ajax使用XML和XSLT进行数据交换与处理;Ajax使用XMLHttpRequest进行异步数据读取; Ajax使用JavaScript绑定和处理所有数据。

4. 请比较描述机器学习的分类模型 XGboost、Adaboost、Catboost、随机森林和 GBDT****?****

XGboost是梯度提升树的一种高效系统实现,是对GBDT进一步的改进,包括对代价函数进行了二阶泰勒展开,在代价函数里加入了正则项,借鉴了随机森林的列采样方法,支持并行计算等。  AdaBoost是基于boosting的思想,通过多个弱分类器的线性组合来得到强分类器,训练时重点关注被错分的样本,准确率高的弱分类器权重大。

CatBoost是Category 和 Boosting的缩写,最大的特点就是可以直接处理类别特征,不需要任何预处理来将类别转换为数字。

随机森林算法背后的思想是群体智慧的体现,它通过随机的行采样(bagging)和列采样(feature bagging)构造不同的训练集,建立一个决策树森林,利用加权平均方式或多数表决的方式得到最后的预测结果,能够并行学习,对噪声和异常数据具有很好的过滤作用,因此有很广泛的应用。

GBDT是基于boosting的思想,串行地构造多棵决策树来进行数据的预测,它是在损失函数所在的函数空间中做梯度下降,即把待求的决策树模型当作参数,每轮迭代都去拟合损失函数在当前模型下的负梯度,从而使得参数朝着最小化损失函数的方向更新。

5. 欧几里得距离、皮尔逊相关系数、Cosine 相似度(余弦)、Tanimoto 系数(谷本)以上系数越大越相似,需要根据具体数据类型场景具体选用,请说明基于什么数据类型场景选用不同的相似度判断?为什么?

****欧几里得:****适合于特征数据量较小,且完整的情况。如某T恤从100块降到了50块(A(100,50)),某西装从1000块降到了500块(B(1000,500)),那么T恤和西装都是降价了50%,两者的价格变动趋势一致,可以用余弦相似度衡量,即两者有很高的变化趋势相似度,但是从商品价格本身的角度来说,两者相差了好几百块的差距,欧氏距离较大,即两者有较低的价格相似度。

**皮尔逊相关系数:**适合于特征数据量较大的情况,分数膨胀的情况。比如用户对一个物品的评价,每个用户的评价标准不同,因此衡量两个变量之间的相关性更可信。

Cosine相似度:适用于数据是稀疏的。假设这样一个数据集,一个在线音乐网站,每个用户常听的也就其中的几十首,这种情况下使用曼哈顿或者欧几里得或者皮尔逊相关系数进行计算用户之间相似性,计算相似值会非常小,因为用户之间的交集本来就很少,这样对于计算结果来讲是很不准确的,因此需要cosine相似度。

Tanimoto系数:适用于:数据表示为0、1这种二值化,而非有数量大小的情况。比较文本相似度,用于文本查重与去重;计算对象间距离,用于数据聚类等。

6. Apriori 算法有五种改进性能方法,请分别解释它们的原理?

****1. Hash-based itemset counting(散列项集计数)****将每个项集通过相应的hash函数映射到hash表中的不同的桶中,这样可以通过将桶中的项集计数跟最小支持计数相比较先淘汰一部分项集。

2、****Transaction reduction(事务压缩)****减少用于未来扫描的事务集的大小。一个基本的原理就是当一个事务不包含长度为k的频集,则必然不包含长度为k+1的频集。从而我们就可以将这些事务加上标记或者删除,这样在下一遍的扫描中就可以减少进行扫描的事务集的个数。

3、****Partitioning(划分)****挖掘频繁项集只需要两次数据库扫描。D中的任何频繁项集必须作为局部频繁项集至少出现在一个部分中。第一次扫描:将数据划分为多个部分并找到局部频繁项集,第二次扫描:评估每个候选项集的实际支持度,以确定全局频繁项集。

4、****Sampling(采样)****选择原始数据的一个样本,在这个样本上用Apriori算法挖掘频繁模式。通过牺牲精确度来减少算法开销,为了提高效率,样本大小应该以可以放在内存中为宜,可以适当降低最小支持度来减少遗漏的频繁模式。可以通过一次全局扫描来验证从样本中发现的模式,可以通过第二此全局扫描来找到遗漏的模式。

5、FP-growth算法FP-growth算法只进行2次数据库扫描。它不用生成候选集,不使用候选集,直接压缩数据库成一个频繁模式树,最后通过这棵树生成关联规则。两个步骤:① 利用事务数据库中的数据构造FPgrowth;②从FP-growth中挖掘频繁模。

7. 什么是 DevOps?DevOps 工具链中常用的工具哪些(至少 3 个)?DevOps 模式的应用领域有哪些?

DevOps是提高软件开发、测试、运维、运营等各部门的沟通与协作质量的方法和过程,DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作,强调通过自动化的方法去管理软件变更、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。   DevOps(development &operations)是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。

****DevOps目的:****为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

****工具:****GitHub 、Git/SVN、Docker、 Jenkins、 Hudson、 Ant/Maven/Gradle、QUnit、 JMeter等。

应用领域:(传统企业 移动研发 支付宝 阿里巴巴)将开发延伸至生产中–包括拓展持续集成和发布功能至生产,集成QA和信息安全至整个工作流,确保代码和环境可在生产中直接部署。 向开发中加入生产反馈–包括建立开发和IT运营事件的完整时间表用于帮助事件的解决,使得开发融入无指责的生产反思,尽可能使开发可以自助服务,同时创建信息指示器来表明本地的决策如何影响全局的目标。 开发嵌入到IT运维中–包括开发投入到整个生产问题处理链,分配开发资源用于生产问题管理,并协助退回技术债务,并且开发为IT运维提供交叉培训,增加IT运维处理问题的能力,从而降低升级问题的数量。 将IT运维嵌入至开发–包括嵌入和联络IT运维资源至开发,帮助开发创建为运维使用的可重用的用户故事,定义一些可以被所有项目共用的非功能性需求。

8. 简述 REST 和 SOAP 协议,并说明相比于 SOAP,REST 有哪些优点?

****R********EST:****REST是一种用于设计松散耦合的Web服务的体系结构样式。它主要用于开发轻量级、快速、可扩展和易于维护的Web服务。  RESTful应用程序使用HTTP请求发布数据(创建/更新)、读取数据(进行查询)和删除数据。因此,REST将HTTP用于所有四个CRUD(创建/读取/更新/删除)操作。 REST将Web定义为分布式超媒体(超文本中的超链接)应用程序,其链接资源通过交换资源状态表示进行通信。其余的体系结构风格为 构建分布式和松散耦合的应用程序提供了指导原则。 REST不是一个标准,而是一种体系结构样式,使用http、text/html、text/xml等标准。

S********OAP: SOAP简单对象访问协议是一种协议,主要依赖XML来提供消息传递服务。 SOAP使用不同的协议进行通信,如http、smtp或ftp。REST是一种体系结构风格,它使用现有的HTTP操作和方法;并且不创建任何新的标准。

****REST比SOAP Web服务更灵活。它比SOAP有以下好处。****SOAP只对消息使用XML,REST支持不同的格式;REST消息的大小较小,占用的带宽较小;REST在性能方面更好,具有更好的缓存支持;访问REST Web服务不需要第三方工具。REST的服务学习使用更容易。
前端资料汇总

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。
最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿。

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值