Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
DDD与数据事务脚本
扯淡
相信点进来看这篇文章的同学,大部分是因为标题里面的“DDD”所吸引!DDD并不是一个新技术,如果你百度一下它的历史就会知道,实际上它诞生于2004年, 到现在已经18年,完全是个“古董”,软件开发技术日新月异,DDD确显得很独特,一直不温不火,也未淘汰。有些人为了使用DDD“苦思冥想”、有些人对它保持敬畏,觉得是一种高端的技术,当然也有人觉得这玩意垃圾根本没用。废话不多说. 下面我尝试使用一个最基本的业务场景来讨论下ddd和事务脚本。
假如我们的现在需要做这么一个系统,名字叫做“消息发送系统”。 系统里面存在很多用户,而我们需要做的,就是给指定的用户发送消息
- 用户能在收件箱中看到收到的消息,消息有已读,未读状态,消息内容不能为空。
- 通过发送用户id、消息内容,就可以发送到用户。注意这里并没有发件人的概念。
数据事务脚本
需求很简单,现在我们开始设计这个功能。相信你只需要学习过一些基本的编程技术,你第一直觉一定会整理出下面这个数据结构
message{
id , //消息id
userId ,//接受用户id
content ,//消息内容
state ,//消息状态已读,未读
...
}
当设计出这个数据结构的时候,我们心里面其实认为这个系统的“核心”就完成了, 这TM是真简单啊! 为什么会是这样?我们都知道,计算机最核心的组件是cpu,而cpu就是用来计算处理用户输入的数据,并将结果反馈给用户。而软件运行在计算机上,所能提供的功能实际上也是这样处理数据。当然了,计算机还有磁盘,磁盘可以存储用户输入cpu的数据,也能存储cpu处理完后的数据!按这个逻辑,一个软件(系统)实际上就是在将特定业务场景下的数据输入计算机,计算机处理完后存储这些数据。软件只需要准确的记录下计算过程中产生的所有数据,并正确的存储算据即可实现对应的功能。
软件的不同功能,只是以合适的方式创建、修改、展示数据。上面的message结构,准确的找出了我们“消息发送系统”里面产生的数据。 发送消息,只不过就是新增了这样一个消息数据, 而用户看消息,只是找到所有message中userid为自己的id的消息,显示出来就可以了。这个“消息发送系统”非常简单,其实大的系统也是一样,大系统由很多这样小的系统组成,本质确是一样的。
我们已经找出这个系统会产生的数据结构,当然还需要保存起来,假设将它存入数据库里面(如果你愿意,你也可以存到文件里,或者干脆只放到内存里),那么我们在数据库里面就新建一张message的表,字段就是id,userId,content,state。假设现在有个页面,您可以在这个页面中输入id,userid,content,state,点击提交按钮,软件取到这些值,就写入数据库。伪代码大概是这样:
var id = input('id');
var userId = input('userId');
var content = input('content');
if(userId == ""){
err "userid不能为空"
}
if(content == ''){
err "内容不能为空";
}
//发送消息
state = input('state');
database.exeSql("insert into message values(id,userid,content,state)");
//查看消息
messages = database.exeSql("select * fro