学习有效期:永久观看
学习时长:5041分钟
学习计划:85天
难度:中
CEO/董事长/总经理
讲师介绍:夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项目,比赛鹰眼系统,主编出版过《C++实训教程》,并同时熟悉php,c#,java,安卓项目研发。
课程从0开始搭建一个开源微服务架构,并以此架构实现高并发的安全云盘项目。项目涉及到微服务架构的所有细节,包括注册中心,网关,配置中心,微服务管理,鉴权,加密传输,灰度发布,熔断机制。
从实践中讲解软件工程,演示需求分析、架构设计、详细设计文档的编写,分析编程规范,了解多人协作开发策略,理解并应用软件的版本管理,熟悉git工具和软件发布流程,bug管理提交问题。代码提供和同学的作业都使用git.
课程有专门的交流答疑群,老师和助教在群中,并且有 10次直播答疑课程,解答学员疑问,对学员的代码进行评审,课程学完后,指导学员对xmservice开源微服务架构做贡献。并写入开源库介绍中,简历中可写参与开源。
本课程会使用libevent, qt, openssI,zlib, protobuf等-线开源库联合进行编程。课程中所有代码都是跨平台,课程会演示在windows和linux (ubuntu) 环境中开发。
第1章:开班仪式准备 |
1.开班仪式准备 |
第2章:安全云盘系统的微服务框架需求分析(需求文档编写) |
1.云安全云盘项目模块架构分析需求概述 |
第3章:vs2017安装和使用说明示例 |
1.vs2017安装和使用说明示例 |
2.VS2017创建四种项目和目录结构规范 |
3.vs项目文件作用分析和版本提交说明 |
4.项目常规配置_sdk_平台工具集和输出 |
5. C++编译设置_头文件_预处理器宏 |
6.项目链接配置_库配置_编译步骤配置 |
7.解决方案配置_多项目依赖_配置管理器 |
第4章:QT 5.12安装在windows上安装和使用 |
1. QT5.12版本SDK安装和使用分析 |
2.QT的VS插件安装和QT界面项目创建 |
第5章:ubuntu虚拟机安装及linux基本命令使用 |
1. Linux系统安装使用课程说明 |
2. vmware中安装ubuntu系统 |
3.Linux常用命令讲解和示例 |
4.vim编辑器快速入门 |
5.安装卸载软件apt-get并更新数据源 |
6.openssh-server安装和使用详解 |
7.ubunt18.04的IP静态地址配置 |
8.ubuntu文件和目录分析和命令演示 |
9.文件处理和链接操作指令 |
10.文件的权限设定和掩码设置 |
11.Linux进程分析和进程启动三种方式 |
12. LInux进程终止和信号发送kill_pkill |
13. ubuntu系统自启动程序设置 |
14.ubuntu系统用户添加和密码存放分析 |
15.ubuntu系统rsyslog网络转发配置 |
第6章:基于google标准的代码规范说明统一简称XMS代码规范 |
1. C++编码规则分析 |
2.c++编码规则_头文件规则详解分析 |
3. c++编码规则_头文件规则代码示例 |
4. C++编码规则中的类定义规则详解分析 |
5. C++编码规则中的类定义规则代码示例 |
6.编码规则文件_类_变量_函数命名规则 |
7. C++Doxygen注释规则并生成API的文档 |
第7章: linux编程快速入门 |
1.ubuntu开发环境安装gcc_make_gdb_编译 |
2.使用gcc_g++编译程序详解 |
3.g++分步预处理_编译_汇编_执行代码 |
4.gdb调试工具使用和coredump查看 |
5.g++编译动态链接库并测试 |
6.makefile介绍和第一个项目示例 |
7.makefile变量使用和规则分析 |
8.makefile多文件和动态库编译示例 |
第8章:git服务端和客户端安装使用说明 |
1.Git使用说明和原理分析 |
2.Git在Linux上服务安装配置提交和更新 |
3.Git日志查看和版本回滚 |
4.Git解决提交冲突的问题 |
5.在windows安装tortoiseGit |
6. Linux使用RSA公私钥免密码提交更新 |
7.Windows使用TortoiseGit免密码 |
8.版本号制定规则 |
第9章:socket网络编程快速入门基于tcp协议 |
1.网络编程socket接口详解 |
2.网络编程详解TCP的服务端代码示例 |
3. Linux下socket编程TCP客户端代码演示 |
4. git提交并移植socket程序到window |
第10章:基于微服务架构的安全云盘系统xdisk需求分析 |
1.安全云盘系统xdisk需求分析 |
第11章:libevent快速入门手册、注释、示例使用 |
1.libevent实训课程说明和IO模型 |
2.windows平台编译libevent分析 |
3.用vs2017编译zlib源码 |
4.用vs2017编译openssl源码 |
5.libevent源码vs2017编译包含openssl |
6.libevent集成zlib的测试程序配置修改 |
7.libevent源码vs2017编译批处理脚 |
8.libevent第一个vs2017的测试程序完成 |
9.libevent在linux环境编译源码并测试 |
10.基于event监控客户端连接并获取连接 |
11.evconnlistener绑定端口监听连接 |
12.bufferevent服务端代码示例事件策略 |
第12章:libevent快速入门-libevent线程池 |
1.基于libevent的c++线程池原理详解 |
2.创建好XThreadPool的单件模式代码 |
3.使用c++11的thread完成XThread线程池 |
4.完成线程的安装和跨平台管道激活事件 |
5.完成线程池的线程分发和线程激活 |
6.完成线程池的自定义任务及其分发 |
7.完成想线程池线程中添加自定义任务 |
8.完成线程池任务资源清理并移植到linux |
第13章:qt快速入门如何使用手册和示例说明 |
1.QT的工具_MVD架构和信号槽原理分析 |
2.Qt界面编程代码示例 |
第14章:基于QT和libevent的云盘系统原型开发 |
1.云盘原型系统详细设计 |
2.移植线程池到通信模块动态库并测试 |
3.通信模块动态库移植到linux并完成云盘 |
4.创建好客户端项目完成连接功能 |
5.完成客户端和服务端数据通信 |
6.完成了基于XMsg格式的消息通信 |
7.完成了服务端和客户端通信获取目录 |
8.完成了文件上传功能和目录刷新 |
9.完成了文件下载功能和内存泄漏修正 |
第15章: protobuf开发入门 |
1.protobuf课程介绍和在windows编译源码 |
2.protobuf基础概念分析 |
3.protobuf代码示例_vs2017 |
4.反射_根据Message对象和字段名称获取 |
5.反射_运行时解析proto文件 |
6.protobuf联合libevent测试程序设计 |
7.基于bufferevent的服务端和客户端 |
8.pb协议分析和类图设计和消息代码 |
9.完成自定义协议和pb数据的封包和解包 |
10.完成消息类成员回调函数注册和调用 |
11.protobuf项目移植到linux |
第16章:基于protobuf和libevent通信模块搭建 |
1.课程介绍和设计文档分析类图和顺序图 |
2.线程池代码重构加入工厂和退出处理 |
3.完成通信模块libevent和pb的封装 |
4.通信模块客户端项目创建和测试 |
5.通信模块服务端项目创建和测试 |
6.通信客户端pb数据准备和自动重连开发 |
7.客户端和服务端基于pb数据通信 |
第17章:API Gateway 0.1版本代码设计与实现 |
1.完成消息注册的成员函数和互斥处理类 |
2.客户端和微服务的通信获取测试目录 |
3.apigateway代码创建 |
4.路由经过proxy转发数据测试完成 |
5.完成代理自动重连和微服务集群测试 |
第18章:mysql数据库开发快速入门 |
1. mysql数据库开发快速入门 |
2.mysql_workbench客户端使用 |
3.vs2017mysqlapi项目调用静态和动态库 |
4.MysqlServer8.0在ubuntu上安装和配置 |
5.linux上mysqlapi项目创建编译运行 |
6.mysql_init_API库的初始化和清理 |
7.mysql_real_connect数据库完成连接 |
8.mysql连接超时时间和自动重连设置测试 |
9.查询接口分析和mysql_real_query代码 |
10.获取结果集mysql_store_result |
11.遍历并显示结果集mysql_fetch_row |
12.使用MysqlAPI通过INSERT插一千条数据 |
13.UPDATE修改数据并根据map生成update |
14.DELETE和truncate清数据和清表空间 |
第19章:(mysql)插入和读取二进制数据并移植到ubuntu |
1.完成支持map的Insert插入数据接口封装 |
2.完成文件读取接口的封装 |
3.完成二进制文件内容插入接口InsertBin |
4.完成文件存储接口并读取插入的二进制 |
5.完成支持map的Update接口并测试修改 |
6.完成UpdateBin修改二进制数据逇接口 |
7.完成LXMysql事务的接口封装 |
第20章:跨平台中文乱码问题和mysql锁 |
1.字符编码类型mysql设置和转换API分析 |
2.windows上字符集gbk和utf8互转 |
3.linux上字符集GBK和UTF8互转 |
4.LXMysql库添加字符集转换函数 |
5.简易获取数据的接口GetResult实现 |
6.mysql的表锁和行锁代码示例购票竞争 |
第21章:DBO数据库模块详细设计搭建-mysql接口封装 |
1. DBO数据库模块详细设计 |
2.mysql 数据库接口封装设计 |
3.LXMysql动态链接库测试vs2017项目创建 |
4.完成封装的Init和Close接口 |
5.完成Connect连接数据的接口和测试 |
6.Query执行sql语句的接口封装和测试 |
7.Options接口封装设置自动重连和超时 |
8.结果集获取StoreResult和清理接口 |
9.完成FetchRow获取一行vector数据 |
10.完成支持map的Insert插入数据接口 |
11.完成支持map的Update接口并测试修改 |
第22章:注册中心微服务开发 |
1.注册中心详细设计 |
2.完成注册中心客户端的连接和消息发送 |
3.完成注册中心的客户端和服务端的注册请求和响应 |
4.完成微服务的注册并测试异常情况 |
5.完成了服务端和客户端的服务发现 |
6.完成客户端多线程获取微服务列表的接口 |
7.注册中心客户端集成入并注册测试微服务 |
第23章:配置中心 |
1.配置中心设计说明 |
2.配置中心服务端客户端项目创建 |
3.配置中心DAO存储pb配置 |
4.配置中心DAO读取配置和多线程互斥 |
5.完成配中心的服务端初始化 |
6.完成了配置中心的上传配置 |
7.完成了下载配置的服务端和客户端 |
8.配置中心客户端多线程获取配置接口 |
9.测试微服务集成注册中心 |
10.配置中心客户端反射具体配置内容 |
第24章:配置中心管理工具 |
1.管理工具的功能设计说明 |
2.管理工具的qt界面样式设计圆角边框 |
3.获取配置列表的DAO层代码完成 |
4.获取配置列表的前后端代码和自动重连 |
5.完成了配置的列表显示和日志显示界面 |
6.完成配置新增功能界面和业务逻辑添加 |
7.动态解析proto文件获取类型 |
8.动态生成message代码并创建对象 |
9.根据proto文件反射自动生成输入界面 |
10.完成配置的基础信息存储 |
11.通过proto反射设置配置信息并存储 |
12.完成配置删除确认并处理 |
13.修改配置完成proto文件缓存和解析 |
14.完成了配置修改重构了界面生成 |
第25章:加解密安全技术 |
1.SSL_TLS加密通信的基础原理 |
2.基于OpenSSL证书和秘钥的制作 |
3.OpenSSL 加密SSL_TLS通信接口分析 |
4.OpenSSL接口编程实例完成跨平台通信 |
5.完成OpenSSL服务端SSL握手调用 |
6.完成SSL通信客户端和服务端的握手连接 |
7.打印通信使用的协议和x509证书信息 |
8.完成基于OpenSSL的安全加密通信 |
9.基于libevent和openssl通信的客户端 |
10.基于libevent和openssl通信的服务端 |
11.重构xplatform添加ssl通信完成客户端 |
12.重构xplatform完成ssl消息通信服务端 |
13.重构gateway添加从配置中心获取SSL |
第26章:注册中心高可用重构 |
1.注册中心高可用重构说明 |
2.添加注册中心makefile的安装卸载 |
3.注册中心高可用重构_通信模块断开 |
4.注册中心客户端内存缓冲和磁盘缓冲 |
5.注册中心客户端读取本地磁盘缓冲 |
6.注册中心使用定时器实现心跳 |
第27章:配置中心高可用 |
1.配置中心高可用重构客户端测试程序 |
2.配置中心客户端定时通过注册中心获取 |
3.配置中心客户端的磁盘缓存读写完成 |
4.配置中心在linux上的部署 |
5.网关移植linux配置接口和注册接口 |
第28章:MooseFS安装配置 |
1.MooseFS介绍和上传下载流程说明 |
2.安装配置管理服务器mfsmaster_元数据 |
3.安装数据服务器mfs_chunkserver |
4.安装mfsmount客户端并配置存储份数 |
第29章:openssl_sha_base64 |
1.OpenSSL生成MD5和SHA256接口和原理 |
2.OpenSSL基于BIO接口的Base64编解码 |
第30章:鉴权中心 |
1.鉴权中心业务流程说明 |
2.添加鉴权中心服务端和客户端处理登录 |
3.初始化好鉴权中心表完成用户新增 |
4.完成登录验证DAO含token生成 |
5.完成登录客户端接收新增用户 |
6.鉴权中心客户端添加到配置管理工具 |
第31章:日志微服务 |
1.完成日志的DAO模块创建好表 |
2.完成日志模块微服务和客户端 |
第32章:云安全云盘微服务实战 |
1.云安全云盘项目说明 |
2.登录界面qss样式说明 |
3.完成鉴权中心注册和网关登录系统 |
4.注册中心和网关的IP通过主机名或域名 |
5.主控界面设计和目录刷新接口设计 |
6.完成目录微服务创建接收目录获取请求 |
7.完成自定义信号槽实现目录显示 |
8.完成文件图标_大小显示和全选功能 |
9.完成token鉴权消息封装网关验证目录 |
10.完成新建目录并刷新显示 |
11.完成目录切换后退和当前目录显示 |
12.完成文件删除的前后端 |
13.完成磁盘和用户空间的显示 |
14.上传微服务处理文件上传请求创建 |
15.完成了客户端的文件上传指令处理 |
16.完成发送和接收文件片 |
17.文件上传进度显示核心代码讲解 |
18.文件下载代码分析 |
19.上传和下载任务列表进度定时刷新 |
20.上传和下载微服务获取和轮训负载访问 |
21.文件上传和下载的完整性校验 |
22.文件AES加密上传和下载解密 |
技术专家系统讲解传授编程思路与实战。
专属社群随时沟通与讲师答疑,扫清学习障碍,自学编程不再难。
超实用资料,覆盖核心知识,关键编程技能,方便练习巩固。(部分讲师考虑到版权问题,暂未上传附件,敬请谅解)
企业常见开发实战案例,带你掌握Python在工作中的不同运用场景。
2019Python开发者大会视频免费观看,送你一个近距离感受互联网大佬的机会。
满足不同场景,开发编程语言系统学习需求,不受空间、地域限制。
【完善的技术体系】
技术成长循序渐进,帮助用户轻松掌握
掌握C/C++知识,扎实编码能力
【清晰的课程脉络】
浓缩大牛多年经验,全方位构建出系统化的技术知识脉络,同时注重实战操作。
【仿佛在大厂实习般的课程设计】
课程内容全面提升技术能力,系统学习大厂技术方法论,可复用在日后工作中。
从实践中理解软件工程,学会需求分析、架构设计、详细设计文档的编写
掌握编程规范,
了解多人协作开发策略
此开源项目学员都可以写到简历中