骑芯供应链(T 面试)

1、目前市面上主流的团队开发模式是什么?

正解:DevOps,https://blog.csdn.net/bntX2jSQfEHy7/article/details/79168865

 

2、你觉得什么是全栈工程师?

交流:全栈工程师就是前后端都懂的人

正解:全栈工程师可以理解为全能工程师,就是啥都会,也可以叫全端工程师,就是同时拥有前端开发技术及后端开发技术,既能写前端代码,又能写后端代码,能够独立完成产品研发的人。全栈工程师的英文名称是Full Stack developer。

 

3、你认为项目经理的含金量怎么样,他的职责是怎样的?

交流:

A:项目经理需要对项目的业务很了解,而且要把握项目的开发进度,负责解决团队成员的疑难问题,项目经理含金量很高。

B:项目经理需要懂技术吗?

A:项目经理需要懂技术,但不需要很精通,因为有专门的技术负责人。

B:其实很多人都对自己都有偏见,你刚才说的项目经理其实就是一个开发组长。我认为项目经理是很厉害的,他对事情的认知性很强,他必须要非常懂技术!

正解:

项目经理的含金量很高,该职位的薪资可以达到年薪百万以上,在公司是个举足轻重的角色;

1、 基本职责就是确保项目目标的实现,领导项目团队准时、优质地完成全部工作。

2、 与客户沟通,了解项目的整体需求。并与客户保持一定的联系,即时反馈阶段性的成果,和即时更改客户提出的合理需求。

3、 制定项目开发计划文档,量化任务,并合理分配给相应的人员。

4、 跟踪项目的进度,协调项目组成员之间的合作。

5、 项目提交测试后,项目经理需了解测试结果,根据测试的bug的严重程度来重新更改开发计划。

6、 向上汇报。向上级汇报项目的进展情况,需求变更等所有项目信息。

7、 项目完成的时候需要项目总结,产生项目总结文档。

如今很多软件项目经理都在学习项目管理知识体系(PMP认证)的知识,把业务和项目管理方法论结合起来,使自己的管理更加规范化和具有周密性。(项目管理师资格证书)

https://zhidao.baidu.com/question/286608275.html

 

4、谈下你对项目的看法,什么才算一个项目?

交流:

A:?

B:你写的绩效考核那只算一个模块,根本不算项目。阿里巴巴的天猫是一个项目,淘宝是一个项目,下面要建造一个新大楼,这也是一个项目;

B:我们公司整体也可以算是一个项目

正解:

这个问题应该先从宏观层面去谈论,再举一个实际的例子。比如:

我觉得能实现一整套业务体系的东西,就可以称之为项目。例如我写的绩效考核加上民主测评还不算是一个项目,只是两个模块,还需要加上干部管理系统、单点登陆系统等才能够构成一套政府业务体系,这个整体就是一个项目。

 

 

5、你觉得什么是前后台分离?

交流:

A:前后台分离就是指前台人员只需要编写html、js代码,负责前台页面的编写、美化、脚本逻辑处理;而后台人员只需要负责编写接口,处理业务逻辑,管理数据库即可。

B:嗯嗯,你知道为什么公司会采用前后台分离的工作方式吗?其实就是为了降低工资比例,因为前台开发工程师工资低,而后台开发工程师工资高;我们公司后续也会采用这种模式的。

B:其实后端开发也很简单,无非就那点东西;除非你开发像携程阿波罗这样的软件;

 

6、说下你对微服务的理解?

交流:

A:微服务其实就是把一个复杂的项目拆分成了多个服务,比如一个电商网站会拆分成会员服务、订单服务等;

B:那你说下微服务与传统项目相比,优缺点在哪里?

A:微服务的优点在于解耦,各个服务之间的依赖性大大降低了。还有就是容错性提高了;

B:你确定是容错性提高了?传统项目改为微服务后,错误率大大提高了;

A:哦,我可能名词说错了,我想表达的意思是:“如果一个服务崩溃了,不会影响到另外一个服务的运行;”

B:你觉得用微服务开发是变简单了,还是变复杂了;

A:我觉得用微服务开发是变简单了

B:不是,他变得更加复杂了,你需要处理服务链路、网关、网络通信等诸多问题,而且运维压力也提高了很多;

 

7、你简历上写的熟悉SpringCloud,那你说下SpringCloud里面包含哪些组件?

交流:

A:SpringCloud里面包含Eureka注册中心,现在Eureka闭源了,但是可以用Zookeeper或Consul代替;还有Hystrix组件解决服务雪崩效应,里面包含服务降级、服务熔断机制;Zuul网关对服务进行拦截处理;SpringCloud Bus消息总线;

