首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

记录荒废了三年的四年.net开发的第三次面试,苏州斯莱克

编程知识
2024年08月28日 22:25

现在就业的确崩了

这次面试的时间是8月28号。距离上一次面试已经过去了一个月了,距离开始找工作已经过去了2个月。没多少找工作经验的我也体会到了什么叫就业崩了

看了一线码农的采访计划后,我也把苏州列为了找工作的地方之一。我成都感觉公司都翻烂了

  • 要么工资高,15000,但要求开发测试运维一条龙,什么.netcoredevopsCICD单元测试集成测试scrum敏捷开发,k8s前后端分离RabbitMQRedis微服务全整上。我CICD,单元测试这些部分有学习,但也没项目用过,敏捷开发除了外企常见,还有哪能接触?上不去,真的上不去。
  • 要么就是工资相对高,12000左右,搞工业开发这一块,但是要有经验,我始终插不进去脚。
  • 要么就是工资低8000甚至9000起步,我寻思这是应届生?跟我工资没差我跳过去干什么

我发觉我目前这个目前这个技术阶段还挺尴尬的。技术和经验说深不深,说浅不浅,到底是上不能上,下不得下。

这次面试的公司是苏州史斯莱克精密设备,其基地应该是位于太湖边上的孙武路。HR介绍该公司是清华毕业的华人创建,我在想该不会是高华润人吧?主要业务是易拉罐瓶盖生产设备制造。近年来开始设计新能源汽车的电池盖。据说的技术迁移应用。

面试前,HR首次询问的工资,我回答的是14万一年。初试是腾讯视频线上会议面试,商定在晚上6点半。一个应该是业务经理,一个技术工程师,年龄均偏大吧,可能有40多了。

