领域驱动设计(Domain-Driven Design,简称 DDD)是一种面向对象软件设计方法,其目的是将软件系统的核心业务领域(Domain)抽象出来,并以此为基础进行设计和实现。 领域驱动设计的核心思想是将领域模型作为软件设计的中心,通过对领域模型的深入理解和设计,提高软件系统的可维护性、可扩展性和可重用性。领域模型是描述业务领域中重要概念、实体、关系和操作的一组对象和方法的抽象表示
为什么使用多云: 公有云因为其弹性、按需使用以及多地域的覆盖等优势,企业在高速发展的过程中往往会选择公有云来提供应用所需的基础设施; 为了高稳定性和成本最优的考虑,一般会引入多家云厂商; 多云部署防止单一云厂商故障导致服务完全不可用; 采用多云也提升了采购上的议价能力,避免单一厂商绑定,在价格谈判中处于劣势; 不同的云厂商在覆盖的地域、产品的能力上不一致,引入多云可以充分发挥各厂商的服务能力和产品优势。 多云带来的问题: 公司内因为云上资源使用的业务比较多,资源新增和交付主要依赖人工沟通并在控制台上进行操作,效率很低,在遇到大批量的资源交付服务器、数据库和负载均衡等多产品联合交付等场景的时候,无法满足业务的高速迭代需求; 不同的业务使用的云产品不同,基本上都涵盖了主要的IaaS和PaaS类的云产品,资源分布在多个公有云、多个云账号下,无法准确掌握全部资源情况,寻找资源困难,难以区分哪个资源由哪个业务使用; 用户在公有云控制台上权限混乱缺乏管理,存在权限泄露问题,操作不同资源需要通过密码登录不同公有云不同账号,难以批量操作,高危操作缺乏审批流程;
本文是蚂蚁集团体验设计师闻冰(社区称呼:空谷)在 Ant Design 5.0 发布会上的分享内容文字版,《Ant Design 5.0 设计工程化》,从设计工程化的角度,和大家聊聊 Ant Design V5 中为整个消费链路所带来的灵活性变革。
ThinkingEngine (简称“TE”)新一代数据分析引擎,由数数科技研发,提供一站式的数据应用服务。让数据分析能够覆盖全品类分析场景,帮助游戏公司专注在游戏本身的业务上,更好地挖掘数据价值。 我们常常会收到客户的反馈:在业务高峰时容易出现分析查询慢和卡顿的情况。造成这种现象的原因是查询引擎在业务高峰时资源瓶颈,查询只能排队等待。用户也采取过增加资源的方式来缓解这一状况,但是由于架构的耦合性,很多程序部署相互依赖,扩展比较困难。这也会导致资源的利用率在业务低谷时非常低。 这种方式在一定程度上缓解了查询慢的问题,但是需要付出更多的人力和服务器成本。我们通过架构的演进实现按需弹性资源,增强架构的扩展性。在提高查询效率的同时平衡服务器成本。
在商业中,数据通常和业务、企业前景以及财务状况相关,有效的数据管理可以帮助决策者快速有效地从大量数据中分析出有价值的信息。数据集成(Data Integration)是整个数据管理流程中非常重要的一环,它是指将来自多个数据源的数据组合在一起,提供一个统一的视图。 数据集成可以通过各种技术来实现,本文主要介绍如何用ELT(extract, load, transform)实现数据集成。区别于传统的ETL和其他的技术,ELT非常适合为数据湖仓或数据集市提供数据管道,并且可以用更低的成本,根据需求,随时对大量数据进行分析。 接下来将通过一个简单的示例(Demo)介绍如何实现ELT流程,具体的需求是将原始的电影票房数据保存到数据仓库,然后再对原始数据进行分析,得出相关的结果并且保存在数据仓库,供数据分析团队使用,帮助他们预测未来的收入。
React 一个美妙之处在于它通过抽象降低了操作真实 DOM 的复杂度。这让我们不必手动去查询元素,也不必思考如何向这些元素添加类,也不必再苦于浏览器的不一致性,而是让我们专心编写组件并专注于用户体验。然而,仍然会有一些场景(虽然很少!)需要我们访问 DOM。 而当涉及到 DOM 时,最重要的是理解并学习如何正确使用 Ref 以及它的周边。因此在本文中,我们要弄清楚为什么需要访问 DOM、Ref 如何帮助我们实现这一点、useRef、forwardRef 和 useImperativeHandle 是什么,以及如何正确使用它们。此外,我们还要讨论如何避免使用 forwardRef 和 useImperativeHandle,但是同时还要拥有它们提供的能力。 除了上述内容之外,我们还将学习如何在 React 中实现命令式 API!
今天读到这篇文章,觉得不错就翻译一下。文章是翻译自 Steef-Jan Wiggers The Commoditization of the Software Stack:How Application-first Cloud Services are Changing the Game[1],内容来自 Bilgin Ibryam 在 QCon London 上的演讲。Ibryam 在分享中从应用开发和运维两个不同的维度来讨论架构的演进:内部架构和外部架构。二者从单体应用时期的明显的界限,到如今界限愈来愈模糊。 我认为随着架构的演进,应用程序发生着巨大的变化,能力从应用中分离出来,下沉到基础设施中,甚至变成新的基础设施。基础设施,也从狭义上的物理设施、计算资源演变为软件定义的能力,这些能力不断地被产品化、商品化。新生代的基础设施,以各种运行时的方式游离在应用程序之外,二者仍保持着一定的联系:API。
和一些做项目主架构或者一号位的同学聊天,经常会听到一种说法:项目主架构做着做着就会做成PM。这背后什么含义呢,细品下来有几层意思: 1.整个集团的架构非常复杂,涉及的域众多,做主架构或者一号位需要大量的协调投入; 2.不同域之间的资源错配现象严重,需要投入大量精力在锁定资源和推进排期上; 3.项目结构过于复杂,PM催主架构,主架构催域架构,域架构催开发,层层订,各种站会,代码没几行,会议一大堆; 4.现在做的一些项目和产品,技术含量其实是不高的,面条式架构,在架构设计和技术上的投入感觉不多。 架构师PM化,其实就是脱实向虚的一种表现。 架构师和PM其实都是需要对项目的进度和里程碑关心的。不同的是,PM是用表格和数字关心的进度,是没有任何实体内容的,就是一个死的燃尽图;架构师对进度的把控应该是更solid的,背后应该有架构设计和模型拆解做支撑,架构师对进度的把控是对交付物的把控,风险和进展都是有实体内容支撑的。