自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 数据迁徙经验总结

在京东这一段时间做了很多数据的迁徙,做一些总结。(以sqlserver迁徙至mysql为例)迁徙的需求:业务数据从sqlserver迁徙至mysql,尽量减少系统停用的时间。迁徙流程:中间件接写,开启changelog原来sqlserver的读取写入统一由中间件接管,保证读写统一。中间件写入时把变更信息记录到changelog表。changelog(主键,变更主...

2013-11-07 13:44:48 217

原创 常用工具总结

ultredit*E^+*^p替换行*result:true$删除以什么结尾的行\n(\s*\n)+ ,在“替换为”里输入:\n :Perl”复选Excel右键,选择“设置单元格格式”,点“数字”在分类选择“自定义”在‘类型’中输入‘0’即可, =text(A1,0)eclipse设定查看jar包源码与java...

2013-11-07 11:39:09 131

原创 合众天恒期间软件过程小结

(一)需求-开发-测试关系现公司很多需求在产品提出后,是否完善是个问题,在实际工作中,发现测试测试功能要从开发处问得需求,开发在开发的过程当中要承担很大的需求任务,当然开发确实要思考需求,但这不妨碍产品提出更完善的需求。建议如下:软件工程中对需求的是否合格的标准是是否可测试***需求完成后,测试使用需求文档生成测试用例用于测试,需求文档告诉测试测什么,开发告诉测试怎么测。***...

2013-11-07 11:22:50 99

一些编码经验

1)根据要解决的问题来设计线程或者类体系,保证带来的复杂性都是因为问题的复杂性而带来(用多线程可带来好处的地才使用),并且要试图从技术上尽量缩减方案的复杂性(比如用JDK5新线程代替原来wait,notify)。(数据迁徙重构有感)针对代码:要思考多这几个类解决了什么问题,多几个线程又解决了什么问题,深层次的调用又解决了什么问题,如果没有解决什么问题,只是复杂,还是删除掉吧。2)重构代...

2013-11-06 14:20:12 130

原创 调试程序

1.有异常信息的技术性调试如果有异常信息,一定要从异常信息出现的原因入手。例如:java.lang.NoSuchMethodError: org.springframework.util.ObjectUtils.isArray(Ljava/lang/Object;)解读:肯定找到类了,类里面没有方法。分析:自己本地没错,服务器上有错,就是在本地能找到方法,在服务器上找不到。也就是...

2013-11-06 14:10:44 87

编码反模式

1) 通用方法一个方法处理多个业务,比如修改用户传入一个用户对象,方法根据邮箱,手机..是否为空来处理修改手机,邮箱等业务处理方法:每个业务要分开,单一职责2) 对象内的平行方法A(a1,a2,a3),a1,a2,a3方法中有相似功能。IA(a)ßA(a,abstract b)ßA1(b),A2(b),A3(b)3) 业务链方法一个业务的链式判断用方法调用来实现,比...

2013-11-06 14:07:27 90

原创 从单元测试开始说起

编程从一个角度来说,象是在推土,或者设定个小目标,完成,再设定一个小目标再完成,每一小步都有成功的喜悦。是在做一个类似一小步,一小步创作的东西,每一步有小成果,有它的趣味性和创造性,有每次一个小胜利的喜悦。编程的过程从一个角度来说更象是扫雷,每次一小步,还要保证扫过的地方一定没有雷,有它的谨慎性。 总的来说程序可以分为衔接部分和功能部分。功能程序要要有单元测试来保证。集成测试来保证衔接部...

2013-11-06 14:02:40 74

长方法重构过程

整体过程 1) 原代码重构成逻辑块清晰的过程化代码2) 对不同逻辑块进行抽取成服务类3) 从领域对象的角度分析服务类,通过单一职责来梳理服务类 (二)原代码重构成逻辑块清晰的过程化代码 每个逻辑块要有明确的输入输出,不同逻辑块最好能做到无序,如果一定有有序,要对有序有地方有所注释。每下个逻辑块都很分明,想抽成方法就可以随时抽取,不想抽取也可以保持现状,当重复代码...

2013-11-04 14:24:33 87

原创 spring集合标签

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframewo

2013-02-27 14:53:33 98

mysql循环存储过程

