2022年3月10日
DDD 分层架构视图 DDD 分层架构包括:展现层、应用层、领域层和基础层。 DDD 分层架构各层职能如下: 展现层 展现层负责向用户显示信息和解释用户指令。 应用层 应用层是很薄的一层,主要面向用户用例操作,协调和指挥领域对象来完成业务逻辑。应用层也是与其他系统的应用层进行交互的必要渠道。应用层服务尽量简单……
阅读全文
2022年3月10日
“设计原则千万条,高内聚低耦合第一条,架构设计不规范,开发运维两行泪!”。 在分布式架构下,单体应用被拆分为多个微服务,为了保证微服务的单一职责和合理拆分,“高内聚、松耦合”是最宝贵的设计原则。 通俗点讲,高内聚就是把相关的行为聚集在一起,把不相关的行为放在别处,如果你要修改某个服务……
阅读全文
2022年3月10日
Uber从单体到微服务转变 在Uber,我们采用了微服务架构,因为我们(大约在2012年至2013年)拥有两个整体服务,并且遇到了微服务解决的许多运营问题。 **可用性风险。**单一代码库中的单个回归可以使整个系统(在这种情况下,是整个Uber)瘫痪。 **风险高昂的部署。**由于频繁……
阅读全文
2022年3月9日
【强制】: ① 存储引擎必须使用 InnoDB 解读: InnoDB 支持事物、行级锁、并发性能更好,CPU 及内存缓存页优化使得资源利用率更高。 【强制】:②每张表必须设置一个主键 ID,且这个主键 ID 使用自增主键(在满足需要的情况下尽量短),除非在分库分表环境下 解读: 由于 InnoDB 组织数据的方式决定了需要有一个主键,而且若……
阅读全文
2022年3月7日
强调您可以自己研究的重要领域驱动设计术语 强调通过本次讨论出现的重要泛在语言术语 我想专注于最终目标。在这一点上,我们正试图实现一个有效的上下文映射,我们可以快速制作原型 我们的第一个领域事件:“咖啡已购买” 团队要求 考虑一个将发生在他业务核心的事件。希望以客户为……
阅读全文
2022年3月7日
前言 原有用户业务线上,属于大熔炉模式,所有和用户相关的业务逻辑都放在用户工程下,用户账号,用户会员,用户积分,活动等等在各个业务逻辑中都有互相掺杂,在面对业务快速发展的新零售电商行业显得力不从心。在进行业务迭代,新需求开发,让整个用户系统伤筋动骨。 一、为什么要使用 DDD 1、贫血症引起……
阅读全文
2022年3月6日
有界上下文是域驱动设计中的中心模式。这是DDD战略设计部分的重点,该部分是关于处理大型模型和团队的。DDD通过将它们划分为不同的有界上下文并明确它们的相互关系来处理大型模型。 DDD是关于基于底层域模型设计软件的。模型充当无处不在的语言,以帮助软件开发人员和领域专家之间的通信。它还……
阅读全文
2022年3月6日
此过程为您提供了学习和实际应用领域驱动设计(DDD)各个方面的分步指南 - 从围绕组织的业务模型进行定位到编写领域模型。 使用此过程将指导您完成使用DDD思维方式设计软件系统的每个基本步骤,因此您可以专注于业务挑战,而不会同时学习DDD而不知所措。 一旦你经历了这个过程的几次迭代,你将拥……
阅读全文
2022年3月4日
新闻资讯 Analytics Vidhya: 为数据科学专业人员提供基于社区的知识门户 Distill: 展示机器学习的最新文章 Google News: Google News Machine learning MIT News: Machine learning | MIT News 17bigdata: 专注数据分析、挖掘、大数据相关领域的技术分享、交流 机器之心: 机器之心 | 全球人工智能信息服务 雷锋网: 雷锋网 | 读懂智能,未来 数据分析网: 数据分析网 - 大数据学习交流第一平台 知乎主题:……
阅读全文
2021年11月3日
定义 SSLSocketFactoryCompat,在创建 Socket 的时候如果是 4.x 的设备则启用 TLSv1.2 import android.os.Build; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; public class SSLSocketFactoryCompat extends SSLSocketFactory{ private static final String[] TLS_V12_ONLY = {"TLSv1.2"}; private final SSLSocketFactory delegate; public SSLSocketFactoryCompat() throws KeyManagementException, NoSuchAlgorithmException { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, null, null); delegate = sc.getSocketFactory(); } public SSLSocketFactoryCompat(SSLSocketFactory delegate) { if (delegate == null) { throw new NullPointerException(); } this.delegate = delegate; } @Override public String[] getDefaultCipherSuites() { return delegate.getDefaultCipherSuites(); } @Override public String[] getSupportedCipherSuites() { return delegate.getSupportedCipherSuites(); } private Socket enableTls12(Socket socket) { if (Build.VERSION.SDK_INT >= 16 && Build.VERSION.SDK_INT < 20)……
阅读全文