- 浏览: 17368 次
- 性别:
- 来自: 上海
最新评论
文章列表
Javascript function 与 java function 调用区别。
前者一个对象的function不会异步执行(不会同时执行一个方法),后者会.
Javascript function中的this没有prototype, this 就是prototype?
代码的坏味道就像病人的病状一样,知道了病状,就可以对症下药。文中的重构手法在书中都可以找到。
Duplicated Code
1、同一个类的两个函数含有相同的表达式。重构手法:Extract Method
2、两个互为兄弟的子类内含相同的表达式 ...
代码的坏味道(1)—重构改善代码的既有设计
- 博客分类:
- 读书笔记
很长很长的函数,很多很多的不知所云的变量,相信大家肯定碰到过这样的代码,这种代码真的很dirty,维护起来绝对让人心烦意乱。重构改善代码的既有设计这本书确实是一本不错的书,对程序员的代码修养的提升是有帮助的。
要写一手好的代码,其实就像练功一样,要时刻练习。虽然这是本重构的书,但是重构的好处就在于,重构时了解到了这种代码不该这么写而该那样写,那么在自己下次写代码的时候就知道了该怎么写,在改错误的同时,增加自己的能力。
重构,如何重构呢,如何找到要重构的代码呢?代码的坏味道这章写的确实不错。
今天就到这。明继续。
在我们编程的时候,涉及到数据库的操作,就效率而言,其实对我们一般的程序员来说,最重要的莫过于对数据库的访问了,如果你能保证尽量少的Connection,而在一次Connection中做尽量多的事情
,就达到了效率的第一层了,第二 ...
第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项, ...
ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求.
原子性
(Atomicity)
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务 ...
前面的easyFormValidateWithJquery.js是基于 Jquery的,是我在工作中的第一个验证插件,使用起来比较灵活的。但是不足之处也显而易见,除了细节方面的诸多不足,最大的不足就是在于是干扰表单式的,所以一定要对表单的元素属性进行修改,这就在可重用性、维护性等方面造成了不便,这毕竟是把双刃剑,灵活的同时污染了表单。
其实在工作中很快我就写了第二个验证插件,这次是无干扰式的,而且是基于Dom的Javascript,不需要Jquery库支持。下面就附上代码。
//easyFormValidate2.0
//easyFormValidateWithDom.js
//本验证方 ...
其实基于Js的验证插件机很多很多,使用起来也非常方便。为了学习Js的目的,在工作中我也自己写了个小验证插件,非常简单。
我觉得验证框架的大体流程是这样的,
(1)收集需要验证的元素(干扰式:直接写在页面表单中,无干扰式:使用Json配置需要验证的元素并在验证框架中分析Json提取需要验证的元素)
(2)选择验证方式(离开输入框即验证、表单提交验证等)
(3)使用验证方法验证(使用正则表达式实现常用的验证方法,要做到可扩展性)
(4)如若验证失败,根据失败信息显示方式,显示失败提示信息。
总的来说就是分成数据收集模块,验证模式模块,验证方法模块,错误显示模块。
下面送上我的第一个基于 ...
标题:普通行列转换(version 2.0)
作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)
时间:2008-03-09
地点:广东深圳
说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):
姓名 语文 数学 物理
---- ---- ---- ----
李四 74 84 94 ...
1、基础类:
String(java.lang)是final类,Math(java.lang)是final类,基础类型的包装类都是final类
String:
其中一个构造方法:String(char[] value)
一些有用的方法:
static String valueOf(int i) 返回参数的字符串类型,参数有8大基本类型,byte,short自动能转换成int,所以其实只有6大,参数还可以是char数组,还可以是 Object对象。static String valueOf(Object obj)
String replace(char oldChar, char newChar ...
1、synchronized(this)的含义,是锁定当前对象,还是锁定一段代码,举个例子看看能另外一个线程能否访问这个类对private属性。 事实证明,synchronized修饰的method1的话,如果该类中method2没有加synchronized修饰符,则如果在执行 method1的过程中,主线程可以执行了method2,也就是说,如果method2改变该类属性的话,在method1得到的属性是改变后的属性。读脏数据。不一致性。如何解决,那就是method2前面也加synchronized修饰符。该修饰符表示获得这个对象的锁,一个对象只有一个锁,如果你想获得他的锁的话,你必须等我执 ...
Struts标签
视图端的技术,是用在JSP中的。使用标签的好处是界面清晰,是界面都是标签,对界面开发人员有好处,只要界面开发人员弄懂标签这门技术就可以了。可重用性、封装性比较好,一个标签就可以办到,而不用重复的在不同的页面中写代码了
bean:write等struts标签是在服务器端即tomcat中执行的,而input等html语句是在客户端解析的,由IE执行的
logic:empty与logic:present表示是否为空或者是否存在
举个例子:
<table align="center" border="1">
<tr> ...
抽象类:(1)包含抽象方法(C++叫纯虚函数)的类叫做抽象类,一个类包含一个或多个抽象方法(仅有声明但没有方法体),该类必须被限定为抽象的。否则编译器会报错。(接口中的属性隐式地是static和final的,接口中的方法默认为public的,这些方法被继承的过程中,一定要申明为public的,否则访问权限降低,java编译器不允许)。
(2)为抽象类创建对象是不安全的。如果从一个抽象类继承,并想创建该类的对象,则必须实现所有抽象类中的抽象的方法。否则这个类也是抽象类。也可能创建一个没有任何抽象方法的抽象类。(如果一个类包含任何抽象方法都没有任何意义)
(3)某个类成为抽象类并不需要所有的方法都是 ...
1、Socket编程客户端的主要步骤
1) 客户端提供主机地址和端口号使用socket端口建立连接,得到DataOutputStream和DataInputStream。
2) 创建Socket(stocket=ip+端口),new Socket(Server ip,Server port)试图连接,如成功才有对象
3) 调用socket.getInputStream,socket.getOutputStream获得服务器端的IO流
4) 用处理流封装后与客户端交互,原则(你读我写,一读一写)
6) 关闭IO流,socket。
? Socket编程服务器端的主要步骤
1) 服务器分配一个端口号, ...