Git工作流程一般工作流程如下: 将Git的一个存储库克隆为工作副本。 可以通过添加/编辑文件修改工作副本。 如有必要,还可以通过让其他开发人员一起来更改/更新工作副本。 在提交之前查看更改。 提交更改:如果一切正常,那么将您的更改推送到存储库。 提交后,如果意识到某些错误并修改错误后,则将最后一 ...
Java并发:线程安全-理论
线程安全概念 线程安全:当多个线程访问一个对象,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要额外的同步,或者在调用方进行任何其他的协调操作, 调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。 即要求线程安全的代码都必须具备一个特征:代码本身封装了所有必要的正确性保障 ...
领域驱动设计:StudyResources
书籍 Eric Evans Domain-Driven Design: Tackling Complexity in the Heart of Software”一书(中文名字《领域驱动设计–软件核心复杂性应对之道 》,清华大学出版社出版) 偏向于理论 Vaughn Vernon的 ...
领域驱动设计:domain
domain建模示例发布帖子Round-I业务建模在大家的常识中,每个人都有自己的观点,并可以发表自己的观点,在社区中便表现为:发布帖子。那么谁发布帖子呢? 很明显是帖子作者,于是我们便可以得到如下描述:帖子作者发布帖子。从上述描述中,我们很容易得到如下几个实体及其行为:帖子作者(PostAutho ...
系统设计:依赖反转与依赖注入
依赖反转依赖为什么要将依赖反转,因为当存在依赖时,被依赖的模块A会先进行编译,而依赖的模块B会在A编译后才能进行编译。 定义软件设计存在抽象层与是实现层之分,一般情况下,抽象依赖于实现。 但是抽象层稳定,实现层容易变化,抽象层应该有较实现层更高的复用性,它就应该我们设计和考量的核心与重点,而不是具体 ...
markdown使用技巧
markdown使用如何添加代码块使用格式: \``` 某语言 (java,c,c++) 代码块 \ ## 列表嵌套 一级列表 二级列表(前面三个空格) 二级列表表现为:1. 一级列表 1. 二级列表(前面三个空格) - 二级列表## 表格 表头 ...
设计模式:适配器模式
适配器模式提出问题 将类的接口转换为想要的接口,以便实现不同的接口。两个对象因为接口不兼容而不能一起工作,这时需要第三方适配。 适配器:我拥有一个三角插头,而只有一个二角的插座,则我需要一个适配器,让我能够重新充电 为什么要用(作用) 将一个类的接口转换为客户希望的另外一个接口,Adapter模式 ...