<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小方的Java博客

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      27 隨筆 :: 17 文章 :: 115 評(píng)論 :: 0 Trackbacks

    2006年6月30日 #

    我在做公司某個(gè)框架時(shí)有這么一個(gè)需求。每次調(diào)用dwr的方法前要檢查用戶(hù)是否已經(jīng)登錄,否則就不能執(zhí)行并且退到首頁(yè)。

    當(dāng)然了,做攔截器有很多方式,但經(jīng)過(guò)研究發(fā)現(xiàn)DWR自帶很多插件,其中就有一個(gè)調(diào)用處理的插件。具體做法如下。

    在web.xml里的DWR配置中加入一個(gè)參數(shù):
    <init-param>
                
    <param-name>
                    org.directwebremoting.extend.Remoter
                
    </param-name>
                
    <param-value>com.xxx.base.framework.web.MyDWRRemoter</param-value>
            
    </init-param>

    然后自己創(chuàng)建這個(gè)實(shí)現(xiàn)類(lèi)。
    public class MyDWRRemoter extends DefaultRemoter
    {

        
    public Replies execute( Calls calls )
        
    {
            HttpSession session 
    = WebContextFactory.get().getSession();
            ISessionContainer sc 
    = ( ISessionContainer ) session.getAttribute( ISessionContainer.SESSION_CONTAINER_KEY );

            
    //session檢查
            if ( sc == null || sc.getUserInfo() == null )
            
    {
                logOut();
                
    return super.execute( new Calls() );
            }

            
    else
            
    {
                IUserInfo userInfo 
    = sc.getUserInfo();
                
    if(!SecurityFactory.getInstance().isOnline( userInfo.getUserID(), session.getId() ))
                
    {
                    logOut();
                    
    return super.execute( new Calls() );
                }

            }

            
    return super.execute( calls );
        }


        
    private void logOut()
        
    {
            WebContext wct 
    = WebContextFactory.get();
            Util utilThis 
    = new Util(wct.getScriptSession());
            utilThis.addScript( 
    new ScriptBuffer("logOut()"));
        }

    }

    其中,檢查用戶(hù)是否登錄,如果沒(méi)有登錄就返回一個(gè)空的super.execute( new Calls());, 不能返回null否則會(huì)報(bào)錯(cuò)。
    檢查通過(guò)就調(diào)用super.execute( calls );  其實(shí)calls里還能獲得很多信息。

    最后大家注意logOut方法,這里用到了DWR2.0新功能:DWR反向調(diào)用,就是DWR調(diào)用javascript,具體用法大家網(wǎng)上可以查到,需要配置的,我這里就不多說(shuō)了。補(bǔ)充一下,addScript調(diào)用的是html里的function logOut().

    這樣的話,如果用戶(hù)session超時(shí),或被管理員踢掉,一旦他做任何dwr操作就會(huì)被強(qiáng)迫登出到首頁(yè)了。
    posted @ 2008-12-05 20:42 方佳瑋 閱讀(2902) | 評(píng)論 (3)編輯 收藏

    很久以前看某本書(shū)整理的,忘了哪本了,現(xiàn)在貢獻(xiàn)出來(lái)。

    1)在select語(yǔ)句中使用條件邏輯

    1select ename,sal,   
    2       case when sal <= 2000 then 'UNDERPAID'  
    3            when sal >= 4000 then 'OVERPAID'  
    4            else 'OK'  
    5       end as status   
    6from emp   


    ENAME SAL STATUS
    ---------- ---------- ---------
    SMITH 800 UNDERPAID
    ALLEN 1600 UNDERPAID
    WARD 1250 UNDERPAID
    JONES 2975 OK
    MARTIN 1250 UNDERPAID
    BLAKE 2850 OK
    CLARK 2450 OK
    SCOTT 3000 OK
    KING 5000 OVERPAID
    TURNER 1500 UNDERPAID
    ADAMS 1100 UNDERPAID
    JAMES 950 UNDERPAID

    FORD 3000 OK
    MILLER 1300 UNDERPAID

     

    2)從表中隨機(jī)返回n條記錄

    1select *   
    2  from (   
    3    select ename, job   
    4    from emp   
    5    order by dbms_random.value()   
    6  )   
    7  where rownum <= 5 

     

    3)按照子串排序

    比如要從EMP表中返回員工名字和職位,并且按照職位字段最后2個(gè)字符排序

    1select ename,job   
    2  from emp   
    3order by substr(job,length(job)-2

    ENAME JOB
    ---------- ---------
    KING PRESIDENT
    SMITH CLERK
    ADAMS CLERK
    JAMES CLERK
    MILLER CLERK
    JONES MANAGER
    CLARK MANAGER
    BLAKE MANAGER
    ALLEN SALESMAN
    MARTIN SALESMAN
    WARD SALESMAN
    TURNER SALESMAN
    SCOTT ANALYST
    FORD ANALYST

     

    4)處理空值排序

    當(dāng)被排序的列存在空值,如果希望空值不影響現(xiàn)有排序

    1select ename,sal,comm   
    2   from emp   
    3order by comm nulls last 

     

    ENAME SAL COMM
    ------ ----- ---------
    TURNER 1500 0
    ALLEN 1600 300
    WARD 1250 500
    MARTIN 1250 1400
    SMITH 800
    JONES 2975
    JAMES 950
    MILLER 1300
    FORD 3000
    ADAMS 1100
    BLAKE 2850
    CLARK 2450
    SCOTT 3000
    KING 5000

    1select ename,sal,comm   
    2  from emp   
    3order by comm desc nulls first 


    ENAME SAL COMM
    ------ ----- ----------
    SMITH 800
    JONES 2975
    CLARK 2450
    BLAKE 2850
    SCOTT 3000
    KING 5000
    JAMES 950
    MILLER 1300
    FORD 3000
    ADAMS 1100
    MARTIN 1250 1400
    WARD 1250 500
    ALLEN 1600 300
    TURNER 1500 0

    5)根據(jù)數(shù)據(jù)項(xiàng)的鍵排序

    比如如果job是“SALESMAN”,根據(jù)COMM排序,否則根據(jù)SAL排序

    1select ename,sal,job,comm   
    2  from emp   
    3 order by case when job = 'SALESMAN' then comm else sal end  


    ENAME SAL JOB COMM
    ---------- ---------- --------- ----------
    TURNER 1500 SALESMAN 0
    ALLEN 1600 SALESMAN 300
    WARD 1250 SALESMAN 500
    SMITH 800 CLERK
    JAMES 950 CLERK
    ADAMS 1100 CLERK
    MARTIN 1250 SALESMAN 1300
    MILLER 1300 CLERK
    CLARK 2450 MANAGER
    BLAKE 2850 MANAGER
    JONES 2975 MANAGER
    SCOTT 3000 ANALYST
    FORD 3000 ANALYST


     

    6)從一個(gè)表中查找另一個(gè)表中沒(méi)有的值

    比如要從DEPT中查找在表EMP中不存在數(shù)據(jù)的所有部門(mén)(數(shù)據(jù)中,DEPTNO值為40的記錄在表EMP中不存在)

    1select deptno from dept   
    2minus   
    3select deptno from emp 


     

    7)在運(yùn)算和比較時(shí)使用null值

    null不會(huì)等于和不等于任何值,null和自己都不等于。以下例子是當(dāng)comm有null的情況下列出比“WARD”提成低的員工。 (coalesce函數(shù)將null轉(zhuǎn)換為其他值)

    1select ename,comm,coalesce(comm,0)   
    2  from emp   
    3where coalesce(comm,0< ( select comm   
    4                                     from emp   
    5                                    where ename = 'WARD' )


    ENAME COMM COALESCE(COMM,0)
    ---------- ---------- ----------------
    SMITH 0
    ALLEN 300 300
    JONES 0
    BLAKE 0
    CLARK 0
    SCOTT 0
    KING 0
    TURNER 0 0
    ADAMS 0
    JAMES 0
    FORD 0
    MILLER 0

     

    8)刪除重復(fù)記錄

    對(duì)于名字重復(fù)的記錄,保留一個(gè)

    1delete from dupes   
    2 where id not in ( select min(id)   
    3                      from dupes   
    4                     group by name ) 

     

    9)合并記錄
    比如如下需求:
    如果表EMP_COMMISSION中的某員工也存在于EMP表,那么更新comm為1000
    如果以上員工已經(jīng)更新到1000的員工,如果他們SAL少于2000,刪除他們
    否則,從表中提取該員工插入表EMP_COMMISSION

    1merge into emp_commission ec   
    2using (select * from emp) emp   
    3    on (ec.empno=emp.empno)   
    4 when matched then  
    5       update set ec.comm = 1000   
    6       delete where (sal < 2000)   
    7 when not matched then  
    8        insert (ec.empno,ec.ename,ec.deptno,ec.comm)   
    9       values (emp.empno,emp.ename,emp.deptno,emp.comm)  

     

    10)用sql生成sql

    1select 'select count(*) from '||table_name||';' cnts   
    2  from user_tables;   


    (user_tables是oracle的元數(shù)據(jù)表之一)

    CNTS
    ----------------------------------------
    select count(*) from ANT;
    select count(*) from BONUS;
    select count(*) from DEMO1;
    select count(*) from DEMO2;
    select count(*) from DEPT;
    select count(*) from DUMMY;
    select count(*) from EMP;
    select count(*) from EMP_SALES;
    select count(*) from EMP_SCORE;
    select count(*) from PROFESSOR;
    select count(*) from T;
    select count(*) from T1;
    select count(*) from T2;
    select count(*) from T3;
    select count(*) from TEACH;
    select count(*) from TEST;
    select count(*) from TRX_LOG;
    select count(*) from X;

     

    11)計(jì)算字符在字符串里的出現(xiàn)次數(shù)

    判斷字符串里有多少個(gè)‘ , ’

    1select (length('10,CLARK,MANAGER')-   
    2  length(replace('10,CLARK,MANAGER',',','')))/length(',')   
    3  as cnt   
    4from t1   


    先計(jì)算原字符串長(zhǎng)度,再減去去掉逗號(hào)的長(zhǎng)度,這個(gè)差再除以‘,’的長(zhǎng)度

     

    12)將數(shù)字和字母分離


    原數(shù)據(jù)是:

    DATA
    ---------------
    SMITH800
    ALLEN1600
    WARD1250
    JONES2975
    MARTIN1250
    BLAKE2850
    CLARK2450
    SCOTT3000
    KING5000
    TURNER1500
    ADAMS1100
    JAMES950
    FORD3000
    MILLER1300
     1select replace(   
     2  translate(data,'0123456789','0000000000'),'0') ename,   
     3  to_number(   
     4    replace(   
     5    translate(lower(data),   
     6      'abcdefghijklmnopqrstuvwxyz',   
     7      rpad('z',26,'z')),'z')) sal   
     8  from (   
     9    select ename||sal data from emp   
    10 )   

    ENAME SAL
    ---------- ----------
    SMITH 800
    ALLEN 1600
    WARD 1250
    JONES 2975
    MARTIN 1250
    BLAKE 2850
    CLARK 2450
    SCOTT 3000
    KING 5000
    TURNER 1500
    ADAMS 1100
    JAMES 950
    FORD 3000
    MILLER 1300

    思路是很復(fù)雜的,比如先去除數(shù)字,是先把所有數(shù)字翻譯為0,然后用replace去掉0.


     

    13)根據(jù)表中的行創(chuàng)建分割列表


    表中數(shù)據(jù):
    DEPTNO EMPS
    ------ ----------
    10 CLARK
    10 KING
    10 MILLER
    20 SMITH
    20 ADAMS
    20 FORD
    20 SCOTT
    20 JONES
    30 ALLEN
    30 BLAKE
    30 MARTIN
    30 JAMES
    30 TURNER
    30 WARD

     1select deptno,   
     2    ltrim(sys_connect_by_path(ename,','),',') emps   
     3  from (   
     4  select deptno,   
     5    ename,   
     6    row_number() over   
     7       (partition by deptno order by empno) rn,   
     8    count(*) over   
     9      (partition by deptno) cnt   
    10  from emp   
    11  )   
    12  where level = cnt   
    13  start with rn = 1   
    14    connect by prior deptno = deptno and prior rn = rn-1 


    查詢(xún)結(jié)果
    DEPTNO EMPS
    ------- ------------------------------------
    10 CLARK,KING,MILLER
    20 SMITH,JONES,SCOTT,ADAMS,FORD
    30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES

     

    14)按字母順序排序

     1select old_name, new_name   
     2  from (select old_name, replace(sys_connect_by_path(c, ' '), ' ') new_name   
     3          from (select e.ename old_name,   
     4                       row_number() over(partition by e.ename order by substr(e.ename, iter.pos, 1)) rn,   
     5                       substr(e.ename, iter.pos, 1) c   
     6                  from emp e, (select rownum pos from emp) iter   
     7                 where iter.pos <= length(e.ename)   
     8                 order by 1) x   
     9         start with rn = 1   
    10        connect by prior rn = rn - 1   
    11               and prior old_name = old_name)   
    12 where length(old_name) = length(new_name) 


    You would like the result to be:

    OLD_NAME NEW_NAME
    ---------- --------
    ADAMS AADMS
    ALLEN AELLN
    BLAKE ABEKL
    CLARK ACKLR
    FORD DFOR
    JAMES AEJMS
    JONES EJNOS
    KING GIKN
    MARTIN AIMNRT
    MILLER EILLMR
    SCOTT COSTT
    SMITH HIMST
    TURNER ENRRTU
    WARD ADRW

     

    posted @ 2008-08-07 14:41 方佳瑋 閱讀(2769) | 評(píng)論 (6)編輯 收藏

    答辯后,心理有很多話要說(shuō),真是很不爽,也為中國(guó)軟件業(yè)的未來(lái)捏一把汗。如果此文讓某些讀者感覺(jué)不爽,就當(dāng)沒(méi)看過(guò),在此先向你道歉。
     
    本周5是我們計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)答辯日,我提前4天來(lái)到學(xué)校,帶著3月份早就完成的畢業(yè)設(shè)計(jì)。真是讓我大吃一驚,很多同學(xué)竟然都下載或者花錢(qián)買(mǎi)了畢業(yè)設(shè)計(jì)或者找人幫忙做來(lái)交差,這個(gè)數(shù)量我估計(jì)至少有5成。我的一個(gè)好友,更是夸張,什么都沒(méi)做,要我?guī)退?天內(nèi)搞定,我慌了,真把我當(dāng)超人了,不過(guò)還好,由于她那個(gè)東西確實(shí)沒(méi)什么內(nèi)容,我趕了一下還是幫她搞定了,實(shí)在是沒(méi)啥內(nèi)容的畢業(yè)設(shè)計(jì)。最搞笑的是還有些同學(xué)。。。,由于不是自己做的東西,而且連代碼也看不懂,運(yùn)行出錯(cuò)都不知如何解決,只會(huì)找別人求助,還天真地說(shuō):奇怪,怎么不行呢?原來(lái)明明看到可以運(yùn)行的。。。。 我要他自己去debug一下,結(jié)果,連開(kāi)發(fā)工具也沒(méi)用過(guò),怎么在開(kāi)發(fā)工具里跑一個(gè)工程debug也根本不會(huì),我再次無(wú)話可說(shuō)。
     
    同學(xué)們啊,你們不是高中生,你們是重點(diǎn)大學(xué)計(jì)算機(jī)專(zhuān)業(yè)應(yīng)屆畢業(yè)生啊,怎么就像沒(méi)讀過(guò)大學(xué)一樣,你們到底在4年里干了什么啊。
     
    然后更讓人心寒的是:答辯時(shí),很多老師都自己什么也不會(huì),或者只會(huì)皮毛,看著同學(xué)的畢業(yè)設(shè)計(jì),除了問(wèn)點(diǎn)需求問(wèn)題,再也問(wèn)不出任何技術(shù)問(wèn)題了,最后就草草答辯完,給個(gè)分?jǐn)?shù)就算過(guò)了。我在答辯時(shí),也懶得把架構(gòu)和技術(shù)應(yīng)用來(lái)說(shuō)了,實(shí)在是對(duì)牛彈琴。學(xué)生墮落,教師應(yīng)付,學(xué)校亂搞擴(kuò)招,公司高薪招不到人才,中國(guó)軟件業(yè)的未來(lái)有何希望!
     
    當(dāng)然,還是有10%左右的學(xué)生很優(yōu)秀,有些做了很不錯(cuò)的java ee程序,有些自己研究做了簡(jiǎn)易3D游戲引擎,還有些同學(xué)水平不怎么樣,但通過(guò)自己努力獨(dú)立完成了,雖然做得不怎么好,但學(xué)到很多東西,也是自己勞動(dòng)汗水,但是這些同學(xué)太少太少。。。
    posted @ 2007-06-18 15:43 方佳瑋 閱讀(1616) | 評(píng)論 (6)編輯 收藏

    選自《Professional Javascript For Web Developers》

    其它方式:對(duì)象冒充,call(),apply(),原型鏈都有不少缺點(diǎn)這里就不一一介紹了,想了解的可以去看一下這本著作的第4章節(jié)。

    這種方法用對(duì)象冒充繼承屬性,用原型鏈繼承方法,代碼如下
    function ?ClassA(sColor){
    ????
    this .color? = ?sColor;
    }

    ClassA.prototype.sayColor?
    = ? function (){
    ????alert(
    this .color);
    }

    function ?ClassB(sColor,?sName){
    ????ClassA.call(
    this .?sColor);
    ????
    this .name? = ?sName;
    }

    ClassB.prototype?
    = ? new ?ClassA();

    ClassB.prototype.sayName?
    = ? function (){
    ????alert(
    this .name);
    }

    測(cè)試:
    var ?objA? = ? new ?ClassA( " red " );
    var ?objB? = ? new ?ClassB( " blue " ,? " Nicholas " );
    objA.sayColor();?
    // red
    objB.sayColor();? // blue
    objB.sayName();?? // Nicholas

    其它好方法,請(qǐng)參考zlnherit庫(kù)和xbObjects
    posted @ 2007-03-03 15:44 方佳瑋 閱讀(1366) | 評(píng)論 (0)編輯 收藏

    1.有個(gè)大大提高性能的建議:

    比如得到list 是5個(gè)班級(jí),然后要得到5個(gè)班級(jí)的所有學(xué)生

    垃圾辦法:5次通過(guò)級(jí)聯(lián)獲得,等于執(zhí)行5條sql語(yǔ)句

    好辦法:

    this .getSession().createQuery(
    ????????
    " from?User?a,Clazz?b?where?a.clazz=b?and?b?in(:clazz) " )
    ?.setParameterList(
    " clazz " ,?list)
    ?.list();

    僅執(zhí)行一條


    2.還有個(gè)很實(shí)用的方法,如何通過(guò)hql語(yǔ)句返回多個(gè)po

    List?list? = ? this .getSession().createQuery(
    ?
    " from?User?a,Clazz?b?where?a.clazz=b " ).list();

    // 使用的時(shí)候:
    Iterator?it? = ?list.iterator();
    ??
    while (it.hasNext()){
    ?Object[]?vo?
    = ?(Object[])it.next();
    ?User?user?
    = ?(User)vo[ 0 ];
    ?Clazz?clazz?
    = ?(Clazz)vo[ 1 ];
    ?System.out.println(user.getUserName()?
    + ? " , " ? + ?clazz.getClassName());
    }?


    3.我們?nèi)坑靡粚?duì)一,多對(duì)一等。如果過(guò)濾有問(wèn)題,有個(gè)辦法

    List?students? = ? this .getSession().createFilter(clazz.getStudents(), " where?this.status='A' " ).list();?
    posted @ 2007-02-14 23:30 方佳瑋 閱讀(489) | 評(píng)論 (0)編輯 收藏

    選自《Professional Javascript For Web Developers》

    其它方式:工廠方式,構(gòu)造函數(shù)方式,原型方式都各有各的大缺陷,這里就不一一介紹了,想了解的可以去看一下這本著作的第3章節(jié)。

    1. 混合構(gòu)造函數(shù)/原型方式

    function ?Car(sColor,?iDoors,?iMpg)?{
    ??
    this .color? = ?sColor;
    ??
    this .doors? = ?iDoors;
    ??
    this .mpg? = ?iMpg;
    ??
    this .drivers? = ? new ?Array(“Mike”,?“Sue”);
    }

    Car.prototype.showColor?
    = ? function ?()?{
    ??alert(
    this .color);
    };

    var ?oCar1? = ? new ?Car(“red”,? 4 ,? 23 );
    var ?oCar2? = ? new ?Car(“blue”,? 3 ,? 25 );

    oCar1.drivers.push(“Matt”);

    alert(oCar1.drivers);?
    // outputs?“Mike,Sue,Matt”
    alert(oCar2.drivers);? // outputs?“Mike,Sue”

    優(yōu)點(diǎn):具有其它方式的優(yōu)點(diǎn)而沒(méi)有其它方式的缺點(diǎn)
    不足:封裝性欠缺

    2 . 動(dòng)態(tài)原型方式

    function ?Car(sColor,?iDoors,?iMpg)? {
    ??
    this .color? = ?sColor;
    ??
    this .doors? = ?iDoors;
    ??
    this .mpg? = ?iMpg;
    ??
    this .drivers? = ? new ?Array(“Mike”,?“Sue”);

    ??
    if ?( typeof ?Car._initialized? == ?“undefined”)? {
    ????Car.prototype.showColor?
    = ? function ?()? {
    ??????alert(
    this .color);
    ????}
    ;

    ????Car._initialized?
    = ? true ;
    ??}

    }


    優(yōu)點(diǎn):封裝性比上一個(gè)方式更好
    不足:就是看上去奇怪一點(diǎn),呵呵


    總之,以上2種方式是目前最廣泛使用的,盡量使用它們避免不必要的問(wèn)題。

    posted @ 2007-02-11 17:34 方佳瑋 閱讀(6167) | 評(píng)論 (1)編輯 收藏

    v0.9 點(diǎn)擊下載

    有些錯(cuò)別字,我會(huì)在以后版本更正

    花了幾周把DWR中文文檔.PDF給搞出來(lái)了

    這是首次發(fā)布在網(wǎng)上

    希望對(duì)大家有用

    有任何意見(jiàn)請(qǐng)發(fā)我郵箱:jorwen.fang@gmail.com,或者在此留言

    第一版目錄預(yù)覽:

    第1章. DWR入門(mén) 8
    1.1 簡(jiǎn)介 8
    1.2 第一個(gè)DWR程序:Hello World 9
    1.2.1 將DWR放入你的工程 9
    1.2.2 編輯配置文件 9
    1.2.3 編寫(xiě)service 10
    1.2.4 測(cè)試DWR 10
    1.2.5 編寫(xiě)一個(gè)jsp 11
    1.3 本章總結(jié) 12

    第2章. web.xml配置 13
    2.1 主要配置 13
    2.2 常用<init-param>參數(shù)列表 14
    2.2.1 安全參數(shù) 14
    2.2.2 Ajax服務(wù)器加載時(shí)保護(hù)參數(shù) 14
    2.2.3 其他參數(shù) 15
    2.3 日志配置 16
    2.4 多個(gè)dwr.xml配置和J2EE角色定義 16
    2.5 插件配置 18
    2.6 測(cè)試模式配置 19

    第3章. dwr.xml配置 20
    3.1 縱覽 20
    3.2 <init>標(biāo)簽 20
    3.3 <allow>標(biāo)簽 21
    3.3.1 Creator 21
    3.3.2 Converter 25
    3.4 <signatures>標(biāo)簽 30

    第4章. 整合 32
    4.1 DWR與Servlet 32
    4.1.1 使用webContext的方法: 32
    4.1.2 方法選擇 32
    4.2 DWR與Spring 34
    4.2.1 讓DWR和Spring一起工作的檢查列表 34
    4.2.2 Spring Creator 34
    4.2.3 找到Spring配置文件 34
    4.2.4 使用Spring配置DWR 35
    4.3 DWR與JSF 36
    4.3.1 JSF Creator 36
    4.3.2 Servlet Filter 36
    4.4 DWR與Struts 37
    4.4.1 Struts creator 37
    4.4.2 開(kāi)始順序 37
    4.5 DWR與Weblogic或PageFlow 38
    4.6 DWR與Hibernate 39
    4.6.1 讓DWR和Hibernate一起工作的檢查列表 39
    4.6.2 HibernateBeanConverter 39
    4.6.3 Session管理 39
    4.7 DWR與WebWork 40
    4.7.1 配置dwr.xml 40
    4.7.2 在JSP中導(dǎo)入腳本 40
    4.7.3 高級(jí) 41
    4.8 DWR與Acegi 42
    4.8.1 問(wèn)題提出 42
    4.8.2 解決方案 42

    第5章. DWR中的JavaScript簡(jiǎn)介 44
    5.1 簡(jiǎn)單的回調(diào)函數(shù) 44
    5.2 調(diào)用元數(shù)據(jù)對(duì)象 45
    5.3 查找回調(diào)函數(shù) 45
    5.4 創(chuàng)造一個(gè)與Java對(duì)象匹配的Javascript對(duì)象 46

    第6章. engine.js 功能 47
    6.1 使用選項(xiàng) 47
    6.2 選項(xiàng)索引 48
    6.2.1 處理器(Handler) 48
    6.2.2 調(diào)用處理器(Call Handler) 48
    6.2.3 Hooks (一個(gè)batch中可以注冊(cè)多個(gè)hook) 49
    6.2.4 全局選項(xiàng)(在單次調(diào)用或者批量調(diào)用中不可用) 49
    6.2.5 廢棄的選項(xiàng) 49
    6.2.6 未來(lái)版本的選項(xiàng) 49
    6.3 選項(xiàng)說(shuō)明 50
    6.3.1 批量調(diào)用 50
    6.3.2 順序調(diào)用 50
    6.3.3 錯(cuò)誤警告和超時(shí) 50
    6.3.4 遠(yuǎn)程調(diào) Hooks 51
    6.3.5 遠(yuǎn)程調(diào)用選項(xiàng) 51

    第7章. util.js 功能 54
    7.1 $() 54
    7.2 addOptions and removeAllOptions 54
    7.3 addRows and removeAllRows 55
    7.4 getText 56
    7.5 getValue 56
    7.6 getValues 57
    7.7 onReturn 57
    7.8 selectRange 57
    7.9 setValue 58
    7.10 setValues 58
    7.11 toDescriptiveString 58
    7.12 useLoadingMessage 58
    7.13 Submission box 61

    第8章. DWR進(jìn)階 63
    8.1 DWR  Annotations 63
    8.1.1 初始配置 63
    8.1.2 遠(yuǎn)程訪問(wèn)類(lèi) 63
    8.1.3 對(duì)象轉(zhuǎn)換 64
    8.2 錯(cuò)誤和異常處理 64
    8.2.1 錯(cuò)誤處理 64
    8.2.2 異常 65
    8.2.3 找出更多的信息 65
    8.3 傳遞額外的數(shù)據(jù)到callback函數(shù) 66
    8.4 從其他的URL讀取數(shù)據(jù) 67
    8.5 安全 68

    第9章. 范例精講 71
    9.1 購(gòu)物車(chē) 71
    9.1.1 介紹 71
    9.1.2 實(shí)現(xiàn)目錄 72
    9.1.3 測(cè)試部署 74
    9.1.4 調(diào)用遠(yuǎn)程對(duì)象 75
    9.1.5 實(shí)現(xiàn)購(gòu)物車(chē) 77
    9.1.6 調(diào)用遠(yuǎn)程的 Cart 方法 79
    9.1.7 演示結(jié)果 81
    9.1.8 總結(jié) 81

    第10章. 附錄 83
    10.1 常見(jiàn)問(wèn)題 83
    10.1.1 TransformerFactoryConfigurationError 83
    10.1.2 XML解析錯(cuò)誤 83
    10.1.3 使用weblogic的類(lèi)路徑問(wèn)題 83
    10.1.4 沒(méi)有cookies的情況下用DWR 84
    10.2 JavaScript高級(jí)應(yīng)用 85
    10.2.1 用變量操縱函數(shù) 85
    10.2.2 高階函數(shù) 86
    10.2.3 動(dòng)態(tài)類(lèi)型 87
    10.2.4 靈活的對(duì)象模型 89
    10.2.5 本節(jié)總結(jié) 91

    posted @ 2007-02-08 20:18 方佳瑋 閱讀(7625) | 評(píng)論 (49)編輯 收藏

    曾經(jīng)看過(guò)一項(xiàng)統(tǒng)計(jì),在大連有95%以上的軟件公司都是軟件外包的公司,準(zhǔn)確的說(shuō):是面向外國(guó)開(kāi)發(fā)的軟件公司。這種現(xiàn)象不單單只出現(xiàn)在大連,現(xiàn)在北京,上海包括深圳也有很多對(duì)日開(kāi)發(fā)的外包公司,只是數(shù)量上不象大連那么明顯罷了。
    ??? 我看到很多程序員都在討論外包的利弊,在這里我只談?wù)勛约旱挠^點(diǎn):
    ??? 1:曾經(jīng)問(wèn)過(guò)許多大連軟件行業(yè)的朋友,大部分人都抱怨自己的工作時(shí)間長(zhǎng),工資待遇不高,而且工作技術(shù)含量不高,感覺(jué)學(xué)不到什么新東西。用一句網(wǎng)友的話來(lái)形容:“軟件外包,豐富了老板的腰包,犧牲了程序員的青春”。工作將近三年,我的感受也是如此。外包就是這個(gè)樣子:內(nèi)部設(shè)計(jì)是外國(guó)人做的,我們需要做的只是按照人家的式樣書(shū),把偽代碼經(jīng)過(guò)枯燥無(wú)味的反復(fù)調(diào)試工作變成可以正常運(yùn)行的程序。測(cè)試也是如此,我們只需要負(fù)責(zé)單體測(cè)試就足夠了。大部分測(cè)試工作:連接測(cè)試,綜合測(cè)試,壓力測(cè)試統(tǒng)統(tǒng)移到外國(guó)去做。這就是大部分軟件外包公司的現(xiàn)狀。學(xué)過(guò)軟件工程的人都應(yīng)該深深的知道一點(diǎn):在軟件開(kāi)發(fā)的過(guò)程主要由設(shè)計(jì),代碼,測(cè)試三部分組成。對(duì)應(yīng)這三部分,合理的安排開(kāi)發(fā)時(shí)間是非常必要的,往往我們項(xiàng)目是這樣安排的,3:1:2,也就是說(shuō)設(shè)計(jì)需要的時(shí)間是代碼部分的三倍,測(cè)試部分是其2倍(單體測(cè)試應(yīng)該和代碼整合成一個(gè)部分)。按這個(gè)比例計(jì)算,如果整個(gè)項(xiàng)目的資金為60萬(wàn),做程序員的最多能分到10萬(wàn),而公司中人數(shù)最多的也是程序員。這樣我們就可以理解為什么如此多的程序員在抱怨工資低了。至于技術(shù)含量的問(wèn)題,我想應(yīng)該這么理解:不是我們做的項(xiàng)目缺少技術(shù)含量,而是技術(shù)含量高的部分絕大多數(shù)都是由日本鬼子完成的,外國(guó)人看中了中國(guó)廉價(jià)的勞動(dòng)力市場(chǎng),才把這些技術(shù)含量低的部分拿到中國(guó)來(lái)做。而外國(guó)人也絕不會(huì)把技術(shù)精髓的部分拿到中國(guó)來(lái)做。

    ??? 2:上面說(shuō)到外包的那么多缺點(diǎn),我們不做總可以了吧?但為什么還有那么多的人樂(lè)此不彼呢?原因大概有這么兩點(diǎn):中國(guó)的軟件產(chǎn)業(yè)從98年開(kāi)始茁壯的開(kāi)始成長(zhǎng),到2001已經(jīng)發(fā)展的很火爆,仔細(xì)想想當(dāng)時(shí)97屆的計(jì)算機(jī)畢業(yè)生(2001年畢業(yè)),基本上沒(méi)畢業(yè)就找好工作了,沒(méi)找到工作的只是寥寥幾人,可以想象當(dāng)時(shí)的計(jì)算機(jī)行業(yè)相當(dāng)紅火。可2002年隨著全球IT產(chǎn)業(yè)的不景氣,中國(guó)的軟件行業(yè)已經(jīng)逐漸走下坡路,很多軟件公司倒閉,破產(chǎn)。也就是說(shuō),現(xiàn)在的軟件行業(yè)不好做了,最起碼不如以前了。在這種情況下,合理的利用外來(lái)資產(chǎn)來(lái)發(fā)展壯大中國(guó)的軟件行業(yè)也不失為一種對(duì)策。還有一個(gè)原因:我國(guó)的軟件行業(yè)屬于起步比較晚,經(jīng)驗(yàn)和人才相對(duì)匱乏,和日本等發(fā)達(dá)國(guó)家合作,可以為我們培養(yǎng)出很多高水平的管理和開(kāi)發(fā)人員。曾經(jīng)問(wèn)過(guò)一些在北京工作的軟件開(kāi)發(fā)人員,他們通常寫(xiě)代碼不寫(xiě)注釋?zhuān)灿貌粚?xiě)軟件開(kāi)發(fā)的相關(guān)文檔。試想這樣的軟件產(chǎn)品的質(zhì)量能放心的了么?而在外包公司,這種現(xiàn)象是根本不能發(fā)生的。即使,技術(shù)含量再低的工作,內(nèi)部設(shè)計(jì)書(shū),詳細(xì)設(shè)計(jì)書(shū),單體測(cè)試報(bào)告…這都是不可缺少的產(chǎn)品的一部分,而且國(guó)外公司對(duì)這些文檔的要求都是比較嚴(yán)格的。做任何事情都要按著一定的規(guī)范來(lái)做,雖說(shuō)有些繁瑣,但對(duì)于沒(méi)有太多經(jīng)驗(yàn)的程序員來(lái)說(shuō),書(shū)寫(xiě)技術(shù)文檔對(duì)其事業(yè)發(fā)展是很有好處的,也是非常有必要的。

    ????? 總體來(lái)說(shuō),軟件外包有利有弊。我認(rèn)為對(duì)我國(guó)目前軟件產(chǎn)業(yè)不太成熟的現(xiàn)狀來(lái)說(shuō),軟件外包的利大于弊。做任何事業(yè)總要付出犧牲,而中國(guó)軟件事業(yè)犧牲的確是我們這一代程序員。
    posted @ 2006-10-03 12:42 方佳瑋 閱讀(1183) | 評(píng)論 (2)編輯 收藏

    作者:崔啟亮, 原始出處:軟件質(zhì)量研究網(wǎng)www.sqstudy.org?
    目前已經(jīng)進(jìn)駐上海的知名全球服務(wù)外包企業(yè)包括埃森哲、優(yōu)利、NCS、博朗、愛(ài)特優(yōu)科等

    目錄:
    [0] - 為什么要對(duì)大學(xué)生談軟件外包?
    [1] - 什么是軟件外包?
    [2] - 軟件為什么要外包?
    [3] - 為什么要承接軟件外包
    [4] - 做軟件外包有前途嗎?
    [5] - 外包公司是怎么工作的?
    [6] - 有哪些好的外包公司?

    [7] - 軟件外包公司需要什么樣的人?
    [8] - 哪些人不適合做軟件外包技術(shù)人員?
    [9] - 如何通過(guò)軟件外包公司的面試?


    [0] - 為什么要對(duì)大學(xué)生談軟件外包?

    中國(guó)軟件外包行業(yè)這幾年成為發(fā)展最為迅速的行業(yè)之一,無(wú)論你是在校的大學(xué)生,還是即將畢業(yè)的同學(xué),都有必要了解這個(gè)行業(yè)。如果你是軟件相關(guān)專(zhuān)業(yè)的同學(xué),或者畢業(yè)后準(zhǔn)備從事軟件行業(yè),那么更應(yīng)該關(guān)注軟件外包這個(gè)行業(yè)。

    盡管網(wǎng)上已經(jīng)有很多關(guān)于軟件外包的信息,但是這些信息很多都是媒體記者的報(bào)道,他們只是從旁觀者的角度看待軟件外包,缺乏一定的深度和實(shí)踐感受。還有一些來(lái)自非軟件外包的人士,基于他們主觀的理解和推測(cè),認(rèn)為軟件外包是很低級(jí)的工作,為軟件外包工作潑冷水,影響了對(duì)軟件外包工作的正確認(rèn)識(shí),造成了軟件外包的“中國(guó)式誤會(huì)”。

    大學(xué)生接受了系統(tǒng)的高等教育,具有牢固的知識(shí)基礎(chǔ),而且具有極強(qiáng)的可塑性和學(xué)習(xí)能力,是未來(lái)軟件外包行業(yè)的主力軍。但是,他們參加軟件外包實(shí)際項(xiàng)目的機(jī)會(huì)和經(jīng)驗(yàn)畢竟很少,對(duì)于軟件外包有很多模糊的認(rèn)識(shí)。由于教材的更新需要更長(zhǎng)的周期,高校教師如果沒(méi)有豐富的外包企業(yè)經(jīng)驗(yàn),很難把軟件外包的實(shí)際知識(shí)傳授給學(xué)生,因此,外包企業(yè)從業(yè)人員有必要向這些高校學(xué)生交流一些軟件外包企業(yè)的實(shí)際情況。

    那么什么是軟件外包?軟件為什么要外包?中國(guó)軟件外包的現(xiàn)狀如何?將來(lái)做軟件外包是否有前途?這些問(wèn)題可能很多同學(xué)不是很清楚,如果今后打算進(jìn)入這個(gè)行業(yè),則從現(xiàn)在開(kāi)始就需要先了解這些問(wèn)題的答案。

    筆者具有多年的軟件外包公司工作經(jīng)驗(yàn),對(duì)于軟件外包行業(yè)一直積極關(guān)注,并且積極與國(guó)內(nèi)外同行交流,對(duì)軟件外包有些自己的體會(huì),借此機(jī)會(huì)與個(gè)位同學(xué)進(jìn)行交流。


    ?[1] - 什么是軟件外包?

    軟件外包就是軟件開(kāi)發(fā)商(簡(jiǎn)稱(chēng)“發(fā)包方”)將軟件開(kāi)發(fā)的一部分或者全部,發(fā)給別的軟件公司(簡(jiǎn)稱(chēng)“接包方”)去完成。

    我們通常說(shuō)的中國(guó)外包公司很多都是“接包方”,主要從日本和歐美等國(guó)承接軟件外包項(xiàng)目的技術(shù)工作。現(xiàn)在軟件行業(yè)比較發(fā)達(dá)的美國(guó)、歐洲和日本是最大的“發(fā)包方”市場(chǎng)。

    由于軟件外包是軟件全球性生產(chǎn)方式,所以存在很多關(guān)于外包的英文術(shù)語(yǔ)。外包的英文單詞是“Outsourcing”。站在“發(fā)包方”的角度,把“接包方”成為“Vendor(外包服務(wù)商)”。站在“接包方”角度,把“發(fā)包方”成為“Client(客戶(hù))”

    軟件外包與其他外包其實(shí)沒(méi)有本質(zhì)區(qū)別,就是雙方合作把一個(gè)很復(fù)雜的、較大的軟件項(xiàng)目分工合作,共同做好。其實(shí)在其他行業(yè),外包已經(jīng)實(shí)施了很長(zhǎng)時(shí)間,例如汽車(chē)行業(yè),生產(chǎn)汽車(chē)的公司(比如一汽集團(tuán))他們先設(shè)計(jì)好汽車(chē)的結(jié)構(gòu),完成主要部件的生產(chǎn),把很多零件外包給很多廠家加工,然后采用完成整個(gè)車(chē)輛的安裝和制造。

    現(xiàn)在人們很關(guān)注軟件外包,就是因?yàn)橥獍谲浖袠I(yè)應(yīng)用的時(shí)間還很短,而且軟件生產(chǎn)存在很多不可見(jiàn)因素,軟件外包的優(yōu)勢(shì)和好處,還沒(méi)有被普遍了解和感受。

    總結(jié)一句話,軟件外包就是軟件生產(chǎn)的分工和合作,主要目標(biāo)就是生產(chǎn)出好的軟件。


    [2] - 軟件為什么要外包?

    同學(xué)們可能都聽(tīng)說(shuō)了,現(xiàn)在印度和中國(guó)做軟件外包“火得不得了”,越來(lái)越多的歐美大型軟件公司都把軟件外包給印度和中國(guó)。為什么會(huì)出現(xiàn)這種現(xiàn)象呢?

    要回答這個(gè)問(wèn)題,不能簡(jiǎn)單的從發(fā)包方或者接包方一個(gè)方面尋找答案。因?yàn)椤耙粋€(gè)巴掌拍不響”,要實(shí)現(xiàn)軟件外包,必須雙方都有需求、有能力、愿合作才行。而且不能把目光只盯在中國(guó)一個(gè)國(guó)家,還需要從全球軟件行業(yè)的整體來(lái)看待和理解。

    為什么軟件外包能發(fā)展的這么快呢?主要原因在于通過(guò)軟件外包,發(fā)包方和接包方都獲得了可觀的利益,非常具有現(xiàn)實(shí)意義。說(shuō)得更簡(jiǎn)單一點(diǎn),就是雙方都獲得了好處,大家是互相合作的伙伴。

    作為發(fā)包方,可以獲得下列好處:

    • 降低軟件項(xiàng)目成本
    • 提高軟件質(zhì)量
    • 縮短軟件開(kāi)發(fā)周期

    怎么理解軟件外包能較低軟件項(xiàng)目成本呢?

    大家可能聽(tīng)說(shuō)過(guò),美國(guó)的軟件技術(shù)人員的工資比中國(guó)同等水平的人員要高5到10倍,所以不少美國(guó)的軟件開(kāi)發(fā)公司都把軟件開(kāi)發(fā)和測(cè)試的工作,發(fā)到中國(guó)的軟件外包公司來(lái)作,可以大幅度的降低成本。對(duì)于中國(guó)的軟件外包公司,他們從國(guó)外客戶(hù)承接外包項(xiàng)目,可以獲得很穩(wěn)定也很好的項(xiàng)目?jī)r(jià)格,所以很樂(lè)意做軟件外包服務(wù)商(Vendor)。

    說(shuō)到通過(guò)軟件外包提高軟件質(zhì)量,可能很多人不理解。舉個(gè)例子就明白了。

    美國(guó)微軟(Microsoft)公司是全球最大的軟件公司,現(xiàn)在正在開(kāi)發(fā)的Windows Vista新操作系統(tǒng),需要同時(shí)發(fā)布多個(gè)語(yǔ)言的本地化軟件,例如英語(yǔ)、簡(jiǎn)體中文、繁體中文、日語(yǔ)、韓語(yǔ)、德語(yǔ)、法語(yǔ)、阿拉伯語(yǔ)等。這些語(yǔ)言的本地化版本的翻譯、編譯、測(cè)試,如果全部在微軟公司內(nèi)部完成,那么微軟需要招聘大量的精通每種語(yǔ)言和軟件技術(shù)的工程師,否則語(yǔ)言質(zhì)量肯定不能保證。如果把這些工作外包給專(zhuān)業(yè)的軟件本地化外包公司,軟件本地化是這些外包公司的強(qiáng)項(xiàng),所以可以顯著的提高軟件質(zhì)量。

    軟件外包能縮短軟件開(kāi)發(fā)周期的道理很容易理解,如果很復(fù)雜的軟件開(kāi)發(fā)工作都在一個(gè)公司內(nèi)部完成,那么可能耗費(fèi)1年甚至幾年的時(shí)間。例如,如果Microsoft Windows Vista的軟件需求分析、框架設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件編碼、軟件測(cè)試、軟件多語(yǔ)言本地化等工作都在Microsoft公司內(nèi)部實(shí)現(xiàn),那么微軟可能需要招聘很多的內(nèi)部員工,動(dòng)用很多的項(xiàng)目經(jīng)理管理這些人員,對(duì)這些人員進(jìn)行技術(shù)、語(yǔ)言和流程培訓(xùn),花費(fèi)的時(shí)間肯定比外包更長(zhǎng)。這樣的軟件即使開(kāi)發(fā)出來(lái)了,等到能夠發(fā)布這些技術(shù)可能過(guò)時(shí)了,其他競(jìng)爭(zhēng)對(duì)手的相似產(chǎn)品肯定已經(jīng)早已占領(lǐng)了市場(chǎng)。

    現(xiàn)在是網(wǎng)絡(luò)信息時(shí)代,時(shí)間就是金錢(qián),速度就是效益,“快魚(yú)吃慢魚(yú)”,實(shí)現(xiàn)搶先推出新產(chǎn)品,誰(shuí)就可能占領(lǐng)更多的市場(chǎng)份額。


    [3] - 為什么要承接軟件外包?

    前面提到了軟件開(kāi)發(fā)商通過(guò)軟件外包,可以達(dá)到降低軟件成本、提高軟件質(zhì)量和縮短開(kāi)發(fā)周期的好處,所以大型軟件開(kāi)發(fā)商很愿意把軟件的一部分工作外包給專(zhuān)業(yè)的軟件外包公司。

    那么軟件外包公司為什么愿意從事這種接包工作呢?

    我們可以從以下幾個(gè)方面分析這個(gè)問(wèn)題。

    • 承接軟件外包工作可以獲得穩(wěn)定的、較高的利潤(rùn)
    • 承接軟件外包可以學(xué)習(xí)軟件的先進(jìn)技術(shù)和管理方法
    • 承接軟件外包可以加速企業(yè)國(guó)際化步伐

    下面對(duì)這幾點(diǎn)進(jìn)一步說(shuō)明。

    軟件外包的接包方都是人力成本較低的國(guó)家和地區(qū),例如中國(guó)和印度的軟件開(kāi)發(fā)和測(cè)試工程師的平均工資比歐美同等級(jí)別的人員要便宜很多。這樣看來(lái)即使發(fā)包方發(fā)來(lái)的外包項(xiàng)目的價(jià)格不很高,但是對(duì)于這些國(guó)家的外包公司看來(lái),還是價(jià)格很高的。

    通過(guò)舉個(gè)實(shí)際的例子來(lái)算算“經(jīng)濟(jì)帳”,假設(shè)美國(guó)軟件公司發(fā)給中國(guó)軟件外包公司做軟件測(cè)試的項(xiàng)目,按照沒(méi)個(gè)測(cè)試工程師每小時(shí)15美元計(jì)算,每天8小時(shí)公司可以獲得120美元。每個(gè)月按照22天計(jì)算,外包公司可以從每個(gè)測(cè)試工程師獲得120*22=2640美元。如果按照1美元=8人民幣元計(jì)算,是21120人民幣元。一般軟件外包公司發(fā)給員工的工資大約4000到8000人民幣元,另外除去運(yùn)營(yíng)成本和各種稅費(fèi),外包公司獲得的純利潤(rùn)高于15%到20%。

    15%到20%的純利潤(rùn)是個(gè)什么程度?熟悉中國(guó)軟件開(kāi)發(fā)行業(yè)的同學(xué)可能知道,由于中國(guó)開(kāi)發(fā)的通用軟件受到盜版的影響,利潤(rùn)非常少,甚至無(wú)法收回投資。另外,中國(guó)軟件行業(yè)競(jìng)爭(zhēng)太激烈了,經(jīng)常為了投一個(gè)“招標(biāo)項(xiàng)目”,大家靠拉關(guān)系,拼價(jià)格,即使最后搶到這個(gè)項(xiàng)目,價(jià)格已經(jīng)很低了,再加上內(nèi)部開(kāi)發(fā)成本逐年上升,經(jīng)常是項(xiàng)目做完了,所賺無(wú)幾,甚至賠錢(qián)。2005年中國(guó)軟件開(kāi)發(fā)行業(yè)的利潤(rùn)整體下滑,有媒體報(bào)道說(shuō)降到了5%。一般企業(yè)正常發(fā)展的凈利潤(rùn)應(yīng)該高于11%,否則生存就有了問(wèn)題,更別談什么發(fā)展了。

    承接軟件外包可以學(xué)習(xí)軟件的先進(jìn)技術(shù)和管理方法。軟件發(fā)包方都是較為成熟的大型國(guó)際化軟件公司,他們?cè)诩夹g(shù)和管理上積累了成功的流程和方法。對(duì)于中國(guó)軟件公司,很多還停留在100人以下的小規(guī)模,很少具有開(kāi)發(fā)和管理大型國(guó)際化軟件的經(jīng)驗(yàn),也沒(méi)有這方面的整體實(shí)力。通過(guò)承接大型軟件公司的外包項(xiàng)目,可以鍛煉隊(duì)伍,學(xué)習(xí)各種開(kāi)發(fā)和測(cè)試技術(shù)、項(xiàng)目流程規(guī)劃,項(xiàng)目管理等多方面的技術(shù)。其實(shí)印度規(guī)模較大的外包公司,塔塔咨詢(xún)(TCS),InfoSys等最早也是從承接美國(guó)的軟件外包測(cè)試開(kāi)始的,現(xiàn)在都超過(guò)了5萬(wàn)人,現(xiàn)在可以承接大型軟件的咨詢(xún)和設(shè)計(jì)任務(wù),在美國(guó)市場(chǎng)上直接和IBM、HP等大型公司正面競(jìng)爭(zhēng)。

    承接軟件外包可以加速企業(yè)國(guó)際化步伐。企業(yè)國(guó)際化是現(xiàn)在中國(guó)企業(yè)喊的最多的口號(hào),但是真正成功實(shí)現(xiàn)了國(guó)際化的中國(guó)企業(yè)還不多。多年來(lái)缺乏與國(guó)外的交流,中國(guó)人的頭腦形成了很多僵化的意識(shí)。承擔(dān)軟件外包項(xiàng)目,可以與國(guó)外客戶(hù)直接交流,學(xué)習(xí)行業(yè)國(guó)際規(guī)則,維持良好的國(guó)際客戶(hù)關(guān)系,了解國(guó)外市場(chǎng)的現(xiàn)狀,為將來(lái)企業(yè)進(jìn)軍國(guó)際化做好物質(zhì)和市場(chǎng)準(zhǔn)備。

    正是基于承接軟件外包的種種好處,國(guó)內(nèi)很多的軟件公司紛紛加入軟件外包測(cè)試的大軍,大家就像發(fā)現(xiàn)了新的金礦,樂(lè)詞不彼,準(zhǔn)備大干一場(chǎng)。甚至某些以開(kāi)發(fā)產(chǎn)品或?qū)I(yè)服務(wù)為主的公司,例如用友、東軟和神州數(shù)碼都加大了承接外包項(xiàng)目的力度。

    有消息稱(chēng),在未來(lái)2年內(nèi),中國(guó)的軟件外包公司將到納斯達(dá)克上市,成為新的中國(guó)外包概念股。


    ?[4] - 做軟件外包有前途嗎?

    俗話說(shuō):“男怕入錯(cuò)行”,如果你進(jìn)入了一個(gè)沒(méi)有前途的行業(yè),即使你的能力再高,你的發(fā)展空間也很有限。對(duì)于,剛剛畢業(yè)的大學(xué)生,第一份工作非常重要,甚至?xí)绊懸簧穆殬I(yè)生涯。

    軟件外包是全球軟件行業(yè)新興的行業(yè),是經(jīng)濟(jì)全球化和軟件產(chǎn)業(yè)全球分工的產(chǎn)物。大家知道全球化已經(jīng)深入到我們生活的每個(gè)方面,我國(guó)的改革開(kāi)放就是順應(yīng)了時(shí)代潮流。

    對(duì)于中國(guó)而言,軟件外包的發(fā)展更是如火如荼,屬于典型的IT“朝陽(yáng)行業(yè)”。每年的增長(zhǎng)速度都在50%以上,特別對(duì)于中國(guó)的軟件外包公司,他們每年的業(yè)務(wù)都是100%的速度增長(zhǎng),發(fā)展勢(shì)頭不可阻擋。

    從事軟件外包工作的好處之一是可以在短期內(nèi)獲得職業(yè)提升的機(jī)會(huì)。現(xiàn)在中國(guó)軟件外包行業(yè)如果具有5年以上的工作經(jīng)驗(yàn),就可以成為外包的有經(jīng)驗(yàn)專(zhuān)才了。很多大學(xué)生進(jìn)入軟件外包公司工作2到3年,如果學(xué)習(xí)能力和交流能力好,可以成為項(xiàng)目經(jīng)理或者部門(mén)經(jīng)理。

    從事軟件外包工作的好處之二是可以學(xué)習(xí)和培養(yǎng)國(guó)際化思維方式和工作方式。前面已經(jīng)談到,軟件外包是全球合作的工作方式。做軟件外包工作,有機(jī)會(huì)學(xué)習(xí)先進(jìn)的軟件設(shè)計(jì)和測(cè)試方法,學(xué)會(huì)管理大型的、多個(gè)團(tuán)隊(duì)協(xié)作的軟件項(xiàng)目,要和多個(gè)國(guó)家和地區(qū)的技術(shù)人員和管理人員進(jìn)行英語(yǔ)或者日語(yǔ)交流。這樣可以提高語(yǔ)言表達(dá)能力,團(tuán)隊(duì)交流能力,遵守科學(xué)的生產(chǎn)流程,成為熟悉國(guó)際市場(chǎng)和技術(shù)的職業(yè)人士,對(duì)于將來(lái)的職業(yè)發(fā)展大有幫助。

    而如果畢業(yè)后到一個(gè)小的軟件公司工作,由于中國(guó)的小軟件公司很多都是10多個(gè)或者幾十個(gè)人的手工作坊式公司,企業(yè)內(nèi)部缺乏完善的流程,管理混亂,粗放式經(jīng)營(yíng),依靠個(gè)別高手的能力,這樣的環(huán)境很不容易學(xué)習(xí)到關(guān)鍵技術(shù),而且還會(huì)養(yǎng)成隨意的、不善交流的獨(dú)立自我的工作習(xí)慣。這種習(xí)慣一旦養(yǎng)成對(duì)于今后的職業(yè)發(fā)展是大為不利的。

    因此,大學(xué)畢業(yè)生投身做軟件外包,就是進(jìn)入了一個(gè)發(fā)展前途十分可觀的“朝陽(yáng)行業(yè)”,通過(guò)自身的不斷努力,有希望在短期內(nèi),成為熟悉國(guó)際化行業(yè)規(guī)則的技術(shù)和管理人才,成為職場(chǎng)上非常有競(jìng)爭(zhēng)力的軟件專(zhuān)家。


    [5] - 外包公司是怎么工作的?

    進(jìn)入軟件外包企業(yè)后,為了盡快適應(yīng)新環(huán)境,完成日常工作,需要了解軟件外包公司是如何安排工作的。

    從外包的內(nèi)容看,現(xiàn)在大多數(shù)中國(guó)軟件外包公司從事兩種內(nèi)容的工作,第一是軟件設(shè)計(jì)和編碼的外包(即開(kāi)發(fā)外包),第二類(lèi)是軟件測(cè)試外包。

    從工作的地點(diǎn)看,軟件外包公司的員工的工作形式分為兩種,第一是被派遣到發(fā)包方(客戶(hù))的公司進(jìn)行工作,這種形式稱(chēng)為“On-site外包”。第二式在軟件外包公司內(nèi)部工作,稱(chēng)為“In-house外包”。

    如果同學(xué)們到人才招聘網(wǎng)站看看外包公司的招聘廣告,經(jīng)常能看見(jiàn)赴微軟,赴IBM從事軟件開(kāi)發(fā)或測(cè)試的招聘職位。這種形式就是“On-site外包”。舉個(gè)例子,軟件外包公司A招聘了從事軟件外包測(cè)試的同學(xué)小李到微軟亞洲工程院從事微軟的軟件測(cè)試,雖然小李在微軟的公司工作,但是他隸屬于A公司,工作上受到A公司和微軟公司的領(lǐng)導(dǎo),A公司每個(gè)月按照A公司的工資標(biāo)準(zhǔn)給小李發(fā)工資。一般來(lái)說(shuō),“On-site外包”的工程師的技術(shù)水平要求的更高些。

    在筆者看來(lái),“On-site外包”工作方式只是軟件外包的初級(jí)形式,如果軟件外包的服務(wù)模式成熟之后,越來(lái)越多的外包將以“In-house外包”的形式實(shí)現(xiàn)。下面介紹“In-house外包”的工作方式。

    所有的軟件外包公司都是以“項(xiàng)目”的形式,組建項(xiàng)目團(tuán)隊(duì)開(kāi)展外包工作。一個(gè)“項(xiàng)目”就是一個(gè)有著明確的任務(wù),明確的開(kāi)始和結(jié)束時(shí)間,以及明確的質(zhì)量要求的工作。項(xiàng)目團(tuán)隊(duì)就是為了完成一個(gè)項(xiàng)目組建的有不同角色的多個(gè)人的小組,一般安排一個(gè)項(xiàng)目經(jīng)理,一個(gè)或幾個(gè)組長(zhǎng),多個(gè)工程師。

    項(xiàng)目經(jīng)理主要制定項(xiàng)目計(jì)劃、資源安排、內(nèi)部交流和外包的客戶(hù)交流。組長(zhǎng)為每個(gè)工程師分結(jié)和安排具體的任務(wù),跟蹤項(xiàng)目進(jìn)度,解決技術(shù)問(wèn)題。工程師根據(jù)組長(zhǎng)分配的任務(wù)按照進(jìn)度和質(zhì)量完成每天的工作,并且報(bào)告進(jìn)展和遇到的問(wèn)題。

    項(xiàng)目經(jīng)理負(fù)責(zé)周期性的向“客戶(hù)”報(bào)告項(xiàng)目進(jìn)展情況,同時(shí)把客戶(hù)反應(yīng)的問(wèn)題和來(lái)自客戶(hù)的最新文件和要求等傳達(dá)給項(xiàng)目組。

    通常項(xiàng)目經(jīng)理和組長(zhǎng)都是由具有管理和技術(shù)經(jīng)驗(yàn)的員工擔(dān)任,對(duì)于剛剛加入軟件外包公司的大學(xué)生來(lái)說(shuō),絕大多數(shù)都是從工程師的職位做起的,先經(jīng)過(guò)外包公司的內(nèi)部培訓(xùn),然后進(jìn)入項(xiàng)目組實(shí)習(xí),轉(zhuǎn)正之后稱(chēng)為工程師,負(fù)責(zé)具體的開(kāi)發(fā)或測(cè)試工作。

    順便說(shuō)說(shuō),不少優(yōu)秀的大學(xué)生,專(zhuān)業(yè)技術(shù)非常好,學(xué)習(xí)能力由特別強(qiáng),善于思考和總結(jié),也善于與其他人交流和合作,這樣的學(xué)生很快就可以在項(xiàng)目團(tuán)隊(duì)中脫穎而出,經(jīng)過(guò)一年或者兩年可以從普通工程師晉升到測(cè)試組長(zhǎng)甚至項(xiàng)目經(jīng)理。我的不少同事就是這樣過(guò)來(lái)的,這是因?yàn)檐浖獍l(fā)展得非常快,客戶(hù)發(fā)來(lái)的軟件外包項(xiàng)目越來(lái)越多,項(xiàng)目團(tuán)隊(duì)越來(lái)越多,每個(gè)項(xiàng)目都需要項(xiàng)目經(jīng)理,所以從事軟件外包具有很大的職業(yè)發(fā)展空間。

    現(xiàn)在總結(jié)一下軟件外包公司的工作方式:

    • “On-site外包”或者“In-house外包”方式
    • 按照項(xiàng)目團(tuán)隊(duì)的方式工作
    • 剛進(jìn)入外包公司的大學(xué)生絕大多數(shù)要從工程師做起


    ?[6] - 有哪些好的外包公司?

    對(duì)于正在找工作的同學(xué)來(lái)說(shuō),都希望到一個(gè)規(guī)模較大的公司工作,一般來(lái)說(shuō),大公司比較規(guī)范,待遇也較高,倒閉的風(fēng)險(xiǎn)小。對(duì)于軟件外包公司來(lái)說(shuō)也是這樣子。

    同學(xué)們可以猜猜看,全球著名的高端軟件外包公司有哪些?據(jù)媒體報(bào)道,比較公認(rèn)的全球高端外包公司分別是IBM,HP和EDS,前兩家同學(xué)們肯定耳熟能詳,有些同學(xué)可能懷疑IBM,HP能算是軟件外包公司嗎?它們算不算外包公司不是我說(shuō)的,反正做軟件外包多年的老外都這么人為,人家可是全球知名的外包專(zhuān)家,可不是信口胡說(shuō)的呀。

    有的同學(xué)經(jīng)常問(wèn)我,國(guó)內(nèi)有哪些規(guī)模較大的外包公司?哪個(gè)外包公司最好?我一般都回答不好。為什么呢?因?yàn)槊總€(gè)人看問(wèn)題的角度不同。比如,什么是“規(guī)模較大”?是按照正是員工的人數(shù)比較呢還是按照每年的總收入確定?什么樣的外包公司是“好公司”?給員工發(fā)的工資搞就是好公司嗎?給員工提供專(zhuān)業(yè)的技術(shù)培訓(xùn),而且具有很大的職業(yè)發(fā)展空間的是否就是“好公司”呢?

    因此,在你問(wèn)這些問(wèn)題前,先要搞清楚你心目的好公司應(yīng)該具有什么樣的特征。

    我還是從國(guó)內(nèi)外包公司的普遍特征來(lái)給出這個(gè)問(wèn)題的一些參考信息。

    前面已經(jīng)提到,我國(guó)軟件外包公司屬于新興的行業(yè),真正從事軟件外包的員工如果人數(shù)超過(guò)1000人在中國(guó)就可以算是比較大的外包公司了。據(jù)了解國(guó)內(nèi)最大人數(shù)的外包公司現(xiàn)在不超過(guò)3000人(這里需要說(shuō)明一點(diǎn),有些公司一開(kāi)始是做系統(tǒng)集成的,最近才開(kāi)始做軟件外包業(yè)務(wù),雖然他們的全體員工超過(guò)5000人,但是真正做軟件外包的還不超過(guò)3000人)。所以同印度的某些大的軟件外包公司項(xiàng)目,我國(guó)的軟件外包公司規(guī)模普遍弱小。印度的軟件外包公司超過(guò)10000人的很多,有些超過(guò)了5萬(wàn)人。所以有些國(guó)內(nèi)的軟件外包的朋友,把中國(guó)軟件外包公司比作“螞蟻”,把印度外包公司比作“大象”。

    如果同學(xué)們打算做軟件外包,肯定要問(wèn)哪個(gè)省市的軟件外包公司最多?我要告訴大家的是,中國(guó)的軟件外包在各個(gè)省市的發(fā)展很不平衡。大連、北京、上海、深圳、蘇州、西安等發(fā)展的相對(duì)快些。其他各個(gè)地方今年開(kāi)始從政府到企業(yè)都開(kāi)始提出要發(fā)展軟件外包了。

    關(guān)于國(guó)內(nèi)軟件公司的規(guī)模,同學(xué)們可以參考我國(guó)政府權(quán)威部門(mén)發(fā)布的“中國(guó)軟件歐美出口工程”試點(diǎn)企業(yè)名單。這些公司都具有一定的規(guī)模和實(shí)力,有些記者把這些公司比喻成“中國(guó)外包的國(guó)家隊(duì)”,言外之意其他的外包公司只能算是“地方武裝”了。

    大連的軟件外包發(fā)展的最為快速,特別是對(duì)日外包做的最為成功,因?yàn)榇筮B的政府支持,地理位置靠日本很近,可以找到很多掌握日語(yǔ)的軟件技術(shù)人員。北京和上海的軟件外包發(fā)展的時(shí)間更長(zhǎng),這兩個(gè)直轄市憑借經(jīng)濟(jì)和政治的影響,吸引了大量的國(guó)外客戶(hù),人才資源很豐富,所以外包做的很早,很多歐美的大型軟件公司都在這兩個(gè)城市成立的研發(fā)中心。

    說(shuō)到外包公司,很多人首先想到的是中國(guó)本土的外包公司,其實(shí)出了本土外包公司,國(guó)外外包公司在中國(guó)的分公司也不可忽視。這些國(guó)外外包公司有的進(jìn)入中國(guó)較早,有的最近一兩年才在中國(guó)落戶(hù)。他們憑借國(guó)外市場(chǎng)的良好客戶(hù)關(guān)系,全球的專(zhuān)業(yè)品牌,先進(jìn)的外包管理技術(shù),豐富的外包經(jīng)驗(yàn),加上國(guó)際化的工作環(huán)境,良好的薪資待遇,吸引著很多大學(xué)生前去應(yīng)聘。

    最后給同學(xué)們一點(diǎn)建議,大家在找工作的時(shí)候與要單純追求規(guī)模大的外包公司,中小規(guī)模的外包公司有可能發(fā)展速度更快,有可能提供很大的職業(yè)發(fā)展空間。關(guān)鍵是通過(guò)各種方式綜合了解軟件外包公司的發(fā)展前景、工作環(huán)境和個(gè)人發(fā)展空間,可以通過(guò)打聽(tīng)在外包公司工作的同學(xué)、朋友、親戚、老鄉(xiāng),也可以上網(wǎng)看看外界對(duì)這家公司的報(bào)道和評(píng)論。


    [7] - 軟件外包公司需要什么樣的人?

    剛畢業(yè)的同學(xué)如果沒(méi)有考研或出國(guó)留學(xué),都有過(guò)找工作應(yīng)聘的經(jīng)歷,不少同學(xué)都感覺(jué)找到合適的工作單位不是一件容易的事情。有些同學(xué)雖然得到了軟件外包公司的應(yīng)聘機(jī)會(huì),但是面試后就沒(méi)有消息了。

    而一些軟件外包公司的招聘人員卻為找不到合適的人員而苦惱,只好發(fā)動(dòng)一切可以調(diào)動(dòng)的因素,解決企業(yè)人才困乏的問(wèn)題。所以有人把這種現(xiàn)象歸納為:“高校有人沒(méi)事干,企業(yè)有事沒(méi)人干”。

    這種現(xiàn)象的本質(zhì)是大部分高校畢業(yè)生的綜合素質(zhì)達(dá)不到軟件外包企業(yè)的用人要求。那么軟件外包公司需要什么樣的人呢?為了能夠進(jìn)入軟件外包企業(yè),在校學(xué)生應(yīng)該如何學(xué)習(xí)和學(xué)習(xí)什么呢?

    說(shuō)的簡(jiǎn)單一點(diǎn),企業(yè)需要的是能馬上融入外包項(xiàng)目團(tuán)隊(duì),獨(dú)立承擔(dān)實(shí)際外包項(xiàng)目任務(wù)的人。所以很多企業(yè)在招聘啟事中都有“x年軟件外包相關(guān)工作經(jīng)驗(yàn)”等的硬性指標(biāo),而這些都是在校學(xué)生欠缺的地方。

    現(xiàn)在一些外包公司都提供兼職崗位(Freelancer),這是在校學(xué)生(尤其是即將畢業(yè)的學(xué)生)參與社會(huì)實(shí)踐的好機(jī)會(huì),應(yīng)該抓住這些實(shí)習(xí)機(jī)會(huì),積累工作經(jīng)驗(yàn)。另外,如果在這些企業(yè)實(shí)習(xí)期間表現(xiàn)優(yōu)秀,畢業(yè)后有機(jī)會(huì)成為公司的正式員工。

    軟件外包企業(yè)對(duì)待大學(xué)畢業(yè)生更看重學(xué)生的學(xué)習(xí)能力。剛畢業(yè)的大學(xué)生就像一塊好的毛坯鋼材,材質(zhì)優(yōu)良,如果這些學(xué)生有較好的主動(dòng)學(xué)習(xí)能力,進(jìn)入企業(yè)后經(jīng)過(guò)幾個(gè)外包項(xiàng)目的實(shí)踐,積極思考,善于總結(jié),成長(zhǎng)很快。企業(yè)不歡迎凡事不經(jīng)過(guò)大腦思考,大小問(wèn)題都要向主管求助的“懶漢”員工。

    企業(yè)需要具有職業(yè)精神的員工。職業(yè)精神包括很多方面的內(nèi)容,包括對(duì)工作的熱情投入,積極與團(tuán)隊(duì)成員交流,具有合作精神,以企業(yè)利益為重。而不歡迎喜歡與企業(yè)討價(jià)還價(jià),抱怨企業(yè)提供的發(fā)展空間不夠大的學(xué)生。

    由于軟件外包服務(wù)行業(yè)是為客戶(hù)提供服務(wù)的行業(yè),很多外包項(xiàng)目的具體任務(wù)一般比較瑣碎、枯燥,例如按照客戶(hù)提供的軟件框架進(jìn)行編碼,按照客戶(hù)提供的測(cè)試用例執(zhí)行軟件測(cè)試。對(duì)于剛剛畢業(yè)的學(xué)生他們都需要從這些很基礎(chǔ)的技術(shù)崗位做起,這是對(duì)他們職業(yè)精神和做事風(fēng)格的考驗(yàn)。

    軟件外包服務(wù)的很多工作就像生產(chǎn)流水線上的公司在擰螺絲釘,需要遵守嚴(yán)格的生產(chǎn)流程和一絲不茍的嚴(yán)謹(jǐn)精神。把這些基本工作做好了,才能取得企業(yè)的管理人員的信任,才有機(jī)會(huì)承擔(dān)更復(fù)雜更大責(zé)任的工作。

    一些剛畢業(yè)的學(xué)生經(jīng)常心高氣傲,很鄙視這些繁瑣枯燥的工作,感嘆埋沒(méi)他們的才華,這是沒(méi)有擺正工作心態(tài)的表現(xiàn)。外包公司非常歡迎愿意做看似瑣碎的工作同時(shí)有能力做好的同學(xué)。其實(shí)做好這些看似瑣碎的工作,當(dāng)好擰螺絲的工人,就是不簡(jiǎn)單,他的未來(lái)就會(huì)不平凡。道理很簡(jiǎn)單:基礎(chǔ)打好了,萬(wàn)丈高樓平地起。

    總結(jié)起來(lái),外包企業(yè)需要具有一定的外包工作經(jīng)驗(yàn),主動(dòng)學(xué)習(xí)能力強(qiáng),團(tuán)隊(duì)合作精神好,愿意從瑣碎的技術(shù)工作做起,而且有能力做好“小事”的人。

    海爾公司總裁張瑞敏有句名言說(shuō)得非常好,對(duì)于準(zhǔn)備到軟件外包公司工作的同學(xué)非常有啟發(fā),他說(shuō):“把一件簡(jiǎn)單的事做好就是不簡(jiǎn)單,把每一件平凡的事做好就是不平凡”。


    ?[8] - 哪些人不適合做軟件外包技術(shù)人員?

    大千世界,無(wú)限精彩。作為軟件行業(yè)的新領(lǐng)域,軟件外包吸引著越來(lái)越多的人投入這個(gè)行業(yè)。每個(gè)行業(yè)都有行業(yè)的行規(guī)和準(zhǔn)則,并不是任何人都適合從事軟件外包行業(yè)的。

    哪些人不適合從事軟件外包呢?由于本文的讀者針對(duì)即將畢業(yè)的大學(xué)生,也適用于準(zhǔn)備加入軟件外包公司的新人,所以我們可以把問(wèn)題縮小范圍:哪些人不適合做軟件外包服務(wù)的技術(shù)人員?

    回答什么人不能做軟件外包,也就是哪些人做不好軟件外包,需要先了解軟件外包服務(wù)行業(yè)的工作性質(zhì)和對(duì)人的綜合要求。軟件外包是為客戶(hù)提供專(zhuān)業(yè)技術(shù)服務(wù)的行業(yè),而且現(xiàn)在的軟件外包企業(yè)的客戶(hù)大都來(lái)自國(guó)外,客戶(hù)對(duì)外包公司人員要求比較嚴(yán)格。另外,外包公司的工作非常具體和瑣碎,需要一絲不茍。

    軟件外包行業(yè)的這些特點(diǎn),決定了以下三種類(lèi)型的人不適合做軟件外包的技術(shù)人員:

    第一種人是外語(yǔ)不過(guò)關(guān)的人。

    語(yǔ)言是交流工具。如果客戶(hù)是歐美客戶(hù),英語(yǔ)交流是必不可少的。如果客戶(hù)是日本公司,對(duì)日語(yǔ)要必須熟悉。作為初級(jí)的外包技術(shù)人員,需要閱讀和寫(xiě)作大量的文檔和郵件,這些都需要良好的英語(yǔ)能力。很多英語(yǔ)不過(guò)關(guān)的人員不容易通過(guò)外包公司的筆試。對(duì)英語(yǔ)的要求,需要達(dá)到熟練閱讀英文文檔,寫(xiě)作專(zhuān)業(yè)的測(cè)試缺陷報(bào)告和日常郵件寫(xiě)作的程度。

    外包公司強(qiáng)調(diào)英語(yǔ)的重要性,這是做好工作的基礎(chǔ),因此,請(qǐng)?jiān)趯W(xué)校里、公司里利用一切條件自覺(jué)學(xué)習(xí)英語(yǔ),養(yǎng)成習(xí)慣,從閱讀理解學(xué)習(xí)。把英語(yǔ)閱讀和寫(xiě)作養(yǎng)成一個(gè)習(xí)慣,終生受益。

    第二種人是癡迷于鉆研軟件高深技術(shù)的人。

    軟件外包服務(wù)的很多工作都是非常瑣碎的,看上去沒(méi)有多少高深新技術(shù)的事務(wù)性工作。例如,對(duì)日軟件外包的項(xiàng)目,客戶(hù)已經(jīng)編制好了程序框架,需要變成人員根據(jù)他們的規(guī)范編寫(xiě)代碼和每天工作進(jìn)度日志。不少外包編程人員抱怨客戶(hù)限定的過(guò)于嚴(yán)格,沒(méi)有足夠的自我創(chuàng)造的空間。對(duì)于軟件外包測(cè)試人員,最常見(jiàn)的工作就是執(zhí)行客戶(hù)編寫(xiě)好的測(cè)試用例,報(bào)告軟件缺陷,很少有機(jī)會(huì)從軟件項(xiàng)目的全局高度制定測(cè)試計(jì)劃,確定測(cè)試方案和策略,安排資源和進(jìn)度。

    如果你對(duì)軟件編程的各種新技術(shù)無(wú)限熱愛(ài),習(xí)慣于一個(gè)人無(wú)拘無(wú)束的從事軟件產(chǎn)品的開(kāi)發(fā),最好不要去軟件外包公司,否則很難發(fā)揮你的聰明才智。這樣的人更適合自己創(chuàng)業(yè)開(kāi)發(fā)獨(dú)立的軟件產(chǎn)品,或者到中國(guó)中小型軟件公司當(dāng)軟件開(kāi)發(fā)工程師。

    第三種人是大事做不來(lái),小事不愿做的人。

    正如前面說(shuō)過(guò)的,很多軟件外包工作非常具體和瑣碎,需要非常好的做事態(tài)度,滿(mǎn)足客戶(hù)各種合理的和不合理的要求。有些同學(xué)到軟件外包公司工作不久就感到失望了,抱怨工作枯燥,看不到前途。這些都是剛參加不久的人容易產(chǎn)生的錯(cuò)誤認(rèn)識(shí)。

    在任何軟件外包公司,如果個(gè)人的工作能力非常突出,很容易被領(lǐng)導(dǎo)賞識(shí)和提升,因?yàn)檐浖獍l(fā)展太快了,對(duì)人才的需求非常強(qiáng)烈。但是如果不從具體的瑣碎的小事做起,并且把小事做好,怎么能證明你可以把大事做好呢。

    任何公司之所以能夠生存、發(fā)展、壯大,必尤其成功之處,不要覺(jué)得你必老板高明很多。比較聰明的同學(xué)會(huì)放平心態(tài),從學(xué)徒學(xué)起,把每一件工作都做好了,自己的長(zhǎng)處得到發(fā)揮,對(duì)自己的前途發(fā)展大有幫助。

    總結(jié)起來(lái),不善于外與交流的,癡迷于鉆研軟件高新技術(shù),不能踏踏實(shí)實(shí)工作的人,不適合到軟件外包公司從事軟件技術(shù)工作。


    [9] - 如何通過(guò)軟件外包公司的面試?

    如何通過(guò)軟件外包公司的面試?這是很多同學(xué)都很關(guān)注的問(wèn)題。面試成功來(lái)自于應(yīng)聘者自身的綜合實(shí)力和運(yùn)氣。為了提高面試成功率,請(qǐng)按照以下幾個(gè)方面進(jìn)行準(zhǔn)備。

    (1)制作有吸引力的求職簡(jiǎn)歷

    外包公司的招聘專(zhuān)員每天都會(huì)收到幾十封甚至上百封求職簡(jiǎn)歷,如果你的簡(jiǎn)歷很平淡,可能很快從招聘專(zhuān)員的眼下溜走,失去了面試的機(jī)會(huì)。

    什么是有吸引力的簡(jiǎn)歷? 簡(jiǎn)單地說(shuō)就是讓看到你簡(jiǎn)歷的招聘專(zhuān)員相信你就是他們正在尋找的最合適的人。因此,你的簡(jiǎn)歷要簡(jiǎn)明扼要,列舉出符合他們要求的條件和相應(yīng)的客觀證據(jù)。要明白求職簡(jiǎn)歷目的就是獲得面試的機(jī)會(huì),否則你的水平再高,也不可能進(jìn)入招聘專(zhuān)員的“法眼”。

    如何寫(xiě)出具有吸引力的簡(jiǎn)歷,現(xiàn)在很多資料都比較詳細(xì),但是最重要的一點(diǎn)是實(shí)事求是,反對(duì)夸張和吹噓。把你的技能和經(jīng)驗(yàn)按照招聘職位的要求進(jìn)行內(nèi)容和形式的組織即可。

    (2)準(zhǔn)備面試

    • 了解要去面試的公司,可以瀏覽公司的網(wǎng)站,媒體報(bào)道,同學(xué)和朋友的介紹。
    • 了解公司的行業(yè),規(guī)模,現(xiàn)狀和發(fā)展概況。
    • 技術(shù)準(zhǔn)備,準(zhǔn)備應(yīng)聘職位要求的技能
    • 模擬面試場(chǎng)景(包括英語(yǔ)自我介紹和書(shū)面答題)
    • 準(zhǔn)備自我介紹、各種證書(shū)、筆試和面試解答問(wèn)題
    • 計(jì)劃乘車(chē)路線和穿著打扮等外表形象

    (3)參加面試

    • 準(zhǔn)時(shí)
    • 誠(chéng)實(shí)
    • 積極
    • 友好
    • 不必不亢
    • 注意細(xì)節(jié)
    • 沉著冷靜
    • 避免爭(zhēng)論
    • 小心“陷阱”
    • 充分發(fā)揚(yáng)長(zhǎng)處
    • 展示個(gè)人綜合能力
    posted @ 2006-10-03 00:26 方佳瑋 閱讀(1366) | 評(píng)論 (0)編輯 收藏

    初次寫(xiě)js,感覺(jué)很不錯(cuò)

    需求:
    1. session 傳值初始化時(shí)鐘,格式 hh:mm:ss
    2. 時(shí)鐘在頁(yè)面上顯示倒計(jì)時(shí)功能
    3. 時(shí)間到觸發(fā)點(diǎn)擊按鈕事件

    <body?MS_POSITIONING="GridLayout"?onLoad="window.setInterval('Clock()',?1000);">
    ????????
    <script?type="text/javascript">
    ????????
    ????????
    function?Clock(){??????????????????
    ????????????
    var?init?=?clock.innerText;
    ????????????
    var?stop?=?new?Number("0");

    ????????????
    var?hms?=?new?String(init).split(":");
      ????????
    var?s?=?new?Number(hms[2]);
      ????????
    var?m?=?new?Number(hms[1]);
      ????????
    var?h?=?new?Number(hms[0]);
      ????????
      ????????
      ????????
      ????????
    if(stop?==?0){
      ????????????
    if(s?==?0){
      ????????????????
    if(m?==?0){
      ????????????????????
    if(h?==?0){
      ????????????????????????stop?
    =?1;
      ????????????????????????
    var?e?=?document.getElementById("finish").click();
      ????????????????????}

      ????????????????????
    else{
      ????????????????????????h
    --;
      ????????????????????}

      ????????????????????m?
    =?59;
      ????????????????}

      ????????????????
    else{
      ????????????????????m
    --;
      ????????????????}

      ????????????????s?
    =?59;
      ????????????}

      ????????????
    else{
      ????????????????s
    --;
      ????????????}

      ????????}

      ????????
    var?ss?=?s?<?10???("0"?+?s)?:?s;
      ????????
    var?sm?=?m?<?10???("0"?+?m)?:?m;
      ????????
    var?sh?=?h?<?10???("0"?+?h)?:?h;
      ????????init?
    =?sh?+?":"?+?sm?+?":"?+?ss;
      ????????clock.innerText?
    =?init;?????????
    ????????}

    ????????
    </script>

    <form?id="Form1"?name="Form1"?method="post"?runat="server">
    <SPAN?id="clock"><STRONG>
    <%=(string)Session["time"]%></STRONG></SPAN>
    <asp:button?id="finish"?runat="server"?Width="70px"?Height="20px"?Text="完成提交"></asp:button>
    </form>
    posted @ 2006-10-01 00:35 方佳瑋 閱讀(1109) | 評(píng)論 (1)編輯 收藏

    我大二時(shí)是java初學(xué)者,很多用法不當(dāng),哈哈,現(xiàn)在看來(lái)確實(shí)有點(diǎn)幼稚。當(dāng)時(shí)同時(shí)在學(xué)數(shù)據(jù)結(jié)構(gòu)。把c改編成java。現(xiàn)在把自己的作業(yè)和大家分享。

    地址:http://www.java-cn.com/bbs-jsp/show.jsp?forum=base&id=142767
    posted @ 2006-09-15 11:34 方佳瑋 閱讀(702) | 評(píng)論 (0)編輯 收藏

    在公司工作了1個(gè)多月了,最近突然領(lǐng)悟了,領(lǐng)悟了何為計(jì)算機(jī)專(zhuān)業(yè)。
    ?
    迷戀Java不是錯(cuò),因?yàn)檫@是應(yīng)屆畢業(yè)生輕松進(jìn)入好公司的敲門(mén)磚,但是也可以說(shuō)是錯(cuò)!
    ?
    導(dǎo)師何立勇對(duì)我說(shuō):“是人使用工具,而不是工具使用人”,我現(xiàn)在完全領(lǐng)悟了,Java,vb,.net,任何開(kāi)發(fā)語(yǔ)言,任何開(kāi)發(fā)技術(shù),所有計(jì)算機(jī)相關(guān)的技術(shù)知識(shí)都只是完成客戶(hù)需求工具而已。有人喜歡java,喜歡struts,hibernate,spring,鄙視老的技術(shù),鄙視.net,鄙視vb都是不正確的,也是一個(gè)初級(jí)程序員的思想。
    ?
    我們作為計(jì)算機(jī)專(zhuān)業(yè)的,為了什么,其實(shí)為了有實(shí)力更好地使用工具滿(mǎn)足客戶(hù)需求。讀研,讀博也就是這個(gè)目的,英語(yǔ)流利精通也是這個(gè)目的。我以前放棄英語(yǔ)和計(jì)算機(jī)基礎(chǔ)知識(shí)從長(zhǎng)遠(yuǎn)看是錯(cuò)誤。所以既然我已經(jīng)有實(shí)力求職,我以后也沒(méi)必要揀了芝麻丟了西瓜,在公司好好做個(gè)java程序員,同時(shí)學(xué)好英語(yǔ)學(xué)好計(jì)算機(jī)其他重要知識(shí)和工作相關(guān)的知識(shí),有必要的話會(huì)考碩士,更好的成為優(yōu)秀的工具使用者,以后才不會(huì)永遠(yuǎn)只是個(gè)java程序員。
    ?
    但是,獨(dú)立解決問(wèn)題的能力,動(dòng)手能力,開(kāi)發(fā)經(jīng)驗(yàn),我在大學(xué)里已經(jīng)做得非常不錯(cuò)了,確實(shí)成為我進(jìn)入NCS的結(jié)識(shí)的敲門(mén)磚。(NCS是新加坡外企,新加坡人會(huì)說(shuō)中文,否則我也進(jìn)不去,因?yàn)槊绹?guó)外企英語(yǔ)口語(yǔ)面試,只能說(shuō)我運(yùn)氣好而已)
    所以告誡所有同學(xué),包括考研的同學(xué),理論知識(shí),英語(yǔ)非常重要,但如果沒(méi)有獨(dú)立解決問(wèn)題的能力,動(dòng)手能力,開(kāi)發(fā)經(jīng)驗(yàn),你也很難成功!
    就像我認(rèn)識(shí)的一個(gè)南京大學(xué)研究生,在讀時(shí)排名前5,畢業(yè)后由于沒(méi)有以上敲門(mén)磚最后找不到好工作,于是參加8個(gè)月的J2ee培訓(xùn),多累啊,現(xiàn)在惠普工作月薪8000,以后會(huì)更高,這個(gè)是活生生的例子。但也只有名牌大學(xué)碩士同時(shí)有敲門(mén)磚才能拿那么高的,英語(yǔ)不好我是肯定進(jìn)不了惠普的。
    ?
    繞了個(gè)大圈回到起點(diǎn),我要開(kāi)始揀西瓜了。。。。。。


    作為計(jì)算機(jī)專(zhuān)業(yè)的,實(shí)戰(zhàn)經(jīng)驗(yàn),理論,英語(yǔ),3者都要好,而不是選擇其一鉆牛角尖,
    實(shí)戰(zhàn)經(jīng)驗(yàn)好的雖然找工作不難,但好的公司,高的職位是妄想。3者都平庸的話那就更沒(méi)出路了,如今太多人3者平庸了。在今后的時(shí)間里,我要平衡3者,都要提高,我想我領(lǐng)悟地還不算晚!以前小錯(cuò)中有對(duì)的地方,但不能讓其成為大錯(cuò)。

    這點(diǎn)確實(shí)2班的個(gè)別同學(xué),比如領(lǐng)導(dǎo)做得非常好,我班目前沒(méi)有。這就是為何IT行業(yè),有人拿數(shù)萬(wàn)月薪,有人拿8000月薪,有人拿2000,3000月薪,有人雖然計(jì)算機(jī)專(zhuān)業(yè)卻壓根進(jìn)不了IT行業(yè)。

    不同選擇重視不一樣,想本科畢業(yè)就業(yè)的,想在1,2年內(nèi)拿4000~6000月薪的(上海),請(qǐng)重視實(shí)戰(zhàn)經(jīng)驗(yàn),并且逐步提高理論和英語(yǔ),以后跳槽到好公司也有資本。想考研的,重視后兩者,在讀研時(shí)千萬(wàn)重視實(shí)戰(zhàn)經(jīng)驗(yàn)。這個(gè)經(jīng)驗(yàn)相當(dāng)于受過(guò)至少半年以上培訓(xùn)的水平。畢竟時(shí)間有限,本科也就這么4年,3項(xiàng)全能都是高手,實(shí)在是難!

    (自我介紹,上海華理計(jì)算機(jī)專(zhuān)業(yè),今年9月大四,一直追求j2ee,扔掉專(zhuān)業(yè)扔掉英語(yǔ),如今領(lǐng)悟)

    posted @ 2006-09-02 23:52 方佳瑋 閱讀(939) | 評(píng)論 (4)編輯 收藏

    1.Method_Add
    /*
    輸出:
    It?is?now?星期四?2006/08/17?at?05:55:57?下午?CST
    Two?years?ago?was?星期二?2004/08/17?at?05:55:57?下午?CST
    */

    package ?api.java.util.Calendar;

    import ?java.text.SimpleDateFormat;
    import ?java.util.Calendar;

    public ? class ?Method_Add? {
    ????
    public ? static ? void ?main(String[]?a)? throws ?Exception? {

    ????????Calendar?now?
    = ?Calendar.getInstance();
    ????????
    ????????SimpleDateFormat?formatter?
    = ? new ?SimpleDateFormat(
    ????????????????
    " E?yyyy/MM/dd?'at'?hh:mm:ss?a?zzz " );
    ????????System.out.println(
    " It?is?now? " ? + ?formatter.format(now.getTime()));
    ????????
    /*
    ?????????*?public?abstract?void?add(int?field,?int
    ?????????*?amount)根據(jù)日歷的規(guī)則,為給定的日歷字段添加或減去指定的時(shí)間量。
    ?????????
    */

    ????????now.add(Calendar.YEAR,?
    - 2 );
    ????????System.out.println(
    " Two?years?ago?was? "
    ????????????????
    + ?formatter.format(now.getTime()));
    ????}

    }


    主要經(jīng)驗(yàn)值獲得:
    1. java.text.SimpleDateFormat 的用法
    2. java.util.Calendar.add( ) 的用法,如何進(jìn)行日期計(jì)算。

    ----------------------------------------------------------------------------------

    2.Class_GregorianCalendar
    /*
    輸出:
    136?days?remain?in?current?year
    */

    package?api.java.util.Calendar;

    import?java.util.Calendar;
    import?java.util.GregorianCalendar;

    public?class?Class_GregorianCalendar?{
    ????
    public?static?void?main(String?args[])?{

    ????????Calendar?calendar1?
    =?Calendar.getInstance();
    ????????
    int?doy1?=?calendar1.get(Calendar.DAY_OF_YEAR);

    ????????
    int?year?=?calendar1.get(Calendar.YEAR);
    ????????
    ????????
    //在具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)內(nèi)構(gòu)造一個(gè)帶有給定日期設(shè)置的?GregorianCalendar
    ????????Calendar?calendar2?=?new?GregorianCalendar(year,?11,?31);
    ????????
    int?doy2?=?calendar2.get(Calendar.DAY_OF_YEAR);
    ????????
    ????????
    //今年最后一天減去今天的剩余天數(shù)
    ????????int?days?=?doy2?-?doy1;
    ????????System.out.println(days?
    +?"?days?remain?in?current?year");
    ????}

    }


    主要經(jīng)驗(yàn)值獲得:
    1. java.util.GregorianCalendar 的作用
    2. 如何返回指定的日期的Calendar

    次要經(jīng)驗(yàn)值獲得
    1. 如何計(jì)算據(jù)今年結(jié)束的天數(shù)

    ----------------------------------------------------------------------------------

    3.Class_Calendar
    /*
    輸出:
    ERA:?1
    YEAR:?2006
    MONTH:?7
    WEEK_OF_YEAR:?33
    WEEK_OF_MONTH:?3
    DATE:?17
    DAY_OF_MONTH:?17
    DAY_OF_WEEK:?5
    DAY_OF_WEEK_IN_MONTH:?3
    AM_PM:?1
    MILLISECOND:?92
    ZONE_OFFSET:?8
    DST_OFFSET:?0

    */

    package?api.java.util.Calendar;

    import?java.util.Calendar;
    import?java.util.Date;
    import?java.util.GregorianCalendar;

    public?class?Class_Calendar?{
    ????
    public?static?void?main(String[]?a)?{
    ????????Calendar?calendar?
    =?new?GregorianCalendar();
    ????????calendar.setTime(
    new?Date());

    ????????System.out.println(
    "ERA:?"?+?calendar.get(Calendar.ERA));
    ????????System.out.println(
    "YEAR:?"?+?calendar.get(Calendar.YEAR));
    ????????System.out.println(
    "MONTH:?"?+?calendar.get(Calendar.MONTH));
    ????????System.out.println(
    "WEEK_OF_YEAR:?"
    ????????????????
    +?calendar.get(Calendar.WEEK_OF_YEAR));
    ????????System.out.println(
    "WEEK_OF_MONTH:?"
    ????????????????
    +?calendar.get(Calendar.WEEK_OF_MONTH));
    ????????System.out.println(
    "DATE:?"?+?calendar.get(Calendar.DATE));
    ????????System.out.println(
    "DAY_OF_MONTH:?"
    ????????????????
    +?calendar.get(Calendar.DAY_OF_MONTH));
    ????????System.out
    ????????????????.println(
    "DAY_OF_WEEK:?"?+?calendar.get(Calendar.DAY_OF_WEEK));
    ????????System.out.println(
    "DAY_OF_WEEK_IN_MONTH:?"
    ????????????????
    +?calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
    ????????System.out.println(
    "AM_PM:?"?+?calendar.get(Calendar.AM_PM));
    ????????System.out
    ????????????????.println(
    "MILLISECOND:?"?+?calendar.get(Calendar.MILLISECOND));
    ????????System.out.println(
    "ZONE_OFFSET:?"
    ????????????????
    +?(calendar.get(Calendar.ZONE_OFFSET)?/?(60?*?60?*?1000)));
    ????????System.out.println(
    "DST_OFFSET:?"
    ????????????????
    +?(calendar.get(Calendar.DST_OFFSET)?/?(60?*?60?*?1000)));
    ????}

    }


    主要經(jīng)驗(yàn)值獲得:
    1.?Calendar 的一些變量和方法用法

    ----------------------------------------------------------------------------------

    4.
    posted @ 2006-08-17 18:00 方佳瑋 閱讀(1862) | 評(píng)論 (1)編輯 收藏

         摘要: 1. Constructor /**/ /* 介紹:Constructor?提供關(guān)于類(lèi)的單個(gè)構(gòu)造方法的信息以及對(duì)它的訪問(wèn)權(quán)限。輸出:java.util.ArrayList:?Collection?java.util.ArrayList:?int?java.util.Ar...  閱讀全文
    posted @ 2006-08-15 14:09 方佳瑋 閱讀(2985) | 評(píng)論 (1)編輯 收藏

         摘要: GWT QQ 群號(hào):28310588用過(guò)gwt的都知道,對(duì)一個(gè)按鈕button做點(diǎn)擊事件很簡(jiǎn)單,但要做鼠標(biāo)事件,比如over,up,leave就沒(méi)辦法了,但extends Button就能做到,以下就是這個(gè)例子:我自己寫(xiě)的package?mypack.client;import?com.google.gwt.core.client.EntryPoint;import?com.google.gwt....  閱讀全文
    posted @ 2006-08-02 10:15 方佳瑋 閱讀(1701) | 評(píng)論 (2)編輯 收藏

    GWT QQ 群號(hào):28310588

    http://www.gwtpowered.org/


    有超多的GWT組建,比如:

    超好的日期輸入[插圖][演示]


    可排序的table:[插圖][
    演示]



    還有很多其他的,大家自己去尋找需要的組件。自己再修改,擴(kuò)展,漢化變成自己的超級(jí)GWT組件吧!
    posted @ 2006-08-01 11:17 方佳瑋 閱讀(2321) | 評(píng)論 (4)編輯 收藏

    Let my heart hibernate and I'm waiting for spring!
    posted @ 2006-07-20 16:34 方佳瑋 閱讀(274) | 評(píng)論 (0)編輯 收藏

         摘要: 不少朋友說(shuō)ajax in action 第9章的程序跑不起來(lái),本人比較熟悉j2ee,就將其改造成j2ee版演示給大家。使用Tomcat5.5,第9章后面的重構(gòu)后的也差不多源碼下載重構(gòu)源碼下載運(yùn)行:1.數(shù)據(jù)庫(kù)表就一個(gè):2.DoubleComboXML.javapackage?mypack;import?java.io.BufferedWriter;import?java.io.File;import...  閱讀全文
    posted @ 2006-07-20 10:08 方佳瑋 閱讀(1446) | 評(píng)論 (6)編輯 收藏

    (一)成長(zhǎng)的寓言:做一棵永遠(yuǎn)成長(zhǎng)的蘋(píng)果樹(shù)
      一棵蘋(píng)果樹(shù),終于結(jié)果了。
      第一年,它結(jié)了10個(gè)蘋(píng)果,9個(gè)被拿走,自己得到1個(gè)。對(duì)此,蘋(píng)果樹(shù)憤憤不平,于是自斷經(jīng)脈,拒絕成長(zhǎng)。第二年,它結(jié)了5個(gè)蘋(píng)果,4個(gè)被拿走,自己得到1個(gè)。"哈哈,去年我得到了10%,今年得到20%!翻了一番。"這棵蘋(píng)果樹(shù)心理平衡了。
      但是,它還可以這樣:繼續(xù)成長(zhǎng)。譬如,第二年,它結(jié)了100個(gè)果子,被拿走90個(gè),自己得到10個(gè)。
      很可能,它被拿走99個(gè),自己得到1個(gè)。但沒(méi)關(guān)系,它還可以繼續(xù)成長(zhǎng),第三年結(jié)1000個(gè)果子......
      其實(shí),得到多少果子不是最重要的。最重要的是,蘋(píng)果樹(shù)在成長(zhǎng)!等蘋(píng)果樹(shù)長(zhǎng)成參天大樹(shù)的時(shí)候,那些曾阻礙它成長(zhǎng)的力量都會(huì)微弱到可以忽略。真的,不要太在乎果子,成長(zhǎng)是最重要的。
      心理點(diǎn)評(píng)
      你是不是一個(gè)已自斷經(jīng)脈的打工族?
      剛開(kāi)始工作的時(shí)候,你才華橫溢,意氣風(fēng)發(fā),相信"天生我才必有用"。但現(xiàn)實(shí)很快敲了你幾個(gè)悶棍,或許,你為單位做了大貢獻(xiàn)沒(méi)人重視;或許,只得到口頭重視但卻得不到實(shí)惠;或許......總之,你覺(jué)得就像那棵蘋(píng)果樹(shù),結(jié)出的果子自己只享受到了很小一部分,與你的期望相差甚遠(yuǎn)。
      于是,你憤怒、你懊惱、你牢騷滿(mǎn)腹......最終,你決定不再那么努力,讓自己的所做去匹配自己的所得。幾年過(guò)去后,你一反省,發(fā)現(xiàn)現(xiàn)在的你,已經(jīng)沒(méi)有剛工作時(shí)的激情和才華了。
      "老了,成熟了。"我們習(xí)慣這樣自嘲。但實(shí)質(zhì)是,你已停止成長(zhǎng)了。
      這樣的故事,在我們身邊比比皆是。
      之所以犯這種錯(cuò)誤,是因?yàn)槲覀兺浬且粋€(gè)歷程,是一個(gè)整體,我們覺(jué)得自己已經(jīng)成長(zhǎng)過(guò)了,現(xiàn)在是到該結(jié)果子的時(shí)候了。我們太過(guò)于在乎一時(shí)的得失,而忘記了成長(zhǎng)才是最重要的。
      好在,這不是金庸小說(shuō)里的自斷經(jīng)脈。我們隨時(shí)可以放棄這樣做,繼續(xù)走向成長(zhǎng)之路。
      切記:如果你是一個(gè)打工族,遇到了不懂管理、野蠻管理或錯(cuò)誤管理的上司或企業(yè)文化,那么,提醒自己一下,千萬(wàn)不要因?yàn)榧嵑蜐M(mǎn)腹牢騷而自斷經(jīng)脈。不論遇到什么事情,都要做一棵永遠(yuǎn)成長(zhǎng)的蘋(píng)果樹(shù),因?yàn)槟愕某砷L(zhǎng)永遠(yuǎn)比每個(gè)月拿多少錢(qián)重要。

    (二)動(dòng)機(jī)的寓言:孩子在為誰(shuí)而玩
      一群孩子在一位老人家門(mén)前嬉鬧,叫聲連天。幾天過(guò)去,老人難以忍受。
      于是,他出來(lái)給了每個(gè)孩子25美分,對(duì)他們說(shuō):"你們讓這兒變得很熱鬧,我覺(jué)得自己年輕了不少,這點(diǎn)錢(qián)表示謝意。"
      孩子們很高興,第二天仍然來(lái)了,一如既往地嬉鬧。老人再出來(lái),給了每個(gè)孩子15美分。他解釋說(shuō),自己沒(méi)有收入,只能少給一些。15美分也還可以吧,孩子仍然興高采烈地走了。
      第三天,老人只給了每個(gè)孩子5美分。
      孩子們勃然大怒,"一天才5美分,知不知道我們多辛苦!"他們向老人發(fā)誓,他們?cè)僖膊粫?huì)為他玩了!
      心理點(diǎn)評(píng):
      你在為誰(shuí)而"玩"
      這是我在2005年6月18日的《你職業(yè)枯竭了嗎?》一文中提到的寓言。這個(gè)寓言是蘋(píng)果樹(shù)寓言的更深一層的答案:蘋(píng)果樹(shù)為什么會(huì)自斷經(jīng)脈,因?yàn)樗皇菫樽约憾?玩"。
      人的動(dòng)機(jī)分兩種:內(nèi)部動(dòng)機(jī)和外部動(dòng)機(jī)。如果按照內(nèi)部動(dòng)機(jī)去行動(dòng),我們就是自己的主人。如果驅(qū)使我們的是外部動(dòng)機(jī),我們就會(huì)被外部因素所左右,成為它的奴隸。
      在這個(gè)寓言中,老人的算計(jì)很簡(jiǎn)單,他將孩子們的內(nèi)部動(dòng)機(jī)"為自己快樂(lè)而玩"變成了外部動(dòng)機(jī)"為得到美分而玩",而他操縱著美分這個(gè)外部因素,所以也操縱了孩子們的行為。寓言中的老人,像不像是你的老板、上司?而美分,像不像是你的工資、獎(jiǎng)金等各種各樣的外部獎(jiǎng)勵(lì)?
      如將外部評(píng)價(jià)當(dāng)作參考坐標(biāo),我們的情緒就很容易出現(xiàn)波動(dòng)。因?yàn)椋獠恳蛩匚覀兛刂撇涣耍苋菀灼x我們的內(nèi)部期望,讓我們不滿(mǎn),讓我們牢騷滿(mǎn)腹。不滿(mǎn)和牢騷等負(fù)性情緒讓我們痛苦,為了減少痛苦,我們就只好降低內(nèi)部期望,最常見(jiàn)的方法就是減少工作的努力程度。
      一個(gè)人之所以會(huì)形成外部評(píng)價(jià)體系,最主要的原因是父母喜歡控制他。父母太喜歡使用口頭獎(jiǎng)懲、物質(zhì)獎(jiǎng)懲等控制孩子,而不去理會(huì)孩子自己的動(dòng)機(jī)。久而久之,孩子就忘記了自己的原初動(dòng)機(jī),做什么都很在乎外部的評(píng)價(jià)。上學(xué)時(shí),他忘記了學(xué)習(xí)的原初動(dòng)機(jī)---好奇心和學(xué)習(xí)的快樂(lè);工作后,他又忘記了工作的原初動(dòng)機(jī)---成長(zhǎng)的快樂(lè),上司的評(píng)價(jià)和收入的起伏成了他工作的最大快樂(lè)和痛苦的源頭。
      切記:外部評(píng)價(jià)系統(tǒng)經(jīng)常是一種家族遺傳,但你完全可以打破它,從現(xiàn)在開(kāi)始培育自己的內(nèi)部評(píng)價(jià)體系,讓學(xué)習(xí)和工作變成"為自己而玩"。

    (三)規(guī)劃的寓言:把一張紙折疊51次
      想象一下,你手里有一張足夠大的白紙。現(xiàn)在,你的任務(wù)是,把它折疊51次。那么,它有多高?
      一個(gè)冰箱?一層樓?或者一棟摩天大廈那么高?不是,差太多了,這個(gè)厚度超過(guò)了地球和太陽(yáng)之間的距離。
      心理點(diǎn)評(píng)
      這是我在2005年12月24日的文章《職業(yè)規(guī)劃:幫你設(shè)計(jì)人生》中提到的一個(gè)寓言。
      到現(xiàn)在,我拿這個(gè)寓言問(wèn)過(guò)十幾個(gè)人了,只有兩個(gè)人說(shuō),這可能是一個(gè)想象不到的高度,而其他人想到的最高的高度也就是一棟摩天大廈那么高。
      折疊51次的高度如此恐怖,但如果僅僅是將51張白紙疊在一起呢?
      這個(gè)對(duì)比讓不少人感到震撼。因?yàn)闆](méi)有方向、缺乏規(guī)劃的人生,就像是將51張白紙簡(jiǎn)單疊在一起。今天做做這個(gè),明天做做那個(gè),每次努力之間并沒(méi)有一個(gè)聯(lián)系。這樣一來(lái),哪怕每個(gè)工作都做得非常出色,它們對(duì)你的整個(gè)人生來(lái)說(shuō)也不過(guò)是簡(jiǎn)單的疊加而已。
      當(dāng)然,人生比這個(gè)寓言更復(fù)雜一些。有些人,一生認(rèn)定一個(gè)簡(jiǎn)單的方向而堅(jiān)定地做下去,他們的人生最后達(dá)到了別人不可企及的高度。譬如,我一個(gè)朋友的人生方向是英語(yǔ),他花了十?dāng)?shù)年努力,僅單詞的記憶量就達(dá)到了十幾萬(wàn)之多,在這一點(diǎn)上達(dá)到了一般人無(wú)法企及的高度。
      也有些人,他們的人生方向也很明確,譬如開(kāi)公司做老板,這樣,他們就需要很多技能---專(zhuān)業(yè)技能、管理技能、溝通技能、決策技能等等。他們可能會(huì)在一開(kāi)始嘗試做做這個(gè),又嘗試做做那個(gè),沒(méi)有一樣是特別精通的,但最后,開(kāi)公司做老板的這個(gè)方向?qū)⒁郧暗倪@些看似零散的努力統(tǒng)合到一起,這也是一種復(fù)雜的人生折疊,而不是簡(jiǎn)單的疊加。
      切記:看得見(jiàn)的力量比看不見(jiàn)的力量更有用。
      現(xiàn)在,流行從看不見(jiàn)的地方尋找答案,譬如潛能開(kāi)發(fā),譬如成功學(xué),以為我們的人生要靠一些奇跡才能得救。但是,在我看來(lái),東莞恒緣心理咨詢(xún)中心的咨詢(xún)師毛正強(qiáng)說(shuō)得更正確,"通過(guò)規(guī)劃利用好現(xiàn)有的能力遠(yuǎn)比挖掘所謂的潛能更重要。"

    (四)逃避的寓言:小貓?zhí)娱_(kāi)影子的招數(shù)
      "影子真討厭!"小貓湯姆和托比都這樣想,"我們一定要擺脫它。"
      然而,無(wú)論走到哪里,湯姆和托比發(fā)現(xiàn),只要一出現(xiàn)陽(yáng)光,它們就會(huì)看到令它們抓狂的自己的影子。
      不過(guò),湯姆和托比最后終于都找到了各自的解決辦法。湯姆的方法是,永遠(yuǎn)閉著眼睛。托比的辦法則是,永遠(yuǎn)待在其他東西的陰影里。
      心理點(diǎn)評(píng)
      這個(gè)寓言說(shuō)明,一個(gè)小的心理問(wèn)題是如何變成更大的心理問(wèn)題的。
      可以說(shuō),一切心理問(wèn)題都源自對(duì)事實(shí)的扭曲。什么事實(shí)呢?主要就是那些令我們痛苦的負(fù)性事件。
      因?yàn)橥纯嗟捏w驗(yàn),我們不愿意去面對(duì)這個(gè)負(fù)性事件。但是,一旦發(fā)生過(guò),這樣的負(fù)性事件就注定要伴隨我們一生,我們能做的,最多不過(guò)是將它們壓抑到潛意識(shí)中去,這就是所謂的忘記。
      但是,它們?cè)跐撘庾R(shí)中仍然會(huì)一如既往地發(fā)揮作用。并且,哪怕我們對(duì)事實(shí)遺忘得再厲害,這些事實(shí)所伴隨的痛苦仍然會(huì)襲擊我們,讓我們莫名其妙地傷心難過(guò),而且無(wú)法抑制。這種疼痛讓我們進(jìn)一步努力去逃避。
      發(fā)展到最后,通常的解決辦法就是這兩個(gè):要么,我們像小貓湯姆一樣,徹底扭曲自己的體驗(yàn),對(duì)生命中所有重要的負(fù)性事實(shí)都視而不見(jiàn);要么,我們像小貓托比一樣,干脆投靠痛苦,把自己的所有事情都搞得非常糟糕,既然一切都那么糟糕,那個(gè)讓自己最傷心的原初事件就不是那么疼了。
      白云心理醫(yī)院的咨詢(xún)師李凌說(shuō),99%的吸毒者有過(guò)痛苦的遭遇。他們之所以吸毒,是為了讓自己逃避這些痛苦。這就像是躲進(jìn)陰影里,痛苦的事實(shí)是一個(gè)魔鬼,為了躲避這個(gè)魔鬼,干脆把自己賣(mài)給更大的魔鬼。
      還有很多酗酒的成人,他們有過(guò)一個(gè)酗酒而暴虐的老爸,挨過(guò)老爸的不少折磨。為了忘記這個(gè)痛苦,他們學(xué)會(huì)了同樣的方法。
      除了這些看得見(jiàn)的錯(cuò)誤方法外,我們?nèi)祟?lèi)還發(fā)明了無(wú)數(shù)種形形色色的方法去逃避痛苦,弗洛伊德將這些方式稱(chēng)為心理防御機(jī)制。太痛苦的時(shí)候,這些防御機(jī)制是必要的,但糟糕的是,如果心理防御機(jī)制對(duì)事實(shí)扭曲得太厲害,它會(huì)帶出更多的心理問(wèn)題,譬如強(qiáng)迫癥、社交焦慮癥、多重人格,甚至精神分裂癥等。
      真正抵達(dá)健康的方法只有一個(gè)---直面痛苦。直面痛苦的人會(huì)從痛苦中得到許多意想不到的收獲,它們最終會(huì)變成當(dāng)事人的生命財(cái)富。規(guī)劃利用好現(xiàn)有的能力遠(yuǎn)比挖掘所謂的潛能更重要。"
      切記:陰影和光明一樣,都是人生的財(cái)富。
      一個(gè)最重要的心理規(guī)律是,無(wú)論多么痛苦的事情,你都是逃不掉的。你只能去勇敢地面對(duì)它,化解它,超越它,最后和它達(dá)成和解。如果你自己暫時(shí)缺乏力量,你可以尋找?guī)椭瑢ふ矣H友的幫助,或?qū)ふ覍?zhuān)業(yè)的幫助,讓你信任的人陪著你一起去面對(duì)這些痛苦的事情。
      美國(guó)心理學(xué)家羅杰斯曾是最孤獨(dú)的人,但當(dāng)他面對(duì)這個(gè)事實(shí)并化解后,他成了真正的人際關(guān)系大師;美國(guó)心理學(xué)家弗蘭克(見(jiàn)本報(bào)1月7日的《每一次磨難都是生命的財(cái)富》)有一個(gè)暴虐而酗酒的繼父和一個(gè)糟糕的母親,但當(dāng)他挑戰(zhàn)這個(gè)事實(shí)并最終從心中原諒了父母后,他成了治療這方面問(wèn)題的專(zhuān)家;日本心理學(xué)家森田正馬曾是嚴(yán)重的神經(jīng)癥患者,但他通過(guò)挑戰(zhàn)這個(gè)事實(shí)并最終發(fā)明出了森田療法......他們生命中最痛苦的事實(shí)最后都變成了他們最重要的財(cái)富。你,一樣也可以做到。
    ?
    (五)行動(dòng)的寓言---螃蟹、貓頭鷹和蝙蝠
      螃蟹、貓頭鷹和蝙蝠去上惡習(xí)補(bǔ)習(xí)班。數(shù)年過(guò)后,它們都順利畢業(yè)并獲得博士學(xué)位。不過(guò),螃蟹仍橫行,貓頭鷹仍白天睡覺(jué)晚上活動(dòng),蝙蝠仍倒懸。
      心理點(diǎn)評(píng)
      這是黃永玉大師的一個(gè)寓言故事,它的寓意很簡(jiǎn)單:行動(dòng)比知識(shí)重要。
      用到心理健康中,這個(gè)寓言也發(fā)人深省。
      心理學(xué)的知識(shí)堪稱(chēng)博大精深。但是,再多再好的心理學(xué)知識(shí)也不能自動(dòng)幫助一個(gè)人變得更健康。其實(shí),我知道的一些學(xué)過(guò)多年心理學(xué)的人士,他們學(xué)心理學(xué)的目的之一就是要治自己,但學(xué)了這么多年以后,他們的問(wèn)題依舊。
      之所以出現(xiàn)這種情況,一個(gè)很重要的原因是,他們沒(méi)有身體力行,那樣知識(shí)就只是遙遠(yuǎn)的知識(shí),知識(shí)并沒(méi)有化成他們自己的生命體驗(yàn)。
      我的一個(gè)喜歡心理學(xué)的朋友,曾被多名心理學(xué)人士認(rèn)為不敏感,不適合學(xué)心理學(xué)。但事實(shí)證明,這種揣測(cè)并不正確。他是不夠敏感,但他有一個(gè)非常大的優(yōu)點(diǎn):知道一個(gè)好知識(shí),就立即在自己的生命中去執(zhí)行。這樣一來(lái),那些遙遠(yuǎn)的知識(shí)就變成了真切的生命體驗(yàn),他不必"懂"太多,就可以幫助自己,并幫助很多人。
      如果說(shuō),高敏感度是一種天才素質(zhì),那么高行動(dòng)力是更重要的天才素質(zhì)。
      這個(gè)寓言還可以引申出另一種含義:不要太指望神秘的心理治療的魔力。最重要的力量永遠(yuǎn)在你自己的身上,奧秘的知識(shí)、玄妙的潛能開(kāi)發(fā)、炫目的成功學(xué)等等,都遠(yuǎn)不如你自己身上已有的力量重要。我們習(xí)慣去外面尋找答案,去別人那里尋找力量,結(jié)果忘記了力量就在自己身上。
      切記:別人的知識(shí)不能自動(dòng)地拯救你。
      如果一些連珠的妙語(yǔ)打動(dòng)了你,如果一些文字或新信條啟發(fā)了你。那么,這些別人的文字和經(jīng)驗(yàn)都只是一個(gè)開(kāi)始,更重要的是,你把你以為好的知識(shí)真正運(yùn)用到你自己的生命中去。
      猶太哲學(xué)家馬丁·布伯的這句話,我一直認(rèn)為是最重要的:
      你必須自己開(kāi)始。假如你自己不以積極的愛(ài)去深入生存,假如你不以自己的方式去為自己揭示生存的意義,那么對(duì)你來(lái)說(shuō),生存就將依然是沒(méi)有意義的。

    (六)放棄的寓言:蜜蜂與鮮花
      玫瑰花枯萎了,蜜蜂仍拼命吮吸,因?yàn)樗郧皬倪@朵花上吮吸過(guò)甜蜜。但是,現(xiàn)在在這朵花上,蜜蜂吮吸的是毒汁。
      蜜蜂知道這一點(diǎn),因?yàn)槎局酀c以前的味道是天壤之別。于是,蜜蜂憤不過(guò),它吸一口就抬起頭來(lái)向整個(gè)世界抱怨,為什么味道變了?!
      終于有一天,不知道是什么原因,蜜蜂振動(dòng)翅膀,飛高了一點(diǎn)。這時(shí),它發(fā)現(xiàn),枯萎的玫瑰花周?chē)幪幨酋r花。
      心理點(diǎn)評(píng)
      這是關(guān)于愛(ài)情的寓言,是一位年輕的語(yǔ)文老師的真實(shí)感悟。
      有一段時(shí)間,她失戀了,很痛苦,一直想約我聊聊,希望我的心理學(xué)知識(shí)能給她一些幫助。我們一直約時(shí)間,但快兩個(gè)月過(guò)去了,兩人的時(shí)間總不能碰巧湊在一起。
      最后一次約她,她說(shuō):"謝謝!不用了,我想明白了。"   原來(lái),她剛從九寨溝回來(lái)。失戀的痛苦仍在糾纏她,讓她神情恍惚,不能享受九寨溝的美麗。不經(jīng)意的時(shí)候,她留意到一只小蜜蜂正在一朵鮮花上采蜜。那一剎那間,她腦子里電閃雷鳴般地出現(xiàn)了一句話:"枯萎的鮮花上,蜜蜂只能吮吸到毒汁。"
      當(dāng)然,大自然中的小蜜蜂不會(huì)這么做,只有人類(lèi)才這么傻,她這句話里的蜜蜂當(dāng)然指她自己。這一剎那,她頓悟出了放棄的道理。以前,她想讓我?guī)退叱鰜?lái),但翅膀其實(shí)就長(zhǎng)在她自己身上,她想飛就能飛。
      放棄并不容易,愛(ài)情中的放棄尤其令人痛苦。因?yàn)椋瑦?ài)情是對(duì)我們幼小時(shí)候的親子關(guān)系的復(fù)制。幼小的孩子,無(wú)論從哪個(gè)方面看,都離不開(kāi)爸爸媽媽。如果爸爸媽媽完全否定他,那對(duì)他來(lái)說(shuō)就意味著死亡,這是終極的傷害和恐懼。我們多多少少都曾體驗(yàn)過(guò)被爸爸媽媽否定的痛苦和恐懼,所以,當(dāng)愛(ài)情---這個(gè)親子關(guān)系的復(fù)制品再一次讓我們體驗(yàn)這種痛苦和恐懼時(shí),我們的情緒很容易變得非常糟糕。
      不過(guò),愛(ài)情和親子關(guān)系相比,有一個(gè)巨大的差別:小時(shí)候,我們無(wú)能為力,一切都是父母說(shuō)了算;但現(xiàn)在,我們長(zhǎng)大了,我們有力量自己去選擇自己的命運(yùn)。可以說(shuō),童年時(shí),我們是沒(méi)有翅膀的小蜜蜂,但現(xiàn)在,我們有了一雙強(qiáng)有力的翅膀了。
      但是,當(dāng)深深地陷入愛(ài)情時(shí),我們會(huì)回歸童年,我們會(huì)忘記自己有一雙可以飛翔的翅膀。等我們自己悟出這一點(diǎn)后,愛(ài)情就不再會(huì)是對(duì)親子關(guān)系的自動(dòng)復(fù)制,我們的愛(ài)情就獲得了自由,就有了放棄的力量。
      切記:愛(ài)情是兩個(gè)人的事情,兩個(gè)完全平等的、有獨(dú)立人格的人的事情。你可以努力,但不是說(shuō),你努力了就一定會(huì)有效果,因?yàn)榱硪粋€(gè)人,你并不能左右。
      所以,無(wú)論你多么在乎一次愛(ài)情,如果另一個(gè)人堅(jiān)決要離開(kāi)你,請(qǐng)尊重他的選擇。
      并且,還要記得,你不再是童年,只能聽(tīng)?wèi){痛苦的折磨。你已成人,你有一雙強(qiáng)有力的翅膀,你完全可以飛出一個(gè)已經(jīng)變成毒藥的關(guān)系。

    (七)親密的寓言:獨(dú)一無(wú)二的玫瑰
      小王子有一個(gè)小小的星球,星球上忽然綻放了一朵嬌艷的玫瑰花。以前,這個(gè)星球上只有一些無(wú)名的小花,小王子從來(lái)沒(méi)有見(jiàn)過(guò)這么美麗的花,他愛(ài)上這朵玫瑰,細(xì)心地呵護(hù)她。
      那一段日子,他以為,這是一朵人世間唯一的花,只有他的星球上才有,其他的地方都不存在。
      然而,等他來(lái)到地球上,發(fā)現(xiàn)僅僅一個(gè)花園里就有5000朵完全一樣的這種花朵。這時(shí),他才知道,他有的只是一朵普通的花。
      一開(kāi)始,這個(gè)發(fā)現(xiàn),讓小王子非常傷心。但最后,小王子明白,盡管世界上有無(wú)數(shù)朵玫瑰花,但他的星球上那朵,仍然是獨(dú)一無(wú)二的,因?yàn)槟嵌涿倒寤ǎ麧补噙^(guò),給她罩過(guò)花罩,用屏風(fēng)保護(hù)過(guò),除過(guò)她身上的毛蟲(chóng),還傾聽(tīng)過(guò)她的怨艾和自詡,聆聽(tīng)過(guò)她的沉默......一句話,他馴服了她,她也馴服了他,她是他獨(dú)一無(wú)二的玫瑰。
      "正因?yàn)槟銥槟愕拿倒寤ㄙM(fèi)了時(shí)間,這才使你的玫瑰變得如此重要。"一只被小王子馴服的狐貍對(duì)他說(shuō)。
      心理點(diǎn)評(píng)
      這是法國(guó)名著《小王子》中一個(gè)有名的寓言故事,我曾讀過(guò)十?dāng)?shù)遍,但仍然是直到2005年才明白這一點(diǎn)。
      面對(duì)著5000朵玫瑰花,小王子說(shuō):"你們很美,但你們是空虛的,沒(méi)有人能為你們?nèi)ニ馈?
      只有傾注了愛(ài),親密關(guān)系才有意義。但是,現(xiàn)在我們?cè)絹?lái)越流行空虛的"親密關(guān)系",最典型的就是因網(wǎng)絡(luò)而泛濫的一夜情。
      我們急著去擁有。仿佛是,每多擁有過(guò)一朵玫瑰,自己的生命價(jià)值就多了一分。網(wǎng)絡(luò)時(shí)代,擁有過(guò)數(shù)十名情人,已不再是太罕見(jiàn)的事情。但我所了解的這些濫情者,沒(méi)有一個(gè)是不空虛的。他們并不享受關(guān)系,他們只享受征服。
      "征服欲望越強(qiáng)的人,對(duì)于關(guān)系的親密度越?jīng)]有興趣。"廣州白云心理醫(yī)院的咨詢(xún)師榮瑋齡說(shuō),"沒(méi)有擁有前,他們會(huì)想盡一切辦法拉近關(guān)系的距離。但一旦擁有后,他們會(huì)迅速喪失對(duì)這個(gè)親密關(guān)系的興趣。征服欲望越強(qiáng),喪失的速度越快。"
      對(duì)于這樣的人,一個(gè)玫瑰園比起一朵獨(dú)一無(wú)二的玫瑰花來(lái),更有吸引力。
      然而,關(guān)系的美,正在乎兩人的投入程度和被馴服程度。當(dāng)兩個(gè)人都自然而然地去投入,自然而然地被馴服后,關(guān)系就會(huì)變成人生養(yǎng)料,讓一個(gè)人的生命變得更充盈、更美好。
      但是,無(wú)論多么親密。小王子仍是小王子,玫瑰仍是玫瑰,他們?nèi)匀皇莾蓚€(gè)個(gè)體。如果玫瑰不讓小王子旅行,或者小王子旅行時(shí)非將玫瑰花帶在身上,兩者一定要黏在一起,關(guān)系就不再是享受,而會(huì)變成一個(gè)累贅。
      切記:一個(gè)既親密而又相互獨(dú)立的關(guān)系,勝于一千個(gè)一般的關(guān)系。這樣的關(guān)系,會(huì)把我們從不可救藥的孤獨(dú)感中拯救出來(lái),是我們生命中最重要的一種救贖。
    posted @ 2006-07-19 09:37 方佳瑋 閱讀(842) | 評(píng)論 (0)編輯 收藏

         摘要: 表操作 ? 例 1? 對(duì)于...  閱讀全文
    posted @ 2006-07-19 00:37 方佳瑋 閱讀(5649) | 評(píng)論 (8)編輯 收藏

    1.請(qǐng)介紹一下你自己

    這是外企常問(wèn)的問(wèn)題。一般人回答這個(gè)問(wèn)題過(guò)于平常,只說(shuō)姓名、年齡、愛(ài)好、工作經(jīng)驗(yàn),這些在簡(jiǎn)歷上都有,其實(shí),外企最希望知道的是求職者能否勝任工作,包括:最強(qiáng)的技能、最深入研究的知識(shí)領(lǐng)域、個(gè)性中最積極的部分、做過(guò)的最成功的事,主要的成就等,這些都可以和學(xué)習(xí)無(wú)關(guān),也可以和學(xué)習(xí)有關(guān),但要突出積極的個(gè)性和做事的能力,說(shuō)得合情合理外企才會(huì)相信。外企很重視一個(gè)人的禮貌,求職者要尊重考官,在回答每個(gè)問(wèn)題之后都說(shuō)一句"謝謝"。外企喜歡有禮貌的求職者。
    2.在學(xué)校你最不喜歡的課程是什么?為什么??

    ?????這個(gè)問(wèn)題外企不希望求職者直接回答"數(shù)學(xué)"、"體育"之類(lèi)的具體課程,如果直接回答還說(shuō)明了理由,不僅代表求職者對(duì)這個(gè)學(xué)科不感興趣,可能還代表將來(lái)也會(huì)對(duì)要完成的某些工作沒(méi)有興趣。這個(gè)問(wèn)題外企招聘者最想從求職者口里聽(tīng)到:我可能對(duì)個(gè)別科目不是特別感興趣,但是正因?yàn)檫@樣,我會(huì)花更多的時(shí)間去學(xué)習(xí)這門(mén)課程,通過(guò)學(xué)習(xí)對(duì)原本不感興趣的科目也開(kāi)始有了興趣,對(duì)于本來(lái)就有興趣的科目我自然學(xué)習(xí)得更認(rèn)真,所以各門(mén)課的成績(jī)較為平衡。通過(guò)這樣的問(wèn)題,外企可以找到對(duì)任何事情都很感興趣的求職者。

    3.說(shuō)說(shuō)你最大的優(yōu)缺點(diǎn)?

    ????? 這個(gè)問(wèn)題外企問(wèn)的概率很大,通常不希望聽(tīng)到直接回答的缺點(diǎn)是什么等,如果求職者說(shuō)自己小心眼、愛(ài)忌妒人、非常懶、脾氣大、工作效率低,外企肯定不會(huì)錄用你。外企喜歡求職者從自己的優(yōu)點(diǎn)說(shuō)起,中間加一些小缺點(diǎn),最后再把問(wèn)題轉(zhuǎn)回到優(yōu)點(diǎn)上,突出優(yōu)點(diǎn)的部分。外企喜歡聰明的求職者。

    4.你認(rèn)為你在學(xué)校屬于好學(xué)生嗎?

    ????? 外企的招聘者很精明,問(wèn)這個(gè)問(wèn)題可以試探出很多問(wèn)題:如果求職者學(xué)習(xí)成績(jī)好,就會(huì)說(shuō):"是的,我的成績(jī)很好,所有的成績(jī)都很優(yōu)異。當(dāng)然,判斷一個(gè)學(xué)生是不是好學(xué)生有很多標(biāo)準(zhǔn),在學(xué)校期間我認(rèn)為成績(jī)是重要的,其他方面包括思想道德、實(shí)踐經(jīng)驗(yàn)、團(tuán)隊(duì)精神、溝通能力也都是很重要的,我在這些方面也做得很好,應(yīng)該說(shuō)我是一個(gè)全面發(fā)展的學(xué)生。"如果求職者成績(jī)不盡理想,便會(huì)說(shuō):"我認(rèn)為是不是一個(gè)好學(xué)生的標(biāo)準(zhǔn)是多元化的,我的學(xué)習(xí)成績(jī)還可以,在其他方面我的表現(xiàn)也很突出,比如我去很多地方實(shí)習(xí)過(guò),我很喜歡在快節(jié)奏和壓力下工作,我在學(xué)生會(huì)組織過(guò)××活動(dòng),鍛煉了我的團(tuán)隊(duì)合作精神和組織能力。"有經(jīng)驗(yàn)的招聘者一聽(tīng)就會(huì)明白,外企喜歡誠(chéng)實(shí)的求職者。

    5.說(shuō)說(shuō)你的家庭。

    ???? 外企面試時(shí)詢(xún)問(wèn)家庭問(wèn)題不是非要知道求職者家庭的情況,探究隱私,外企不喜歡探究個(gè)人隱私,而是要了解家庭背景對(duì)求職者的塑造和影響。外企希望聽(tīng)到的重點(diǎn)也在于家庭對(duì)求職者的積極影響。外企最喜歡聽(tīng)到的是:我很愛(ài)我的家庭!我的家庭一向很和睦,雖然我的父親和母親都是普通人,但是從小,我就看到我父親起早貪黑,每天工作特別勤勞,他的行動(dòng)無(wú)形中培養(yǎng)了我認(rèn)真負(fù)責(zé)的態(tài)度和勤勞的精神。我母親為人善良,對(duì)人熱情,特別樂(lè)于助人,所以在單位人緣很好,她的一言一行也一直在教導(dǎo)我做人的道理。外企相信,和睦的家庭關(guān)系對(duì)一個(gè)人的成長(zhǎng)有潛移默化的影響。

    6.說(shuō)說(shuō)你對(duì)行業(yè)、技術(shù)發(fā)展趨勢(shì)的看法?

    ????? 外企對(duì)這個(gè)問(wèn)題很感興趣,只有有備而來(lái)的求職者能夠過(guò)關(guān)。求職者可以直接在網(wǎng)上查找對(duì)你所申請(qǐng)的行業(yè)部門(mén)的信息,只有深入了解才能產(chǎn)生獨(dú)特的見(jiàn)解。外企認(rèn)為最聰明的求職者是對(duì)所面試的公司預(yù)先了解很多,包括公司各個(gè)部門(mén),發(fā)展情況,在面試回答問(wèn)題的時(shí)候可以提到所了解的情況,外企歡迎進(jìn)入企業(yè)的人是"知己",而不是"盲人"。

    7.就你申請(qǐng)的這個(gè)職位,你認(rèn)為你還欠缺什么?

    ???? 外企喜歡問(wèn)求職者弱點(diǎn),但精明的求職者一般不直接回答。他們希望看到這樣的求職者:繼續(xù)重復(fù)自己的優(yōu)勢(shì),然后說(shuō):"對(duì)于這個(gè)職位和我的能力來(lái)說(shuō),我相信自己是可以勝任的,只是缺乏經(jīng)驗(yàn),這個(gè)問(wèn)題我想我可以進(jìn)入公司以后以最短的時(shí)間來(lái)解決,我的學(xué)習(xí)能力很強(qiáng),我相信可以很快融入公司的企業(yè)文化,進(jìn)入工作狀態(tài)。"外企喜歡能夠巧妙地躲過(guò)難題的求職者。

    8.你期望的工資是多少?

    ???? 外企的工資水平是很靈活的,何種能力拿何種工資。外企喜歡直率的人,但這個(gè)問(wèn)題卻不能正面回答,外企希望聽(tīng)到:"以我的能力和我的優(yōu)勢(shì),我完全可以勝任這個(gè)職位,我相信我可以做得很好。但是貴公司對(duì)這個(gè)職位的描述不是很具體,我想還可以延后再討論"。外企歡迎求職者給其定薪的自由度,而不是咬準(zhǔn)一個(gè)價(jià)碼。

    9.你能給公司帶來(lái)什么?

    ????? 外企很想知道未來(lái)的員工能為企業(yè)做什么,求職者應(yīng)再次重復(fù)自己的優(yōu)勢(shì),然后說(shuō):"就我的能力,我可以做一個(gè)優(yōu)秀的員工在組織中發(fā)揮能力,給組織帶來(lái)高效率和更多的收益"。外企喜歡求職者就申請(qǐng)的職位表明自己的能力,比如申請(qǐng)營(yíng)銷(xiāo)之類(lèi)的職位,可以說(shuō):"我可以開(kāi)發(fā)大量的新客戶(hù),同時(shí),對(duì)老客戶(hù)做更全面周到的服務(wù),開(kāi)發(fā)老客戶(hù)的新需求和消費(fèi)。"等等。

    10.你還有什么問(wèn)題嗎?

    ????? 外企的這個(gè)問(wèn)題看上去可有可無(wú),其實(shí)很關(guān)鍵,外企不喜歡說(shuō)"沒(méi)有問(wèn)題"的人,因?yàn)槠浜茏⒅貑T工的個(gè)性和創(chuàng)新能力。外企不喜歡求職者問(wèn)個(gè)人福利之類(lèi)的問(wèn)題,如果有人這樣問(wèn):貴公司對(duì)新入公司的員工有沒(méi)有什么培訓(xùn)項(xiàng)目,我可以參加嗎?或者說(shuō)貴公司的晉升機(jī)制是什么樣的?外企將很歡迎,因?yàn)轶w現(xiàn)出你對(duì)學(xué)習(xí)的熱情和對(duì)公司的忠誠(chéng)度以及你的上進(jìn)心。
    posted @ 2006-07-15 15:54 方佳瑋 閱讀(527) | 評(píng)論 (0)編輯 收藏

         摘要: GWT QQ 群號(hào):28310588功能:1。當(dāng)加載頁(yè)面時(shí)把數(shù)據(jù)庫(kù)的表讀入matchArr2。每次按鍵都是matchArr的查詢(xún),查詢(xún)方法用正則表達(dá)式抱歉,沒(méi)什么注釋?zhuān)o大家添麻煩了有任何疑問(wèn)請(qǐng)聯(lián)系我 qq:259102567? MSN:jorwen_fang@hotmail.com代碼下載我不久前寫(xiě)的關(guān)于gwt文章另外在 《ajax in action》書(shū)中有提到更佳的算法,提高性能,以及打字過(guò)...  閱讀全文
    posted @ 2006-07-14 13:51 方佳瑋 閱讀(3499) | 評(píng)論 (10)編輯 收藏

    GWT QQ 交流群:28310588

    最近在玩 Google Web Toolkit?
    一個(gè)可以用純java編寫(xiě)ajax,然后自動(dòng)翻譯成可以用在j2ee工程里的程序,太強(qiáng)了。
    因此不用學(xué)ajax,只要會(huì)java(尤其awt基礎(chǔ))和這個(gè)工具,ajax任我玩
    介紹一下,好東西,感覺(jué)有望成為熱門(mén)ajax開(kāi)發(fā)工具,而且目前還出了與eclipse插件:googlipse。
    我剛用過(guò),很方便


    收集的資料:

    1. 非常完整的gwt+netbeans的教程:http://www.javapassion.com/handsonlabs/ajaxgwtintro/

    2. 有3篇IBM文章介紹Google Web Toolkit?

    面向 Java 開(kāi)發(fā)人員的 Ajax: 使用 Google Web Toolkit 開(kāi)發(fā) Ajax :GWT(Google Web Toolkit) 是 Google 最近推出的一個(gè)開(kāi)發(fā) Ajax 應(yīng)用的框架,它支持用 Java 開(kāi)發(fā)和調(diào)試 Ajax 應(yīng)用,本文主要介紹如何利用 GWT 進(jìn)行 Ajax 的開(kāi)發(fā)。
    面向 Java 開(kāi)發(fā)人員的 Ajax: Google Web Toolkit 入門(mén) :Ajax 被用于創(chuàng)建更加動(dòng)態(tài)和交互性更好的 Web 應(yīng)用程序。Google Web Toolkit (簡(jiǎn)稱(chēng) GWT) 是 Google 推出的 Ajax 應(yīng)用開(kāi)發(fā)包,GWT 支持開(kāi)發(fā)者使用 Java 語(yǔ)言開(kāi)發(fā) Ajax 應(yīng)用。本文將介紹 GWT 開(kāi)發(fā) Ajax 應(yīng)用的基本方法和步驟。

    面向 Java 開(kāi)發(fā)人員的 Ajax: 探索 Google Web Toolkit:最近發(fā)布的 Google Web Toolkit (GWT) 是一組全面的 API 和工具,它支持用戶(hù)幾乎完全使用 Java 代碼來(lái)創(chuàng)建動(dòng)態(tài) Web 應(yīng)用程序。本文將向您展示 GWT 能做什么,并幫助您確定它是否適合您。

    3.(GWT eclipse 插件1)gwtdesigner
    http://www.instantiations.com/gwtdesigner/download.html

    4.(GWT eclipse 插件2)googlipse

    1) 下載:http://sourceforge.net/projects/googlipse

    2) 安裝前提:

    a)? Eclipse 3.2 with WebTools Platform 1.5(一定要裝,)
    b) 運(yùn)行在 Java 1.5
    c) 還需要下載 Google Web Toolkit

    3) googlipse從安裝插件到做出實(shí)例全過(guò)程(官方)

    ?(*) Drop the com.googlipse.gwt_<version>.jar file in your eclipse\plugins folder
    ?(*) Open Eclipse. Select Window->Preferences->Googlipse and set GWT home to the directory where you have installed the Google Web Toolkit.
    ?(*) You are all set to code.
    ?
    Adding Googlipse to your project:

    ?Googlipse is implemented as a WTP Facet. When creating a new Dynamic Web Project, select Googlipse in the Project Facets page. If you already have a Dynamic Web Project, you can add Googlipse facet by selecting Project->Properties->Project Facets(Please make sure you don't have gwt-user.jar in your classpath). In case you didn't like Googlipse, you can remove the facet.

    Creating a Module:

    ?Once you have a Dynamic Web Project with Googlipse facet, you can add a new module by File->New->Other->Googlipse->Gwt Module. Modules can be created only in valid java packages (default package is not allowed). Either you can type in the package (with project & source folder) in the location field or you can select it by clicking Browse button. You can also click the Create button to create a new package. Next type in the name of the module. Click Finish, you will have all the artifacts for the module generated.
    ?
    Adding a Remote Service;

    ?Note :A Remote Service will be created only in a module. So if you don't have a module, you need to create one using the New Module wizard, before this step.
    ?You can select File->New->Other->Googlipse->Gwt Remote Service. Click the Browse button and select the module (the gwt.xml file). Type the name and uri for the service and click Finish. Now the artifacts for the remote service will be generated. (You have to add an entry in the gwt.xml file manually. Googlipse doesn't add it. This feature will be implemented in future versions)
    ?
    Adding a Remote Service method:

    ?You can open the RemoteService interface and add/change methods in it. You need to provide the implementation of those methods in RemoteServiceImpl class, but thanks to Googlipse, you don't have to do anything in RemoteServiceAsync. Googlipse will automatically update the corresponding Async file whenever a RemoteService interface is changed.
    ?
    Calling a method using Remote Service:

    ?The utility class in the Remote service should help you in making the remote call.
    ?
    ?MyRemoteServiceAsync async = MyRemoteService.Util.getInstance();
    ?async.makeRemoteCall(param1, param2, callback);
    ?
    Running/Debugging a Gwt Application:

    ?Select Run->Run/Debug to activate the Lauch configuration dialog box. Double Click "Gwt Application". In the main page, you can select the Project & Module you want to run. In the parameters page you can select the parameters such as port and log level. Click Run to execute the GwtShell & bring up your application. The laucher will add the jar files & all the source folders in the project to your application.
    ?
    ?
    Questions/Bugs/Suggestions?

    ?Drop a mail to googlipse-users@lists.sourceforge.net

    posted @ 2006-07-09 23:47 方佳瑋 閱讀(4984) | 評(píng)論 (3)編輯 收藏

    有4種方法:

    1. acegi-security: 這是偷懶的辦法
    2. 用攔截的主法, 這種最靈活,只要你有能力可以隨意擴(kuò)展功能.
    3. 用代理模式的方法,這種最傳統(tǒng), JIVE采用這種,我也用這種.
    4. if else 方法,最簡(jiǎn)單的方法.


    -----------------

    包括四個(gè)程序模塊:

    1、 用戶(hù)管理(user):實(shí)現(xiàn)用戶(hù)注冊(cè)管理、用戶(hù)資料管理、增加用戶(hù)、刪除用戶(hù)、用戶(hù)密碼丟失后找回密碼等功能。

    2、 組織管理(group):建立用戶(hù)組,將不同的用戶(hù)劃分到不同的組中,建立的用戶(hù)組可以和現(xiàn)實(shí)的部門(mén)機(jī)構(gòu)相對(duì)應(yīng)。采用樹(shù)型結(jié)構(gòu)設(shè)計(jì),可以在上級(jí)部門(mén)中建立下一級(jí)部門(mén)。

    3、 角色管理(role):為用戶(hù)指定一個(gè)角色,比如:信息中心人員、辦公室主任等。

    4、 權(quán)限管理(auth):為整個(gè)系統(tǒng)劃分權(quán)限,為每個(gè)角色分配一種權(quán)限。實(shí)現(xiàn)不同的用戶(hù)訪問(wèn)應(yīng)用系統(tǒng)的不同部份。


    在HIBERNATE中,表建起來(lái)之后,只是多對(duì)多,多對(duì)一等關(guān)系,再把AUTH的POJO放到HTTPSESSION中,用的時(shí)候,在要驗(yàn)證的模塊前面搞一個(gè)PROXY模式. 或者欄截一下.
    posted @ 2006-06-30 13:55 方佳瑋 閱讀(1039) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 免费VA在线观看无码| 亚洲.国产.欧美一区二区三区| 无码人妻AV免费一区二区三区| 亚洲开心婷婷中文字幕| 九九久久精品国产免费看小说| 50岁老女人的毛片免费观看| 又粗又大又硬又爽的免费视频| 亚洲成av人无码亚洲成av人| 在线观看免费为成年视频| 国产亚洲无线码一区二区| 国产免费播放一区二区| 免费无码又爽又刺激毛片| 亚洲欧洲无码一区二区三区| 国产免费爽爽视频在线观看| 日本免费无遮挡吸乳视频电影| 亚洲AV无码成人精品区日韩| 四虎1515hm免费国产| 亚洲国产精品免费在线观看| 天堂在线免费观看| 亚洲av无码国产精品夜色午夜| 久久精品国产免费| 777亚洲精品乱码久久久久久| 亚洲电影在线免费观看| 国产精品亚洲片夜色在线| 女人18特级一级毛片免费视频| 亚洲av无码片vr一区二区三区| 免费人成无码大片在线观看| 色婷婷综合缴情综免费观看| 亚洲日韩精品无码一区二区三区| 国产午夜无码精品免费看| 亚洲色图校园春色| 插B内射18免费视频| 日韩亚洲人成网站| 久久亚洲2019中文字幕| 特级av毛片免费观看| 国产成人A亚洲精V品无码 | 亚洲精品综合久久| 亚洲综合久久精品无码色欲| 宅男666在线永久免费观看 | 亚洲中文字幕无码爆乳AV| 久久免费线看线看|