技术工程师提问

  • 首先是我做自我介绍
    我叫XX,今年27岁,20年毕业与西南石油大学。毕业之后就一直在目前这家XX公司。所学的专业是软件工程。在这边基本上一直在做软件开发。前期在做运维,大概一年之后转向开发。早期是做winform的运维,当然也参与了一点后面的开发,但是参与得比较少。然后转为asp.netcore的开发。到目前为止大概是开发了3个左右的项目。大概情况就是这样。

  • 你最近开发了项目前端用的是vue框架还有nuxt,后端用的webapi。那我问一下vue的一些问题吧。vue组件之间的通信你会吗?就简单说一下大概的过程,父子之间通信的过程
    vue父组件向子组件传递信息是通过那种类似于html标签的形式,当然他不叫html,然后设置这个标签的属性,就把数据数据交给子组件了。然后u子组件内部通过那个defineProperty(defineProps)接受。至于子组件调用父组件的方法,这个学的不是很深入,整个框架是前端搭建的。

  • 好吧,那个nuxt,他会帮你把目录生成好,然后你在项目的目录下添加图片。还有页面就先当与你们只需压迫在前端调用一些后端的接口吗?那前端的交互什么的,页面的动作你们自己写吗?比如下拉框啊等等
    如果是下拉框的话,我们是使用的elementui,elementplus,所以说自定义组件这块不是很了解。

  • 就相当于前端美工给你们把那个页面做好,你们直接负责API?
    美工,他只给我们设计图,我们自己把设计图转化为页面,然后其实后端也是我们自己写。(所谓的前后端分离,人不不分离)

  • 好,那么webapi主要是与前端vue用什么方式通信?
    http由几种通信?你是说http method方法吗?最常用的就是get,然后涉及到表单的话会用post。当然还有put,delete,但是我们没有使用这些,最常用的还是get和post。

  • 这几种方法是怎么床底参数的?
    get是直接在url中写参数,post是在头部后面的请求体中存放参数。

  • 你前两个项目使用的efcore,后一个项目使用的sqlsugar,那sqlsugar那个项目怎么防止注入呢?
    什么情况下会发生注入?首先后端的是直接使用sql查询,其次呢,如果使用了sql,又没有使用参数化查询的话,就会存在sql注入。但是我们一般是直接写linq,如果查询比较复杂的话,写不出来,或者说下起来很费劲的话,才会写sql。

  • 那个多租户,就是sqlsugar的多租户你们用过吗?
    我没有用过多租户,请问多租户指的是什么呢?

  • 就是数据库,你们的数据库服务器是同一个吗?多租户就是数据库有几个服务器的时候,同一个sqlaugar客户端访问不同服务器
    哦,明白了。我们就只有一个数据库服务器,所有对应的应用都去访问那个服务器,所以没有这种情况。我估计的有很多服务器才能碰到这种需求。

  • sqlsugar有一些自带的方法,比如事务,里面的事务是怎么样的?里面包含的所是什么样的情况?
    锁的话我不太了解?只听说过悲观锁,乐观锁,不知道是不是指的这个?事务的话,我想一下,sqlsugar不想efcore,有一个saveChanges方法,在一个事务中把所有改动都保存到了数据库。但是sqlsugar,我没有看到这种方法。但是sqlsugar涉及到多表修改的话,还是需要手动创建一个事务的,但是我们目前还没有使用到。

  • 那你说一下单向绑定和双向绑定
    单向绑定的话,用的最多的是ref对象,还有react对象,但用的比较少。然后再标签中引用这个对象,变量,就可以实现单向绑定。至于双向绑定,他其实是一个回调,界面上改动数据后调用回调函数,但是vue提供了一个v-model指令封装了这个,就可以直接使用来实现双向绑定。

  • 说一下using关键字的作用
    第一个作用是引入命名空间,第二个作用是给命名空间取别名。还有就是非托管资源。
    比如说我们在C++里面写的函数,里面使用了new申请了非托管内存。在C#中就可以使用dllimport导入C++中的函数,还可以使用C#类对这些函数进行封装。然后这个类继承IDispose接口,在dispose方法里面释放非托管资源。当然这个释放方法是C++里面暴露出来的一个函数。然后我们在using代码块里面创建这个对象的时候就不用担心内存泄漏,不用手动去调用释放函数,能够自动释放非托管资源,这个比较方便。

  • 之前你们做那个项目,里面用到了那个大数据统计
    大数据,我不知道这个概念指的是什么?

  • 就是数据表里面,每天大概会产生几百万条数据那种
    没有,我碰到的最多的话,是一个实时数据表,但总共才5000多万条数据,但是也没有说每天产生几百万条数据那么夸张的。

  • 那如果是想要看很多数据的话,要如何让他更高效呢?
    嗯,首先就是分页查询。还有就是取决于表,如果说有很多比必要的字段的话,是不需要查询出来的。特别是vue,应该说elementui,在数据量比较多的时候,他就比较卡。使用分页是很有必要的,大概800-900条就要分一次。

  • 能说一下前端虚拟化吗?
    我不太确定这个概念?

  • 就是一次性查询出来的时候也,都放在页面,嗯,内存里面,然后渲染的时候,不把内存里面的数据都渲染出来。这样的话,流畅度比较好,也不需要分页,像是滚动加载
    这种我没有用过,但是我跟绝跟分页那个也挺像。因为我们有时候查询数据的时候,也是全部查询出来,然后点击下一页的时候,从内存中过滤出相应位置的数据。而不是说到数据库查询那边分页。

  • 你之前做过设备通信吗?
    我没有直接跟硬件通信过,因为我们这这边是有硬件小组的。他们专门去硬件上采集数据,然后有两个方向。一个是存储现场的sqlite中,一个是通过MQ传回中心的服务器。

  • OK,那你之前用过消息队列吧?
    我没有用过专门的消息队列,只是使用过redis模拟的消息队列,使用lpush和rpop,因为也提供了通知功能。但是没有用过RabbitMQ。

  • 要是有一个请求,花了很长时间那种,怎么处理?
    如果是不需要立即回显数据那种,可以使用一把方法接口,然后拉一个排队的托管服务,把请求的操作交给托管服务去慢慢处理。然后请求直接返回。这是第一种。第二种,像是需要回显数据的,不好意思,我有点忘了问题?

  • 要是有一个请求,花了很长时间那种,怎么处理?这会带来不好的体验,怎么去优化这个请求,只是针对单个请求,考虑为什么请求时间会变长
    在头一个阶段,比如果并发量比较大的话,请求可能卡在排队阶段,这种最好使异步方法接口。理论上说是有用,但我们没有碰到过这种,可能业务量比较小。
    单个请求时间比较长的话,其实最多的是卡在数据库的查询上面,那可能就需要注意一下sql有没有走到索引上面去。这种情况我们以前蹦到的比较多,后来是统一处理的。

  • 写过存储过程吗?就是那种比较复杂的sql
    没有写过,我们使用的是物化视图。有其他程序跑在服务器上,去更新这个视图。

