自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (5)
  • 收藏
  • 关注

原创 生成单元测试的idea插件

生成单元测试的idea插件,暂时只支持junit4和junit5,帮助生成mock when等,从头开始写行覆盖90%,分支覆盖80%的类,估计提升5%写UT的效率。

2023-01-16 23:33:01 895

原创 测试pg和mysql的触发器及存json

测试pgpg触发器的old 和 new 用row_to_json很容易存mysql 目前只知道用 json_object , 用起来麻烦点,而且mysql的json限长65535触发器比较费性能,但取 old 值比较方便。及触发器及存储过程不易于管理及运维是要注意的地方...

2022-02-20 23:22:41 1061

原创 自动生成mock简单的测试

package com.areyoo.lok.controller;import com.areyoo.lok.vo.TestTwoVo;import java.lang.reflect.*;import java.util.HashSet;import java.util.ArrayList;import com.alibaba.fastjson.JSON;import com.areyoo.lok.service.api.WwService;import com.areyoo.lok.

2021-11-08 01:18:59 1333

原创 钱包表的设计

钱包类型可以有余额、提现、待支付和优惠及提成收入等。比如我们支付到商家买商品,是把我们的余额类型转到待支付,使用优惠券是增加优惠类型的金额;交易成功商户余额和用户提成账户收到待支付和优惠的转移。用户提成和优惠可以方便统计用户价值和获客及维护成本。这样设计的好处:1可以避免一些锁,比如用户充值和一个交易自动成功的同时执行,待支付和余额放同一行,就会有竞争,分开少考虑这部分锁的情况,方便一点,并发高一点。2方便扩展,数据库加字段不方便,mysql会锁表。要加个白条功能或者理财功能,加类型就好了。用

2020-11-12 01:41:59 2578

原创 乐观锁version和时间戳外的实现方式

乐观锁并不会使用数据库提供的锁机制第一种:version版本号使用版本号时,可以在数据初始化时指定一个版本号,每次对数据的更新操作都对版本号执行+1操作version类型为int就够了,保守点用long,建议用long不出错version = version +1 是原子化操作第二种:时间戳来实现你不能从web服务器取得时间,要以数据库服务器时间为准version类型为DATETIMEversion = now()now()精度百万分之一秒,但仍然可能重复,只是概率极小。第三种.

2020-11-01 23:15:45 1060

原创 缓存更新的套路之基于数据的version

https://coolshell.cn/articles/17416.html这文章很有深度,我进行了一些思考。写更新缓存数据代码时,先删除缓存,然后再更新数据库的方法,如果改变下删除缓存的方式,是可以简单地解决问题地先删除缓存,可以不是真的删除:可以改为软删除,记录缓存的version和过期时间(比数据库过期时间长一秒就可以)——当查询操作操作发现软件删除时,会直接从数据库取数据,数据库数据的vesion小于等于缓存version时就不更新缓存,大于缓存version时就更新。如果数据库操作失

2020-10-29 00:34:18 295

原创 jwt验证的思考

