- 博客(199)
- 资源 (4)
- 收藏
- 关注
原创 2020 年 OKR
2020 年 OKRObject: 通过投资理财赚钱KR1: 输出股票资产的知识框架(包含微观和宏观的分析方法)KR2: 设计定投规则,使用月收入30%进行定投,执行率不得低于90%KR3: 建仓时间至少为1年,投资回报率大于15%Object: 提升App软件开发质量KR1: 输出具有很强扩展性的App软件框架KR2: App 具能兼容IOS和Android平台...
2020-03-01 21:17:56
560
原创 解决幂等性方案
1.1. 幂等性表达的是N次变换与1次变换的结果相同1.2. Http 维度::: alert-info从定义上看,Http方法的幂等性是指一次和多次调用某一个资源应该具有相同的副作用.:::1.2.1. GET 方法HTTP Get 方法用于获取资源,不应有副作用1.2.2. 后台解决接口幂等性问题token + 分布式锁状态机幂等性:::alert-info 针...
2020-02-02 21:30:53
634
原创 git 学习笔记
git 结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YqWmoUBq-1580474365280)(_v_images/20200131131547268_15507.png)]git 工作流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsjAr7mS-1580474365283)(_v_images/20200131...
2020-01-31 20:39:23
349
原创 Android 绘制饼图
需求:1. 将一个圆形6等分的饼图,在每个饼图的中心显示当前饼图代表的含义绘制步骤:1. 画布中心点: centerX = getWidht() / 2; centerY = getWidth() / 2;2. 原型的半径, 定义为高度的4分之一, radius = getHeight() / 4 > getWidth() /2 ? getWidth() /2 : getH...
2019-05-25 22:13:59
1989
原创 command model
#include #include #include using namespace std;/************************************************************************//* 命令模式,将一个请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化;/* 对请求排队和记录请求日志, 以及支持可撤销的操作。/
2016-07-23 18:23:34
611
原创 template model
#include #include using namespace std;/************************************************************************//* 模板模式:定义一个操作中的骨架,将一些延迟操作放到子类中/* 模板模式使子类可以不改变一个算法的骨架即可重定义该算法中的某些特定的步骤/********
2016-07-23 17:21:02
594
原创 proxy model
#include #include using namespace std;/************************************************************************//* 例如:/* 小明要给韩梅梅送花,但是小明不认识韩梅梅,但是李雷是韩梅梅的好朋友,小明和李雷是/* 好朋友, 所以小明可以通过李雷(代理)送花给韩梅梅/*
2016-07-23 16:45:58
771
原创 single model
#include #include using namespace std;class Single{public: static Single & GetInstance() { static Single _obj; return _obj; } void Print() { cout << "hello world : " << endl; }prot
2016-07-23 15:06:31
682
原创 factory model
#include using namespace std;template class BaseOper{public: void SetParam(const T& a, const T& b) { this->a = a; this->b = b; } virtual T GetResult() = 0;protected: T a; T b;};t
2016-07-23 14:49:59
570
原创 simple factory
#include using namespace std;template class BaseOper{public: void SetParam(const T& a, const T& b) { this->a = a; this->b = b; } virtual T GetResult() = 0;protected: T a; T b;};
2016-07-23 14:41:40
392
翻译 double dispatch
#include #include class Vehicle{public:virtual double GetBaseDiscountRate(){return 0.03;}};class Benz : public Vehicle{public:virtual double GetBaseDiscountRate(){ret
2016-07-10 17:34:07
639
原创 QTcpSocket服务器 定时器,多线程结合
QTcpsocket 写服务器程序时,需要定时向客户端发送监控数据,同时需要响应客户端请求。问题是: QTcpSocket 只能在同一个线程中使用,定时器会在主线程中运行解决方案:在定时器中发送信号给封装的客户端数据处理socket,并在线程中将该信号与socket中的操作相连接。//clientsocket.h#ifndef CLIENTSOCKET_H#define CLIENTSOCK
2015-02-05 10:41:29
2459
转载 不能在析构函数里面抛出异常
从语法上面讲,析构函数抛出异常是可以的,C++并没有禁止析构函数引发异常,但是C++不推荐这一做法,从析构函数中抛出异常是及其危险的。析构函数可能在对象正常结束生命周期时调用,也可能在有异常发生时从函数堆栈清理时调用。前一种情况抛出异常不会有无法预料的结果,可以正常捕获;但后一种情况下,因为函数发生了异常而导致函数的局部变量的析构函数被调用,析构函数又抛出异常,本来局部对象抛出的异常应该是
2015-01-20 12:12:12
765
原创 Qt Activex
#ifndef FIRSTSERVER_H#define FIRSTSERVER_H#include #include #include "ui_firstserver.h"class FirstServer : public QWidget, public QAxBindable{ Q_OBJECTpublic: FirstServer(QWidget *parent
2015-01-15 15:21:31
1241
转载 C++ 基础 : 智能指针
一、智能指针 在C++语言编程时,当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。 智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计
2015-01-02 14:49:02
619
原创 链表逆序
typedef struct _LIST_{ int data; struct _LIST_ *next;}Node, *List;/** * @param brief 反转一个链表,递归方法 * @param head in out 链表头节点 * @return List 返回链表头节点 * */List reverse_list(List head){
2014-12-18 19:18:44
540
原创 浮点数 与 16进制 相互转换
/* * @brief 浮点型 转换成 16进制 默认小端排列 * @param val in 浮点数 * @param hex out 16进制数 * @return */void float_to_hex(const float& val, char hex[4]){ const char *p = (char*)(&val); hex[0] = *((char*)p);
2014-12-14 21:09:46
7883
原创 将ip地址压缩到一个无符号整形中
#include #include /* * @brief 求N的指数 * @param matter in 底数 * @param exponent in 指数 */int pow(const int matter, const int exponent);/* * @brief 字符串转整形 * @param strVal in 字符串 * @param va
2014-12-14 20:39:46
1518
原创 组合模式
#include #include #include using namespace std;class Component{public:Component(string name):name(name){}virtual void Add(Component* c) = 0;virtual void Remove(Component* c) = 0;
2014-10-01 17:01:08
577
原创 dynamic_cast 例子
#pragma once#include using namespace std;class NCEventArg{public: enum MSGType{CENTRAL_WIN_CHANGE, ALARM, TOOL_CHANGE, \ KEYBOARD, MARGIN_WIN_CHANGE, GENERAL, CLOSE, RESTART};protected: MS
2014-09-08 16:06:56
717
原创 将一个字符串中小于0的数字放到左边,大于0的数字放到右边
void sort_str(char* str){ char cTmp; int nlen = strlen(str); for (int i = 0; i < nlen; i++) { //not a number if (str[i] > 57 && str[i] < 48 && str[i] != '-') return; if (str[i] == '
2014-06-26 18:49:22
1687
转载 Socket网络编程常用的结构及函数小结
IP地址的作用是标示计算机的网卡地址,每台计算机都有一个IP地址;端口,是指计算机中为了标示在计算机中访问网络的不同程序而设的编号,并不是网卡接线的端口,而是不同程序的逻辑编号,并不是实际存在的;域名,是用来代替IP地址来标示计算机的一种直观名称,例如百度网站的IP地址是202.108.22.43,这个IP地址没有任何逻辑含义,不便记忆,而www.baidu.com是一个便于记忆的名称,用于代替这
2014-04-11 14:22:44
667
转载 拷贝构造函数
我们知道,在C++中每一个类都有一个默认的构造函数,析构函数和拷贝构造函数。 对于两个对象p1,p2,实现语句p2 = p1就相当于在调用默认的拷贝构造函数,把p1对象的每个属性值逐个复制给对象p2的每个属性。所以拷贝构造函数主要用于对象之间的相互赋值。 当然,对于拷贝构造函数我们可以自定义,一般形式如下: [cpp] view plai
2014-04-08 14:39:12
794
原创 如何破解win7 系统密码
*1. 使用WindowsPE U盘引导到WindowsPE*2. 在命令窗口执行DISKPART.EXE,再执行lis vol以确定系统盘符及U盘盘符,如下分别为C及D*3. 备份Narrator.exe Copy c:\windows\system32\Narrator.exe d:\*4. 替换Narrator.exe co
2014-03-25 08:12:24
1270
转载 VMware虚拟串口的设置和使用
本文内容部分翻译自VMware的帮助文档。环境:宿主机:Windows7 VMware7.1虚拟机:Fedora12 VMware的串口:一个虚拟机最多可以添加四个虚拟串口,有如下几个方法配置虚拟串口:连接一个虚拟串口到宿主机的物理串口。连接一个虚拟串口到宿主机上的一个文件。在两个虚拟机之间建立一个直接的连接,或者
2014-03-21 19:50:40
5590
转载 Linux 串口驱动程序开发
读取串口数据使用文件操作read函数读取,如果设置为原始模式(Raw Mode)传输数据,那么read函数返回的字符数是实际串口收到的字符数。char buff[1024];int Len;int readByte = read(fd,buff,Len);可以使用操作文件的函数来实现异步读取,如fcntl,或者select等来操作。void SERIAL_
2014-03-21 19:48:54
2073
转载 Linux驱动开发学习的一些必要步骤
1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。 5. 写一完整驱动, 加上read,
2014-03-21 16:21:14
653
原创 a sample Linux driver 01
/*The drive test code as below*/#include#include#include#includeint main(){ int count = 0; int fd = NULL; unsigned char buf[100]; unsigned char buf_read[100]; memset(buf_read, 0, 100
2014-03-21 16:07:35
1122
转载 Linux 驱动程序与应用函数关系
Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使 用文件那样向设备传送数据。可是为什么用户使用write函数就可以把数据写到设备里面 去,这个过程到底是怎么实现的呢? 这个奥秘就在于设备驱动程序的write实现中,这里我结合一些源代码来解释如何使得一 个简简单单的write函数能够完成向
2014-03-21 11:22:12
1157
转载 typeof
原文:http://hi.baidu.com/leowang715/blog/item/b0b96d6f972e7dd080cb4a06.htmltypeof关键字是C语言中的一个新扩展。只要可以接受typedef名称,Sun Studio C 编译器就可以接受带有typeof的结构,包括以下语法类别:声明 函数声明符中的参数类型链表和返回类型 类型定义 类型操作符s si
2014-03-21 09:10:33
757
转载 Linux内核驱动模块
Linux内核驱动模块Linux设备驱动会以内核模块的形式出现,因此,学会编写Linux内核模块编程是学习Linux设备驱动的先决条件。4.1~4.2节讲解了Linux内核模块的概念和结构,4.3~4.8节对Linux内核模块的各个组成部分进行了展现,4.1~4.2与4.3~4.8节是整体与部分的关系。4.9节说明了独立存在的Linux内核模块的Makefile文件编写方法和模块的编译
2014-03-20 17:31:48
1162
转载 C语言 指针数组 多维数组
1. 地址算数运算示例指针算数运算 : int *p, array[5]; p = array; p 指向一个 int 数组元素, p + i 的地址时数组中第 i 个元素的地址, 即 p + i 指向 第 i 个元素;存储分配示例函数 : -- char *alloc(int n) 函数 : 传入分配的字符个数, 返回连续字符存储单元指
2014-03-19 12:38:00
1290
转载 ARM 看门狗
delaytimerflashfunction编程看门狗(watchdog)包括一个4分频的预分频器和一个32位的计数器,时钟通过预分频器输入定时器。定时器递减计数,递减的最小值为0XFF。如果设置一个小于0XFF的值,系统会将0XFF装入计数器,因此最小看门狗间隔为t(pclk)X256X4。 看门狗的用途是使微控制器在进入错误状态后的一定时间内复位。当看门狗使能时,如果
2014-03-19 10:39:05
1190
转载 ubuntu 下 驱动开发环境
ubuntu 下 驱动开发环境本文是参考了网上多篇帖子而写的算不上什么原创。唯一值得欣慰的只不过在本机上实现罢了。因为毕竟失败了几次。也因为本人是初学驱动编程很多简单的问题在我来说是相当的困难的。望有识之士不要笑话。最后,希望本文能给刚学驱动而还没开头的人提供一些帮助。刚看 O'REILLY 写的《LINUX 设备驱动程序》时。作者一再强调在编写驱动程序时必须建立内核树。所谓内核树,我
2014-03-18 16:09:09
1494
1
转载 编写一个windows driver 例子
首先去微软的网站下载DDK的开发包。下载地址:http://www.microsoft.com/whdc/DevTools/ddk/default.mspx假如要开发一个for windows 2003的驱动 就下载http://download.microsoft.com/download/9/0/f/90f019ac-8243-48d3-91cf-81fc4093ecfd/
2014-03-17 15:33:23
1077
转载 Linux虚拟机中安装VMware Tools
Linux虚拟机中安装VMware Tools环境:VMware Player、Fedora 16预先安装:Fedora系统中必须先安装perl、make、gcc、kernel headers of the running kernel。步骤:1.VMware Player菜单上选择Virtual Machine >Install VMware Tools。2.
2014-03-12 16:37:20
1036
转载 在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver
在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver活动(Activity) - 用于表现功能服务(Service) - 相当于后台运行的 Activity广播(Broadcast) - 用于发送广播广播接收器(BroadcastReceiver) - 用于接收广播Intent - 用于连
2014-03-08 21:52:05
1173
转载 构造函数 & 析构函数
class ABase{public:ABase():Aval(10) { cout<<"construct ABase!"<<endl; }~ABase() { cout<<"destory ABase!"<<endl; }protected:int Aval;};class CBase{public:CBase(ABase &at)
2014-03-08 15:58:49
701
转载 对象数组在Java & C++ 中实例化的区别
昨天把C++和Java里的对象构造机制搞混了。起因是一个程序的片段,用new构造一个数组。C++是会对每一个数组元素调用构造函数的,我想当然地以为Java也会这么做。但事实正与我想的相反。我写了一个Java程序测试了一下: class Test { public Test(){ id=getNextId(); System.out.println("I
2014-03-08 15:40:33
1049
转载 C++ 函数对象
标准库里的count_if可以统计容器中满足特定条件的元素的个数。例如要统计一个整数vector——ivec中正数的个数,可以先写一个返回类型为bool,含有一个int参数的条件函数:bool pred(int val){ return val>0;}之后可以用count_if(ivec.begin(),ivec.end(),pred)计算出正整数的个数。但这个方法有一个明显的
2014-03-08 15:37:18
637
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人