利用存储过程执行一批语句DELIMITER $$ DROP PROCEDURE IF EXISTS `proc1`$$ CREATE  PROCEDURE `proc1`()BEGINdeclare i integer;set i=0;while i<=100 dobeginset @TABLENAME=CONCAT('update  ','s...

2013-02-26 14:14:08 203

原创 位操作符

Why:一些加密,hash算经常会用到示例数Integer.toBinaryString(-5)正值:0000 0000 0000 0000 0000 0000 0000 0101反码:1111 1111 1111 1111 1111 1111 1111 1010 +1:  1111 1111 1111 1111 1111 1111 1111 1011就为补...

2013-02-26 13:48:51 66

原创 -前言-

减少重复学习,在原来掌握的基础上进行提高。质疑驱动,不断对已经掌握的知识进行质疑。 如果能把已经掌握的东西总结成模式,才是真正掌握了。...

2013-02-22 12:03:40 70

原创 将博客搬至CSDN

mysql数值范围TINYINT 1字节 -128~127 0~255INT          4      21亿  -2147483648~21,4748,3647        默认11SMALLINT             32768到32767                无符号的范围是0到65535BIGINT     8      922亿亿  -922337...

2013-02-21 14:46:36 47

原创 java语言的一些小语法

原始类型空指针Integer a=null;if(a==0)会抛出空指针Map隐含添加冲突Iterator是工作在一个独立的线程中,它会建立一个索引表,当原来数据发生改变时,索引表不会发生改就,就会抛出java.util. ConcurrentModificationException 异常。容易发生问题:Map的put方法,意愿是想修改...

2013-02-20 23:25:13 93

原创 异常处理

通过编程无法避免的,用已检查异常异常处理。比如网络断开。如DataFormatException。RuntimeException通过编程可以避免,要在编程时对出现的RuntimeException的情况判断。比如除数是0,数组越界等。但现在还有比较流程用RuntimeException来替换掉所有有Exception。这种情况主要是为了代码更美观。在调用链上谁可以处理谁就可以捕。用Ru...

2013-02-16 11:32:15 59

原创 spring自定义标签

今天发现公司的自定义标签autoStart不支持属性文件 autoStart="${boot.mq}",看过源代码确实是直接读出的 String autoStart = element.getAttribute("autoStart"); if ((autoStart == null) || (autoStart.isEmpty()) || (autoStart.equals...

2013-02-05 18:10:12 57

原创 多线程

 CountDownLatch latch latch = new CountDownLatch(dbMax)ExecutorService executorService = Executors.newFixedThreadPool(size);executorService.execute(new UserinfoRunable(dbNo, tableNo));executo...

2013-02-05 16:23:46 67

原创 程序员需要了解的linux

文件相关下载文件:sz 上传文件 rz  删除文件:rm rm -rf *拷贝:cp –r d1 d2 移动: mv file.exe /tools ll, ls -l 文件信息查看文件大小:du 文件名vi /etc/hostspwdtouch catalina.outchown -R tomcat.tomcat *chown -R adm...

2013-01-31 14:13:34 91

原创 虚拟机相关

 1)内存结构堆Young新生代Eden(伊甸) Survivor(幸存者)from区和to区,严格一致Tenure老生代 非堆栈线程栈线程私有,基本的数据类型和引用,方法出口后进先出数据可共享,如a=3;b=3;指向同一个...

2013-01-30 18:30:23 79

原创 使用linuxcrontab启动程序实现不断运行程序

有时我们程序需要不断处理一件事情如果实时性要求很高,如几秒内,那用程序启动线程循环处理是个不错的选择。但如果实时性要求不是很高,分钟级或以下,那可以选择换个方式,使用linux crontab好处:只要linux不挂,程序就可以正常运行,linux服务器重启后服务也不受影响。比上种方式更稳定,编程更简单。linuxcrontab设置在命令端输入crontab -e,加入定时...

2013-01-30 18:29:53 201

原创 ClassLoader

1)加载类2)加载资源com.explorers.Test.class.getResourceAsStream("abc.jpg") com.explorers.Test.class.getResourceAsStream("/com/explorers/abc.jpg") ClassLoader.getResourceAsStream("com/explorers/abc.jpg")...

2013-01-29 14:21:54 61

原创 我的一些编程分享

附件为PPT

2013-01-29 14:20:49 53

原创 从单元测试开始说起

 制作业引言如果我们现制造一个汽车,如果我们制造完汽车跑不起来,就得去检查哪里出了问题,这样很麻烦,为了减少麻烦,我们把制造汽车分成一个步骤,1.部件的制造,如发动机,轮胎。2.部件检测3.用经过检测的部件来组装汽车4整车试运行。这样可以大大减少出错的概率。 软件业对比软件行业,做一个程序,也可以把这个程序分为功能部分和组装功能的部分,我分别称之为功能程序和衔接程序,功能程序要有单...

2013-01-29 14:20:27 168

原创 代码实例-设计模式-回调方式使用模板方法

批量更新数据/** * 批量更新数据 * @author guanpanpan * * @param <T> */public abstract class BatchUpdate<T> { public final static Logger log = LoggerFactory.getLogger(BatchUpdate.c...

2013-01-29 14:19:46 89

原创 代码实例-设计模式-模板方法

1.接口 package com.jd.consume.domain.lock;import java.util.List;import com.jd.consume.domain.model.OrderTask;/** * 用户消费任务锁定 * @author guanpanpan * */public interface DataLock...

2013-01-29 14:19:04 44

原创 领域驱动设计及分层

•需求:软件的价值-领域部分,和技术无关•设计:减少成本•领域建模:贯通需求和设计,突出领域模型,让领域的复杂度和代码的复杂度相匹配•抽象:并不是象现实世界,而是对现实世界中根据我们要解决的问题进行的抽象建模,比如房子根据我们关注点不同可以抽象成门窗户等构成,但也可以抽象成水泥,钢筋等构成的。界面层应用逻辑层领域层(实体,值对象,服务)基础设施层...

2013-01-28 15:59:41 181

代码实例-spring声明式事务

1.spring配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.

2013-01-28 15:40:12 47

常用的多线程使用方式总结

总论1.可以不用多线程最好不要用2.如果可以不共享数据最好不要共享3.服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量因为数据库访问等待造成线程等待时间长比较长见,下面的例子就是以数据库数据迁徙程序说明。常用模式1.分几个线程处理不同数据适用场景:数据可以容易的分开处理 int dbMax = 10; int t...

2013-01-28 15:35:25 104

代码实例-spring组件配置化-使用注解

1.配置文件important.properties##lockaddConsumeLock.maxLockSize=2addConsumeLock.getSize=4##threadaddConsumeJob.threadSize=2##orderTaskRepositoryorderTaskRepository.postTableSuffix=2012 2...

2013-01-28 15:30:15 80

空空如也

空空如也

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

TA关注的人

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