Colingo碎碎念

Programming language, 架构, 分布式, 微服务, iOS, Android

0%

领域驱动设计里有好多概念不好理解,本篇主要记录一些自己看到的,自觉有助于自己理解的碎片知识。

聚合根(Aggreagte)

一种更大范围的封装,把一组有相同生命周期、在业务上不可分隔的实体和值对象放在一起考虑,只有根实体可以对外暴露引用,也是一种内聚性的表现。

阅读全文 »

nginx, redis,虽然都是单线程,支持高并发的设置典范。但是同时,如何理解,单线程为什么能够支撑很高的并发及吞吐量。原因有很多,比如redis主要是使用内存,没有IO的限制。今天主要是记录一下,另一个重要的原因,就是IO的多路复用。

什么是多路复用

“I/O多路复用”这个坑爹翻译可能是这个概念在中文里面如此难理解的原因。所谓的I/O多路复用在英文中其实叫 I/O multiplexing. 如果你搜索multiplexing啥意思,基本上都会出这个图:

阅读全文 »

系统都微服务了,事务怎么办?今天来说说。

在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商量数量必须减一,怎么保证?用户参加活动下单记录保存后,也需要在活动系统中增加一个记录,如何保证?在搜索广告系统中,当用户点平台广告后,除了在点击事件表中增加一条记录外,还得去商家账户表中找到这个商家,并扣除平广告费,如何保证都操作成功?等等,很多系统中都会有类似的情景。

这些问题本质上都可以抽象为:当一个表数据更新后,怎么保证另一个表的数据也必须更新成功。

让我们从简单的说起:本地事务

阅读全文 »

SQL相对简单,会写的人也很多。但SQL是如何执行的,执行顺序是不是和你想像中的一样呢?可能一样,也可能不一样。

此文之前在网上看到过,整理放在这里。

阅读全文 »

paxos怎么读?p-a-x-o-s 或 [peksəs],后面的更好一点吧。就像设计模式一样,知道一个模式的名称才能更好和与别人沟通,交流。算法也一样,向别个介绍或和别人一起讨论的时候,用[peksəs]更好。

paxso中涉及的一些名词,每个人翻译都不一样,有的用英文表达更直观,有的用中文翻译更好理解。比如,process有人翻译为进程,有人翻译为服务器,有的人就直接说process。再比如”决议“,《Paxos Made Simple》里面就是用”value”表式,是不是想不到,这么正式的名词”议“居然就是”value”.

阅读全文 »

Android版本一直在更新,当前在市面上还没有Android Q(10)机子的时候,在一些应用市场上都要求要适配最新的版本了。怎么测试呢,有些云测试平台就有相应的机型可以测试。

今天要说的是,明明9以下可以运行的APP,为什么在更新之后,上传到市场会报崩溃呢?当然是有原因的,这个篇日志以后会一直更新下去,遇到问题,我会追加在这里。

阅读全文 »

Flutter是什么

可能有半年到一年之间,一次听朋友问我知道Flutter吗?因为之前瞥过一眼,好像是google公众号推送的flutter文章,那时没有细看以为是一个UI的框架。觉得反正是UI库,需要的时候可以去了解一下,下载个Demo看看。当时也没有去看,就不了了知了。

最近周末在家又看到Flutter的文章,就找了相关的资源看了一下,原来并不是我理解的UI库的框架,而是一种类似Reactive app,phonegap这种跨平台app解决方案。写一次app代码,可以在两个平台上运行:iOS,android。

阅读全文 »

从 《How tomcat works》入手,学习一下tomcat8的设计(how tomcat works是基于tomcat4的,有点太老。尽管如些,核心的内容基本上变化不大)。

我学习tomcat的代码的目的很简单,就想更深入去理解Tomcat的运行原理,Tomcat的ClassLoader有什么不同,为什么Servlet能在Tomcat里运行。

阅读全文 »