- 博客(4)
- 收藏
- 关注
原创 数据库事务
应用代码处理事务时,要注意哪些点 避免并发。 优先使用现成的处理并发的工具。比如数据库唯一约束 ,提供的现成 CAS 操作,Django 等 ORM 工具中提供的 F(‘x’) + 1 等现成操作等等。 加锁。 加乐观锁。乐观锁太复杂容易把开发着绕晕。尽量少用。 在多个系统通信,不要自己去尝试实现事务。应用程序能做的就是实现幂等,多次重试。 有时候有少量异常数据是不用关心的。 在过去的开发经验中,数据库提供的谓词锁让我大吃一惊。我一直以为数据库的锁只能锁住已经存在于数据库的记录。没想到谓词锁还可以处理没
2020-06-07 16:37:56
107
1
原创 python 设计模式
python挺灵活的,很多设计方式用 python 实现起来非常自然。 设计模式 我们从实际中发现设计模式,而不是发明设计模式。 设计模式就是从实际中提炼出来的常用实践,为了尽可能复用代码,用最少的代码实现功能。 创建型 工厂方法(Factory Method) 客户端代码可以以统一的调用方式,得到不同工厂创建出来的实例。 抽象工厂(Abstract Factory) 客户端代码可以以统一...
2020-04-05 22:50:24
135
原创 数据一致性
参加工作以来,数据一致性的问题把我搞蒙了,长时间内我变得疑神疑鬼,怀疑人生;感觉写的每一行代码都可能出错。这里总结下处理数据一致性的经验。 两个系统通过网络通信。网络是可变延时的网络。所以没有任何一种方法能确保通过网络通信的两个系统数据完全一致。 每当给产品讲上面这句话的时候,产品会反驳一句那别人的系统的是怎么保证数据一致的呢,我就希望你实现的跟别人(支付宝,京东等)一样就行了。保证数据一致性是开...
2020-03-23 22:09:56
136
原创 Docker常用操作
Dockerfile 作用:描述了构建镜像的步骤。 常用命令: FROM:从哪个基础镜像开始构建,比如 FROM python 。 WORKDIR: 指明工作目录,比如 WORKDIR /home/root 。 RUN:执行哪些命令,比如 RUN apt-get update 。 ADD, COPY ADD COPY ADD 和 COPY 都是复制文件到镜像,不同点在于 ADD 压缩文...
2020-03-01 17:47:17
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人