thumbnail
使用FSM进行复杂订单状态管理(2)
接着上一篇文章,我们这次来设计一个简单可扩展的有限状态机。 根据有限状态机的定义,我们的状态机将有三部分组成: 状态类 - 负责承载状态信息事件类 - 负责记录事件发生的信息并执行转移函数管理器类 - 负责记录状态转移表并管理当前的状态 下面让我们开始建模。 状态类 我们需要的状态类应该有以下功能: 每次进入状态的时候执行一些动作,退出时执行一些动…
thumbnail
使用FSM进行复杂订单状态管理(1)
问题引入 在商城类项目过程的开发过程中我们常常会遇到订单状态的管理问题,当所涉及到的订单状态不多时,我们通常可以对每一种状态设置标志字符串,通过简单的判断来进行状态管理。 例如,假设我们的系统中仅涉及两个状态:订单被创建、订单完成,此时我们可以写下如下的代码: from collections import namedtuple # 使用 name…
thumbnail
从零开始写一个Durak游戏AI机器人
俄罗斯民间流行一种叫做Durak(傻子)的纸牌游戏,它比较简单,趣味性也比较强。上学期期末,我们的计算机期末大作业就是写一个游戏机器人。因为课程压力的原因,大部分同学写了比较简单的出牌策略(即每次都出最小的牌) 但是我并不想这样,在经过一段时间的思考之后,我确定了如下的思路: 首先当前局势进行分析,量化每张牌在当前局势下的权重(设置中有很多的因子可…
thumbnail
STM32 汇编分析实例 – 指令基础与函数调用
今天我们对一则简单的 STM32 程序进行分析,通过寄存器的状态以及反汇编指令对 STM32 的指令流水线进行一个简单的了解。 因为格式化的代码有点散乱,背景是黑色的,推荐在右侧工具栏选择夜晚模式,这样阅读起来的效果更好一些。站点已经修改了代码格式化的样式,现在无需夜间模式,并且看起来清爽多了。 我们今天只对从 main 函数开始的部分进行分析,S…
thumbnail
结束
这篇文章是一份吐槽贴,负能量较多,心情差的朋友可以绕行。 彼得堡的天气一直都是阴雨,就像甩不掉的项目、拉不出的屎,总给人一种很恶心的感觉 。 快乐是自己的没人可以借 昨天我和曹博,哦也就是我的老板,正式提了“离职”。其实说离职也不是很正确,因为你无法想象整个项目除了股东和他自己之外只有两个人:我,还有另外一个做翻译的小姑娘。 这两个月大概是我从小到…
thumbnail
Socket Server架构设计与 Python阻塞字典实现
需求 在项目中遇到了如下需求: 从远端服务器获取字节流数据,按照相关协议拆分字节流并进行校验之后每一个不同的字节流对应了不同的命令字,需要根据命令字将字节流数据交予不同的handler处理处理之后的结果通过对应的TCP链接进行send操作 思路 handler需要进行大量的字节拆分/计算,我将这部分拆分出来使用了C++进行处理项目中需要同时管理50…
thumbnail
一些关于协议的思考
通信协议(英语:Communications Protocol,也称传输协议)在电信中是指在任何物理介质中允许两个或多个在传输系统中的终端之间传播信息的系统标准,也是指计算机通信或网络设备的共同语言。 通信协议定义了通信中的语法学, 语义学和同步规则以及可能存在的错误检测与纠正。通信协议在硬件,软件或两者之间皆可实现 。—— 中文维基百科 每日接触…