凡亿教育-香香
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | C项目实战开篇词
C项目实战开篇词

之前在星球说过要带大家实战一个C  项目,想了好久,最终决定做一个埋点相关的客户端SDK。


为什么要做客户端SDK?


我看过很多校招生C  简历中的项目经验,几乎清一色的Web Server,但其实现在C  在后端领域岗位相对比较少,貌似只有量化领域和某些游戏公司在使用C  做后端。


如果大家想做后端方向的话,我建议去学习Go或者Java,可能会比C  更适合一些。


C  现在主要应用在嵌入式领域、人工智能工业化、游戏等方向,很多移动端应用底层为了跨平台,也会使用C  ,比如编解码能力、音视频能力、人脸识别能力等,都是使用C  开发,然后编译出可以在多平台运行的SDK,给业务方程序员使用。


很多企业也会用QT C  做桌面端应用,这种岗位需要了解QT的相关API使用,甚至是原理,但想做合格的桌面端程序,还是要深入学习C  才行。


所以,虽然很多人在唱衰客户端,但唱衰的很多都是客户端开发页面的程序员,因为现在比较流行大前端,页面很多可以用Flutter等跨平台相关的组件或前端语言开发,不太能唱衰的到C  。


而且在大企业中,相关的程序性能至关重要,想要高性能,几乎都要用到C  或C,当然,Rust也行,但现在Rust在国内岗位相当少,盲目走Rust方向风险比较高。


为什么要做埋点SDK?


任何一款客户端应用在线上运行,我们需要监控它的在线状态,比如日活、是否有崩溃、崩溃率、某些模块运行过程中是否出现异常、用户频繁使用哪些功能等等。


这些都需要团队内部的成员可以感知到,拿到这些数据,方便产品运营人员修正迭代产品功能,方便开发人员排查线上问题等。


所以一般客户端应用都需要做很多埋点,把客户端应用运行过程中的相关数据传回到团队内部。当然,上面的某些能力可以当做一个特定产品需求开发,不需要走埋点。


不过在线上,场景非常复杂,比如用户的使用方式、用户的操作系统、硬件等都千差万别,程序不会绝对稳定,代码中的异常位置通常不确定,所以需要开发人员在代码中做很多埋点,出现问题可以及时反馈回团队内部,团队做数据追踪和分析,进而快速修复问题。


所以,这里其实就可以成立一个小组,产品主要有埋点客户端SDK   网站   后端,客户端SDK可以给公司内的多个APP业务部门去集成,然后埋点数据上报到后台,各个业务部门可以在管理端查看搜索相关埋点,再提供聚类和分析能力,就更完美了。


不过这个项目中,我们只会做客户端SDK,后端我会做一个模拟的mock server,只负责接收数据和返回固定body。


平台


因为大多数同学都使用Windows电脑,所以咱做的是Windows SDK,但因为使用的是C  语言,其实可以跨平台到Linux、MacOS、Android、iOS等,只需要把Windows平台相关特性的代码去掉,并且改动Cmake配置即可。


相关知识点

整个埋点SDK功能不多,代码量不大,但麻雀虽小五脏俱全,整个项目会涉及到很多C  相关的知识点:

  1. C、C

  2. C   新特性

  3. 线程池

  4. 定时器

  5. Windows 注册表操作

  6. 数据库操作

  7. 文件系统相关操作

  8. 时间相关操作

  9. 日志系统

  10. Json

  11. 加解密

  12. HTTP、HTTPS网络请求

  13. 网络通信协议的设计

一个大型项目涉及到的技术点,咱这个项目应该多数都会用到。对于学习进阶C  、提升项目经验,我认为还是很有帮助的。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论