- 博客(45)
- 收藏
- 关注
原创 读书笔记之何时重构(下)
因为中间看了一本其他的书,差不多一个月未跟新读书笔记了,这段时间要补补课,接着上一章继续说说何时重构,文章中很多重构的方法这里还没有说明,后续章节会详细的介绍这些经常使用到的重构方法,尽请期待:11、平行继承体系(Parallel):每当你为某个类增加一个子类的时候也必须为另一个类增加一个子类。如果你发现某个继承体系的名称前缀和另一个继承体系的名称前缀完全相同的时候就是需要重构的地方了。...
2012-05-21 11:14:25
160
原创 【开发日志】CarbonIO与BlueNet:下一代的网络技术
作者:CCP Curt 译者:CCP Lion 大多数熟悉EVE的人都知道,它是用Python语言编写的,如果要说得更具体点,那就是Stackless Python。Stackless是在Python基础上编写的一套微线程框架,它能在不产生大量Python自身额外开销的情况下同时容纳数百万条的线程。但话还是要说回来,它毕竟还是Python,因此摆脱不了“解释器全局锁”(Globa...
2012-05-17 19:33:42
299
一个压缩JS的eclipse插件
在开源中国上发现了一个JS压缩的eclipse插件,可以简单的压缩单个JS文件原帖地址http://www.oschina.net/question/54371_41153 但是使用项目的在线安装地址安装总是失败就直接下了个项目的源代码,重新进行了编译和打包工作,在eclipse 3.6下目前工作正常,拿出来分享一下。...
2012-05-03 16:22:11
626
读书笔记之何时重构(上)
1、重复代码(DuplicatedCode):一个以上的地方看到相同的程序结构,那么当可肯定:设法将他们合而为一,程序会变得更好; 2、过长函数(Long Method):一个较长的函数应该要设法将其拆成数个小的函数,越长的程序将让人越难以理解; 3、过大类(Large Class):过大的类中往往有太多的实例变量和重复代码,你要做的就是提炼它们,消除重复代码和过长的函数...
2012-04-26 16:12:42
148
读书笔记之重构原则
第二章:重构原则原则1:添加功能时不要改动已有代码,重构时不要添加新的功能或者改变测试代码,除非是为了处理接口的变化;原则2:重构可以改进软件设计,使代码更容易理解,帮助找到BUG,提高编程速度;原则3:第一次做某件事时只管去做,第二次做类似的事时会产生反感,第三次再做类似的事时,你应该要重构了;原则4:重构不如重写代码时请放弃重构,项目最后期限时请放弃重构;原则5:接口...
2012-04-06 16:17:46
140
原创 读书笔记之什么是重构
第一章:什么是重构第一步:编写一个能够快速运行的测试,重构需要依赖测试,这非常重要。第二步:找到长长代码的方法,然后分解它,分解有以下几个步骤:1、找出逻辑泥团,将其提炼出来;(tip:小步前进,每次只进行微小的修改)2、修改变量名称,使其更容易理解;(tip:优秀的程序员会写出人类容易理解的代码)3、移动代码使其放在更适合的类中,不要变更函数名使其适应新的类;4、找...
2012-04-01 11:37:42
140
原创 JavaScript对象与JSON字符串的相互转换
JSON(JavaScript Object Notation) 是JavaScript编程语言的一个子集。正因JSON是JavaScript的一个子集,所以它可清晰的运用于此语言中。eval函数 JSON文本转换为对象 为了将JSON文本转换为对象,可以使用eval函数。eval函数调用JavaScript编辑器。由于JSON是JavaScript的子集,因此编译器将正确的...
2012-02-27 15:41:06
104
原创 GOF 23个基本的设计模式
Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。Adapter:将一个类的接口转换成客户希望的另外一个接口。A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。Builder:将一个复杂对象的构建与它的表示分离,使得同样的构...
2012-02-12 13:12:03
116
原创 weblogic部署出现包冲突的解决办法
由于有些客户在同一个server里部署多个应用,各个应用使用的jar包版本有所不同或者公共weblogic包里有不同版本的jar或其他原因,造成在部署我们的应用时,包冲突,导致部署失败;为了避免包冲突,可以通过配置,使得web应用启动时类装载采用从web-inf开始装载,具体方法是:通过对weblogic.xml添加如下参数实现,同时需要增加相应的必需包,例如xalan.jar 和xerce...
2012-01-02 11:32:34
224
原创 深入浅出组合模式(转)
一、引子在大学的数据结构这门课上,树是最重要的章节之一。还记得树是怎么定义的吗?树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:(1) 有且仅有一个特定的称为根(Root)的结点;(2) 其余的结点可分为m(m≥0)个互不相交的子集Tl,T2,…,Tm,其中每个子集本身又是一棵树,并称其为根的子树(SubTree)。上面给出的...
2011-12-28 21:28:54
86
原创 hibernate 无主键表的处理
1、hibernate 无主键表的处理可看成多主键表来处理2、多主键entity对象定义方式需要实现Serializable接口并且重写equals(Object obj)和hashCode()两个方法,下面是例子 public boolean equals(Object obj) { if(obj == this) { ...
2011-11-17 10:12:06
260
原创 ORACLE 归档日志打开关闭方法
原文地址:http://blog.youkuaiyun.com/fengyifei11228/archive/2010/12/02/6049357.aspx一 设置为归档方式 view plaincopy to clipboardprint?1 sql> archive log list; #查看是不是归档方式 2 sql> alter sys...
2011-05-31 17:31:51
114
原创 JDBC连接H2 数据库
2010-04-28原文链接:http://conanca.iteye.com/blog/654679JDBC连接H2 数据库文章分类:数据库H2 Database是一个非常轻量级的嵌入式关系型数据库,我通常拿它来做个Demo啊,评估一个新框架啊什么的。非常轻便易用。 先看一下如何通过jdbc访问h2吧写道H2 Server ...
2011-05-25 13:49:57
484
原创 H2database指南
2008-07-19H2database指南关键字: h2database tutorial 嵌入式数据库前言 :H2database是一款用java语言编写的开源数据库。 H2服务器下载下载地址: http://www.h2database.com/。 原文地址http://www.h2database.com/html/tutorial.html 下文前提是数据库已被解...
2011-05-25 12:59:05
209
原创 查询表空间
查询表空间1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablesp...
2011-05-17 10:52:56
163
原创 程序员为什么不写单元测试?
程序员为什么不写单元测试?一、为了单元测试而写单元测试 最近笔者曾经做过一次“程序员在项目开发中编写单元测试的情况”的调查。 调查结果显示: 1. 几乎没有严格在项目中执行TDD(,TDD)。 2. 为大部份业务方法编写单元测试,并保证方法测试通过,占16.6%。 3. 偶尔编写单元测试,一般情况下不写单元测试,占58.3%。 4. 为了应付项目检查而写单元测试,...
2011-05-17 10:22:42
198
原创 使用Spring2.5的Autowired实现注释型的IOC
使用Spring2.5的Autowired实现注释型的IOCJava代码 使用Spring2.5的Autowired实现注释型的IOC 阅读(31) 评论(0) 发表时间:2009年01月16日 11:57 本文地址:http://qzone.qq.com/blog/55357655-1232078233 本文标签: Auto...
2011-04-14 21:58:07
118
原创 Weblogic远程调试
Weblogic远程调试文章分类:Java编程配置weblogic远程调试之前,需要做这几个工作: 1) 安装weblogic服务器,然后创建一个域; 2) 安装eclipse集成IDE; 3) eclipse中包含发布的工程。 在上面几个工作完成之后,配置weblogic远程调试需要这么几个步骤: 第一步,修改weblogic根目录下user_pro...
2011-04-14 21:57:06
245
原创 Windows命令行窗口日志输出重定向方法
Windows命令行窗口日志输出重定向方法文章分类:Ruby编程 关键字: windows 命令行 日志 输出 重定向经常在windows下部署或运行一些B/S系统,由于windows命令行启动软件后,日志信息默认在命令行输出,如果希望将日志信息保留进行跟踪查看,可以将命令行输出重定向到文本文件中进行保存,具体方法如下: a) 备份相应组件命令行启动批处理文件并编辑添加如下内容(如...
2011-04-14 21:55:58
2620
原创 java虚拟机jvm关于内存的设置与调优
java虚拟机jvm关于内存的设置与调优JVM内存的设置的原理 默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。设置jvm内存的方法,对于单独的.class,可以用下面的方法对Test运行时的jvm内存进行设置。java -Xms64m -Xmx256m Test-Xms是设置内存初始化的大小-Xm...
2011-04-14 21:54:15
93
原创 oracle常用优化命令
1830个Oracle语句优化规则详解1.选用适合的Oracle优化器Oracle的优化器共有3种:a.RULE(基于规则)b.COST(基于成本)c.CHOOSE(选择性)设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE、COST、CHOOSE、ALL_ROWS、FIRST_ROWS。你当然也在SQL句级...
2011-04-14 21:53:10
106
原创 在excel 2007中导入或导出文本文件_excel教程
使用 Microsoft Office Excel 从文本文件导入数据有两种方式:能在 Excel 中打开文本文件,也能导入作为外部数据区域 (外部数据区域:从 Excel 的外部(如,数据库或文本文件)导入工作表的数据区域。在 Excel 中,可为外部数据区域中的数据设置格式或用其进行计算,就如同对其他所有数据相同。)的文本文件。要将数据从 Excel 导出到文本文件,请使用“另存为”命令。...
2011-03-08 11:24:36
273
原创 项目管理系统Redmine(v1.1.0)安装手记
一、环境 1.硬件普通PC。 2.软件Windows XP操作系统。 二、下载必要的软件 1.Ruby 1.8.xRedmine是基于Ruby On Rails的软件,所以首先要下载Ruby。由于目前Redmine只支持Ruby 1.8,所以这里我们下载1.8分支的最新版本。下载地址:http://www.ruby-lang.org/en/downloa...
2011-02-23 13:53:33
122
原创 设计模式之java接口和java抽象类
设计模式之java接口和java抽象类关键字: 设计模式之java接口和java抽象类java不允许多重继承,也就是说一个子类只能有一个父类, Son extends FatherA,FatherB 是错误的 为了弥补这点不足,java允许实现多个接口, 接口就是给出一些没有内容的方法,类似于C++中的虚类。到具体用的时候再由用的方法自己定义内容,要注意的是想用接口必须...
2011-02-14 14:10:00
77
oracle RMAN备份步骤
1、 要使用RMAN备份前提是必须启动ORACLE归档日志功能;2、 首先检查数据库归档日志模式,以DBA用户模式登陆系统,执行[code="sql"]SELECT log_mode from v$database;--查看数据库归档方式[/code]3、 如果结果为NOARCHIVELOG则需要将数据库模式设置为归档模式,否则跳过此步A、 关闭数据库[code="sql"]S...
2011-01-17 11:26:33
448
原创 删除oracle当前用户下的所有表、视图、过程的方法(转载)
select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables;--delete tablesselect 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views;--delete viewssel...
2010-06-13 19:37:27
101
原创 约瑟夫问题的数学方法
问题描述约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1 开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。问题解答:在此先给出一般问题的解答思路[code="c"]#include void initialize(ch...
2009-04-16 11:13:57
164
windows XP下openbravo ERP 2.40安装手迹
装了好几遍,浪费了大量时间后总算安装成功了,为了以后的方便特地在这里写下安装的全过程。1、安装环境操作系统 windows xp2数据库 oracle 10g xetomcat 版本 5.5apache-ant 1.7.1java jdk 1.5.0_162、环境配置JAVA_HOME 赋值java...
2009-02-27 00:16:25
85
windows XP下openbravo ERP 2.40安装手迹
装了好几遍,浪费了大量时间后总算安装成功了,为了以后的方便特地在这里写下安装的全过程。1、安装环境操作系统 windows xp2数据库 oracle 10g xetomcat 版本 5.5apache-ant 1.7.1java jdk 1.5.0_162、环境配置JAVA_HOME 赋值java安装目录CATALINA_HOME 赋值tomcat安装目录CATALINA_BASE 赋值tomc...
2009-02-20 10:37:00
68
把字符串赋值给字符数组
socket类有一对函数send()和recv()但是当使用过程中会发现他们之间只能用字符数组互相传递字符串。因此就产生了要把用GetDlgItemText()获得的字符串赋值给字符数组,然后才能正常传递的问题。 到网上搜索了半天终于找到了转换的方法: char ss[1024]; CString temp; strcpy(ss,(LPCTSTR)temp); 原来如此简单…...
2007-10-30 21:17:00
421
用VC++6.0的Sockets API实现一个聊天室程序(转帖)
1.VC++网络编程及Windows Sockets API简介 VC++对网络编程的支持有socket支持,WinInet支持,MAPI和ISAPI支持等。其中,Windows Sockets API是TCP/IP网络环境里,也是Internet上进行开发最为通用的API。最早美国加州大学Berkeley分校在UNIX下为TCP/IP协 议开发了一个API,这个API就是著名的Berkele...
2007-10-29 23:11:00
186
在VC++中生成伪随机数祥解(转帖)
为追求真正的随机序列,人们曾采用很多种原始的物理方法用于生成一定范围内满足精度(位数)的均匀分布序列,其缺点在于:速度慢、效率低、需占用大量存 储空间且不可重现等。为满足计算机模拟研究的需求,人们转而研究用算法生成模拟各种概率分布的伪随机序列。伪随机数是指用数学递推公式所产生的随机数。从 实用的角度看,获取这种数的最简单和最自然的方法是利用计算机语言的函数库提供的随机数发生器。典型情况下,它...
2007-10-27 19:26:00
124
点对点(P2P)多线程断点续传的实现(转贴)
在如今的网络应用中,文件的传送是重要的功能之一,也是共享的基础。一些重要的协议像HTTP,FTP等都支持文件的传送。尤其是FTP,它的全称就是 “文件传送协议”,当 初的工程师设计这一协议就是为了解决网络间的文件传送问题,而且以其稳定,高速,简单而一直保持着很大的生命力。作为一个程序员,使用这些现有的协议传送 文件相当简单,不过,它们只适用于服务器模式中。这样,当我们想在点与点之间传送文件就不适用...
2007-10-16 11:54:00
141
世界最好的推销员
一个乡下来的小伙子去应聘城里“世界最大”的“应有尽有”百货公司的销售员。老板问他:“你以前做过销售员吗?”他回答说:“我以前是村里挨家挨户推销的小贩子。”老板喜欢他的机灵:“你明天可以来上班了。等下班的时候,我会来看一下。” 一天的光阴对这个乡下来的穷小子来说太长了,而且还有些难熬。但是年轻人还是熬到了5点,差不多该下班了。老板真的来了,问他说:“你今天做了几单买卖” “一单。”年...
2007-10-11 14:37:00
95
用rand()和srand()产生伪随机数的方法总结 (转载)
用rand()和srand()产生伪随机数的方法总结 ---------------------------------标准库<cstdlib>(被包含于<iostream>中)提供两个帮助生成伪随机数的函数:函数一:intrand(void);从srand(seed)中指定的seed开始,返回一个[seed,RAND_MAX(0x7fff))间的随机整数。...
2007-09-29 16:10:00
122
sendmessage()和postmessage()使用的注意事项
向主事件循环外传递消息可能会引起不可预知的问题。例如,在主事件循环外通过sendmessage()向winproc()直接传递一个消息,可以终止窗口。但是如果按正常规程那样做本以为主事件循环中的事件句柄会处理该消息,则会产生一个超出执行次序的故障,这表示本以为事件B在事件A之后发生,但是在某些情况下事件B在事件A之前发生了。这是传递消息时容易出现的典型问题,因此一定要确认深思熟虑,postmess...
2007-09-22 11:31:00
198
if 语句的优化
if语句很简单,相信大家都会,但是确有很多值得注意的。首先来说一下codestyle的问题。=========不好的风格===========if((x+4-y*25)>10||y>1023||GetSomething()){....}=========好的风格============if((x+4-y*25)>10||y>1023||GetSomething())...
2007-09-14 21:17:00
143
VC++中的消息处理
MessageBox()并没有什么多少功能,但是能够在屏幕上显示一个窗口,提出一个问题,并且等候用户的输入。下面是MessageBox()的原型: int MessageBox(HWND hwn,//handle of owner window LPCTSTR lptext,//address of text in message box LPCTST...
2007-09-11 16:09:00
77
一些简单编程技巧的总结(一)
技巧:程序应以类似RISC(精简指令系统计算机)的形式来编写。换句话说,尽量简化你的代码,而不是使它更复杂。处理器特别喜欢简单指令,而不是复杂的指令,你的程序可以长些,但应尽量使用简单指令,使程序相对于编辑器来说更加简单些。例如,不要编写类似下面的程序: if((x+=(2*buffer[index++])>10) { //进行工作 }//结束 应这样做 x+=(2...
2007-09-11 10:48:00
81
[译]游戏编程入门(by David Astle)(转载)
经常有人问我,没有编程经验的人该如何开始开发游戏。在此之前,我总是一个个的尽力回答。然而,后来提相同问题的人数增长到难以处理的地步。我决定,是时候把我所有的建议写成文章,作为一个大概。这 篇文章是针对那些想要开发自己游戏,但几乎没有编程经验的人。事实上,我假设读者没有任何编程经验。我主要讨论游戏开发的程序和设计方面,而不是艺术性。 我也不准备讲述如何进入游戏行业(这方面已经有足够的资料),而只是让...
2007-08-07 16:39:00
98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人