
软件设计
文章平均质量分 60
JoesonChan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
架构简介
翻译自:https://tianpan.co/notes/145-introduction-to-architecture体系结构是软件系统的形状。将其视为实体建筑物的全景。范例是砖头。 设计原则是房间。 组件是建筑物。它们一起用于特定目的,例如医院用于治愈患者,而学校则用于教育学生。为什么我们需要架构?行为与结构每个软件系统为利益相关者提供两种不同的价值:行为和结构。软件开发人员有责任确保这两个价值都很高。凭借其工作描述,软件架构师将更多的精力放在系统的结构上,...翻译 2020-08-23 10:43:52 · 304 阅读 · 0 评论 -
可扩展系统构架介绍
翻译自:https://lethain.com/introduction-to-architecting-systems-for-scale/很少有计算机科学或软件开发程序试图教授可扩展系统的构建块。取而代之的是,系统架构通常是通过解决不断增长的产品的痛苦或与已经从该痛苦过程中学到的工程师一起完成的。在这篇文章中,我将尝试记录一些在Yahoo!上使用系统时所学到的可伸缩性架构课程。和Digg。我试图维护图表的颜色约定:绿色是来自外部客户端的外部请求(来自浏览器的HTTP请求等),...翻译 2020-08-21 01:40:23 · 521 阅读 · 2 评论 -
谈谈可扩展性
翻译自:https://www.allthingsdistributed.com/2006/03/a_word_on_scalability.html(沃纳·博赫尔斯CTO - Amazon.com)可伸缩性经常被用作魔术咒语,以表明某些东西设计不当或损坏。在讨论中,您经常会听到“但是规模不大”作为结束争论的神奇词汇。这通常表明开发人员正在遇到系统体系结构限制其增长服务能力的情况。如果以积极的意义使用可伸缩性,则通常会指出所需的属性,例如“我们的平台需要良好的可伸缩性”。我们对可伸缩性...翻译 2020-08-19 22:22:21 · 929 阅读 · 0 评论 -
ZK双机房三种方案
各有优选点,各自分析哈方案一 扩机房选举方案二 扩机房订阅方案三 机房间同步(NOTE:机房间数据不覆盖)原创 2020-08-08 20:48:11 · 1302 阅读 · 0 评论 -
延迟消息中心设计
原创 2020-08-08 20:30:52 · 311 阅读 · 0 评论 -
走进领域驱动设计
原创 2020-05-27 01:08:41 · 398 阅读 · 0 评论 -
领域驱动设计之模型设计
概念完整性Brooks在他的经典巨著《人月神话》里面提到了概念完整性,并将软件维护软件的 “概念完整性” 作为软件开发的核心问题。软件工程之所以复杂、难以维护,根本原因在于软件迭代过程中概念完整性遭到了破坏。软件开发者不理解原先开发者的设计理念,对软件领域模型不足够了解,团队内部缺乏沟通和可维护性文档,甚至开发团队从来就没有意识到维护软件概念完整性的重要性。这群开发者从一定程度上讲,他们不算是...原创 2020-04-06 11:46:16 · 545 阅读 · 0 评论 -
领域驱动设计(DDD)之领域专家
个人观点及总结领域专家不一定是专家,不一定是技术人员,可以由产品,商务、运营、业务经理等角色组成领域专家应该包括三种角色:1、如果是现有系统,应该是对业务足够熟悉,了解业务系统设计的详细的需求背景及以往历程;2、了解业务后续发展规划,对行业发展现状及未来有足够洞察力,全局观认识业务形态,并能很好兑现产品的商业价值和品牌价值。3、熟悉领域建模,具备划分业务逻辑边界,抽象领域模型,并落地工程能...原创 2020-03-07 21:39:30 · 1877 阅读 · 0 评论 -
领域驱动设计(DDD)之分层架构
由于由近几年微服务架构兴起,领域驱动设计也被大多领域专家重新看待。但是其实这其实本来是不想关的两个东西,领域驱动设计更加强调的是一个架构设计理念,所谓理念的东西,就像是建议你怎么做,但不会对,而微服务着重在架构设计由于DDD设计的理念偏广,DDD名词概念,DDD与微服务落地,DDD事件风暴及领域建模,DDD大中台实践,DDD与领域模型一致性等等话题,笔者这里就DDD分层架构展开编写,当然...原创 2020-03-01 21:24:33 · 3791 阅读 · 0 评论 -
DDD领域、子域、核心域、通用域、支撑域
DDD 的领域就是这个边界内要解决的业务问题域。既然领域是用来限定业务边界和范围的,那么就会有大小之分,领域越大,业务范围就越大,反之则相反。领域可以进一步划分为子领域。我们把划分出来的多个子领域称为子域,每个子域对应一个更小的问题域或更小的业务范围。在领域不断划分的过程中,领域会细分为不同的子域,子域可以根据自身重要性和功能属性划分为三类子域,它们分别是:核心域、通用域和支撑域。...原创 2020-02-09 15:04:21 · 5941 阅读 · 0 评论 -
历年Infoq架构师月刊收集
Infoq月刊收集:2008:https://download.youkuaiyun.com/download/chenxuegui123/11952622 2009:https://download.youkuaiyun.com/download/chenxuegui123/11952623 2010:https://download.youkuaiyun.com/download/chenxuegui123/119...原创 2019-11-03 15:46:32 · 736 阅读 · 2 评论 -
领域驱动设计——阅读梳理(思维导向图)
待完善。。。原创 2019-11-02 16:16:15 · 507 阅读 · 0 评论 -
架构真经——阅读梳理(思维导向图)
持续完善中。。。。。。。原创 2019-10-13 17:58:00 · 1800 阅读 · 0 评论 -
IT人应该知道的软件过程中5个模型
原文大部分内容来自https://blog.youkuaiyun.com/zjuwxx/article/details/97252039(感谢博主)同时加入了第5点 喷泉模型一 瀑布模型1.1 什么是瀑布模型1970年温斯顿.罗伊斯提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型 瀑布模型将软件生...原创 2019-10-13 16:47:23 · 5294 阅读 · 0 评论 -
事件风暴的设计要素与驱动力
个人认为,相比较传统领域分析方法,事件风暴的革命意义在于它建立了以“领域事件”为核心的建模思路,这相当于改变了我们观察业务领域的世界观。当我们在理解业务需求时,我们看到的常常是功能、流程,并通过从需求描述中梳理领域概念,进而借助这些概念去识别那些参与到业务场景中互为协作的领域对象,这往往让我们忽略了一个在任何领域中都必须存在的概念,即“事件”。这些事件是每次用户操作、业务活动留下来的不可磨灭的...转载 2019-07-21 15:19:18 · 3456 阅读 · 0 评论 -
在微服务中使用领域事件
稍微回想一下计算机硬件的工作原理我们便不难发现,整个计算机的工作过程其实就是一个对事件的处理过程。当你点击鼠标、敲击键盘或者插上U盘时,计算机便以中断的形式处理各种外部事件。在软件开发领域,事件驱动架构(Event Driven Architecture,EDA)早已被开发者用于各种实践,典型的应用场景比如浏览器对用户输入的处理、消息机制以及SOA。最近几年重新进入开发者视野的响应式编程(Reac...转载 2019-07-21 15:22:11 · 3090 阅读 · 0 评论 -
接口设计原则
1、单一原则一个类只负责一个功能领域的相应职责,或者可以定义为,就一个类而言,应该只有一个引起它变化的原因。 单一原则的实现,完全取决于你这么抽象的看待这个问题,你抽象的合适,那么它可以很棒,如果抽象的不够,它可能就是臃肿的类,抽象的过多,有可能创造出一大把寄生类。 单一职责原则这话就像我们常听的那句"做人要坚持"。听起来无懈可击,但是要坚持什么呢,如果这事情看起来不靠谱,做...原创 2019-07-25 17:27:45 · 8497 阅读 · 0 评论 -
重构—改善既有代码的设计读后感(思维导向图)
思维导项图文件下载:https://download.youkuaiyun.com/download/chenxuegui123/11694647原创 2019-08-04 16:22:21 · 2873 阅读 · 0 评论 -
软件架构师的12项修炼— 阅读梳理(思维导项图)
持续更新中。。。原创 2019-09-07 18:14:03 · 3032 阅读 · 0 评论 -
Idea重构技巧
1、重命名方法、对象选中右键 —> Refactor —> Rename;快捷键 Alt + Shift + r2、快速提取变量快速提取常量:选中右键 —> Refactor —> Extract —> Constants;快捷键Ctrl+Alt+C快速提取变量:选中右键 —> Refactor —> Extract —>...原创 2019-09-09 19:53:31 · 6313 阅读 · 0 评论 -
Inception的核心逻辑
Inception是ThoughtWorks多年以来使用的启动软件设计和交付项目的方法,通过3天到两周的时间,采用集中式、互动式的设计工作坊,帮助客户在最短时间内达成对项目范围的一致,快速进入项目交付。Y同学是我们最年轻的设计师,她问:最重要的事情,我认为单词应该写对,是「硬塞噗婶」而不是「硬塞噗母」,然后我来用最轻松的、完全不同以往那么严肃的语调,讲讲什么是Inception。...转载 2019-07-20 10:04:46 · 3404 阅读 · 0 评论