ddd实践切入点(一)_draculav-编程思维

  前两篇:大型系统的支撑,应用系统开发思想的变迁   之前大致说了使用DDD的前期准备,现在可以真正开始实践了,以我刚刚结束的一个简单的经典DDD方式的项目为例子,当然由于比较简单,所以很多时候会脱离它来介绍一些额外情况,以及这些情况在《DDD》书上提到的解决办法,另外,说明一下,例子的作用只是例子,只是用来说明可以怎么做的,但真实情况时未必应该这么做。这一篇主要是大比例结构的。   首先,简

系统分层演变_draculav-编程思维

  这是一个从组件和分层角度的系统架构迭代过程的例子,选择这个角度因为这个角度最直观,也最具表现力,这个例子并不完整,不过没有包含进来的部分并不影响这个例子就是了,原本是有说明各个组件之间的调用关系,通讯方式什么的,不过感觉那个图看着乱,而且我觉得只要能说明问题就可以了;另外一点就是公司今年初就开始重组,这个系统也一直再跟着调整,没有大动作的情况下,我偶尔可能会改下最后的图。   例子开始之前,

mysql分表分库选型_draculav-编程思维

三个方向: 一、应用中自己实现,可直连数据库,自己实现因目前使用的Mybatis框架可以使用两种做法: 1、在SQL中直接分表逻辑,我查了一下代码中的sql,发现join的千姿百态,不大动这些sql这事基本不现实,优点是定制化,针对性比较高,性能方面损耗比较低,调试调优简单,但是扩展性要差一些。 2、在Mybatis的拦截器里对SQL进行截取拼装,如果能对指定表做的并对相关表的join sql调

画与软件项目_draculav-编程思维

   这篇博客开始写很久了,都已经在我随笔列表的第三页了,然而因为各种原因一直拖着没有写完,所以下面可能出现的最近未必是真的最近。还有最喜欢的两幅画没放进来,有些遗憾,分别是现藏于中国美术馆的万山红遍层林尽染和常熟田。因为一个意外的契机开始,很长时间以来不断的去各种画展,有美术馆、画院,也会去私人的画廊。虽然看不懂,但是毕竟好看的不好看还是能看出来的、赏心悦目,懂不懂什么的......。艺术可以

基于开源方案构建统一的文件在线预览与office协同编辑平台的架构与实现历程_架构悟道-编程思维

大家好,又见面了。 在构建业务系统的时候,经常会涉及到对附件的支持,继而又会引申出对附件在线预览、在线编辑、多人协同编辑等种种能力的诉求。 对于人力不是特别充裕、或者项目投入预期规划不是特别大的公司或者项目而言,通常会选择基于一些开源方案来实现,但是开源组件选择之后,如何将其无缝对接融入到自己的业务系统中并完全支持自身诉求的实现,不仅要能用、而且要好用,其实也是一个需要好好思量的问题。 此前在

我是如何将一个老系统的kafka消费者服务的性能提升近百倍的_架构悟道-编程思维

☞☞☞ 我是如何将一个老系统的kafka消费者服务的性能提升近百倍的 ☜☜☜ ○○○○○○○☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝○○○○○○○○ 大家好,又见面了~ kafka作为一种高吞吐量的分布式发布订阅消息系统,在业务系统中被广泛的使用。 如果问你,如何提高kafka队列中的消息消费速度呢? 答案很简单,topic多分几个分片,然后使用消费者组(Consumer Group)去消费t

搭建一个通用监控告警平台,架构上需要有哪些设计_架构悟道-编程思维

大家好,又见面了。 说到监控告警平台,大家应该都不会陌生,对于线上系统而言可以说是个标配,各个公司或项目也都会有搭建自己的监控告警平台的实际诉求。 当前比较主流的监控告警平台实现方案,很多都是基于Prometheus + Grafana + AlertManager来实现的。但是实际使用的时候会发现不易实施: 在运维部署对接方面存在一些不便,接入新的被监控节点时需要到平台部署机器上去修改配置

Linux搭建Nexus3.X构建maven私服-编程思维

原文出处:http://www.yund.tech/zdetail.html?type=1&id=4845e7e60a03d871e6960a99a7abbc84     作者:jstarseven 备注:linux版本: ubuntu 同时已经部署好JDK8环境 一、linux安装nexus    1、创建文件夹并进入该目录 cd /usr/local && mkd

Maven私服配置Setting和Pom文件-编程思维

原文出处:http://www.yund.tech/zdetail.html?type=1&id=3688b5fa1f7d7df8b183ad8c9503546d     作者:jstarseven 上一遍博客已经在linux服务器上,搭建好nexus私服了 现在就需要配置setting.xml和pom.xml来使nexus作为maven的私服。setting.xml文件在conf下面