jwt验证对后端的压力比用session小很多, 毕竟只用对称加密或者hash计算,密钥小可以都存在各台web服务器, 不需要请求redis或者mysql之类的数据库产生io。[登录踢出]有时一些应用需要只让一个账号只能在一个浏览器或手机客户端在线,一个手机登录,另一个手机的相同账号需要登录踢出,jwt就比session麻烦一点,不想存数据库需要通知客户端自己删除。如果客户端出问题没有删除,继续请求,那么应该怎么解决。简单的解决办法是session和jwt一起用(jwt的refresh toke.

2020-10-20 23:59:21 17458

原创 php常驻程序内存泄露的简单解决

php原本设计是用了一次就丢了的,这样用基本没有内存泄露的问题,就是每次要重新构建速度会慢。php常驻的情况内存泄露发生的概率就很高了php主流常驻框架是解决方案也是用了就丢,但不是立刻就丢:1·roadrunner.rr.json的配置文件{ "http": { "address": "127.0.2.1:80", "workers": { "command": "php psr-worker.php", "pool": { "...

2020-10-20 23:55:07 1088 2

原创 if分支过多怎么办

?php $a = 0;$b = 1;$c = 2;$d = 3;if ($a < 1) { if ($b < 2) { if ($c < 3) { if ($d < 4) { $r = 'end'; } else { ...

2019-09-19 00:33:59 565

转载 jQuery的.bind()、.live()和.delegate()之间区别

转自http://developer.51cto.com/art/201103/249694.htm

2014-04-16 18:49:45 575

原创 php入门第八天

函数。    php的函数是过程式编程的基础。function foo() {        echo 'some';}    这是基本形式。

2014-03-18 21:50:31 720

原创 最近学go语言的小结

因为单位业务需要(据说是http://www.oschina.net/p/docker 这个方向),最近开始学go语言。google做这门语言的目的在于代替部分C/C++在服务器端开发,这门语言是以C为主干,模仿java,javascript及C++的基础上,做了些微创新。个人感觉就是强类型语言版的javascript++。    1、文件结构,和C/C++一样的主文件。主函数如main可以写

2014-01-18 23:51:18 4210

转载 中国大陆开源镜像站汇总

先写csdn的镜像站https://code.csdn.net/OS_Mirror/——>话说有github的风格,又有点像开源中国http://www.oschina.net/的风格    搜狐开源镜像站: 这个有python,速度比官网快, md5值和官网的一样,不过下载后还是要验下。    东软信息学院:这个有android,不过我的android环境

2013-08-30 07:34:32 22991

原创 CodeIgniter的扩展方法

CodeIgniter这个框架的规则比较少,另外核心类都心CI_开头,很方便扩展。CodeIgniter的扩展有很多种方法,有替换核心类的,有继承扩展核心类,及使用钩子的,和__autoload加载的。    先说怎么扩展smarty的例子。    本人作为一个程序员,觉得php原生的模版是比smarty更强大的,只要在格式上用,另外view用的函数必须是php原生的或公共

2013-08-28 22:51:09 5992

原创 php入门第七天

Form的提交及页面间的传值。    Cookie是存放在客户的硬盘上的文件,每种浏览器都有它各自的位置。记得有一回我用不同的浏览器上两个百度号,结果两个浏览器上的用户都成了我后上的那个号,这个用浏览器的Cookie是做不到的,显然用的是flash cookie。也许是为了方便用多个号发贴的人,后来就没遇到这样的事了。Flash是个比较不安全的东西,但有时又不得不用,比如要在新浪上传相片,

2013-07-21 20:59:52 1056

原创 1+Null 居然等于 Null

好吧,我OUT了。因为以前基本上是用php对数据结果的同一行进行计算,居然没注意sql语言中 select1+Null 的结果会是Null, 好在测试细心发现了问题。本人看我的有关sql的书中都好像没有讲这一点,如果谁知道哪本书写了这点,希望能把书名告诉我下。关于SQL 在数值计算时对 NULL 的处理及解决办法,详见:http://iteches.com/archives/5848

2013-07-20 08:39:18 7572 1

原创 公共js在页面底部加载的注意事项

JavaScript脚本文件都放在页面底部加载,可以有效地加快页面的加载速度。        但是,php控制器一般这样写:    $this->load->view($HEADER);$this->load->view($MENU);$this->load->view($VIEW_SHOW, $data);$this->load->view($FOOTER);

2013-07-17 21:35:42 1157

原创 用逗号分隔参数不太科学——S表达式才是王道

最近在写php程序和sql语句时用到了这种写法:select a ,b ,cfrom tablewhere a='1' AND b='2' OR c='3'phpfn(1 ,2 ,3);    觉得这样写以后方便改东西。 但想想还是没php的数组来得方便。php数组可以写成这样:

2013-06-22 15:35:08 1135

原创 php之大话代理模式

函数<?phpfunction im_GiveGift(){ return array( 'GiveFlowers' => function() {die('接口未定义');}, 'GiveChocolate' => function() { die('接口未定义');}, );}function SchoolGirl(Array $data){ ex

2013-05-26 18:39:54 1704

原创 写给新手,用最基础的方法重构代码

这是写给新手的。嗯,我实际上也是个新手。老手们应该可以不看,看了如果觉得有地方不对,请多多批评。谢谢!基于数组对if语句的重构。用if时。$table = 'test_order';if ($table === 'test_order' OR        $table === 'test_client' OR        $table === 'test_are

2013-05-26 18:02:11 819

原创 php之大话装饰模式

这里的构造函数居然这样写。<?phpfunction Person($data = array()){ {/* __construct */ static $i = 0; ++$i; extract(array_merge(array('name' => '未命名') /* 默认值 */, $data)); } return array( 'Show' =

2013-05-12 15:02:34 982

原创 php之大话策略模式

这里用到php的use了。<?php//工厂模式和策略模式function f_cash_context($type){ switch ($type) { case '正常收费': return function($money) { return $money; }; break; case '满300返100': $money

2013-05-12 14:55:47 857

原创 php之大话设计模式-开个头

最早认识设计模式是看博客园伍迷的大话设计模式这本书(他的另一本好本是大话数据结构,最喜欢的地方是下载的源码都能正常运行)。    设计模式是基于 接口、封装、继承、多态这些面向对象的要素实现的。设计模式的首要目的是方便合作,也就是大家改不同的文件,但合到一起就能好好工作。比如MVC模式,前台改视图,后台改MC(我记得有一回我和一个人一个改模型文件,一个改控制文件,也没冲突),之间约定好

2013-05-12 14:33:38 1849

原创 php中strtr和str_replace的坑

str_replace这个函数比较无脑$a = 'abcxy';echo str_replace(array('abc', 'xy'), array('xy', 'abc'), $a),'';?>    你想输出 xyabc, 但是实际是:abcabc,因为它是循环替换。    str_replace格式如下    str_replace ( m

2013-05-08 21:46:51 8220

原创 php入门第六天

灵活的字符串。   因为$表达的灵活性,我们可以用“映射”的方法,调出字符串或者函数。$a = 'b';$b = '123';echo $$a; // 这可以输出123。不过比较好的习惯是echo ${$a},这样更清楚明了。 $c = 'd';echo $c();function d() {return '321';} // $c()调用的是d函数

2013-04-28 21:46:01 2124

原创 php入门第五天

循环:for循环$arr = array(1, 2, 3);for ($i=0, $i_=count($arr); $i';}//或者倒着循环for ($i=count($arr)-1; 0';}//或者把for 当while用$i=count($arr)-1;for (; 0';--$i;}?>foreach 和 while循环:for

2013-03-10 07:39:27 794

原创 替换php中双引号的小程序

因为本人有一点点代码洁癖,看不习惯老代码中的$POST["abc"]或$_GET[abc]什么的,还有没必要用双引号的地方不用单引号的。所以专门写了个php小程序。    这个程序只能转纯php文件,不能用于模版文件。另外如果你定义的常量不是大写的,及字符串用了    这个程序是给自己用的,很多地方不规范,比如应该用有意义名称的地方用的是0啊1啊,这个不要学。代码写得不怎么样,只是

2012-12-24 12:46:24 1440

原创 php入门第四天

运算符的相关内容可以查php手册。下面的内容我会写一些细节问题。算术运算符 递增/递减运算符<?php$i = 0;$x = ($i++); //相当于 $x = $i; $i += 1; $j = 0;$y = (++$j); //相当于 $j += 1; $y = $i; $k = 0;$z = ($k+=1); printf('$i is : %s

2012-12-24 07:34:33 699

原创 php入门第三天

三元运算和if语句。    我先道歉,我最近才发现我用的wamp不是我说的那一版,我安装wamp的时候没删老版的,而且安装在了原目录。现在发现新版的默认配置是如果变量未赋初值,就会报错。虽然变量未赋初值改配置文件就可以,这样写起来也方便,但据我的经验,这样做,好处比坏处少。    现在在下面的二段代码中加入了这两句,就不会报错了。isset($_POST['user_id']) ?

2012-11-18 17:39:09 970

原创 php入门第二天

如果你学过类C语言——c\c++或java, 这些东西的语法和数据结构和php是类似的。当然如果你学了perl,学php就更容易。    下面看php的变量赋初值。    变量开头必须是$, 可以把他看成别的语言的 def 或 var之类,但使用变量的时候,还是要有$号。    另外大家知道在单引号在多数语言表示char类型, 但在php中没有char类型,上面$hello这个

2012-11-11 09:11:39 731

原创 php入门第一天

学习php首先要配置一个php环境    第一步下载wamp(如果你会linux,说明你不用教,应该会配。)。    官网应该在http://www.wampserver.com/ ,自己搜也行。    最好下载wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b.exe  (32b指的是x86的处理器,这个要根据自己电脑的处理器类型下

2012-11-11 09:10:03 828

原创 smarty与js冲突的非主流解决办法

Smarty的使用中,有一些麻烦的事。比如在模版可以用{$data}这样的写法,但因为很多模版一般都有它独自的javascript,所以写成了 或 [{$data} 的样子。使用标签{literal}[javascript code]{/literal}虽然是一个解决办法,当然,你也可以为所需的javascript单独写个文件引用(麻烦)。但如果javascript中需要php变量时,这就不合适

2012-09-12 07:23:31 2249

原创 php不支持函数式编程的解决办法

最近看了一下上级写的valid类,都是正则表达式。我想不用正则,应该会提高些运行速度,比如验证是否是0~9的数字组合。function check_num($data){  $len = strlen($data)    for($i=0;$i  {    $ord = $data[$i];    if( $ord >= '0' && $ord

2012-08-04 18:47:53 1896

原创 自动生成简单的sql语句

$sql .= "id='" . $arr['id'] . "'";$sql .= "id='{$arr['id']}'";$sql .= "id='$arr[id]'";最近试了一下生成sql语句不同写法的速度,在上面三种中, 第三种最慢,但没慢多少(顶多20%)。第一种比较麻烦,但方便写成  $sql .= "id='" . func( $arr['id'] )

2012-08-04 18:24:08 940

原创 活用工厂模式调用smarty

最近项目用了ajax 弹出 网页层,先是把弹出 网页层的模版放在了主要页面的模版文件夹下,不过混在一起不太好。就想把模版放到新的文件夹。   看了下引用smarty的inc文件,$tmpl = new Smarty;$tmpl->left_delimiter=';$tmpl->config_dir=。。。。。   不想再写一个smarty的inc文件,因为有

2012-07-16 19:52:58 822

原创 php——有时候你都不知道怎么错的

因为php不用定义变量,所以你写错了变量名,也不会告诉你。很多时候是微差别,一句句的看代码是看不出来的,还好很多软件有显示变量的东西,比如pspad的程序浏览器,notepad++的function list。看一下变量的列表,一般程序不长的话,一两眼就可以看出哪个变量实际上是打错的。   犯这种错误不是第一回了,专们写一下。虽然都是脚本语言,还是python好。赋

2012-06-24 22:51:57 779

原创 总结一下最近实践上用到的sql语句

// 最近写的一些sql语句,感谢上级指导。(写这个文章时还不知道查postgreSql的手册,浪费了上级的时间,如果当时上级直接发我手册就好了)// (写这个文章时实践还太少。个人觉得学习sql语言的最好方法是实践加查手册,上网搜。下面字段k_rea从 1~10,所以用了循环。pgsql可以存数组,上级说这样设计是为了方便新人,"||"是pgsql用的连接符号。mysql虽然存不了数据,不过

2012-06-24 22:49:56 650

转载 Windows7下NetBeans7开发GTK的配置过程(我用xp试的)

这个原文有一些path相关的没有写,还有些小细节,我补充一下。原文的图片这里不能发。原文地址http://blog.knowsky.com/267853.htm 我:GTK的C环境实际上在dev和CodeBlocks上也可以用,也好像更易实现。但有时要用别的语言,用一个的话有方便记快捷键等。准备环境1)Java(JDK

2012-06-23 18:53:47 1034

原创 程序员重要的素质之一——谦虚

谦虚的人不会想当然。比如对客户,你以为客户的需求是这样的,结果把东西一做好,给客户一演示,就黄了。只有谦虚的人,才能和人有真正的沟通和交流。谦虚在找程序的BUG上也有用处,比如同一种程序错误,却可能由不同的原因引起。在这不同的原因中,当然有的可能性很大,有的可能性很小。但如果有人遇到和过去一样的错误时,以自己的经验,认为过去每次都这样解决了,再这样做,却不能解决,却还在坚持。谦虚的人不会完

2012-04-16 18:12:55 2029

原创 应该选择什么语言开发程序?

据说C++比java快三到四倍,又说java的开发速度是C++的二倍。二者之间的选择,在于花三四倍的钱买机器和机房,还是付二倍的工资及人员附属成本(办公桌办公楼折旧或租金等等),还有机会成本。    从今天的来看,机器的运算是越来越便宜,人的成本至少不会变得像机器这么快。所以很多公司经过核算以后,使用了开发周期短,但运行效率不是很高的语言。但效率仍然可以兼顾,一著名博客说用Python作快

2012-04-15 22:21:46 1296

cpp求质数_一例

尼罗河筛法 按位(bit)存储容器 c++编写

2012-04-11

点菜_xml_php

视频在http://my.tv.sohu.com/u/vw/16643732 使用了xml和数据库。 用查表来代替复杂的逻辑。

2012-04-11

cpp_48抄的

抄别人的c#代码,改成了python代码。总共40多个文件夹。

2012-04-11

modmodmode

抄别人的c#代码,改成了php代码。总共20多个文件夹。

2012-04-11

aes-des-gost

aes-des-gost

2012-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除