Skip to content
发布日期:2021/02/28
阅读量:加载中...

​ 从毕业到现在已经工作了快三年了,作为一名CPP的开发者,感觉自己还是很菜。从今年开始,希望使用一年的时间来进行学习,系统的掌握相关的开发的知识,让自己更有竞争力。

​ 制定一下自己的学习计划,希望能够坚持,加油,共勉。学习分为两个部分,实践和书籍。

实践部分

​ 完成vidFactory的开发,将前两年在datadom公司学习的媒体处理知识整合起来。

项目描述

​ 这是一个在线的媒体处理网站。提供图片,音视频,文档的各种操作以及网站的基本功能。

媒体处理模块
  • 视频转码,视频裁剪,视频拼接,视频添加水印,视频截取关键帧,视频模板,特效;

  • 图片转码,图片裁剪,图片旋转,图片添加水印,多张图片合成视频;

  • 文档转码,PDF文档添加水印,PDF获取缩略图;

  • 在线直播

用户模块
  • 用户注册;
  • 用户登录;
  • 用户信息;
任务中心
  • 任务管理;
文件管理
  • 文件管理;
  • 文件上传,下载等;

项目要求

​ 需要有一个可重用的项目架构,不止用于此项目,以后任何的开发都可以使用这个架构的框架,只需要更改api的实现就好,相当于搭建一个自己可以使用的可持续开发的平台。需要具有以下的功能:

  • 日志管理;
  • 健康检查;
  • 支持容器部署;
  • 高可用,高并发;
  • 分布式;
  • 数据备份和恢复;

项目时间

  • 开发时间:2021.03.01 ~ 2021.11.01
  • 实际时间:4x2x8=64天(周末全勤)

开发计划

​ 详细参考Tower

书籍部分

​ 理论知识的学习分两个部分,一个是对CPP语言的整体的学习,主要学习语言的应用,另一个是开发使用中其他知识点的学习。github上比较优秀的学习项目。

学习时间

  • 开始时间: 2021.03.01 ~ 2021.12.31
  • 实际时间:上下班地铁,周末

语言学习

  • C++编程思想[第一卷]
  • C++ Primer;
  • Effective C++;
  • More Effective C++;
  • 深度探索 C++ 对象模型;
  • 深入理解 C++11;
  • STL 源码剖析;

其他学习

设计模式
  • 21种设计模式学习
系统
  • 深入理解计算机系统;
  • Unix 环境高级编程;
  • cpu;
  • 进程;
  • 线程;
  • 内存;
网络
  1. Unix 网络编程;
  2. TCP/IP 详解;
  3. UDP;
  4. websocket;
  5. mqtt;
  6. 并发
数据结构和算法
中间件
  • 消息队列
    • 消息总线
    • 消息的顺序
    • Rabbitmq
    • redis
    • ZeroMQ
  • 定时调度
  • rpc
    • grpc
  • 日志系统
    • 日志搜索
  • 配置文件
  • API网关
数据库
性能
项目管理

评论