正好放了寒假,朋友问我想不想挣零花钱,确实有等小米平板7Pro的想法,遂入职(现在准备买ipad pro了)
这是一家初创公司,面试问题也很务实,没有面试造火箭,入职拧螺丝的问题()回答起来也很顺畅
面试问题
- 数据库索引
- 数据结构 -> B+树
- 以时间换空间?->Yes
- 浅拷贝深拷贝
- 这个好说,我可是C语言和Rust高手,直接指针一顿搓
- 深拷贝之类就类似于结构体/对象的Clone,浅拷贝那就是基本类型的直接复制
- 这个好说,我可是C语言和Rust高手,直接指针一顿搓
- Golang语言的Gin框架
- 自己项目的一些crud操作是怎么实现的
- 和上面一起直接开了Goland介绍起来了,过
- 栈上和堆上分布的内存情况
- 这个也应该是学习C语言时候的基础,很简单
- redis的作用 其中的一些数据结构
- 还没学,本来大一暑假做那个Momotok的时候打算顺便学,结果两星期备考高数摆了(
然后补考21(- 然后回答了虽然还没学,但是知道是把数据存到内存的数据库(后面再学)
- 还没学,本来大一暑假做那个Momotok的时候打算顺便学,结果两星期备考高数摆了(
- 什么是第三范式
- 正好期末考试考过(不过记得不是很清楚,回答了3NF就过了)
其他记不得了,反正不算太难,也可以证明自己不是学**,月薪过万之类的培训班杂鱼,然后这样就过了,周一晚上面试,周二下午和老板交流然后进工作群,晚上创好公司GitLab账号和Pingcode账号,周三听了个会,熟悉代码,周四感觉自己行了,晚上开会就安排任务,周五就开始工作
工作经历
第一次工作的第一个任务就碰到了人生中最恶心的模拟题,本来开会是说让我做文件分发系统,但是后来让我写下面的这个表格生成器,组长说这个更简单,虽然没这感觉(),做的时候感觉像在做JSP,PHP那种前后端不分离的全栈,特别难受。再加上改需求和美化写了两天半才搞定(上午都在睡觉)
一开始用的是EasyExcel包,阿里的,一翻文档发现没提到手动设置的合并单元格,也就是这个合并单元格,太麻烦了,我甚至觉得我做不了这个想打退堂鼓(),后来查资料发现还有Poi,Apache的,然后就0基础速通了()
Poi比较灵活,是把表格视作一个很大的二维数组,先是Workbook Object,然后是Sheet Object,Row Object,最后是Cell Object,Cell就相当于是这个巨大二维数组上的元素了。当然看到这肯定能看出弊端了,如果表很大就会爆内存呗,这么多对象,不爆都难。然后就开始很恶心的做呗,测试来测试去,还有依赖冲突啊缺包问题之类,总算是把他搞定了,不知道周一开完会第二个任务做什么,祝自己好运。下面给两张图结尾,总而言之就是在面向搜索引擎和结果编程,话说回来,工作中接受新事物的能力是很重要的,别害怕就是()
第二个任务让我做vue.js的甘特图优化算法,可是后面的Map解析没看懂,咕了,组长半夜弄好了,毕竟我还没学前端
第三个任务直接让我做整个后端系统,那就做呗,发现工作任务真的不像一开始说的一样就Crud,他甚至有上传压缩包并且后台解压,同时解析整个压缩包的文件名来做记录,这其中还有编码问题,后来换了apache的两个包解码GBK才搞定,java api的不够用,其它的倒还好,除了规范之外也没啥大问题,就这样写了一个SpringBoot+MybatisPlus项目
年前结算3k,还可以,年后居然开始全栈了,我前端明明0基础,麻了,好在当赛博裁缝当了半天总算弄完了,加了一个项目优先级的字段,前端页面新建项目和修改项目也一并加了,还要排序和筛选,后端其实还好,改一下DTO,主要是前端不太会。下面就是21号做的
22号让我加文件外发系统的PDF预览功能,还要区分可下载和可预览,找了mozilla的库,就叫PDF.js,吃完炸鸡外卖再来想想怎么处理吧
额,挺麻烦的,因为跨域的问题,所以采用流式传输了,而且要注释掉下载和打印并且禁用右键,有一点自欺欺人,但是只要是给人看的东西那一定有办法传出信息…这也是没办法的事,没学过前端就开写确实很麻烦,最后也不清楚canvas丢哪,时间太晚就先上床了…依赖还有各种error类型转换搞半天
后来还得是大厂员工,看了一下就知道了,换成了ref而不是DOM,前端页面再塞一个div就搞定了
现在开始开发设备预约系统,一开始说让我一个人包一整个系统,后来发现前端没有经过系统性学习,有点心虚,就负责后端系统全部的开发然后再做一点简单前端(表单,表格,新建编辑删除之类)。流程基本熟悉了,和产品经理开完会后确定需求和工期,设计数据库字段,拉初始化系统框架,调依赖,写映射,然后设计接口完成接口,再然后写service层逻辑,最后测试再和前端联调,基本就完成了,开学做完这个就不做了,回归大学生活(顺便等着新iPad Pro出了光速购入)
更新一下,之前又发了一笔评价激励奖金,确实很激励,决定继续干,负责完成三个系统的任务分配(都不是很多,集中注意力的话一周三四个下午就可以完成)
2024.3.16:我测,工作量还是有点大的,3.15做了一个特别抽象的需求:定时轮询远程服务器获取机器状态,定时任务放在了quartz定时模块里,但需要从另一个模块的service拿设备地址,另一个模块需要从定时模块拿状态,于是出现了模块A依赖模块B,模块B依赖模块A的情况,我自己又面向注解编程无脑autowired,一开始甚至离谱到给Class上了autowired,自己还查了半天,后来找了dalao网友求助,拷打了一下才发现写的太离谱了,后来的解决方案就是
- 直接重构,但是不太可能,定时模块不是纯quartz,被若依框架包装了一层
- 使用丐版RPC,也就是通过localhost本地网络传递数据,是可行的,就是不太安全,太离谱了,居然都能发展到这种地步
- 模块A依赖模块Common,模块B依赖模块Common,通过在Common加个公共interface包含static的List来解决,这个就还行,逻辑上多注意空指针就行
这个的教训就是,不要无脑全写框架,有时间还是要关注一下底层原理(主要是没空,我又贪玩,现在玩的时间也很少很少了(
我就是这个朋友😂希望小米平板7给力点
希望不要OLED,适配和SOC再好点🙏🏻()