跳至主要內容
微服务基础 - 康威定律

微服务基础 - 康威定律

微服务这个概念很早就提出了, 真正火起来是在2016年左右,而康威定律(Conway's Law)就是微服务理论基础。本文整理自肥侠的文章, 帮助大家理解微服务理论体系。

概述

微服务是最近非常火热的新概念,大家都在追,也都觉得很对,但是似乎没有很充足的理论基础说明这是正确的,给人的感觉是 不明觉厉 。前段时间看了Mike Amundsen《远距离条件下的康威定律——分布式世界中实现团队构建》(是Design RESTful API的作者)在InfoQ上的一个分享,觉得很有帮助,结合自己的一些思考,整理了该演讲的内容。


gavin-james大约 12 分钟开发理论开发理论
事务理论 - ACID

事务理论 - ACID

事务的四个基本特性: Atomicity(原子性):事务是一个不可分割的整体,事务内所有操作要么全做成功,要么全失败。Consistency(一致性):务执行前后,数据从一个状态到另一个状态必须是一致的(A向B转账,不能出现A扣了钱,B却没收到)。Isolation(隔离性): 多个并发事务之间相互隔离,不能互相干扰。Durability(持久性):事务完成后,对数据库的更改是永久保存的,不能回滚。


gavin-james大约 1 分钟开发理论开发理论
分布式理论 - BASE

分布式理论 - BASE

BASE是“Basically Available, Soft state, Eventually consistent(基本可用、软状态、最终一致性)”的首字母缩写。其中的软状态和最终一致性这两种技巧擅于对付存在分区的场合,并因此提高了可用性。

什么是BASE

eBay 的架构师 Dan Pritchett 源于对大规模分布式系统的实践总结,在 ACM 上发表文章提出 BASE 理论,BASE 理论是对 CAP 理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。


gavin-james大约 2 分钟开发理论开发理论
分布式理论 - CAP

分布式理论 - CAP

CAP理论是分布式系统、特别是分布式存储领域中被讨论的最多的理论。其中C代表一致性 (Consistency),A代表可用性 (Availability),P代表分区容错性 (Partition tolerance)。CAP理论告诉我们C、A、P三者不能同时满足,最多只能满足其中两个。

CAP 理论简介

CAP理论是分布式系统、特别是分布式存储领域中被讨论的最多的理论。其中C代表一致性 (Consistency),A代表可用性 (Availability),P代表分区容错性 (Partition tolerance)。CAP理论告诉我们C、A、P三者不能同时满足,最多只能满足其中两个。


gavin-james大约 3 分钟开发理论开发理论
软件开发中的原则 - SOLID

软件开发中的原则 - SOLID

在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则,和具体阐述意义。

开发原则SOILD

面向对象的基本原则(solid)是五个,但是在经常被提到的除了这五个之外还有 迪米特法则合成复用原则等, 所以在常见的文章中有表示写六大或七大原则的; 除此之外我还将给出一些其它相关书籍和互联网上出现的原则;


gavin-james大约 20 分钟开发理论开发理论
♥常见开发理论♥

♥常见开发理论♥

开源协议知识体系详解。

相关文章

常见开发理论相关文章。

  • 软件开发中的原则 - SOLID
    • 在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则,和具体阐述意义。
  • 分布式理论 - CAP
    • CAP理论是分布式系统、特别是分布式存储领域中被讨论的最多的理论。其中C代表一致性 (Consistency),A代表可用性 (Availability),P代表分区容错性 (Partition tolerance)。CAP理论告诉我们C、A、P三者不能同时满足,最多只能满足其中两个。
  • 分布式理论 - BASE
    • BASE是“Basically Available, Soft state, Eventually consistent(基本可用、软状态、最终一致性)”的首字母缩写。其中的软状态和最终一致性这两种技巧擅于对付存在分区的场合,并因此提高了可用性。
  • 事务理论 - ACID
    • 一个事务有四个基本特性,也就是我们常说的(ACID):Atomicity(原子性):事务是一个不可分割的整体,事务内所有操作要么全做成功,要么全失败。Consistency(一致性):务执行前后,数据从一个状态到另一个状态必须是一致的(A向B转账,不能出现A扣了钱,B却没收到)。Isolation(隔离性): 多个并发事务之间相互隔离,不能互相干扰。Durability(持久性):事务完成后,对数据库的更改是永久保存的,不能回滚。
  • 微服务基础 - 康威定律
    • 微服务这个概念很早就提出了, 真正火起来是在2016年左右,而康威定律(Conway's Law)就是微服务理论基础。本文整理自肥侠的文章, 帮助大家理解微服务理论体系。

gavin-james大约 2 分钟开发理论开发理论
CRON表达式介绍和使用

CRON表达式介绍和使用

定时任务和CRON表达式在开发中使用也非常广泛,本文整理了CRON表达式和常见使用例子。

什么是Cron

来自百度百科在新窗口打开

计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到 cron 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的任务。


gavin-james大约 6 分钟开发理论CRON表达式
在线工具汇总

在线工具汇总

本文主要总结常用的在线正则表达式相关的工具,从而高效的写出正确的表达式。

工具一:可视化理解正则

该工具主要帮助你理解你的正则表达式


gavin-james小于 1 分钟开发理论正则表达式
常用正则表达式

常用正则表达式

在学习了正则表达式知识点之后,通常使用正则表达式推荐你本文总结的常用的正则表达式,能覆盖80%的应用场景,如果没有通过再下一篇的工具自己写和校验。

校验数字的表达式

  • 数字:^[0-9]*$
  • n位的数字:^\d{n}$
  • 至少n位的数字:^\d{n,}$
  • m-n位的数字:^\d{m,n}$
  • 零和非零开头的数字:^(0|[1-9][0-9]*)$
  • 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$
  • 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$
  • 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
  • 有两位小数的正实数:^[0-9]+(\.[0-9]{2})?$
  • 有1~3位小数的正实数:^[0-9]+(\.[0-9]{1,3})?$
  • 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$^\+?[1-9][0-9]*$
  • 非零的负整数:^\-[1-9][]0-9"*$^-[1-9]\d*$
  • 非负整数:^\d+$^[1-9]\d*|0$
  • 非正整数:^-[1-9]\d*|0$^((-\d+)|(0+))$
  • 非负浮点数:^\d+(\.\d+)?$^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
  • 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
  • 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.+ [0-9]+)|([0-9]*[1-9][0-9]*))$
  • 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
  • 浮点数:^(-?\d+)(\.\d+)?$^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

gavin-james大约 6 分钟开发理论正则表达式