• 我的特斯拉外包岗位面试经历
  • 发布于 2个月前
  • 1867 热度
    0 评论
这次小白收到的企业邀请待遇不错,待遇25K-30k,小白眼睛一亮,虽然是外包,但是待遇不错啊,趁年轻多挣点,而且是外包到特斯拉公司呢,那可是全球有名的大公司,说不定进去能学到很多知识。说实话25K-30k的待遇是.NET开发的天花版了。跟HR聊了一下,很快就收到面试邀请。外企就是不一样,视频面试是用的Teams。Teams是微软的产品,感觉挺难用的,小白下载APP后折腾好一会才搞定,大家如果遇到这种软件需要提前准备。

视频面试开始了,映入眼帘的是一个30岁左右的面试官。面试严肃的让小白对准摄像头,小白突然就有点紧张了。套路一样,先是自我介绍一下,小白也是老手了,噼里啪啦很流利的介绍完,小白自我感觉良好。接下来就是问问题了。

1、C#中值类型和引用类型有哪些?
这个是最基础的基础,简单

2、讲讲JWT权限验证
这个小白以前面过,滔滔不绝的讲了出来,也不知道对不对   

3、说出怎么用docker部署.NET网站,以及常用的命令
这个问题也很快回答
4、说出ef core多对多的怎么配置。
这一题就给小白一个下马威,问用过EF Core吗?EF Code的多对多关系怎么配置。这把小白给难住了,平时用EF也没有多对多的配置啊。

5、用过EF事物吗?具体怎么实现?
大白答道"嗯....用过",小白确实用过,但是好几年前的项目了,现在的项目使用的是开源的ABP框架,自带特性事务,原生怎么实现小白早忘记了。

6、正则表达式怎么实现身份证验证
正则表达式看起来简单用起来难啊。小白答道:前17位数字,第6位数之后是8位生日,最后一位数字加X。要说出来具体怎么写小白还真不知道。
7、从简历上看你用过RabbitMQ,队列异常怎么处理?
小白答道:可以重试并写入日志,通过日志分析,小白也不知道是否正确

8、讲讲事务和委托的区别
当问到这个问题,小白由于太紧张直接崩溃了,这问题就在脑海中怎么忘记了。

解答
1、C#中值类型和引用类型有哪些?
值类型:所有数值类型,字符Char类型,bool类型,结构体Struct,枚举enum
引用类型:类,数组,委托,接口,string字符串(特殊)

详情请看-->值类型与引用类型

2、讲讲JWT权限验证
JWT:Json Web Token,是基于Json的一个公开规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息,他的两大使用场景是:认证和数据交换.
JWT的组成部分:
1).Header(头)  作用:记录令牌类型、签名算法等 例如:{“alg":"HS256","type","JWT}
2).Payload(有效载荷)作用:携带一些用户信息 例如{"userId":"1","username":"name"}
3).Signature(签名)作用:防止Token被篡改、确保安全性 例如 计算出来的签名,本质上来说是一个字符串。

实现步骤:
1)用户登录成功后,服务器会根据用户名和签名以及其他信息加密生成唯一的token串传回客户段,当然后台会根据一定规则把token存入相应的空间(缓存、数据库等)
2)客户端收到token后会存入cookie,以后主机的每一次发送其他类型的请求的操作都会携带这个token。
3)服务器会将客户端发来的这个token和服务端从数据库查询出来的并且重新计算得到的用户信息进行对比匹配,如果匹配成功则认证成功,如果用户请求的资源需要相应的权限,比如模块权限、数据权限等,则校验token中的payload中存储的权限等相关信息,如果有权限则返回给对应主机所需要的资源(即做到了权限鉴权),否则拒绝。

3、说出怎么用docker部署.NET网站,以及常用的命令
详情请看-->三步实现.NET6部署到Docker

4、说出ef core多对多的怎么配置。
考察对EF的熟悉程度
查看官网:
https://learn.microsoft.com/zh-cn/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key%2Csimple-key

5、用过EF事物吗?具体怎么实现?
详情请看-->EF Core的三种事务

6、正则表达式怎么实现身份证验证
这道题主要考察对正则表达式和身份证验证规则。

7、从简历上看你用过RabbitMQ,队列异常怎么处理?
考察对RabbitMQ的熟悉程度,一般有异常默认会不断重试,直到成功为止,当然可以自己配置异常,具体请查阅RabbitMQ的异常处理。

8、讲讲事件和委托的区别
1)、事件是委托的封装,可以理解为一种特殊的委托。
2)、事件里面其实就两个方法(即add_event()和remove_event())和一个私有的委托变量,这两个方法里面分别是对这个私有的委托变量进行的合并和移除,当调用事件的+=时其实是调用的事件里面的add_event()方法,同样-=调用的是remove_event()方法。
3)、在注册和注销事件上,委托可以使用=和+=来将函数注册到委托的变量上,使用-=来将函数注销。而事件则有着更严格的限制,事件只能使用+=来将函数注册到其上,使用-=来将函数注销。
详情请看-->搞不懂的C#中委托和事件

结语
这种面试主要考察开发者的实战能力和基本功力,对于xcv的程序员来说,回答这类问题的难度比较高。小白面到最后一道题就崩溃了,非常的尴尬,还是面试官说了一句"这些问题不会不代表你其它的不会"。确实每个公司都有面试的侧重点,程序员唯一能做的就是不断提升自己某领域的水平,说不定那个公司就侧重你提升的那个领域。

 希望本文对你有所帮助,同时欢迎留言和吐槽。
用户评论