C++ 设计模式 软件架构

现在 做C++ JAVA  面向对象设计,你们用UML 工具 或软件设计软件进行架构设计。

面向对象的 23种设计模式,  现在设计模式,进行架构,然后再代码实现.

软件开发6大法则
2.1开闭原则
2.2里氏代换原则
2.3依赖倒转原则
2.4接口隔离原则
2.5迪米特法则
2.6合成复用原则

还有一类人以为会一些设计模式就是架构设计,会用各种组件拼接就是架构。

可是当你提起系统性能、业务可扩展性、系统一致性时,从一个Coder逐步走向系统分析师或是架构师,

 

编程十年 : 登堂入室

 

但是如果你掌握得越多,那么你的架构设计能力就更强。

一、源码分析专题

数据结构:红黑树、平衡二叉树、B树和B+树、布隆过滤器、KMP算法。

设计模式:责任链模式、发布订阅模式、Reactor模式、过滤器模式、代理模式、工程模式。

开源源码分析:Nginx、zeroMQ

 

zeroMQ是一个处理数据传输的库,重点在传输上,看起来它像是在socket上面封装了一层,让我们可以很容易的利用它来做N对M的数据传输,在分布式系统中很方便,在接收端它有round-robin负载均衡。
号称最快的消息队列系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常使用,偏重于实时数据通信场景。

  • ZeroMQ是一个库,不是消息中间件;
  • 类似于java中的JMS或者MOM;
  • 与Netty类似,支持0拷贝;
  • 支持进程内、进程间、TCP以及广播等多种通讯模式;
  • Zero消息组成:字节数+实际内容;
  • 支持的语言也比较多:C,C++,JAVA,Node.js等
  • zeromq是一个库,所以我们可以在原有的接口上任意的扩展,而其他一些消息中间件更像是成品,扩展性不高;
  • 由于接收缓存有限,消息没有很好的持久化,当缓存满了以后,就会造成消息的丢失,这是一个缺点.
     

详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。

C++ 设计模式 软件架构_第1张图片

 

二、分布式架构

架构实战:斗鱼视频直播技术核心揭秘、网易门户高负载均衡实现、淘宝海量数据存储引擎、Open API设计。

架构中间件:分布式RPC框架 、分布式MQ。

MQ 我们可以理解为消息队列(Message Queue); 

分布式系统消息通信技术主要包括:
RPC(Remote Procedure Call Protocol)
一般是C/S方式,同步的,跨语言跨平台,面向过程

 

架构策略:一致性、可靠性、可扩展性、高并发海量数据设计。

架构原理:消息驱动式架构设计、动态域名做高负载均衡、P2P去中心化。

作为技术开发者,如何去应对技术变革带来的技能危机。基于传统架构到分布式架构演变过程所带来的技术变革进行全面深入讲解。在技术深度和技术广度上得到飞跃的提升。

C++ 设计模式 软件架构_第2张图片

三、集群架构专题

MySQL、Redis、MongDB、Nginx + lvs、Zookeeper集群。

面对海量的数据、高并发的请求,集群保证水平可扩展性,保证系统可靠性是唯一的途径。

C++ 设计模式 软件架构_第3张图片

 

四、Linux系统

深入内核层面理解系统,理解系统架构设计,使用一系列的工具深入挖掘系统瓶颈,而不是人云亦云的优化和架构设计。 

C++ 设计模式 软件架构_第4张图片

 

五、工程化专题 

C++ 设计模式 软件架构_第5张图片

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:

编码 → 构建 → 集成 → 测试 → 交付 → 部署

 jenkins概念 jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。

六、性能调优

C++ 设计模式 软件架构_第6张图片

七、音视频专栏

C++ 设计模式 软件架构_第7张图片

C++ 程序员到高级架构师,必须经历的三个阶段

https://blog.csdn.net/csdnsevenn/article/details/90605563

 

你可能感兴趣的:(C++,软件架构,软件设计)