自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 Golang领域模型-实体

前言: 实体具有业务属性、业务逻辑和业务行为,是是实实在在的业务对象。在事件风暴中,我们可以根据命令、操作与事件将业务上紧密结合在一起的多个实体与值对象进行聚合形成聚合根。实体是什么虽然数据库的设计占据了主导地位(这个是没错的),但开发者也不应该只关注数据,而且要关注模型。数据+行为= 模型,实体就是含有领域概念的模型。它是一个唯一的东西,在相当长的时间里数据状态在持续地变化,并且一定有唯一键,这区别于值对象。注意的是如果非要用表结构里的一条含有主键的数据去理解实体也是可以的,但不少情况下可能是有多个表

2020-08-23 15:23:30 667

原创 Golang领域模型-六边形架构

前言: 六边形架构又称“端口适配器架构”,实际上也是一种分层架构,只不过由上下或者左右变成了内部与外部。其核心理念就是应用通过端口与外部进行交互的。核心的业务逻辑(领域模型)与外部资源(数据库等资源)完全隔离,仅通过适配器进行交互,解决了业务逻辑与用户数据交错的问题,很好的实现了前后端分离。困惑:在分层架构中是否困惑过某些逻辑处理或某些数据处理该放在哪一层?在分层架构中是否困惑过该分多少层?在分层架构中是否困惑过平层和跨层调用是否合理?六边形架构Alistair Cockburn 提出了一种

2020-08-22 10:33:47 1186

原创 Golang领域模型-开篇

前言: 八叉树是一位拥有数十年编程经验,醉心于代码艺术的工程师。freedom是他结合《实现领域驱动设计》与《六边形架构》两文为一众Gopher打造出最符合DDD战术设计的轮子!DDD是什么?领域驱动设计(DDD) 做为一种软件工程的方法论,它可以帮助我们设计高质量的软件,或者说任何工程的设计都需要方法论,不论是城市设计、建筑设计、室内设计。比如没有方法论的情况下楼是可以盖起来的,或许整个楼道和窗户上挂满了电话线、闭路线、电线?下水道隔三差五就堵了?某一户跳闸了导致整个楼都停电了?那么盖楼前是否有好的

2020-08-10 21:16:43 445

原创 go pprof:一次成功的定位与失败的复现

**背景:**一次大几万人的线上抢购活动,突然出现了问题,页面半天打不开,打开了半天下不了单,cpu涨了又跌跌了又涨,而内存使用又稳如老狗!不要慌,按照套路去分析问题,一切都不是问题!阅读此文你将收获:分析问题的一个思路!学会使用pprof定位问题。解决问题的一个思路!大纲:我是如何定位问题的如何通过pprof精准定位通过pprof来定位代码我是如何trouble shoo...

2020-07-07 17:07:33 3220

原创 MongoDB从入坑到入迷

**背景:**我司是一家正处于高速发展,目前拥有数百万用户,年销售额近五十亿的社交电商公司。公司技术部建立之初,为了适应用户量的高速增长,与业务的不断变更迭代,在选用数据库的时候,经过调研对比我们选择了MongoDB!是的,你没看错,All in MongoDB!全文大纲:为什么使用MongoDB(选择数据的时候我们是怎么考虑的?)MongoDB架构(99.99%高可用,晚上安心睡大觉!)MongoDB 分片(海量数据应对之道!)MongoDB文档模型介绍(灵活!灵活!灵活!)1. 为什么

2020-05-16 10:52:36 345

原创 跟我一起源码阅读之gRPC开篇

**前言:**很多程序员都知道,通过学习优秀的开源框架可以很大程度上解锁更多编码姿势和花样。但是没有目的,没有方法的去阅读开源项目,很容易就被庞大繁杂的代码给迷晕了!那么该如何以正确的姿势去阅读开源项目呢?请各位看官品鉴此文,跟我一起庖丁解牛,来阅读gRPC框架吧!阅读此文你将收获:了解什么是RPC了解该如何以正确的姿势阅读源码以gRPC为例来试验该如何阅读源码大纲什么是RPC...

2020-03-24 09:06:21 234

原创 从网络IO看高性能框架

前言: 我是一名golang后端开发工程师,不是Java,也不是拍黄片,对,就是那个号称原生支持高并发的“够浪!”。那为什么go能支持高并发?原生支持高并发又是何解?跟着我,一起探讨一下所谓的高并发是怎么回事…阅读本文你将收获:知道框架高性能的根本原因了解进程,线程切换开销在哪里熟悉阻塞与非阻塞IO,同步与异步调用的区别大纲:讨论一个高性能框架甚至语言的时候,我们在讨论什么?三...

2020-02-01 18:01:04 584

原创 听说你想了解微服务架构

前言: 热辣滚烫的微服务一直在拨撩着程序员的心,然而很多人对微服务架构不甚明了,单纯的为了用而用。只是把现有的单体拆点东西出来,例如商品服务,然后彼此间用上RPC就算微服务了。恕我直言,其实这还相差甚远!阅读本文你将收获:了解什么是微服务架构。了解微服务架构有哪些内容。了解微服务架构中遇到的问题。这些问题的解决方案大纲:什么是微服务?微服务架构是什么?微服务架构的各个组成怎...

2020-02-01 17:47:22 1572

原创 从单体开始的架构演进

背景:因为公司业务发展,销售玩法已经不满足于单纯的下单平台,玩起了“惊心动魄”的秒杀活动,然而服务端并不能承载这么高的瞬时流量。表现在于数据库意料之中的挂了,被打的起不来,于是部门同事说:“数据库压力太大,可能配置没有整好,我们需要换阿里云的!”可能是我太年轻,见猎心喜,这不正好是《大型网站技术架构:核心原理与案例分析》中架构的演进吗?为了避免大家在错误的道路上越走越远,于是我提出给大家做一次技...

2019-11-03 21:05:51 437

原创 再探Redis对象与底层数据结构的关系

大纲:简述Redis五种对象所使用的的底层数据结构字符串对象列表对象哈希对象集合对象有序集合对象阅读本文你将收获什么:了解Redis五种对象的实现以及优点。了解对象系统设计上的优点。简述:上文我们已经了解过了Redis底层的六种数据结构,然而这六种数据结构咱们并不能直接使用,而是基于这些数据结构创建了Redis的对象系统,每种对象都用到了至少一种前文所述的数据结构。这...

2019-09-28 17:58:31 193

原创 跟我速览Redis底层六大数据结构!

Redis为什么这么快?作为高速KV数据库,Redis的速度已经经过各大小公司的实战考验了,至于为什么这么快,各个理由从google上一搜大同小异,今天我们来聊一聊其底层实现的七大数据结构。Redis的高效与其基本的数据结构也是密不可分的,为了满足效率和安全这些需求,Redis根据自身需要量身定制了数据结构。一.简单动态字符串(simple dynamic string,SDS)SDS:每...

2019-09-20 23:46:54 313

原创 使用UIViewController自定义UITabBarController

注意:使用UIViewController来自定义UITabBarController,在视图控制器切换的时候,会出现TabBar与界面脱节,也就是切换不协调的情况,会影响用户体验。自定义UITabBarController的关键点在于自定义一个“容器”,用来存放各个控制器。1.首先创建各个子视图控制器,我用的故事板创建的,新浪微博项目。// 创建子控制器- (void)create

2015-04-05 13:51:24 490

原创 iOS瀑布流的实现

瀑布流的基本实现,与单元格的复用

2015-03-30 21:51:00 442

iOS的图形与动画处理

iOS开发的图形处理,与一些简单实用的动画

2015-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除