使用maven构建多模块项目,分块开发-编程思维

原文出处:http://www.yund.tech/zdetail.html?type=1&id=79dec7c1d56292419acec78afcbc1095     作者:jstarseven    在多人使用Maven协作开发项目时,尤其是稍微上点规模的项目,每个RD的工作都细分到具体功能和模块,有些模块甚至还要单独部署。 我们假设有这样一个商城项目,包括以下几个模块: 商城

参与《一言以蔽之 十年架构之路 架构大会》总结-编程思维

上周六参加了《一言以蔽之 十年架构之路 架构大会》,简单写一篇随笔,记录一些要点的 PPT。 会议日程如下:   第一场:如何应对架构的高复杂度 结构分解是永久的主旋律 微服务架构,将系统的复杂度从应用中移动到底层通用平台中。 康威定律:软件系统的结构应该匹配组织架构。 风险驱动模型 & 质量属性。 约束驱动。   第二场:微服务架构实战-京东开放式平台架

DUIR Framework 相关技术介绍-编程思维

开发者在搭建界面自动化测试框架时,又或者在开发界面自动化控制的机器人时,往往需要对界面进行自动化的程序控制。而现在公司内部使用的杜尔自动化框架,就是一个封装了界面自动化控制逻辑的程序框架。基于该框架,开发者可以轻松、快速的控制各类程序的界面,这些界面可以包含 Windows 界面、浏览器界面。 五年前曾经写过一篇关于自动化测试的框架的文章:《搭建 WPF 上的 UI 自动化测试框架》。杜尔自动化

中小研发团队架构实践之总体架构设计-编程思维

之前没有转载过架构设计的模板,下面这篇文章写得挺好,可以作为模板使用,所以转载一下: https://mp.weixin.qq.com/s/qISX6P-kc4XmbCFbPq6Abg 作者|张辉清 编辑|小智 社区里不是缺少架构图,而是缺少确实可参考的架构落地实践。大公司的架构看上去总是不明觉厉,但真要借鉴时却往往无从下手。也许,中小型研发团队的架构实践才是可供复制的?本文是张辉清专栏——《中

三高系统常用架构模式-编程思维

总结一下三高(高性能、高并发、高可用)系统在架构时常见的模式及技术。 面向互联网的三高系统,最关注的软件质量属性是:性能、可用性、伸缩性、扩展性、安全性。 而构建此类系统,最常见的架构模式有:横向分层、纵向分割、分布式化、集群化、使用缓存、使用异步模式、使用冗余、自动化(发布、部署、监控)。 具体来说,可以在不同层次常用的技术有: 前端架构 浏览器优化技术:合理布局,页面缓存,减少http请求

几类系统需要关注的质量属性-编程思维

前一篇文章,总结了三高系统所关注的一些重要质量属性。就想到,其实不同类型的系统对质量属性也往往要求大不一样。 下图是软件系统架构设计时,需要关注的一些软件质量属性。 开发期质量属性,是开发人员或后期的维护人员比较关心的,这些质量的好坏,往往会影响到开发和维护成本。而运行期质量属性,则是最终用户比较关心的,因为其在使用时是能切身体会到这些效果的,故而会影响用户对整个系统的满意度。 所以,对于基于

产品前端重构(TypeScript、MVC框架设计)-编程思维

最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容。 公司期望把某一管理类信息系统从项目代码中抽取、重构为一个可复用的产品。该系统的前端是基于 ExtJs 5 进行构造的,后端是基于 Asp.net MVC 提供的 REST 数据接口。同时,希望通过这次重构,不但能将其本身重构至可用于快速二次开发的产品,同时还要求该前端代码要保证相对的独立,使得同时可以接入 .NET

微服务架构优缺点-编程思维

之前转载过一篇对 Martin Fowler 大师写的微服务架构的说明文章:《微服务(Microservices)》。今天再转载一篇对于这个架构的优缺点进行总结的文章。 转载自:《微服务,让开发过程更简单还是更复杂?》、《有关微服务架构的争论:更简单还是更复杂?》。     随着DevOps、持续交付等理念的深入人心,微服务架构开始走进我们的视野。 那么微服务是业界期待已久的

作为首席架构师,我是如何选择并落地架构方案的?-编程思维

本文系转载。转载自:http://mt.sohu.com/20160516/n449639733.shtml   如何针对当前需求,选择合适的应用架构,如何面向未来,保证架构平滑过渡,这个是软件开发者,特别是架构师,都需要深入思考的问题。 本文首发于InfoQ垂直号「聊聊架构」,ID:archtime 无架构,不系统,架构是大型系统的关键。从形上看,架