面向对象 (OOP) 的五个基本原则
在程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期其著作《敏捷软件开发:原则、模式与实践》(Agile Software Development: Principles, Patterns, and Practices)中引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则 SOLID 原则旨在解决软件开...
在程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期其著作《敏捷软件开发:原则、模式与实践》(Agile Software Development: Principles, Patterns, and Practices)中引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则 SOLID 原则旨在解决软件开...
死锁概念 在许多应用中进程需要以独占的方式访问资源,当操作系统允许多个进程并发执行时可能会出现进程永远被阻塞现象,如两个进程分别等待对方所占的资源,于是两者都不能执行而处于永远等待状态,此现象称为死锁。 死锁通常被定义为:如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面称为死锁。 死锁发生条件 互斥条件: 临界资源是独占资...
Go,通常被称为 golang,它是一门由 Google 创建的现代化的开源编程语言,它允许你构建实时并且高效的应用。 很多流行的应用程序,例如 Kubernetes,Docker,Prometheus 和 Terraform,都是使用 Go 来编写的。 这篇教程讲解如何在 Ubuntu 20.04 上下载和安装 Go。 下载 Go 压缩包 在写这篇文章的时候,Go 的最新版为 1.1...
P2P 通信最大的障碍就是 NAT(网络地址转换),NAT 使得局域网内的设备也可以与公网进行通讯,但是不同 NAT 下的设备之间通讯将会变得很困难。UDP 打洞就是用来使得设备间绕过 NAT 进行通讯的一种技术。 简单解释 NAT NAT 大家应该十分熟悉了,它分为几种。一种就叫做 NAT,它只对 IP 地址进行转换;另一种叫做 NAPT(Network Address/Port Tra...
安装 OpenWRT 咔咔塞了一大堆插件后,可怜的剩余空间被插件和日志耗尽,不得不对 OpenWRT overlay 进行扩容,本文对此进行了记录 什么是 overlay OpenWRT 一般使用的文件系统是 SquashFS ,这个文件系统的特点就是:只读。 一个只读的文件系统要怎么做到保存设置和安装软件的呢?这里就是使用 /overlay 的分区,overlay 顾名思义就是覆盖...
先决条件 操作系统要求 要安装 Docker Engine,您需要以下 Ubuntu 版本之一的 64 位版本: Ubuntu Jammy 22.04 (LTS) Ubuntu 小鬼 21.10 Ubuntu 焦点 20.04 (LTS) Ubuntu 仿生 18.04 (LTS) x86_64(或amd64)],armhf,arm64和s390x架构支持 Docke...
HSTS 是什么? HSTS 是 HTTP 严格传输安全(HTTP Strict Transport Security)。 这是一种网站用来声明他们只能使用安全连接(HTTPS)访问的方法。 如果一个网站声明了 HSTS 策略,浏览器必须拒绝所有的 HTTP 连接并阻止用户接受不安全的 SSL 证书。 目前大多数主流浏览器都支持 HSTS (只有一些移动浏览器无法使用它), 最新的游览器...
BBR 基本介绍和发展背景 BBR 简介 Google 的 TCP BBR(Bottleneck Bandwidth and Round-trip propagation time)是一种基于模型的拥塞控制算法 它不依赖丢包信号,而是通过主动探测网络的最大瓶颈带宽 BtlBw(bottleneck bandwidth)和最小往返时延(RTT),建立一个显式的网络模型,并据此动态调整发送...
算法分类总览 基础算法分类表 枚举算法 贪心算法 回溯算法 分治算法 动态规划 数据结构 枚举 贪心 回溯 分治 动态规划 数组 模拟 ...
为什么会有多个进程监听同一端口的特殊情况 在通常情况下,一个端口号只能被一个进程绑定和监听。这被称为“端口唯一性”原则,是操作系统内核为了确保网络通信的有序性而设计的。 但是为了解决高性能网络服务中的两个关键问题:高并发和零停机时间, 操作系统允许多个进程监听同一个端口 高并发和可伸缩性 在传统的单进程服务器模型中,一个进程监听并处理所有连接。但随着用户量的增长,单进程会很快成为性能...