业务经理提问

  • 问一下你关于业务方面的问题。你们是人工作业还是通过井下设置直接采集上来
    我们的设备主要是接实时数据,这是一个方面,还有就是比如压裂车上面的一些作业数据,它上面本身是带有传感器的。然后他们技术员会去看那些数据。那个采集软件是技术员手动去填的。只有实时数据是自动采集的。

  • 那个支持中心项目,你在这里面主要是做运维的工作是吧
    是的。这个项目我都不知道有多久了,因为我进来的时候已经是开发完毕很久了。我来了之后主要是负责我们业务这一块功能的运维。

  • 里面有实时数据、视频监控啊。那个视频监控是实时的还是录像?还有那个监测,那个工程作业是直接对井下作业实时监测的,还是只是派工用的?
    是实时视频。监测主要是靠实时数据。还有就是结合技术员开工之前填报的信息做一些预警。派工的话,是中心派工之后,他们才开始作业。

    这种派工模式,实际上就是拿钱的个干活的从原来的一个公司被分到两个公司去了。

  • 那这个现场的话,你有没有去过?有没有参与过现场的工作?
    没有。我没有去过现场,只是做开发。现场组内有几个人去过,一方面是安装设备,一方面是调试软件这些。

  • 那现场作业系统这一类系统,井下作业只是在地面上,还是也参与井下?
    嗯,地下有一个部分是参与了的,就是泵注那块。会看加水加砂的情况,到了哪个地方,显示在界面上,比较类似于你说的井下的。

  • 手机端的话,你有没有参与开发?
    手机端我主要是提供接口,作业不是手机端的主要功能。主要用于现场管理,比如班前班后会,签到,巡检这些。真正作业的时候,他们是用电脑。

  • 那实时数据有没有考虑到弄到手机端去展示?
    有。手机端也有实时数据展示功能。不过那是给中心的领导用的,他们在工作的时候用手机看比较方便。现场的手机端没有这个功能。

之后就是技术工程师提问

  • 你们的手机端开发使用的网页还是安卓,还是微信小程序?
    网页的话,是有专门的那种壳,嗯,叫什么(electron),里面封装了一个浏览器核心吧。但我们这边用的是原生安卓开发,是移动端小组做的。

  • 数据库用到的比较多的是哪几种?
    中心业务上用的最多的是Oracle,现场用的是mysql,他们数据库表结构是一样的。填了数据之后,通过触发器,记录在一个表里面。有一个程序去读取这个表的触发记录,然后找到相应数据,放到MQ中,传回中心的数据库上面。实时数据的话,就使用的sqlite。那个数据比较多,每个月一个文件,每个几百兆,大概有几个G吧,我不确定这个数据放mysql是否合适。

  • MQ这个数据发回中心的过程,
    我不太清楚这方面,本地有一个上传软件,但不是我做的。但我知道这方面确实有问题,前两年MQ传数据回来时就经常丢数据,主要是消息积压。

  • 你接受出差吗?
    接受。

  • 你家在成都吗?
    我加没在成都,我家在巴中,也是四川,比较小的一个城市。

  • 你出来这么远,你家里人接受吗?
    我觉得他们可能不会干涉太多。

  • 你出过差吗?比如说新疆那边,乌鲁木齐那边
    我出过,也是新疆那边,是旁边的一个城市,库尔勒,距离还是挺近的。大概四五个月。

  • 我们大部分工作都是在苏州这边的人员做的,有些具体的项目,也要跟着现场去。所以我在想,我们有个项目挺适合你的
    我知道,C#搞工业去现场避免不了的。

    这样的话,我猜他们也是想搞前后端分离的现场应用。然后用Electron使用SPA搞前端。刚好我这前后端都开发过。但是怎么说呢,我最希望的还是实践一下WPF,毕竟是.Net程序员啊。如果MAUI+Blazor熟悉的有福了,桌面端、网页端、手机端也一并做了。可惜我手机端只用过一点MAUI8原生。
    还有一上来就让我跑现场搞那个项目,很难不让我怀疑,就是让我去冲项目的,我一从现场回来就会被解雇了。而且这和他们公司HR说的目前的业务也没有联系。难道在新疆建设工厂吗?

  • 你还与问题吗?
    今天晚上的面试我算是通过了吗?

  • 因为现在是视频面试,有一些笔试我们都准备了的,还有一些面试题目。但是视频面试就只能这样。之后的话,HR会通知你
    好的,我知道了。

评价一下

  • 我是没有太重视vue的,在3、4月份,每天中午午休吧vue的官方文档和看完了,也看了下vue-router。然后项目上切换到vue了。但是关于应用构建这块的工作,实际上是nuxt提供了。我把重心放在wpf和asp.netcore这边,这次的面试提问是出乎我的意料的。唯一的不同时我WPF没有在工作中用过,但vue在工作中用过,对于如何从零构建一个应用,显然时后者更有经验。但是vue/elementplus,或者或浏览器的响应式性能太烂了,一个表格,1000条数据就卡。

  • 这在苏州是正常工资吗?我没见过市面,不了解苏州这边的人力市场

  • 面试总是,要么很长时间没有,让我十分焦虑,要么就扎堆来,挑战我的时间表。不知道为什么,你们也是这样吗?

  • 技术官问的东西都不是很深入那种——八股文式的询问,和前面的两次面试感觉很不同。如果有人说他们是来找解决方案的,我都要信了。我不知道这个面试是否可靠?

  • 成都就业现在真的这么难吗?

  • 我这个阶段的程序员真的是上不能上,下不得下的尴尬阶段吗?

  • 我也在捡起英语,想着两年后外语对话,能不能进外企。但是今年有来了个外企撤离潮,怕要成49年入国军

