待兔 待兔
4年前
聊聊软件设计原则
软件设计知识是一名软件开发人员必须要懂的知识,最近几天今天看了bob大叔的《敏捷软件开发》一书和软件设计相关的一些blog和资料,自己做了一个学习笔记设计目标正确性、健壮性、灵活性、可重用性、高效性降低复杂性所谓复杂性,就是任何使得软件难于理解和修改的因素。复杂性的来源主要有两个:代码的含义模糊和互相依赖
Wesley13 Wesley13
3年前
Go切片的开闭原则
Go切片的开闭原则前言今日在工作中踩了一个小坑,关于数组切片的,主要是切片开闭原则的,当年面试的时候考过,但是后来没有仔细研究,这里补足一下。示例packagemainimport"fmt"funcmain(){//程序运行完成时一定要有输
Easter79 Easter79
3年前
SpringIOC官方文档解读
IoC容器本章介绍了Spring的控制反转(IoC)容器。1.1。SpringIoC容器和Bean简介本章介绍了反转控制(IoC)原则的Spring框架实现。IoC也称为依赖注入(DI)。在此过程中,对象可以通过①构造函数参数(),②工厂方法的参数③或在构造或从工厂方法返回后在对象实例上设置的属性来定义其依
Wesley13 Wesley13
3年前
Java并发(四):happens
happensbefore一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happensbefore关系happenbefore原则是JMM中非常重要的原则,它是判断数据是否存在竞争、线程是否安全的主要依据,保证了多线程环境下的可见性。happensbefore原则定义:1\.如果一个操作happensb
Wesley13 Wesley13
3年前
Java 深入理解volatile关键字
我们知道Java中volatile实现了修饰变量的原子性以及可见性,并且为了实现多线程环境下的线程安全,禁止了指令重排。首先我们先来了解一下happensbefore原则、asifserial语义以及数据依赖性,引用自《Java并发编程的艺术》happensbefore简介从JDK5开始,Java使用新的JSR133内存模型
Stella981 Stella981
3年前
Linux系统文件管理基础
Linux系统文件管理基础一、Linux系统文件系统1.1Linux文件系统结构!img(http://qjz2nkh4a.hnbkt.clouddn.com/20201201205143.png)在Linux系统中,目录被组织成一个:单根倒置树结构,文件系统从根目录开始,用/来表示。文件
Wesley13 Wesley13
3年前
MySQL 索引建立原则及注意事项
一、索引建立的几大原则:1) 最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(、<、between、like)就停止匹配,比如a1andb2andc3andd4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,
小万哥 小万哥
1年前
深入理解 Spring IoC 和 DI:掌握控制反转和依赖注入的精髓
概述在本文中,我们将介绍IoC(控制反转)和DI(依赖注入)的概念,以及如何在Spring框架中实现它们。什么是控制反转?控制反转是软件工程中的一个原则,它将对象或程序的某些部分的控制权转移给容器或框架。我们最常在面向对象编程的上下文中使用它。与传统编程相
京东云开发者 京东云开发者
7个月前
高可用 - 隔离原则
前言当讨论高可用时,那么必然有与之对应的低可用甚至不可用,但无论是哪种可用描述,其中都暗含了一个大众共识,即不存在永久稳定运行的系统程序。事实上,几十年前图灵也论证过类似的问题,称为“停机问题”,具体的描述是:能否为A计算机编程,使得程序才能在有限时间内推