为了能够提高程序的复用性,我们准备用Actor Framework框架,来演示其满足了这个需求(本章及后面的内容,需要有OOP的基础知识). 首先,简述一下ActorFramework的运行过程: 在QDSM里面,每个队列通过不同指令,执行相应的处理过程.消息存储在消息队列数据中,通过队列消息句柄进行传递. 在ActorFramework中,在有需求的时候,运行相应方法的异步进程.Actors 接收到消息,基于消息的内容发送任务. 看下官方资料中解释的数据和执行的关系: (1)数据存储在对象中.…
目录 简介 导入工程 使用流程概况 一个简单的小Demo 深入学习 @Entity使用 自定义表名 tableName  自定义字段名@ColumnInfo 主键 @PrimaryKey 索引 @Index 外键 @ForeignKey 嵌入对象 @Embedded ​ 深入学习@Dao 创建Dao Class 插入 @Insert 简介  Android 2017 IO大会推出了官方数据库框架:Room.Room其实就只是对原生的SQLite API进行了一层封装.不得不说google其实早应…
Introduction(介绍) Abp.EntityFrameworkCore nuget package is used to integrate to Entity Framework (EF) Core ORM framework. After installing this package, we should also add a DependsOn attribute for AbpEntityFrameworkCoreModule. abp.entityframeworkcore…
核心部分 外观模式: RequestFacade应用门面模式(facade)来封装HttpServletRequest. 观察者模式: 事件监听机制,控制组件生命周期的 Lifecycle .Servlet 实例的创建.Session 的管理.Container 管理等应用了观察者模式.相关的类有LifecycleListener, ContainerListener, SessionListener... 责任链模式:tomcat的容器设置就是责任链模式,从Engine到Host再到Conte…
所有的外部输入参数都应该检查合法性. 未正确处理输入数据将可能导致sql注入等漏洞. 框架提供系列函数来取$_REQUEST中的值 requestInt requestString requestFloat requestBool ps:注意$_REQUEST中变量类型可能会是数组 如请求为 ?i[]=1,那么$_REQUEST['i'] 的值为array(1) 做校验的时候要考虑全面以防止php warning信息泄露 另外再介绍一下kv json格式的数据校验. 有时为了在项目中保留一定扩展…
Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可用它快捷的创建并执行一个自动化作业.Quartz.NET有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等. 针对Quartz.NET的使用,从基础入门,Cron表达式,不同job间进行参数传递进行了介绍,并对插件任务进行了描述,最后将AdoJobStore如何保持到数据库中进行…
老周的ABP框架系列教程 -- 一.框架理论初步学习   1. ABP框架的来源与作用简介 1.1  简介 1.1.1       ABP框架全称为"ASP.NET Boilerplate Project",中文翻译为" ASP.NET样板项目",诞生的主要目的就是为了让.NET程序员"秒变"架构师,将.NET企业级项目的主流开发技术.最先进的架构整合起来,让.NET工程师能够更快的开发出更好的项目. 1.1.2       ABP官方网站:ht…
Google C++测试框架系列:入门 原始链接:V1_6_Primer 注 GTest或者Google Test: Google的C++测试框架. Test Fixtures: 这个词实在找不到对应的中文. Bug: 太常用了,不翻译. House keeping chores: 家常事务.指非核心的编码工作,比如测试代码的assert, log以及用例管理等工作. set-up/tear-down: 指运行测试前的准备和之后的清理工作. test case: 测试用例,管理测试的单位,一个测…
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.AOP概述 (1).什么是 AOP AOP 为 Aspect Oriented Programming 的缩写,意为"面向切面编程".AOP 是 OOP (面向对象)的延续,可以对业务的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性和开发效率. (2).AOP 思想图解:横向重复,纵向切取 过滤器 拦截器 事务管理 (3).AOP 可以实现的功能 权…
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.SpringMVC 概述 (1). MVC:Model-View-Control Control 层属于框架性质,完成的主要工作是:封装 web 请求为一个数据对象.调用业务逻辑层来处理数据对象.返回处理数据结果及相应的视图给客户端. (2).什么是 SpringMVC Spring mvc 和 Struts2 都属于表现层的框架,是 Spring 框架的一部分,Spring 框架的 Co…
在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及相关组件的作用. 1.SpringMVC 架构详解 (1).SpringMVC 框架结构: (2).SpringMVC 框架结构执行流程 用户发送请求至前端控制器 DispatcherServlet DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器 处理器…
ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. 框架 ABP是基于最新的ASP.NET CORE,ASP.NET MVC和Web API技术的应用程序框架.并使用流行的框架和库,它提供了便于使用的授权,依赖注入,验证,异常处理,本地化,日志记录,缓存等常用功能. 架构 ABP实现了多层…
2019 年起如何开始学习 ABP 框架系列文章-开篇有益 [[TOC]] 本系列文章推荐阅读地址为:52ABP 开发文档 https://www.52abp.com/Wiki/52abp/latest/Welcome-to-52abp 本文的目的是为了让刚刚接触 ABP 框架的同学或者准备接触 ABP 框架的同学,能够理解和搞明白 ABP 框架到底是怎么回事,毕竟它发展了好几年的时间.社区中有很多人做 了 ABP 的资料和文章包括我自己也建立了 52ABP,社区中还有 ABPplus 等等的内…
MyBatis 框架系列之基础初识 1.什么是 MyBatis MyBatis 本是 apache 的一个开源项目 iBatis,后改名为 MyBatis,它 是一个优秀的持久层框架,对 jdbc 的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设置参数.结果集检索等jdbc繁杂的过程代码. Mybatis 通过 xml 或注解的方式将要执行的各种 statement(statement.pr…
前言 主要是想对Linux 下spi驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.设备模型等也不进行详细说明原理.如果有任何错误地方,请指出,谢谢! spi介绍 SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构.支持多slave模式应用,一般仅支持单Master.时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first).SPI接口有2根单向数据线,为…
前言 这篇文章是对linux驱动基础系列--linux spi驱动框架分析的补充,主要是添加了最新的linux内核里设备树相关内容. spi设备树相关信息 如之前的文章里所述,控制器的device和spi device都是通过platform_add_device和spi_register_board_info注册到内核的驱动模式中的.而最新的方式是通过设备树来实现的.以arm为例,设备树文件一般存放在arch/arm/boot/dts下,不同的平台对应不同的文件,以xilinx zynq平台为…
网址:从零开始搭建android框架系列 githup:https://github.com/CameloeAnthony/Ant…
ABP是ASP.NET Boilerplate的简称,ABP是一个开源且文档友好的应用程序框架.ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领域驱动设计(DDD)的体系结构模型.学习使用ABP框架也有一段时间了,一直想全面了解下这个框架的整个来龙去脉,并把想把它使用历程整理成一个系列出来,不过一直没有下笔来写这篇文章的开篇,就是希望能够深入了解,再深入了解一些,希望自己能够理解透彻一些,不能误人子弟,也不想和网上千篇一律的翻译官网的内容,官网的英文介绍也已经很详细了,于是我觉得还是以实际…
在前面随笔<ABP开发框架前后端开发系列---(2)框架的初步介绍>中,我介绍了ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以便基于数据库应用的简化处理.本篇随笔进一步对ABP框架原有基础项目进行一定的改进,减少领域业务层的处理,同时抽离领域对象的AutoMapper标记并使用配置文件代替,剥离应用服务层的DTO和接口定义,以便我们使用更加方便和简化,为后续使用代码生成工具结合相应分层代码的快速生成做一个铺垫. 1)ABP项目的改进结构 ABP官网文档里面,对自定义仓储类是不…
程序员的智囊库系列之2--网站框架(framework) 这是程序员的智囊库系列的第二篇文章.上一篇文章讲了服务器与运维相关的工具,这篇文章我们将介绍几个搭建网站的框架: django express angularjs Nodeclub discuz Tornado dancer 时间:2014-11-4 作者:FingerLiu django intro django宣扬的是用更少的代码更快的做web app. django网站的开发符合mvc模型(model,view,controll)…
在前面随笔<ABP开发框架前后端开发系列---(1)框架的总体介绍>大概介绍了这个ABP框架的主要特点,以及介绍了我对这框架的Web API应用优先的一些看法,本篇继续探讨ABP框架的初步使用,也就是我们下载到的ABP框架项目(基于ABP基础项目的扩展项目),如果理解各个组件模块,以及如何使用. 1)ABP框架应用项目的介绍 整个基础的ABP框架看似非常庞大,其实很多项目也很少内容,主要是独立封装不同的组件进行使用,如Automaper.SignalR.MongoDB.Quartz...等等内…
如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不喜勿喷,或许对您有帮助. 在Visual Studio 2017配置支持C# 7+语法 心想都VS2017了肯定是支持C# 7+语法,然后接着将控制台程序修改为异步,然后告知于我不行,尼玛这不是扯淡了么,如下: public class Program { public static async T…
上一篇:Google C++测试框架系列入门篇:第二章 开始一个新项目 原始链接:Basic Concepts 词汇表 版本号:v_0.1 基本概念 使用GTest你肯定会接触到断言这个概念.断言是用来判断某个条件是否为真.一个断言的结果可以是通过,也可以是非致命失败或致命失败.如果发生了一个致命失败,当前函数就会立刻退出,不然函数还是会继续执行到正常结束. 测试使用断言来判断测试代码的行为.如果测试崩溃了或者断言失败,那么这个测试就失败了,不然就是通过. 一个测试用例包含一个或多个测试.你必须…
上一篇:Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest? 原始链接:Setting up a New Test Project 词汇表 版本号:v_0.1 开始一个新项目 使用GTest编写测试程序,你必须先把GTest编译成一个库文件然后在你的测试程序中链接它.我们为主流的构建系统准备了一些现成的脚本:GTest根目录下的msvc/用于Visual Studio,xcode/用于Mac的Xcode,make/用于GNU make,codegear/用于Borland…
1. 什么是自动化测试框架 在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法:另一种定义认为,框架是可被应用开发者定制的应用骨架.前者是从应用方面,而后者是从目的方面给出的定 义. 从框架的定义可以了解,框架可以是被重用的基础平台:框架也可以是组织架构类的东西.其实后者更为贴切,因为框和架本来就是组织和归类所用的. 所以自动化测试框架的定义为:由一个或多个自动化测试基础模块.自动化测试管理模块.自动化测试统计模块等组…
1. 简介 前边宏哥一边一边的喊框架,就如同一边一边的喊狼来了!狼来了!.....这回是狼没有来,框架真的来了.从本文开始宏哥将会一步一步介绍,如何从无到有地创建自己的第一个自动化测试框架.这一篇,我们介绍,如何封装自己的日志类和浏览器引擎类. 2. 创建项目层级结构 如何创建,怎么创建.这个就需要我们前边介绍的框架概要设计以及框架的详细设计的思维导图,宏哥就是根据那个图,轻松地.清楚的.思路清晰地一步一步创建项目层级结构. 相关步骤: 1. 打开PyCharm,创建如下格式的项目层级结构,为了…
1.简介 前面文章,我们实现了框架的一部分功能,包括日志类和浏览器引擎类的封装,今天我们继续封装一个基类和介绍如何实现POM.关于基类,是这样定义的:把一些常见的页面操作的selenium封装到base_page.py这个类文件,以后每个POM中的页面类,都继承这个基类,这样每个页面类都有基类的方法,这个我们会在这篇文章由宏哥实现. 2.项目层级结构 1. 上一篇中我们已经创建好了项目层级结构,具体项目层级结构如下图.这里不再赘述,相关文件也如下: 3. 定位和截图类封装 1. 在实现封装基类里…
1. 简介 其实,到前面这一篇文章,简单的Python+Selenium自动化测试框架就已经算实现了.接下来的主要是介绍,unittest管理脚本,如何如何加载执行脚本,再就是采用第三方插件,实现输出html的测试报告.本文来介绍下,在同一个类中,多个测试函数时候,测试固件如何写和进一步实现POM和可能遇到问题解决办法. 2. 一个类文件多个测试方法情况下测试固件的写法 为了说明这个问题,我们在之前的测试类基础上,再写一个test_search2()的测试用例,看看会发生什么. 2.1 代码实现…
1.xml配置文件语法 由于logback配置文件语法特别灵活,因此无法用DTD或schema进行定义. 1.配置文件基本结构 配置文件基本结构:以<configuration>标签开头,包含0或多个<appender>子标签,包含0或多个<logger>标签,最多只能有一个<root>标签. 注意: 从 logback 0.9.17 版起,标签名不区分大小些.比如,<logger>.<Logger>和<LOGGER>都是…
1. 简介 本文开始介绍如何通过unittest来管理和执行测试用例,这一篇主要是介绍unittest下addTest()方法来加载测试用例到测试套件中去.用addTest()方法来加载我们测试用例到suite中去和利用discover()方法去加载一个路径下所有的测试用例. 2. addTest()方法 这里首先介绍unittest下addTest()方法来加载测试用例到测试套件中去.为了演示效果,我在前面文章的脚本基础上,新建了一个测试脚本,这个测试脚本有一个测试用例,加上前面的测试脚本,一…