- 浏览: 35732 次
- 性别:
- 来自: 福州
文章列表
周中去联创面试,去之前感叹下自己成长,一年前我怎么也不可能到这样的公司面试的(烂文凭,烂底子,烂技术),现在靠着现有公司的名头,可以去直接面一把了(很有点小富即安的心态,不可取啊)。
去那坐了会,来了个年轻人,估计是开发经理,按我简历上写的顺序逐个问问题,一个个问下来,问到项目经验与所得时,我居然答不上来了,脑袋空白,看来是没有进入状态,也许我还真没有跳槽的心理准备,也许每天关在那加班让我更生呆滞,也许那样的气氛我很不适应。
最近发现越来越放纵自己,其实心理要有那样一个准则——being Professional。该是总结一下,思考一下的时候了。
- 2009-05-18 01:51
- 浏览 783
- 评论(0)
函数
·函数返回undefined的情形:
函数无返回值
调用了没有参数的return语句
·arguments对象:传递给函数的参数都可由arguments[i]进行访问
可以用arguments对象判断传递给函数的参数个数,可模拟函数重载
·Fuction类
函数可以使用Function类这样定义:
var function_name = new Function(arg1,arg2...argN,function_body
·函数属性和方法:
.length属性: 函数期望的参数个数
valueOf()和toStri ...
- 2008-10-13 23:48
- 浏览 879
- 评论(0)
自从周一老板把合同摆在我面前,我一直在考虑是否与现公司签正式合同的问题,最后的决定是,应该我离开比较好吧。
在刚进入公司的时候,我是很努力的,可到了今天,我却做出了离开的决定。
先从技术上抱怨下这里的不足:
开发方式呆板,项目经理叫人来开下会,确定下表结构,随后按他的思维方式,说了开发方式(主要是页面怎么做,甚至还有中间的细节),随后吩咐我们做,我们做的不是模块,而应该称为页面
没有任何的文档保障,公司只有2份文档,一份叫用户需求(写得尤其朦胧),一份叫用户操作手册(由于系统的易用性不好,这份尤其重要),做了3个月我终于还算熟悉起原来的系统结构,不知以后新人要怎么走过这个过程。
开发得 ...
1. 每个条件项对应一个入参
List find(String hql,Date startTime,int personId);
优点:方法签名可读性强;
扩展:要么改接口签名,要么增加参数构造重载方法,扩展性差;
基本背离了面向接口编程的初衷,除非你很确定参数不被改变,否则少用为佳。
2.使用数组传递条件项参数
List find(String hql, Object[] params);
优点:能保持接口稳定性
缺点:方法可读性不强,JavaDoc要写清楚啊。
用的最多的方法签名方式,Spring的HibernateTemplate就提供这样的方法。
3.使用不定参数
...
可将异常完全抛给struts2框架进行处理。
为实现异常处理,strust2配置了拦截器进行处理:
<interceptors>
<interceptor name="exception" class="com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"/>
</interceptors>
<interceptor-stack name="defaultStack">
<intercep ...
- 2008-08-24 21:43
- 浏览 5276
- 评论(0)
两种结果:[list=1]
局部结果
<action name="actionName" class="package.ActionName">
<result name="逻辑视图名" type="视图结果类型"/>
<param name="参数名">参数值</param>
name属性可以为以下两个值:
·location:参数指定逻辑视图
·parse:是否允许在实际视图名中使用OGNL ...
- 2008-08-24 21:29
- 浏览 2384
- 评论(0)
装饰模式最大的好处就是避免在添加类的职责时使用单纯的继承,本来想写个例子体会继承的痛苦,改进了下,写成了组合的形式:
public class Person {
private String name;
private Set<Clothes> clothes = new HashSet<Clothes>();
public void show(){
for(Clothes c :clothes){
c.show();
}
System.out.println(this.name+" wear");
}
public vo ...
- 2008-08-12 00:35
- 浏览 923
- 评论(0)
装饰模式:用于动态地给一个对象添加一些额外的职责。
一种为类增加功能的方式是:继承原有的类,在重载方法上添加新的职责(或业务逻辑),其实还有一种更好的方法,即为装饰模式。《大话设计模式》中以给人穿衣服这样的过程,展示了动态穿衣的过程:
以人作为Component:
/**
* 例子比较简单,未使用Component的继承
* @author guozw
*
*/
public class Person {
private String name;
public void show(){
System.out.println(this.name+" wear&q ...
- 2008-08-11 17:34
- 浏览 879
- 评论(0)
访问ServletAPI(3种方式)
使用com.opensymphony.xwork2.ActionContext
Object get(Object key)类似于调用HttpServletRequest的getAttribute(String name)的方法
static ActionContext getContext() 获取系统的ActionContext实例
Map getParameters() 获取所有的请求参数,类似于调用HttpServletRequest对象的getParameterMap方法
Map getSession() 返回一个Map,该Map模拟 ...
- 2008-08-10 15:03
- 浏览 1219
- 评论(2)
《大话设计模式》连续三章讲述了三个原则,把这些重要语录摘抄下来,供我日后好好理解。
单一职责原则(Simple Response Principle):就一个类而言,应该仅有一个引起他变化的原因。
当一个类承担了过多的职责,就等于把这 ...
- 2008-07-29 00:29
- 浏览 2050
- 评论(0)
策略模式:一种定义一系列算法的方法,所有的这些方法都完成相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少算法类与使用算法类间的耦合。
策略模式封装了几乎所有的类型规则,只要是在不同时间应用不同的业务规则,都可以考虑使用策略模式处理这种变化的可能性。
使用策略封装算法,同样+-*/的例子,来演示下先:
定义抽象策略类:
public abstract class Strategy {
public abstract double caculate(double a,double b);
}
各具体算法实现类:
public class OpAdd extends Stra ...
- 2008-07-28 16:46
- 浏览 841
- 评论(0)
在之前的简单工厂模式中,使用了工厂方法来构建不同的算法实现类。在工厂类中使用了if语句,定义了许多的if规则来判断具体要构造哪个算法实现类,这样调用类无需知道要创建具体的哪个算法实现类。
但在工厂类中仍旧有许多if的分支,怎样消灭这些if呢?
在jdk5.0引入的枚举类型,似乎可以派上用场。
枚举类型可以在一个对象只生成特定的几种对象时候用,每个生成的对象只是单例的时候用。
在这里,可以将各种规则定义为枚举对象,实现规则的复用:
public enum CaculateType {
ADD('+') {
public Caculation getOpObject() {
retu ...
- 2008-07-28 16:11
- 浏览 1482
- 评论(0)
可以使用简单工厂模式,避免调用类中的代码坏味道,在下面的例子中,主要是避免判断代码直接写在调用类中。 首先定义抽象类,抽象类中封装了操作属性:
public abstract class Caculation {
protected double numberA;
protected double numberB;
public abstract double caculate();
public void setNumberA(double numberA) {
this.numberA = numberA;
}
public void setNumberB(double ...
- 2008-07-28 15:17
- 浏览 879
- 评论(0)
Js在内存中分为两种类型:
原始值:存储在Stack中,值直接存储在变量访问的位置,共有:Undefined Null Boolean Number String (5种原始类型)
引用值:存储在Heap中,存储在变量处的值是一个指针
使用typeof运算符检测变量的类型,可返回:undefined boolean number string
object(变量是引用类型或null)
undefined:变量未被声明过,变量未被赋值,函数无明确返回值(返回的也是undefined)
null:尚未存在的对象,或函数返回的对象不存在
Boolean: 0可以转换为false(非0为 ...
项目需要随时让用户更改登录的背景图片,图片上传比较简单,用struts封装好的,很快写好了。发现上传后无法用户无法实时看到改变的图片,由于图片名称是一样的,ie会做缓存处理,试过设定meta为no-cache仍旧无效,郁闷中,找到了解决办法:
在图片的url后跟上一个随机数作为参数,这样请求就变成这个样子了:
<img src="images/bg.jpg?${requestScope.random }"
Ok,这样对于每个img浏览器多会作为新的请求去服务器上取得了。
- 2008-07-23 12:57
- 浏览 1767
- 评论(0)