B:那你说下Zuul网关的作用有哪些?

A:Zuul网关可以用来做权限验证、日志处理等操作

B:嗯,Zuul网关还可以用来做API接口统一管理、性能监控这些事

B:你知道SpringCloud Config吗?

A:我知道,我刚才忘记说了,SpringCloud Config用来做分布式配置中心,这样的话,改动配置文件后就不需要重启服务器了;

B:那服务与服务之间相互调用,可能会产生很多信息,我需要监控他们的性能情况,这怎么办?

A:可以在注册中心上面查看呀

B:不是,注册中心是用来做服务注册与发现的,你知道服务链路吗?

A:这个我不知道

B:服务链路就是用来监控各服务之间相互调用情况的,我们用的是zipkin实现的

正解:

由于有点小紧张,漏了很多东西没说。应该要补充ribbon负载均衡、feign客户端;

 

8、SpringCloud是怎么解决高并发的?

交流:

A:用Hystrix呀

B:Hystrix是用来解决服务雪崩效应的,不能解决高并发问题;

A:...

B:用集群呀

A:哦,我理解错误了,微服务里边是用Nginx加上Zuul网关集群实现负载均衡的;Nginx作为外部框架,用来实现方向代理,而Zuul网关作为内部框架,用来调用各种服务;

B:为什么要用Nginx作为外部框架?

A:因为Nginx底层是采用C语言编写的,性能很好,但是不易使用;而Zuul网关是采用Java编写的,方便入手。

B:是因为Nginx好用,才拿来混合着用的

A:对,虽然说SpringCloud是全家桶,但是目前上市面上都是这样的,哪个组件在某一块领域特别好用,就拿来混合着使用;

B:嗯,我们公司也是用的Nginx+Zuul网关,但是Zuul网关是很强大的,相信过不了多久就可以只使用Zuul,丢弃Nginx了;

 

9、市面上微服务框架有哪些?

交流:

A:Dubbo、SpringCloud,这是市面上最常用的两个,其他的我也不太了解;

B:嗯,那你说下Dubbo和SpringCloud的区别

A:最明显的区别就是Dubbo只是一个服务治理框架,而SpringCloud是全家桶,包含了一套微服务的解决方案;并且SpringCloud服务之间通信是采用的Http协议,而Dubbo是采用的内部协议;

B:Dubbo的内部协议是什么?

A:...

B:是TCP协议

正解:

Dubbo的底层是用的Netty框架,Netty与这个TCP协议的关系?

 

10、你们公司前端用了什么技术?

交流:

A:H5+CSS3+JavaScript+Bootstrap+Layui

B:你知道前端三大框架是什么吗?

A:AngularJS、Vue.js、Node.js

B:Node.js不是

A:...

B:这个是Facebook开源的框架

A:嗯...,我记起来了,是React.js

B:对,那你用过React.js吗?

A:我之前自学过,公司本来说要用React.js去开发一个项目,后来不了了之了

B:你知道React.js的优点吗?

A:React.js编写的程序可以跨平台使用,就你写的代码在安卓、苹果上面都可以运行

B:嗯,那你说下React.js的运行部署流程

A:这个我不知道,当时出了点问题,没有运行成功

正解:我当时自学的是ReactNative框架,不是React.js

 

11、你知道普罗米修斯吗?

交流:

A:普罗米修斯是个人

B:确实是个人,他是干嘛的呢?

A:这个我有点忘了

正解:

普罗米修斯,在希腊神话中,是最具智慧的神明之一,最早的泰坦巨神后代,名字有“先见之明”(Forethought)的意思。泰坦十二神伊阿佩托斯与名望女神克吕墨涅的儿子。普罗米修斯不仅创造了人类,给人类带来了火,还教会了他们许多知识和技能。不过你所指的应该是Prometheus,它是一个开源的系统监控和告警的工具包;

http://www.cnblogs.com/throwable/p/9346547.html

 

12、你知道kafka吗?

交流:

A:这个是消息队列,但是我还没学完

 

13、SpringCloud是怎么打包部署的?

交流:

A:就直接打成jar包进行部署

B:在正式环境下,传统项目是打成war包,扔到Tomcat目录下进行部署即可。而微服务你确定是打成jar/war包进行部署就可以了?

A:没错,打成jar包进行部署即可

B:好吧

正解:SpringCloud在正式环境部署时,首先需要用maven命令将项目打成jar包,然后在linux环境下使用docker容器进行部署,需要将jar包制作成docker镜像,然后推入容器中即可;

 

原文地址:https://www.cnblogs.com/syjp/p/10449601.html