刷新
设计模式之工厂方法和抽象工厂

博主头像 全网最详细的工厂设计模式,本文主要是创建型设计模式中的工厂方法和抽象工厂,先由传统实现方式引出问题,接着对代码改进到简单工厂,后扩展到工厂方法,最后是抽象工厂模式,文中包括概念理解和相关实现代码。 ...

设计模式的基础知识

博主头像 作为一个开发人员,都想写出一手好的代码,而不是别人称的“屎山”,设计模式提供了一系列常见问题的解决方案,通过利用设计模式来尽可能统一规范,可以提高代码的可维护性、可读性、可扩展性。 ...

分布式系统架构理论与组件

博主头像 在计算机发展的早期,一直都是集中式计算,计算能力依赖大型计算机。随着互联网的发展,繁重的业务需要巨大的计算能力才能完成,而集中式计算无法满足要求,大型计算机的价格也非常昂贵。分布式计算将任务分解成更小的部分,分配给多台计算机处理,这样可以节约整体计算时间,大大提高计算效率。互联网大型网站往往面临高并... ...

如何组装一个注册中心

博主头像 hello,大家好呀,我是小楼。今天不写BUG,来聊一聊注册中心。 标题本来想叫《如何设计一个注册中心》,但网上已经有好多类似标题的文章了。所以打算另辟蹊径,换个角度,如何组装一个注册中心。 组装意味着不必从0开始造轮子,这也比较符合许多公司对待自研基础组件的态度。 知道如何组装一个注册中心有什么用 ...

互联网协议

博主头像 互联网协议 1.C/S B/S 架构 client 基于网络通信 server browser 基于网络通信 server server端必须满足的条件: 1. 稳定运行(网络. 硬件. 操作系统. 服务端软件) 2. 服务端必须绑定一个固定的地址 2.什么是互联网 两大要素: 1. 底层的物理链接 ...

从业务开发中学习和理解架构设计

博主头像 在软件开发领域经常会接触到架构这个词汇,在我最初的印象中,架构是一个很高级的词汇。它似乎代表了复杂的工程结构、高层次的抽象设计、最新的开发语言特性等等。对于当时只专注于写业务逻辑的我来说,不免心生对架构的敬畏。工作中对架构的讨论很少,出现则是一些高级晦涩的描述,但是从来没有人清楚地解释过架构做了哪些... ...

简单易用的任务队列-beanstalkd

博主头像 概述 beanstalkd 是一个简单快速的分布式工作队列系统,协议基于 ASCII 编码运行在 TCP 上。其最初设计的目的是通过后台异步执行耗时任务的方式降低高容量 Web 应用的页面延时。其具有简单、轻量、易用等特点,也支持对任务优先级、延时/超时重发等控制,同时还有众多语言版本的客户端支持, ...

如何实现一个状态机?

博主头像 何为状态机? 从字面上简单粗暴地理解,状态机是一个跟状态有关的机器,但其实状态机并不是一种物理机器,而是一种模型,一种表达事物状态及状态变化过程的数学模型。 状态机全称是有限状态机(finite-state machine,缩写:FSM)或者有限状态自动机(finite-state automato ...

重构

博主头像 参数过长 影响: 方法不易被理解、使用,方法签名容易不稳定,不易维护 解决方法:反复使用提炼方法+内联方法,消除多余参数 ​ 尽量把方法移进相关的类中 ​ 如实体类中的get方法在其他类中没有被调用可以删除 ​ 实际工作中,可以结合参数数量、以及自身对业务的理解,在 最小知道 和 保持对象完整性 之 ...

从编译器对指令集的要求看API设计原则

博主头像 摘要:最近看《计算机体系结构:量化研究方法(第五版)》,发现指令集设计中的一些原则,对API设计也同样适用,给大家分享一下。 本文中的所有内容来自工作和学习过程中的心得整理,如需转载请注明出处。周荣华@燧原科技 1 正交 指令集需要满足操作、数据类型和寻址方式三个方面的功能就是正交的。所以API设计 ...

程序分析与优化 - 11 多分支分析

博主头像 本章是系列文章的第十一章,主要介绍GPU的编译原理,分析了多核运行过程中的内存分岔和控制流分岔的分析和处理。 本文中的所有内容来自学习DCC888的学习笔记或者自己理解的整理,如需转载请注明出处。周荣华@燧原科技 11.1 什么是GPU 11.1.1 GPU的发展历史 软件控制的VGA帧缓冲区 频繁 ...

Twitter系统架构参考

博主头像 Twitter系统架构参考Push、Pull模式每时每刻都有用户在Twitter上发表内容,Twitter工作是规划如何组织内容并把它发送用户的粉丝。 实时是真正的挑战,5秒内将消息呈现给粉丝是现阶段的目标。 投递意味着内容、投入互联网,然后尽可能快的发送接收。 投递将历时数据放入存储栈,推送通知, ...

kubernetes1.24+containerd搭建

1. 安装containerd k8s1.24不支持docker作为运行时容器,需要采用containerd k8s1.24可以支持docker的远程镜像 1.1. 安装 apt-get install containerd.io=1.6.6-1 1.2. 生成containerd默认配置文件(所有 ...

java基础

博主头像 java基础知识图解 软件开发 软件开发 软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。 人机交互方式 图形化界面(Graphical User Interface GUI):这种方式简单直观,使用者易于接受,容易上手操作。 命令行方式(Command Line ...

可落地的DDD(7)-战术设计上的一些误区

博主头像 几年前我总结过DDD战术设计的一些可落地的经验,现在回过头来发现,当初对这些概念的理解还是没有到位。比如战术设计的各个模块是如协作的。哪些是问题空间问题,哪些是解方案空间问题 这篇文章重新阐述下。 ...

几步看懂晶闸管的结构和工作原理

博主头像 之前小亿有讲解过二极管和三极管的内容,感兴趣的朋友可以去网站主页搜索,今天我们来了解晶闸管。 晶闸管结构 单向晶闸管(晶体闸流管)是N-P-N-P四层半导体结构,中间形成了三个PN结。有三个电极,分别是阳极A,阴极K,门极G(也叫控制极)。 导电特性 如画面中的电路,开关S1闭合时,但是门极G没有触 ...

Python设计模式-六大设计原则

博主头像 Python设计模式-六大设计原则 单一职责原则 (Single Responsibility Principle) 顾名思义,单一职责的原则是说一个类只负责一项职责(操作)。如果一个类负责多个职责,其中一项职责发生变化就需要修改整个类,这可能会导致其他的职责运行错误。一个类,只应该有一个引起它变化 ...

<1···4950