学习笔记
酷鱼影子
我不是代码的生产者,我只是代码的搬运工
展开
-
重构改善既有代码的设计--重构第一个案例
1、将长的代码变短,将每个功能抽出来2、将变量名规范化,取个容易看懂的名字3、面向对象的原则,函数使用了来自哪类的信息,就应该放到那个类中。4、查询函数方法:将涉及到该变量的代码抽出成一个函数,在需要调用改变量的地方调用该函数即可。函数取代临时变量,减少了冗长复杂的函数。5、运用多态取代相关的条件逻辑。/** * * @author Administrator */原创 2014-03-25 22:27:23 · 966 阅读 · 0 评论 -
重构改善既有代码的设计--重新组织数据
1、Self Encapsulate Field(自封装字段)动机:你直接访问一个字段,但与字段直接的耦合关系逐渐变得笨拙。做法:为这个字段建立取值/设置函数,并且只以这些函数来访问字段。2、Replace Data value with Object(以值对象取代数据值)动机:比如说电话号码,一开始你可能会用一个字符串来表示“电话号码”概念,但是随后你就会发现,电话号码需要”格式原创 2014-06-13 20:22:13 · 758 阅读 · 0 评论 -
重构改善既有代码的设计-- 重构原则
重构:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。为何重构:重构改进软件设计、重构使软件更容易理解、重构帮助找bug、重构提高编程速度何时重构:三次原则(三次再做类似的事)、添加功能时重构、修补错误时重构、复审代码时重构是什么让程序如此难以修改?四个原因:1、难以阅读的程序,难以修改;2、逻辑重复的程序,难以修改;3、添加原创 2014-05-26 21:39:39 · 1019 阅读 · 0 评论 -
重构改善既有代码的设计--简化条件表达式
1、Decompose Conditional(分解条件表达式)动机:你有一个复杂的条件(if-then-else)语句。做法:从if、then、else三个段落中分别提炼出独立函数。代码1:if(date.before(SUMMER_START) || date.after(SUMMER_END)) charge = quantity * _winter原创 2014-07-10 21:47:51 · 752 阅读 · 0 评论 -
重构改善既有代码的设计--在对象之间搬移特性
1、Move Method(搬移函数)动机:你的程序中,有个函数与其所驻类之外的另一个类进行更多交流:调用后者,或被后者调用。做法:在该函数最常饮用的类中建立一个有着类似行为的新函数。将旧函数变成一个单纯的委托函数,或是将旧函数完全移除。2、Move Field(搬移字段)动机:你的程序中,某个字段被其所驻类之外的另一个类更多地用到。3、Extract Class(提炼类)原创 2014-06-03 21:40:48 · 873 阅读 · 0 评论 -
重构改善既有代码的设计-处理概括关系
有一批重构手法专门用来处理类的概括关系,即继承关系。其中主要是将函数上下移动于继承体系之中。1、Pull Up Field(字段上移)两个子类拥有相同的字段。将该字段移至超类。2、Pull Up Method(函数上移)有些函数,在各个类中产生完全相同的结果。将该函数移至超类。3、Pull Up Constructor Body(构造函数本体上移)你在各个子类中拥有一些构造原创 2014-07-12 23:01:30 · 739 阅读 · 0 评论 -
2014java基础笔记
获取3位数字,前面补零原创 2014-06-02 12:35:53 · 1342 阅读 · 0 评论 -
编写高质量代码——笔记
摘抄《编写高质量代码——改善JAVA程序的151个建议》,记录一下实用的一些知识点。1、不要在常量和变量中出现易混淆的字母包名全小写,类名首字母全大写,常量全部大写并用下划线分割,变量采用驼峰明明法。字母i务必大写。2、静态常量用接口实现好处是不会被newinterface Const{public static final int CONST = 123;}原创 2016-02-21 13:56:04 · 2398 阅读 · 0 评论 -
六个月学会任何一门外语
五个原则1、从跟你有重要关联的内容开始学习2、把外语当成工具,每天说和用3、用“可明白输入”,懂含义先4、要学好外语就要练好功夫,记住学外语是一个生理训练过程5、轻松好奇+忍耐歧义=学得快七个行动1、大量去听。解决因素过滤,练好语感,要懂外语的思维2、注意先放在理解含义3、混合已经会的,创造沟通词组对照、先中文,后外语多媒体化:音频、视频、文字4、从原创 2016-02-29 21:54:11 · 1318 阅读 · 0 评论 -
重构改善既有代码的设计--简化函数调用
前言:关于缩减参数列的重构手法,Doug Lea对我提出了一个警告:并发编程往往需要使用较长的参数列,因为这样你可以保证传递给函数的参数都是不可被修改的,例如内置型对象和值对象一定是不可变的。通常,你可以使用不可变对象取代这样的长参数列,但另一方面你也必须对此类重构保持谨慎。多年来,我一直坚守一个很有价值的习惯:明确地将“修改对象状态”的函数(修改函数)和“查询对象状态”的函数(查询函数)分开原创 2014-07-12 01:07:13 · 798 阅读 · 0 评论 -
重构改善既有代码的设计--代码的坏味道
代码的坏味道1、Duplicated Code重复代码2、Long Method过长函数如果函数内有大量的参数和临时变量,它们会对你的函数提炼形成阻碍。如果你尝试运用Extract Method(提炼函数),最终就会把许多参数和临时变量当做参数,传递给提炼出来的新函数,导致可读性机会没有任何提升。此时,你可以经常运用Replace Temp with Query(查询取代临时变量)来消原创 2014-05-27 22:00:48 · 828 阅读 · 0 评论 -
重构改善既有代码的设计--重新组织函数
1、Extract Method (提炼函数)动机:你有一段代码可以被组织在一起并独立出来。做法:将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。如下面的实例,提炼后的代码变得更清晰易读。提炼前代码:void printOwing(double previousAmount)){ Enumeration e = _orders.elemnets()原创 2014-06-03 20:40:12 · 777 阅读 · 0 评论 -
myeclipse
工程属性Properties/MyEclipse/Web/Web Context-root修改的时候:/ 表示root路径隐藏关闭工程在package explorer右侧有个向下的小三角,点击以后选择Filters-->>>弹出的新窗口中第三项为Closed projects,选中此复选框然后点击OK即可。comments注释原创 2013-08-27 21:50:04 · 757 阅读 · 0 评论 -
linux命令小结
-f: 覆盖/删除时不加提示。 -r: 删除目录包括子目录。 -i: 覆盖/删除时加提示。 -a: 复制目录时保持文件属性。 -v:打印出详细信息。-c: 当发生改变时,报告处理信息。-p:保存权限1) 重复操作命令 Ctrl+r:重做上一个动作。(常用) 2) 撤销命令 u:复原前一个动作。(常用) 5) 屏幕翻滚类命令 Ctr原创 2013-08-27 21:39:49 · 817 阅读 · 0 评论 -
jquery
页面做加法运算td id= "count" colspan ="2" align="left"> 合计: span> 50.0span >分 script type="text/javascript" > $().ready( function(){ var count=0; $.each($( "input[name='val原创 2013-08-27 21:37:52 · 623 阅读 · 0 评论 -
javascript笔记
字符串倒序var str = "s,d,f,a,s,g,f" ;function reverse(str) {// 在此处加入代码,完成字符串翻转功能 var strArr = str.split( ","); var newStr = ""; for( var i=strArr.length-1;i>=0;i--原创 2013-08-27 21:30:46 · 960 阅读 · 0 评论 -
hibernate日常笔记
jdbcTemplatebean id= "jdbcTemplate" class= "org.springframework.jdbc.core.JdbcTemplate" > property name ="dataSource" ref="nuDataSource"/> bean >映射文件使用formula(公式)关键词在l原创 2013-08-27 21:27:31 · 695 阅读 · 0 评论 -
小知识点
web.xml配置统一错误处理errorPage:指定错误提示页面(转发技术)。值为一个路径。如果以"/"开头,表示绝对路径,/代表当前应用。 另一种配置错误页面的方式(非转发技术):修改web.xml,配置全局错误提示页面 java.lang.Exception原创 2013-08-27 23:10:51 · 792 阅读 · 0 评论 -
java基础
BigDecimal一般的float型和Double型数据只可 以用来做科学计算或者是工程计算,由于在商业计算中,要求的数字精度比较高,所以要用到java.math.BigDecimal类,它支持任何精度的定 点数,可以用它来精确计算货币值。package test.java;import java.math.BigDecimal;public cl原创 2013-08-27 21:32:28 · 582 阅读 · 0 评论 -
创建表空间
create tablespace TMS_WORK logging datafile 'C:\oracle\oradata\user_data.dbf'size 50m autoextend on next 50m maxsize 20480m extent management local;原创 2013-08-27 21:53:32 · 611 阅读 · 0 评论 -
mysql
mysql截取字段字符串SELECT SUBSTRING(login_time,12,2),COUNT(*) FROM LOGIN_LOG_P GROUP BY SUBSTRING(login_time,12,2) ORDER BY SUBSTRING(login_time,12,2)原创 2013-08-27 21:53:12 · 773 阅读 · 0 评论 -
小错误
关于Action中开启事务Action中开启了事务,即产生了代理,这时候不能继承ActionSuport或其他任何接口,否则会报noSuchMethod异常原因:有接口的类使用的代理为jdk,jdk根据接口的方法代理,子类所有的方法无法代理页面报no result异常目标有三种情况:1、第二种情况:配置问题,action的result结果集或者是xml配原创 2013-08-27 23:04:43 · 771 阅读 · 0 评论