Squirrel状态机-从原理探究到最佳实践
Squirrel状态机是一种用来进行对象行为建模的工具,主要描述对象在它的生命周期内所经历的状态,以及如何响应来自外界的各种事件。比如订单的创建、已支付、发货、收获、取消等等状态、状态之间的控制、触发事件的监听,可以用该框架进行清晰的管理实现。使用状态机来管理对象生命流的好处更多体现在代码的可维护性、可测试性上,明确的状态条件、原子的响应动作、事件驱动迁移目标状态,对于流程复杂易变的业务场景能大大减轻维护和测试的难度。
威尔we 威尔we
4年前
Netty 高性能网络协议服务器开发
本文通过一个实例来讲解如何使用框架来开发网络协议服务器,项目使用工具来构建和运行,并且支持部署。项目代码已在GitHub开源,。Netty简介Netty是一个异步、事件驱动的网络应用框架,使用它可以快速开发出可维护良好的、高性能的网络协议服务器。它大幅简化和流程化了网络编程,比如TCP和UDP套接字服务器开发。难能
Wesley13 Wesley13
3年前
MySQL 8.0 hash join有重大缺陷?
我并不这么看。友情提醒:本文建议在PC端阅读。徐春阳老师发文爆MySQL8.0hashjoin有重大缺陷。文章核心观点如下:多表(比如3个个表)join时,只会简单的把表数据量小的放在前面作为驱动表,大表放在最后面,从而导致可能产生极大结果集的笛卡尔积,甚至耗尽CPU和磁盘空间。就此现象,我也做了个测试。1\.
Stella981 Stella981
3年前
Mybatis日志信息
问题:开发组说MyBatis的日志信息只能通过顶级日志记录器在debug下打印SQL,所以测试时一大堆的信息,弄得个单元测试,启动要老半天。    为了解决这样的问题,我看了下开发组的日志信息配置,代码如下:log4j.logger.com.ibatisDEBUGlog4j.logger.com.ibatis.common.jdbc.Simp
Wesley13 Wesley13
3年前
TMS32F28027的GPIO34驱动光耦问题
问题:硬件研发同事在调试一块TMS32F28027产品电路板时发现GPIO34出现上电控制正常,运行中只要Reset芯片,系统进入锁死状态,GPIO34引脚外部直接通过一个510欧电阻驱动光耦TLP181。据同事描述只有这个引脚驱动光耦的时候会出现这个问题,换用其它引脚驱动光耦,或则光耦去掉换成驱动LED都不会发生这个问题。相关原理图如下:!(h
Wesley13 Wesley13
3年前
drm 驱动是如何创建 fb device 的
drm驱动是如何创建fbdevice的drm驱动是如何创建fbdevice的(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fblog.csdn.net%2Fjingxia2008%2Farticle%2Fdeta
Stella981 Stella981
3年前
React项目中应对开发、测试、生产环境下使用不同全局常量的问题
在开发过程中,避免不了后端在开发、测试、生产环境不一致的情况,这不最近就遇到这样的问题:在开发和测试环境,后端需要一个参数比如:zonehk1,在生产环境中需要的参数又是zonehka,那么解决这种问题的方法也不是唯一的,这里只介绍一种通过配置文件完成的过程。我们在构建react项目时,会执行npmruneject,导出react脚手架
Wesley13 Wesley13
3年前
Visual Studio Code 1.35更新:远程开发终于来啦
前段时间大家可能看过一个新闻:微软为VSC开发一款名为RemoteDevelopment的扩展程序,可以让我们使用本地VSC开发和调试远程机器上的代码。这个功能对于我这个不会使用vim等linux工具的人来说,简直是一个重大消息。可惜的是,当时远程开发插件还处于测试当中,只能在VSCInsider也就是测试版中使用。如今VSC更新到了1.35,增加了许多
DDD架构为什么应该首选六边形架构? | 京东云技术团队
采用依赖倒置原则后的分层架构和六边形架构,实际上都符合整洁架构设计理念。但是六边形架构中使用端口与适配器,让应用程序能够以一致的方式被用户、程序、自动化测试、批处理脚本所驱动,同时能够让应用程序边界更加清晰,从而能更好地防止领域层和应用层逻辑泄露到外层。
集成测试测试策略
本文分享自天翼云开发者社区《》,作者:高皓集成测试前的测试策略:1.产品的学习和培训:【目的】本部分主要目的为熟悉及了解产品,并了解部分产品细节。避免需求文档内未能反映的细节在后续过程漏测。(发现遗漏可以要求产品经理将对应内容加入需求内)【工作内容及方法】