【C++埋点SDK实战】加餐-如何在简历中体现本项目

收到读者反馈,希望我能出一期文章,介绍如何在简历中描述这个项目。

所以,就有了本文。


对于任何项目的介绍,我建议大家都尽量使用STAR原则(情境-任务-行动-结果)来描述。STAR原则一般会作为面试官和HR评估候选人简历的主要手段。那候选人也最好根据STAR原则准备简历,方便面试官从中提取关键信息,更好的对你的个人能力和工作潜质做评估。


那什么是STAR原则?

STAR原则是结构化面试中非常重要的一个理论:

  1. S:Situation(情境),即事情在什么情况下发生。
  2. T:Task(任务),即你是如何明确你的任务的。
  3. A:Action(行动),即针对这样的情况,你做了什么行动。
  4. R:Result(结果),即结果怎样,你从中有什么收获。


简单来说就是:需要着重说明在什么背景(Situation)下做过什么样的项目(Task),这个项目怎么做的,和谁一起做的,自己在团队中的角色(Action),以及最后的结果(Result)。


我们这里可以根据STAR原则来整理下这个埋点项目,我抛砖引入,你可以在此基础上根据自己的实际情况做改动:

  1. Situation:客户端应用在外部客户本地运行,团队开发人员需要监控它的运行状态,比如某些模块运行过程中是否出现异常,用户经常使用哪些功能,使用频率等等。
  2. Task:基于这个Situation,需要想办法把用户的行为数据以及用户的使用环境信息都传递回公司团队内部,便于统计和问题分析。而这一整套逻辑其实可以复用于任何客户端应用,所以考虑做一套通用的埋点SDK,供自己和其他业务方都接入使用,免去了重复造轮子的成本。
  3. Action:作为整体项目的负责人,我主导并完成以下工作:
  4. 需求挖掘:独立确定项目需求,明确项目目标
  5. SDK开发:做客户端SDK开发,保证稳定性和性能
  6. 项目规范制定:制定SDK项目规范,技术选型标准
  7. 技术方案设计:设计客户端技术方案以及前后端通信协议,保证传输可行性和可靠性
  8. 项目协调:协调整个前后端项目的开发。
  9. Result:从0到1完成整个项目,成功为多个业务方接入,并且在线上百万DAU下的运行情况良好,崩溃率控制在万1以下。项目通过持续的自动化测试,功能稳定,且未发现崩溃。


为了进一步展示技术细节,也可以考虑在简历中补充下面的内容,比如:

  1. 使用cmake完成整个项目的构建,提高了编译的效率和灵活性。
  2. 使用C++很多新特性,智能指针等
  3. 通过strand调度满足任务定时且线程安全的调度需求
  4. 通过ORM sqlite数据库完成数据的增删改查功能
  5. 通过注册表能力完成关键数据的持久化
  6. 通过spdlog完成内部日志的写入
  7. 通过Json完成数据的序列化
  8. 通过AES对称加密完成数据的加密
  9. 通过HTTP、HTTPS完成数据的网络发送
  10. 使用googletest完成整个项目的单元测试


通过这个项目,你需要掌握哪些能力?这其中可能会延伸出一些面试问题:

  1. 都有哪些构建工具,为什么选择cmake?它的优势在哪里?
  2. C++都有哪些常用新特性?你经常使用哪些?
  3. 介绍下strand调度机制,它的优势在哪里?如果你自己实现,如何实现strand的调度机制?
  4. ORM数据库的原理是什么?为什么选型sqlite数据库?
  5. 为什么使用Json做序列化,而不是protobuf?
  6. HTTP和HTTPS的区别是什么?HTTP这个应用层协议的原理是什么?可以自己实现一个吗?


我想如果你能这样整理项目,并熟悉项目的每个技术细节,并能详细的讲出,面试应该没太大问题。希望这个项目能对你提升技术、找工作有所帮助。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
程序喵
下载 APP