英文自我介绍&实习难点&项目难点

自我介绍

First, thank you for the interview. My name is Hongyang Yang, and I'm a Master student of Electrical and computer engineering in UBC. I achieved my bachelor's degree in software engineering in Beihang University. I used to work as a Java intern in TCL industries. During the internship, I was devoted to developing modules and discussing with my mentor. Personally speaking, I'm self-motivated and hard-working, during last term, I studied blockchain by myself and achieved the coursera specialization certificate. I also spare time studying Java and developed a simple RPC framework. Besides, I'm always willing to learn new things and cooperate with others. During my spare time, I love swimming and playing the violin. I'm confident that I'm qualified for the fantastic summer intern. Thank you.

首先感谢您给我这次面试机会。我叫杨洪洋,目前是英属哥伦比亚大学计算机工程的硕士,本科毕业于北航软件学院。在去年我作为Java实习生在TCL公司实习,实习过程中按照要求开发了数据分析模块,并修改了一些bug。我觉得我是一个自驱力较强的人,也比较勤奋。在上个学期,我自学了区块链相关的知识并且取得了coursera的区块链专项证书。我还在课余时间学习Java并且开发了简易的RPC框架。除此之外,我十分喜欢学习新知识,也喜欢和他人合作。在日常生活中我喜欢游泳和阅读。我希望今天可以顺利通过面试。谢谢您!

实习遇到的难点

TCL

难点

在实习过程中我负责的是数据分析模块,这个模块需要从大数据端获取数据到 TCL 的手机 APP 端,这样使用 TCL APP 进行分销的厂家就可以看到在一定时间段内订单数、浏览用户数、产品销量。这个模块的难点有两个方面。

第一个方面在于从大数据端获取到的数据需要和数据库表进行联查,而公司的数据库表涉及的业务十分复杂,命名也十分相似,并且很多表是没有字段的相关解释的,比如说状态码的取值的意义在数据库文档中就没有写,有些文档甚至是缺失的,所以在实现的过程中遇到这样的问题,我一般会记录下来,询问自己的同事,如果同事也不清楚那就询问当时负责开发的前辈,然后进行记录。

第二个方面在于开发的模块需要和大数据端还有需求端进行协调。需求一开始要求实时更新数据,但是在测试的时候发现部分数据更新需要10分钟左右,而有些数据是可以实时更新的,所以这样违背了产品方提出的需求。为了解决这一点,我首先分析实时更新的数据都有哪些,然后分析所写的SQL语句,发现这些实时更新的数据都是来自本地数据库的,对于从大数据端获取的数据,更新往往需要10分钟,得到结论之后我联系了我的mentor,在mentor核实我的代码没有问题之后,我们一起联系了负责大数据端的同事,我们一起排查这个问题,最后发现是因为大数据端调用的是神策数据提供的接口,使用该接口处理数据需要很长的时间,因此返回的时候就会造成延迟。对于这一点我们和产品需求方进行了沟通,确定修改了需求,要求整点更新。这样以后后台便使用Redis缓存来缓存从本地和大数据端拿到的结果,通过设置定时来实现整点更新的功能。虽然这样做实际上在一定时间段内的数据更新没有办法获取,但是这样保证了本地和大数据端的数据是一起更新的。通过再次和需求方沟通,最终采取了这种方案。

解决 bug

这个 bug 出现在如果有用户加了套装商品在购物车,但是还没有下单时,套装商品下架了。那么这个时候如果用户之前有单独加入商品,那在套装商品下架之后购物车的数量就会不一致。比如说A和B是套装商品,那么用户先把A加入购物车,然后加入套装商品到购物车。这样之后下架套装商品,那么购物车里的套装商品虽然没有了,但是之前套装商品的A商品依然在购物车里,也就是说正确的数量应该是1,而不是2。

项目难点

RPC 框架

难点主要在于一开始理解RPC的核心原理。RPC就是远程过程调用。那么整体的架构就是需要有一个服务注册与发现中心,一个服务器模块 server 来提供并且暴露服务。一个 Client 来提供服务消费,用来调用远程服务。除此之外要用到序列化和反序列化这里使用的是 fastjson。

全部评论

相关推荐

评论
1
6
分享

创作者周榜

更多
牛客网
牛客企业服务