技术大杂烩
文章平均质量分 80
八卦各类技术小技巧
Victor Fung
主要涉及分布式中间件、分布式存储、数据库、linux内核、编译器。。。
展开
-
设计模式总结03–行为型模式
设计模式总结03–行为型模式1 模板方法1.1 设计意图1.2 解决要点1.3 优缺点优点缺点2 策略模式2.1 设计意图2.2 解决要点2.3 优缺点优点缺点3 责任链模式3.1 设计意图3.2 解决要点3.3 优缺点优点缺点4 观察者模式4.1 设计意图4.2 解决要点4.3 优缺点优点缺点5 中介者模式5.1 设计意图5.2 解决要点5.3 优缺点优点缺点6 状态模式6.1 设计意图6.2 解决要点6.3 优缺点优点缺点7 命令模式7.1 设计意图7.2 解决要点7.3 优缺点优点缺点8 迭代器模式8原创 2020-09-27 22:27:14 · 293 阅读 · 0 评论 -
互联网架构发展历程
互联网架构发展历程引言1 单体架构1.1 架构思想1.2 优缺点2 垂直架构2.1 架构思想2.2 优缺点3 SOA3.1 架构思想3.2 优缺点4 微服务4.1 架构思想4.1.1 设计原则4.2 优缺点5 server mesh和faas引言互联网发展至今,先后经历了单体架构、垂直架构、SOA、最后到了微服务,以及最近比较火爆的server mesh和faas。1 单体架构1.1 架构思想所有的业务模块都集中到一个应用中。最多以war包、甚至整体一个war包,去发布项目。在实际部署中,可以通原创 2020-09-20 11:34:02 · 545 阅读 · 0 评论 -
耦合分类
耦合分类内容耦合公共耦合外部耦合控制耦合标记耦合数据耦合非直接耦合内容耦合一个模块直接引用另一个模块的内部代码,典型例子就是:一个模块把所有功能做完,没有任何拆分;公共耦合一组模块共同引用一个全局复杂数据项。共同访问一个文件、设备、共享内存等,一旦文件格式发生变化,所有模块就得变动;外部耦合一组模块都访问同一全局简单数据项。例如C语言程序中各个模块都访问被说明为extern类型的外部变...原创 2019-10-17 15:12:19 · 841 阅读 · 0 评论 -
设计模式总结01–创建型模式
设计模式总结01–创建型模式1 单例模式1.1 设计意图1.2 解决问题1.3 优缺点优点缺点2 普通工厂2.1 设计意图2.2 解决问题2.3 优缺点优点缺点3 抽象工厂3.1 设计意图3.2 解决问题3.3 优缺点优点缺点4 建造者4.1 设计意图4.2 解决问题4.3 优缺点优点缺点5 原型模式5.1 设计意图5.2 解决问题5.3 优缺点优点缺点1 单例模式1.1 设计意图保证一个类只有一个实例、且提供一个全局的访问点。1.2 解决问题实现一个类的全局共享,避免全局使用的类的频繁创建和释放原创 2020-09-27 22:26:22 · 128 阅读 · 0 评论 -
IOC与AOP的本质
IOC与AOP本质IOCIOC原创 2020-01-09 11:38:52 · 182 阅读 · 0 评论 -
抽象之美
抽象之美引言1 技术耦合到业务耦合1.1 概述1.2 问题2 经验驱动设计2.1 概述2.2 现实的残酷2.3 残酷的原因3 抽象驱动设计3.1 概述3.2 举例3.3 怎么提炼抽象能力引言为了实现架构优化、降低耦合,IT行业提出了很多思想。有设计模式、架构模式,再到面向接口、面向服务;还有用例驱动设计、领域驱动设计。然而个人认为:上述这些都只是纯技术上解决耦合的办法。所有...原创 2019-10-17 20:07:33 · 288 阅读 · 0 评论 -
用例驱动设计
用例驱动设计引言1 需求获取1.1 前期准备1.2 获取业务1.3 提炼规则1.4 获取非功能需求2 需求分析2.1 领域分析2.2 概念分析2.3 整理业务架构3 系统分析3.1 发掘系统用例3.2 设计业务规则3.3 梳理系统用例实现3.4 设计系统架构4 系统设计5 编码实现6 测试交付引言用例驱动设计是一种有效的软件工程化设计的方法论之一。整个过程分为需求获取、需求分析、系统分析、系统设计、编码实现、测试交付五个阶段。每个阶段环环相扣,形成一个迭代周期。1 需求获取整个需求获取阶段可以分为前原创 2020-06-09 22:11:26 · 2923 阅读 · 0 评论 -
设计模式总结02–结构型模式
设计模式总结02–结构型模式1 适配器模式1.1 设计意图1.2 解决问题1.3 优缺点优点缺点2 桥接模式2.1 设计意图2.2 解决问题2.3 优缺点优点缺点3 外观模式3.1 设计意图3.2 解决问题3.3 优缺点优点缺点4 代理模式4.1 设计意图4.2 解决问题4.3 优缺点优点缺点5 组合模式5.1 设计意图5.2 解决问题5.3 优缺点优点缺点6 装饰模式6.1 设计意图6.2 解决问题6.3 优缺点优点缺点7 享元模式7.1 设计意图7.2 解决问题7.3 优缺点优点缺点1 适配器模式1原创 2020-09-27 22:26:47 · 156 阅读 · 1 评论 -
用户态无锁且线程安全的强弱指针C++实现
无锁且线程安全的强弱指针C++实现引言1 引出问题2 方案分析2.1 快速解决问题2.2 美中不足2.3 完美解决3 方案设计3.1 总体逻辑图3.2 运行图3.2.1 对RefObject强引用加一3.2.2 对RefObject强引用减一3.2.3 强指针转弱指针3.2.4 释放RefObject3.2.5 对RefWeak弱引用加一3.2.6 对RefWeak弱引用减一3.2.7 弱引用转强...原创 2020-02-28 21:20:53 · 755 阅读 · 0 评论 -
Java虚拟机GC机制
Java虚拟机GC机制引言1 相关基础概念1.1 运行时数据分区1.2 可达性分析1.2 GC Roots2 常见GC算法2.1 标记-清除算法2.2 拷贝算法2.3 标记-整理算法3 GC过程概括引言程序中分配在堆上的内存,当不再需要的时候,需要及时回收以便后续能申请到内存可使用。像C、C++等语言,如果需要释放无内存空间需要由编程人员自己来处理。而Java语言的虚拟机支持管理内存生命周期、自动释放无用内存,即GC机制。1 相关基础概念1.1 运行时数据分区java代码运行在虚拟机,分为两类:一原创 2020-06-08 22:33:29 · 656 阅读 · 0 评论 -
基于UDP可靠传输实现
可靠UDP设计引言1 概述引言在网络七层模型的传输中,以UDP与TCP为主要协议。这两大协议各有特点:TCP协议是流式协议,具备可靠传输,不用考虑分包、乱序、丢包问题;但是,其滑块算法严重影响了其性能。UDP协议是数据包式协议,具备简单、实时、高效;但是需要考虑丢包、乱序等问题。在对网络实时要求很高的环境中,很多采用在UDP上封装轻量级可靠的SDK来解决丢包、乱序等问题。例如UE4引...原创 2020-02-29 20:37:51 · 1683 阅读 · 0 评论 -
GRPC Java源码解析
GRPC Java源码解析引言1 服务端1.1 逻辑架构1.1.1 宏观逻辑1.1.2 服务管理(Server Pack)1.1.3 服务注册(Registry Pack)1.1.4 传输逻辑(Transport Pack)1.1.5 网络处理(Handler Pack(io.grpc.netty))1.1.5.1 netty领域1.1.6 网络流(Stream Pack)1.1.7 方法调用(C...原创 2020-08-29 17:21:25 · 4441 阅读 · 5 评论 -
安卓启动过程
安卓启动过程引言1 用户态init阶段引言安卓系统的启动过程如下:整个流程分为四个阶段,即引导阶段、内核启动阶段、用户态init阶段、Zygote启动阶段。由于安卓系统内核基于linux修剪而成,其引导和内核启动与linux基本相同,差异性的是用户态init阶段和Zygote启动阶段,特别是Zygote阶段是安卓特有的。注 1 :本文中断解析用户态init阶段和Zygote启动阶段,引导...原创 2020-01-09 10:12:07 · 335 阅读 · 0 评论 -
安卓namespace隔离机制
引言Android从8.0推出Treble计划后,提供了namespace机制。了解容器的同学,便会想到容器的隔离机制就是利用Linux的namepsace,但是此namespace是非彼namespace。Android的namepace是其系统加载so的一种隔离机制,它属于其Linker功能的一个特性。今天抽空总结下Android的namepace相关技术,本次技术分享只涉及到版本10.0及...原创 2019-12-21 18:47:29 · 2575 阅读 · 0 评论 -
fuchsia源码环境搭建
fuchsia源码环境搭建引言1 获取源码2 编译源码3 运行虚拟机引言fuchsia是谷歌正在研发的基于内核zircon的微内核系统。1 获取源码准备虚拟机中安装Ubuntu 16或以上版本,然后打开ubuntu终端,依次执行:安装必要工具,执行 sudo apt-get install build-essential curl git python unzip创建工作目录,执行 mkdir work进入工作目录,执行 cd work源码下载,执行 curl -s “https://fu原创 2020-05-29 20:49:25 · 679 阅读 · 0 评论 -
DNS与负载均衡
DNS与负载均衡引言1 DNS原理解析2 DNS关键记录3 DNS负载均衡引言互联网上通过IP地址区分一个个设备,但是IP地址不利于记忆,于是产生了诸如google.com之类的域名去方便用户记忆。当我们访问谷歌网站的时候,不再需要输入谷歌的IP去访问,这一系列过程由后台的DNS机制将域名转换为IP地址。1 DNS原理解析2 DNS关键记录3 DNS负载均衡...原创 2020-04-09 22:07:41 · 732 阅读 · 0 评论 -
虚拟机Bridge/Host-Only/NAT三种联网原理
虚拟机Bridge/NAT/Host-Only三种联网原理引言引言原创 2020-04-08 20:39:33 · 808 阅读 · 0 评论 -
四种NAT的网络结构
对于三种圆锥型NAT可以建立P2P打洞技术,但是对于对称性网络却无法做到P2P效果。原创 2023-12-27 10:28:06 · 9404 阅读 · 1 评论 -
交换机通信过程
交换机IP通信过程引言1 场景举例2 内网段通信3 外网段通信引言网络七层协议,从下到上依次为物理层、链路层、网络层、传输层、会话层、表示层、应用层。其中网络层协议以IP去区分一个个物理设备。那么IP数据包是怎么通过交换机转发的呢?这里就将其大致过程原理做一个简介。1 场景举例我们假设现在有IP地址为192.168.1.21至192.168.1.25五个PC接到交换机。然后通过192.16...原创 2020-04-08 20:38:39 · 2506 阅读 · 0 评论