1 JML语言的理论基础及应用工具链 1.1 JML语言 Java建模语言(JML)是一种行为接口规范语言,可用于指定Java模块的行为。它结合了Eiffel的“契约设计(design by contract)”方法和Larch系列接口规范语言的基于模型的规范方法,以及细化演算的一些元素。对JML语 ...
分类:
其他好文 时间:
2020-05-22 21:38:10
阅读次数:
77
一、JML理论基础 1.概览 在概述JML之前我想我们应该首先了解契约式设计(Design by Contract, DbC)。DbC要求在软件程序设计时明确每一个模块单元在调用前后的状态变化,抽象出来就是要求明确前置条件、后置条件和不变式。和诸多设计模式一样,DbC可以说是一种方法学,一种软件开发 ...
分类:
其他好文 时间:
2020-05-21 19:02:25
阅读次数:
58
设计契约测试 1、如何设计契约测试 1、常见的契约测试工具 Pact python版本pact-python Pacto Sprint Cloud Contract Pact是最常用的契约测试工具 2、Pact基本工作流程 基于消费者的业务逻辑,生成契约文件 写代码主要写获取Pact文件(图一)的代 ...
分类:
其他好文 时间:
2020-05-19 10:31:59
阅读次数:
230
扩展序列化器的有用性是我们想要解决的问题。然而,这不是一个微不足道的问题,它将需要一些严肃的设计工作。—— Russell Keith-Magee, Django 用户组 序列化器允许将复杂数据 (如查询集和模型实例) 转换为可以轻松渲染成 JSON,XML 或其他内容类型的原生 Python 数据 ...
分类:
其他好文 时间:
2020-05-16 10:36:27
阅读次数:
62
由于合约内容都是在区块链上面公开的,所以理论上任何旷工都有可能对随机数结果进行推测,这是一个棘手的问题。 你可以参考以下方案: https://ethereum.stackexchange.com/questions/191/how-can-i-securely-generate-a-random- ...
分类:
其他好文 时间:
2020-05-12 20:11:29
阅读次数:
69
laravel已经有很多项目在使用,但是路由配置却是一个不可缺少的工作,很多时候路由配置工作不仅增加重复工作量而且还会增加代码开销,当项目到一定的级别时路由配置数量将是惊人的。很多时候不得不认为laravel路由配置虽然灵活但很臃肿,反而使用其它可以自动匹配的路由的框架更方便。当项目中路由是按命名空间\类名+方法名时就可以使用通用的配置方式来简化路由配置。如果laravel使用自动匹配路由是否会折
分类:
其他好文 时间:
2020-05-11 15:13:20
阅读次数:
141
MyBatis三剑客 MyBatis三剑客在MyBatis组件里非常实用,分别是 、`MyBatis plugins MyBatis分页插件 PageHelper MyBatis generator`的使用频率最高。下面分别对三剑客一一介绍。 MyBatis Generator的基本使用 项目依赖 ...
分类:
其他好文 时间:
2020-05-04 13:46:18
阅读次数:
71
一、说在前面 今天打算先放下在权限前面弹框,先学会如何动态的申请权限。 二、大体思路 有之前小账本的经验,今天先写一个申请权限的例子,再写的过程当中寻找灵感。 三、代码 四、效果 ...
分类:
其他好文 时间:
2020-04-22 18:18:20
阅读次数:
65
1.创建项目 mkdir pet-shop cd pet-shop truffle unbox pet-shop 2.编写智能合约 在contracts目录下,添加合约文件Adoption.sol pragma solidity >=0.4.25 <0.7.0; contract Adoption ...
分类:
移动开发 时间:
2020-04-21 15:32:55
阅读次数:
94
题目一览 源码: 过关要求: Claim ownership of the contract below to complete this level. 成为合约的所有者。 分析&求解 这题其实……先来学习一下Solidity的构造函数和析构函数吧。 其实和java有点类似,构造函数是类初始化时候执 ...
分类:
其他好文 时间:
2020-04-03 22:18:28
阅读次数:
77