From:https://www.cnblogs.com/ggtc/p/18385285
本文地址: http://www.shuzixingkong.net/article/1538
0评论
提交 加载更多评论
其他文章 最简最速!C++版OpenCV安装配置教程Win/Mac!!!
Clion+OpenCV(C++版)开发环境配置教程Win/Mac 平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定视觉方面使用C++的OpenCV来节约上位机资源提高运行的速度,在查阅了网上的各种资料后发现这些资料参差不齐有些博客的方法
最简最速!C++版OpenCV安装配置教程Win/Mac!!! 最简最速!C++版OpenCV安装配置教程Win/Mac!!! 最简最速!C++版OpenCV安装配置教程Win/Mac!!!
AI产品经理的探索:技能、机遇与未来展望
Ai时代的产品经理 随着人工智能(AI)的飞速发展,AI已经从一个前沿技术概念逐步演变为驱动各行业创新的核心力量。从智能助手到自动驾驶,从个性化推荐系统到图像识别,AI正在以不可思议的速度改变着我们的生活方式和工作模式。伴随着这一趋势,AI领域的产品经理(PM)也应运而生,他们在技术与市场之间架起桥
AI产品经理的探索:技能、机遇与未来展望
用我十多年的“奇葩”经验,给在“挂吊瓶”的博客园几点建议
初识博客园 我是08年开始接触开发的,一开始涉及的就是.net和java,记得那会好像是jar6来着,net嘛还是2.0 那时候包括现在,找资料很多时候会找到博客园来 一开始我以为博客园是很多博主成立的一个联盟,就是各自弄一个博客系统,然后公用一个域名 为啥会这么想呢? 因为我看高的博文都长得不一样
用我十多年的“奇葩”经验,给在“挂吊瓶”的博客园几点建议
计算机Power电源状态
在计算机电源管理中,S1, S2, S3, S4 代表不同的电源状态或睡眠状态。 了解这些状态,对计算机设备理解功耗及工作状态有很大帮助。最近公司开会,系统同事有讲S3状态功耗很低,我猜和电脑的睡眠、息屏有关。。。emmm,不懂就要学 以下是这些状态的详细说明: S1 状态(低电量等待状态,又称“C
计算机Power电源状态 计算机Power电源状态
[golang]查询ssl证书剩余有效天数并邮件提醒
前言 自从云厂商的免费ssl证书改成3个月,而且证书数量还是20个之后,自己网站的ssl证书就换成了其它免费方案。但是免费方案不会提醒证书过期,所以写个工具每天定时查询证书剩余有效天数,如果证书即将过期,就发送邮件提醒。 基本实现 最基本的代码功能就是检测网站ssl证书的有效天数,可以用命令行传参的
折腾 Quickwit,Rust 编写的分布式搜索引擎 - 可观测性之日志管理
Quickwit 从底层构建,旨在 高效地索引非结构化数据,并在云存储上轻松搜索这些数据。 此外,Quickwit 开箱即支持 OpenTelemetry gRPC 和 HTTP(仅 protobuf)协议,并提供了一个 REST API,可以接收任何 JSON 格式的日志。 这让 Quickwit
折腾 Quickwit,Rust 编写的分布式搜索引擎 - 可观测性之日志管理 折腾 Quickwit,Rust 编写的分布式搜索引擎 - 可观测性之日志管理 折腾 Quickwit,Rust 编写的分布式搜索引擎 - 可观测性之日志管理
Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型
Funcion Calling介绍 函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用,比如为AI助手赋能,或者在你的应用程序与模型之间建立深度集成。 如果您了解或者使用过Semantic Kernel可能会发现除了OpenAI支持Function Calling的模
Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型 Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型 Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型
什么是算法?一切皆算法
如果有人问我什么算法?我就一句话:算法就是对一类问题的最优求解路径。 1、计算机领域的算法概念 算法一直都是计算机领域非常重要的概念,具备极高的地位,各个公司对算法的考察也非常热衷。 我们只有在数学、计算机和人工智能领域会听到算法的概念,再加上似乎没人能讲清楚算法的概念。所以,一听到算法,很多人以为
什么是算法?一切皆算法