混合华为云专项总结

一、背景今天给大家总结一下我负责的华为云专项中的内容,很多人不知道为什么会有华为云专线,我简单介绍一下背景,根据集团的国企赛道战略导向,未来的主要客群会是国企客户,国企客户对云的选择会偏向华为云或国资云,那么集团与华为云达成了战略合作,而咱们云链为了切入到国企赛道就必须兼容华为云,也就是说,我们需要把咱们的SAAS服务同时运行在阿里云和华为云上。 刚接触华为云专项时,第一感觉就是无非就是把代......

动态字段存储方案对比

一、前言最近在考虑PAAS移动平台的”动态字段存储”问题,简单来说就是前段某页面中的表单动态增加一个编辑框,以某一个新字段的形式提交到后端,后端接口能够在不增加新的表字段且基本不需要修改代码的方式存储起来。 我们都知道,关系型数据库MySQL的数据表在修改表字段时,代价比较大,甚至出现锁表导致服务奔溃。有什么好的办法呢?下面我仍然基于MySQL,对比了两种可行的方法,希望对你有帮助。 二、动......

Go中的"err != nil"好烦?教你怎么优雅地处理error

前言相信对于习惯了使用try catch方式捕获exception方式的php、java等程序员来说,go的error处理可以说是非常困扰: 每调一个方法就要判断一次err != nil。 如果底层函数出错,只在上层打印错误信息,会丢失调用栈,不知道最开始的错误发生在哪里。 如果通过字符串追加的方式,加入调用栈信息,那么错误类型会丢失,无法像 if err == io.EOF 这样判断是什......

【微服务】基于DDD的商城系统实战(五) -- 实现商品上下文

作者:刘浩前言大家好,我是刘浩。上一篇我们基于DDD的分层架构,直接引入了与DDD的分层架构对应的代码模型,并且对各级代码目录的职责做了明确定义。到此为止,本系列文章已经从领域划分,领域建模,分层架构到代码模型,一路走来,我们已经到达可落地实现阶段,那么接下来看看商品上下文怎么实现。 回顾我们要实现的商品发布场景如下图: 我们通过事件风暴构建商品子域的领域模型如下图: 我们在商品这个子域......

【微服务】基于DDD的商城系统实战(四)-- 微服务代码模型

前言上篇看了软件架构的演进,从两层架构到DDD的分层架构,并且使用结合代码理解了不同分层架构的思想。接下来我们看看DDD 的分层架构是如何知道我们落地微服务代码模型。 基于DDD分层架构的微服务代码模型回顾一下DDD 的分层架构,包括:用户接口层、应用层、领域层和基础层 DDD 分层架构对应的微服务代码模型,其实DDD没有给出明确的定义,也就是说每个实践者都可能会有不一样。那么我们还是吸收......

【微服务】基于DDD的商城系统实战(三)-- 分层架构

前言上一篇我们聚焦商品子域,讲解了如何使用事件风暴做领域建模。接下来,我们聊一聊DDD的分层架构。 对于构架一个复杂的应用,设计一个适合应用需求的,同时具备”高内聚,低耦合”理念的分层架构,能够是的各层的边界清晰而职责分明。而DDD 的分层架构又是怎么样的呢? 从两层架构到DDD分层架构软件架构发展大体可以分为三个阶段:单体两层架构 -> 集中式三层架构 -> 分布式微服务架构 ......

【微服务】基于DDD的商城系统实战(二)-- 如何使用事件风暴进行领域建模

前言上一篇我们分享了DDD 整体设计过程的四个关键阶段,对我们要实现的商城系统做了领域分解。如果领域分解出的子域已经足够简单而清晰,问题域难度已经在解决问题的能力之下,这时我们可以聚焦一个子域,考虑如何根据上下文语义边界来划分限界上下文,建立通用语言,完成领域建模。 为什么要领域建模领域驱动设计的定位是应对软件开发的复杂度,在开发软件系统,我们需要理解业务领域知识,希望能够整理庞杂的知识,理......

【微服务】基于DDD的商城系统实战(一)-- 领域分解

前言DDD早在2003年就诞生了,网上已经有非常多的资料,所以在这里不做过多的介绍。 学习DDD之后,对我整个程序开发视野有了新的理解,然后我迫不及待地想要亲身实践一下,基于DDD从0到1设计开发一套系统,以此来总结知识和检验学习成果,我希望能够把这一个过程记录下来,为公司业务侧对DDD文化的推广上尽一份力 ,我非常希望有更多的同学加入到DDD的队列中。 我们都知道DDD里面充斥着大量晦涩难......

GIT协作流程规范

分支模型集中式的分支模型 目前团队使用的模式属于老旧的集中式分支模型,简单的总结就是: 开发时: 团队的所有成员都在dev分支上开发(也支持少部分的特性分支feature-xxx)。测试时: 当功能需要上测试环境测试时,把dev合并到test分支,使用test分支在测试环境中测试。灰度时: 在发布到生产环境之前,需要经过灰度发布,此时需要把测试通过后的dev分支合并到master,灰度环境使......
git

Go语言中常见的十坑

以下10个问题都是非常常见的,很容易犯错。其中涉及到一些golang的知识点,在此也记录一下 1. defer的理解下面内容输出什么package mainimport ( "fmt")func main() &123; defer_call()&125;func defer_call() &123; defer func() &123; fmt.Pri......
go