1 问题背景
笔者拿到一个给谷歌数据上报、Facebook数据上报做IP代理的需求,说白了就是发请求给谷歌、Facebook的时候用别的IP来发起。
2 自我介绍
未毕业实习半年,毕业工作半年,满打满算有一年经验了。计算机专业毕业。从事Java后端。此篇文章仅当随笔写写,有不同意见的小伙伴可评论区留言。
3 为什么面试造火箭,工作拧螺丝
3.1 业务方面
首先在互联网这个行业,时间就是金钱,快一步把东西做出来就能抢先一步拿下市场。完整的开发周期包含UI设计、产品设计、需求评审、技术详细设计、技术设计评审、写代码、测试、解决bug、上线。其中后端要干的活主要是技术详细设计,说白了就是做业务建模,或者考虑要用什么技术去实现需求,如何实现能让系统更有扩展性。如果自身没有经验,积累的技术或者原理或者业务建模经验不足,那么在技术详细设计这个阶段就被卡死了。比如我在问题背景提到的,做一个ip代理。一直听IP代理IP代理,但是代码层面上根本不知道是怎么实现的。代理的IP又从哪里获取?如何设计能更加有扩展性?怎么兼容以前的老代码?谷歌数据上报怎么做代理?数据上报是用sdk的还是直接发请求的?一系列的问题,如果有经验根本想都不用想就可以开肝了。而我初次接触,用了一天来调研如何实现,期间看了谷歌数据上报sdk的源码以及官方api开发者文档,还看了Facebook数据上报的sdk源码以及官方api开发者文档。
3.2 技术调优方面
比如在生产环境上时常遇到MySQL获取连接等待超时异常,是什么原因导致这种报错了?这种报错不像空指针、数字转换异常等等debug一下就能解决。这就得需要弄懂MySQL的InnoDB存储引擎的锁知识、MVCC等原理。再或者我要插入大批量的数据,用什么存储结构比较快,考虑插入次数多,还是读取次数多,进而决定用链表结构还是数组结构。相信很多人都用ArrayList
这个类存数据,用的时候有没有考虑插入次数多还是读取次数多?
总结,公司给的开发时间周期很短,自身需要有足够的经验去快速响应并解决问题,公司需要的就是这种人才。