??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕日本一区,久久亚洲影视,欧美精品三级在线http://www.aygfsteel.com/leeguannan/category/28574.html5q开发工E师Q?q实施经理,Xq售前顾问,......zh-cnWed, 09 Jan 2013 11:39:30 GMTWed, 09 Jan 2013 11:39:30 GMT60Could not instantiate class XXX from tuple at AliasToBeanConstructorResultTransformer 的处理办?/title><link>http://www.aygfsteel.com/leeguannan/archive/2013/01/09/394009.html</link><dc:creator>阿南</dc:creator><author>阿南</author><pubDate>Wed, 09 Jan 2013 02:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/leeguannan/archive/2013/01/09/394009.html</guid><wfw:comment>http://www.aygfsteel.com/leeguannan/comments/394009.html</wfw:comment><comments>http://www.aygfsteel.com/leeguannan/archive/2013/01/09/394009.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/leeguannan/comments/commentRss/394009.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/leeguannan/services/trackbacks/394009.html</trackback:ping><description><![CDATA[今天客户Ҏ(gu)务器上突然有一个功能保存(sh)(jin)Q查看日志信息后发现Q错误信息:(x)<br /><div>Could not instantiate class XXX from tuple at AliasToBeanConstructorResultTransformer...<br /><br />Google?jin)很久才发现有可能是HQL语句中别名的问题Q具体原因未知,现在处理办法是,下面的语句中的别名LQ?br /><br /><div>StringBuffer hql = new StringBuffer("select new ContractItem(l, "</div><div><span style="white-space:pre"> </span>+ " pi.unitPrice, " + " pi.currencyType, " + "pi.currencyTypeDisplay," + " pi.units, "</div><div><span style="white-space:pre"> </span>+ " sum(pi.quantity + pi.adjQuantity), " + " pp, " + " pi.task) "</div><div><span style="white-space:pre"> </span>+ " from PurchasePlanItem pi " + " join pi.purchasePlan pp"</div><div><span style="white-space:pre"> </span>+ " join pi.priorList l " + " where l.supplierNo = ?  "</div><div><span style="white-space:pre"> </span>+ " and pp.id in (");<br />具体是否可以解决Q还要看一?x)儿的部|情c(din)?/div></div><img src ="http://www.aygfsteel.com/leeguannan/aggbug/394009.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/leeguannan/" target="_blank">阿南</a> 2013-01-09 10:57 <a href="http://www.aygfsteel.com/leeguannan/archive/2013/01/09/394009.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谁不知道构架Q?/title><link>http://www.aygfsteel.com/leeguannan/archive/2009/07/03/285372.html</link><dc:creator>阿南</dc:creator><author>阿南</author><pubDate>Fri, 03 Jul 2009 08:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/leeguannan/archive/2009/07/03/285372.html</guid><wfw:comment>http://www.aygfsteel.com/leeguannan/comments/285372.html</wfw:comment><comments>http://www.aygfsteel.com/leeguannan/archive/2009/07/03/285372.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/leeguannan/comments/commentRss/285372.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/leeguannan/services/trackbacks/285372.html</trackback:ping><description><![CDATA[<p>    作ؓ(f)一个技术h员,谁不知道构架Q?/p> <p>    前一D|间公司找开发h员谈?j),有位领导问一位开发h员,大致对话如下Q?/p> <p>    AQ“你?jin)解׃现在产品的构架吗Q能不能谈谈你对构架的看法??/p> <p>    BQ“?…?/p> <p>    AQ“说说看吧~?/p> <p>    BQ“我不懂构架Q构架是什么?׃现在的品还有构架呢Q?/p> <p>    作ؓ(f)一个有3q工作经验,2家公司经历的VCE序员来_(d)我觉得,q几q的U篏是白做了(jin)Q这L(fng)思想永远都只能停留在写程序上~</p> <p>    一个品没有构Ӟ如同一个h没有灵魂一P他不是没有,只是你没有去思考,没有dC而已Q?/p> <p>    我记得袁z刚说过Q“一个伟大的产品背后一定有一个伟大构架师Q”,我坚信这一点~产品好坏一斚w军_于对现实问题的解决程度,另一斚w是构架的好坏Q?/p> <p>    几年前,中国的Y件公叔R面很出现构架师/架构师这L(fng)角色Q这几年开始有改观?jin),来多的h开始认识到很多错误的问题,其实从一开始就是错的。很多事情ƈ没有谋定而后动。一味的q求单,到最后变成了(jin)下线很简单了(jin)Q?/p> <p>   说自׃知道构架的开发h员有两种Q新手和没有思想的新手,拼命的同时我们也应该停下脚步x(chng)Q抬起头看看天空。别Ll验的缺失都归结于时间的长短Q更应该x(chng)自己是否真的U篏q?/p><img src ="http://www.aygfsteel.com/leeguannan/aggbug/285372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/leeguannan/" target="_blank">阿南</a> 2009-07-03 16:33 <a href="http://www.aygfsteel.com/leeguannan/archive/2009/07/03/285372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB3下无状态会(x)话Bean发布为WebServicehttp://www.aygfsteel.com/leeguannan/archive/2009/07/02/285163.html阿南阿南Thu, 02 Jul 2009 05:54:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2009/07/02/285163.htmlhttp://www.aygfsteel.com/leeguannan/comments/285163.htmlhttp://www.aygfsteel.com/leeguannan/archive/2009/07/02/285163.html#Feedback0http://www.aygfsteel.com/leeguannan/comments/commentRss/285163.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/285163.html    无状态会(x)话Bean发布为WebService是非常有意义的,因ؓ(f)如果我们每一个EJB模块按照SOA的思想做成一个一个独立的服务模块Q这里不讨论SCAQ我认ؓ(f)Apache的SCA框架q(sh)够强大,文档q(sh)够全面)(j)Q同L(fng)代码在JavaEE体系之内的应用程序可以直接用EJB3直接讉KQJavaEE体系之外的应用程序可以直接用WebService讉KQ这一Ҏ(gu)非常有意义的?/p>

    下面要考虑的就是如何只写一份代码,让它能做两样事情?/p>

    |上有大量的使用EJB3发布WebService的教E,但是q些教程都是一个h写的Q基本上没有太大的参考h(hun)倹{最重要的是Q他写的元注释都是写在实现类上的Q接口上没有做Q何描q。这U做法有两个问题Q第一如果你的?x)话Bean使用?jin)EMQ那么麻?ch)?jin)QJAXB在做l定的时候不认识接口Q第二W(xu)SDL文g的描q实际上应该是基于接口的描述Q应该和实现cL有太大的关系?/p>

    看看|上行的代码:(x)

 

1@WebService(name = "PurchaseArrival", serviceName = "PurchaseArrivalService"
2@SOAPBinding(style = SOAPBinding.Style.RPC) 
3public class PurchaseArrivalImpl implements IPurchaseArrival {

 

注意Q基于RPCl定模式下ListQSet一cȝ接口都是不可传输的,q点?x)很ȝ?ch)Q要用必ȝ实现cR?/p>

看看我的代码Q?/p>

接口Q?/p>

 

1@WebService(name = "ILogRemoteService",targetNamespace = "http://www.glnpu.com/dmp/xml"
2@SOAPBinding(style = SOAPBinding.Style.DOCUMENT) 
3public interface  ILogRemoteService {

 

实现c:(x)

 

1@Stateless 
2@Remote(ILogRemoteService.class
3@WebService(endpointInterface = "com.glnpu.dmp.server.service.base.log.ILogRemoteService",serviceName = "LogRemoteService"
4public class LogRemoteService extends BaseService implements ILogRemoteService {

 

q个WebService是针Ҏ(gu)口发布出去,而且使用的DOCUMENT样式Q可以直接用List、Set的接口?/p>

q个WebService生成的WSDL文g很有意思:(x)

 

 1<definitions name="LogRemoteService" targetNamespace="http://impl.log.base.service.server.dmp.glnpu.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://www.glnpu.com/dmp/xml" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.log.base.service.server.dmp.glnpu.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 2
 3<import location="http://127.0.0.1:8080/LogRemoteServiceService/LogRemoteService?wsdl&resource=ILogRemoteService_PortType25057.wsdl" namespace="http://www.glnpu.com/dmp/xml" />
 4
 5<service name="LogRemoteService">
 6
 7<port binding="ns1:ILogRemoteServiceBinding" name="LogRemoteServicePort">
 8
 9<soap:address location="http://127.0.0.1:8080/LogRemoteServiceService/LogRemoteService" />
10
11</port>
12
13</service>
14
15</definitions>
16
17

 

里面有import来指引到真正的WSDL文g。这样很Ҏ(gu)会(x)话Bean变成WS~一L(fng)代码两样的功能,|



阿南 2009-07-02 13:54 发表评论
]]>
微Y真的来搅局吗?http://www.aygfsteel.com/leeguannan/archive/2008/03/21/187673.html阿南阿南Fri, 21 Mar 2008 04:34:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/03/21/187673.htmlhttp://www.aygfsteel.com/leeguannan/comments/187673.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/03/21/187673.html#Feedback4http://www.aygfsteel.com/leeguannan/comments/commentRss/187673.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/187673.html     下面我们再来看看来自cnBate.com的新闻:(x)

JavaE序员(sh)可能?x)经帔R到Windows下的UI问题,JavaE序L和W(xu)indows的外观统一不v?特别是Vista,隑ֺ更高.
而现?微Y微Y宣布它将为Eclipse基金?x)提供?jin)标准的widget工具,q意味着Java与Windows Presentation Foundation实现互?允许应用E序原生采用Windows VIsta的外?

q也是微软未来开放计划的一部分,微Y认ؓ(f)一个日益开?透明的方式正在出?之前,微Yq成立了(jin)Linux的互操作性实验室,q与JBoss,Zend Technologies{公司实C(jin)技术合?

    微Y真的在开源,不但支持?jin)LinuxQ而且q来x(chng)SWTQ而且q有微Y最q在收购Yahoo!Q它最q非常关注开源事业,也许他真的要搅局Q也总真的是想做些事情Q也许几q之后微软摇w一变真的变成了(jin)一个开源斗士了(jin)Q?br />    微Y更换?jin)首席构架师Q他的做事风格在改变Q我惛_软是在向开源界证明自己的实力,是想让h们相信自己,也许q几q微软还果真Z(jin)一个开源版本的windows?jin)~

阿南 2008-03-21 12:34 发表评论
]]>
Eclipse4.0攑և部分Demohttp://www.aygfsteel.com/leeguannan/archive/2008/03/20/187460.html阿南阿南Thu, 20 Mar 2008 04:46:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/03/20/187460.htmlhttp://www.aygfsteel.com/leeguannan/comments/187460.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/03/20/187460.html#Feedback9http://www.aygfsteel.com/leeguannan/comments/commentRss/187460.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/187460.htmlPlanet Eclipse上已l有参加EclipseCON2008的朋友把Eclipse4.0Q简Ue4QDemo地址以及(qing)一些截图放到Blog上了(jin)~我们来ƣ赏一下Eclipse的巨大变化吧Q?br />
    呵呵Q是不是很可怕,一个基于web的开发工P我在Eclipse的Wiki上已l看到这个截囄Demo?jin),但是q没有时间试用~
    此次攑և的e4的demo基本上都是swt的调_(d)比方说可以用swt来做flexQ用swt来做DOJO~Q从q些斚w可以看到Eclipse正在向基金会(x)x(chng)的那样ؓ(f)e4提供一个基于web应用的^収ͼ我想q个q_应该是RAP?jin)~而且从Demo上看Qe4会(x)大大的涉_web应用领域中,期待他们为我们带来再一ơ的惊呼Q!Q?br />     http://wiki.eclipse.org/E4/Running_the_demos  Qe4的demoQ?br />
    q有一个o(h)人振奋的消息Q不知道是好事还是坏?----微Y已经军_q入Eclipse基金?x),q打开始资助SWT目?jin)?br />    

阿南 2008-03-20 12:46 发表评论
]]>
EclipseCON2008 only 1 week left!http://www.aygfsteel.com/leeguannan/archive/2008/03/08/184667.html阿南阿南Sat, 08 Mar 2008 04:52:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/03/08/184667.htmlhttp://www.aygfsteel.com/leeguannan/comments/184667.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/03/08/184667.html#Feedback0http://www.aygfsteel.com/leeguannan/comments/commentRss/184667.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/184667.html     又一ơ开源界的盛?x)EclipseCON2008p召开?jin)~据我?jin)解此次盛?x)会(x)吸引更多的开源厂商,领袖Q开发者参与,其中有来自微Y?a >Sam RamjiQ微软开源的LabsQ,关于OSGi的讨Z然是重头戏?br />     虽然Eclipse的RAP的发布也有半q多?jin),也在开源界引v?jin)不的反响Q但是RAPq是没有得到q泛的应用,来自RAP的主力开发商Innoopract Informationssysteme GmbH的消息,此次EclipseCON2008大会(x)也会(x)lRAP带来更多的利好消息,毕竟关于RAP的讨安排在第二场Q仅ơ于W一场OSGi的议题?br />     Eclipse4.0也被提上?jin)讨论日E,在介l中提到QEclipse3.0主要在力推RCPq_Q而Eclipse4.0会(x)会(x)带来一个全新的用户界面以及(qing)新的用户体验Q将带领Eclipseq入到WEB应用中,我想在Eclipse4.0的时候RAP应用Q将变成Eclipse的主推^C(jin)?br />     q有很多关于其他目的讨论,但是我一直关注的VE的消息,好像q是不被Z注意Q可见VE基本上已l死亡,而且我认为可以算是Eclipse基金?x)中比较p|的一个项目了(jin)Q?br />    预祝此次大会(x)果累篏Q祝Eclipse走好Q?

阿南 2008-03-08 12:52 发表评论
]]>
使用JRubyZ的客L(fng)助力http://www.aygfsteel.com/leeguannan/archive/2008/03/07/184390.html阿南阿南Fri, 07 Mar 2008 01:20:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/03/07/184390.htmlhttp://www.aygfsteel.com/leeguannan/comments/184390.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/03/07/184390.html#Feedback4http://www.aygfsteel.com/leeguannan/comments/commentRss/184390.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/184390.html    预言?jin)两天,l于军_在我们的RCP客户端中增加执行JRuby的功能。说是预a其实也没有什么好预言的,JRuby早有耳闻QRuby也一直在学习(fn)。其实要解决的问题只有一?--解决Java实例如何lJRubyQ然后有JRuby操作Q其实不难,JRbuy官方的WIKI上有一个例子,但是那个例子有太多硬~码的问题,E稍攚w,硬~码的内Ҏ(gu)取到JRuby中,好?jin)~

    我想说的其实是在RCP中加入JRuby的作用是Q?/p>

    实施人员只需要写脚本可以随意操作界面上的Q意东西;

    使品更q一步达到零二次开发的阶段Q?/p>

    使用JRuby来开发SWT的界面,q是有比较复杂,在熟(zhn)SWT开发和JRuby的情况下M个比较复杂的界面时候就?x)非常复杂!q里q是使用cM于XSWT{XML界面描述语言Q然后配合脚本完成功能?/p>

下面l出一个可以在q行JRuby的SWTShellQ?/p>

package com.glnpu.jruby;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.jruby.Ruby;
import org.jruby.javasupport.JavaEmbedUtils;
import org.jruby.runtime.builtin.IRubyObject;

public class RunJRUBY extends Shell {

    private RunJRUBY run;
    private Text text;
    /**
     * Launch the application
     * @param args
     */
    public static void main(String args[]) {
        try {
            Display display = Display.getDefault();
            RunJRUBY shell = new RunJRUBY(display, SWT.SHELL_TRIM);
            shell.open();
            shell.layout();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch())
                    display.sleep();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * Create the shell
     * @param display
     * @param style
     */
    public RunJRUBY(Display display, int style) {
        super(display, style);
        run = this;
        createContents();
    }

    /**
     * Create contents of the window
     */
    protected void createContents() {
        setText("SWT Application");
        setSize(500, 375);

        text = new Text(this, SWT.V_SCROLL | SWT.BORDER | SWT.WRAP | SWT.H_SCROLL);
        text.setBounds(0, 0, 492, 312);

        final Button button = new Button(this, SWT.NONE);
        button.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(final SelectionEvent e) {
                Ruby runtime = Ruby.getDefaultInstance();
                try {
                    //允许传对象,作ؓ(f)参数lJRuby
                    IRubyObject rootRubyObject = JavaEmbedUtils.newRuntimeAdapter().eval( runtime, text.getText() );
                    JavaEmbedUtils.invokeMethod( runtime, rootRubyObject, "run", new Object[] {run}, null );
                    //不传对象Q直接运行JRbuy
                    //runtime.evalScriptlet(text.getText());
                } catch (Exception e1) {
                    System.err.println(e1.toString());
                    e1.printStackTrace();
                }
            }
        });
        button.setText("button");
        button.setBounds(335, 326, 48, 22);
        //
    }

    @Override
    protected void checkSubclass() {
        // Disable the check that prevents subclassing of SWT components
    }

}

下面是可以执行的JRuby代码Q?/p>

require 'java'
module SWTTest
  include_package 'org.eclipse.swt'
  include_package 'org.eclipse.swt.layout'
  include_package 'org.eclipse.swt.widgets'
  include_package 'org.eclipse.swt.events'
end
    class TestDialog < SWTTest::Dialog
      @shell
      @parentShell
      def initialize shell
          super(shell, SWTTest::SWT::NONE)
          @parentShell = shell
          open
      end
      def open
          createContents()
          @shell.open();
          @shell.layout();       
      end
      def createContents
          @shell = SWTTest::Shell.new(@parentShell, SWTTest::SWT::DIALOG_TRIM | SWTTest::SWT::APPLICATION_MODAL)
          @shell.setSize(500, 375);
          @shell.setText("SWT Dialog");
          button = SWTTest::Button.new(@shell, SWTTest::SWT::PUSH)
          button.setText("Test Button 1")    
          button.setBounds(147, 116, 48, 22);
      end
    end
  class TestMain
      def run shell
          TestDialog.new shell
      end
  end
  TestMain.new

在JRuby代码的最下面有一个TestMain的类Q主要是用于调用的~q一Ҏ(gu)和其他的写法不同的!

至于它有多强大,q大家怎么用了(jin)~而且java和JRuby是运行在同一个JVM之上的,它可以用此JVM下的所有对象!



阿南 2008-03-07 09:20 发表评论
]]>
微Y研发Q制胜策?实用Ҏ(gu)?http://www.aygfsteel.com/leeguannan/archive/2008/03/05/183936.html阿南阿南Wed, 05 Mar 2008 04:54:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/03/05/183936.htmlhttp://www.aygfsteel.com/leeguannan/comments/183936.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/03/05/183936.html#Feedback0http://www.aygfsteel.com/leeguannan/comments/commentRss/183936.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/183936.html   不要用年l考评来订立学?fn)目标,要利用年l考评来记录个人的成长?/strong>

    要让每一位程序设计师都明白,写出雉误程序是很不Ҏ(gu)的,所以应该多花功夫用各种Ҏ(gu)做最d的测试?/strong>

    U正E序设计师以为加除错码会(x)花太多时间的观念Q应该训l程序设计师W一个反应是考虑加上除错码是否有道理Q第二是考虑加除错码是否W合目的目标与工作的优先?/strong>

   不要让凡事不能的态度ȝ?jin)创新?/strong>

   不要让程序设计师以ؓ(f)使用者ƈ不在乎Y件的质量?/strong>

   不要l用者次品,宁愿延期交货Q务必追求质量完?/strong>

   E序设计师必ȝ总使用者的观点来看自己写的E序Q程序设计师必须能体?x)用者的感受?/strong>

   在包装盒里的每一件东西,都是产品的一部分?/strong>

   程序的可共享性当作优先考虑的目标之一Q否则程序设计师经常做重复的工作?/strong>

   从?zhn)的每件工作中创造最大的资源Q不是利用现有的杠杆,或是创造新的杠杆?/strong>

   如果q度发生落后Q那表示有个地方出错?jin)。?zhn)应该扑և问题Qƈ加以解决Q不要一呌求组员加班,在问题没有解决之前,加班是没有用的?/strong>

   别误信加班等于增加生产能力,长期的加班只?x)伤害生产能力,寚w目没有帮助?/strong>

   周末是属于组员私人的旉Q不是公司的。公怸应该以打败竞争对手ؓ(f)理由Q要求员工周末加班?/strong>

   思考的重要性,而不是长旉工作?/strong>

   训练开发小l懂得在正常工作旉内掌握好工作的效率,不要让他们超时工作,因ؓ(f)时工作只是费旉的假面具?/strong>

   与程序设计师共同研拟Z份每日活动的旉表,把无法预期的临时公务变成固定旉处理的事情,q且把程序开发的工作攑֜最优先的地位,不要让其他次要的事情q扰到写E序?/strong>

   ȝ应该把自p为团队中的一分子Q与其他人^{,而不是高高在上?/strong>



阿南 2008-03-05 12:54 发表评论
]]>
微Y研发Q制胜策?实用Ҏ(gu)?http://www.aygfsteel.com/leeguannan/archive/2008/03/04/183596.html阿南阿南Tue, 04 Mar 2008 00:47:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/03/04/183596.htmlhttp://www.aygfsteel.com/leeguannan/comments/183596.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/03/04/183596.html#Feedback1http://www.aygfsteel.com/leeguannan/comments/commentRss/183596.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/183596.html    用看E序的方式找错,是既懒惰又无效率的方法;

随时睁大雪亮的眼睛,看看是不是有个?zhn)而未决的问题Q一定要有个?或是׃自?来负责研I到底哪里出错,也许q种研究既花旉又无聊,但LN发生之后再来花好几个星期收拾D局要好得多?/p>

    问了(jin)错的问题Q而导致错的答案,训练自己问出正确的问题!

如果(zhn)能很清楚告诉别人,(zhn)想要的I竟是什么,q样别h才能l?zhn)真正需要的帮助Q而不是做一些似是而非的虚工?/p>

    勉强自己接下不可能完成的dQ实在是以长痛代替短痛的做法Q而且长痛的是整个团队Q该拒绝的时候绝对不能含p;

    不要Z(jin)讨好别h而伤宛_方的工作q程Q?zhn)永远要根据自q目标Q做适当的决{?/strong>

    必须保护目不受外界的左叻I其是当q种操控来自Ҏ(gu)人物之手?/strong>

    副品对公司或品都没有{略上的价|充其量只是一U消费者回馈?/strong>

    不值得开发的功能׃要做?/strong>

    软g产品的开发,不能只ؓ(f)?jin)有、挑战性,或是够有个性够令h眩目?/strong>

    遵@标准重于一切,特别是关于用者界面的部分?/strong>

    定(zhn)所要求的报告真的值得属下暂停工作Q花那么多时间去写?/strong>

    h意定期会(x)议的价|定它值得每个人放下手上的工作?/strong>

    召开M?x)议之前Q请定本次?x)议的目的是什么,达成q个目的的条件是什么,然后Q务必达到开?x)的目的?/strong>

    不要利用q程表来׃ə目的进行,q对组的士气伤宛_大了(jin)?/strong>

    让日E表l持适度的紧q,但又是可以做到的Q好让组员振奋、不松懈Q专?j)致力于目的推q?/strong>

    l对不要草率定出不可能的期限Q导致组员(sh)ؓ(f)?jin)赶q度而损害品的质量?/strong>

    把长期的大项目,分成几个完整而独立的项目,各小目必须有一个主题?/strong>

    Z(jin)保持创意的活力和团队士气Q必让每一个小目都有令h兴奋的结果?/strong>

    不要让程序设计师的学?fn)停滞不前,要让E序设计师有Z(x)练不同领域的技术,培养十八般武艺样L(fng)通的l员?/strong>

    训练新进E序设计师时Q先培养他对整个公司所有项目都有h(hun)值的技术,然后才培L目独有的技术?/strong>

    不要舍不得放(zhn)最优秀的程序设计师到别的项目去。如果他在?zhn)的项目已l没有新的东西可学,Z(jin)公司和他个h的前途,(zhn)应该把他推荐到别的目Q让他的成长怸间断?/strong>

    定每位l员、每两个月都有一Ҏ(gu)术上q步?/strong>

    一发现某处需要改q,q即采取更正的行动?/strong>



阿南 2008-03-04 08:47 发表评论
]]>
微Y研发Q制胜策?实用Ҏ(gu)一)http://www.aygfsteel.com/leeguannan/archive/2008/03/03/183344.html阿南阿南Mon, 03 Mar 2008 00:34:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/03/03/183344.htmlhttp://www.aygfsteel.com/leeguannan/comments/183344.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/03/03/183344.html#Feedback0http://www.aygfsteel.com/leeguannan/comments/commentRss/183344.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/183344.html首先q是先看一下书评?/p>

下面是来自china-pub的书评:(x)

作者详l描qC(jin)他在国领导目的各U实际的{略Ҏ(gu)Q教(zhn)如何开发高质量的YӞ而且l不延误。本书是为每一位从事研发工作的朋友而写Q相信?zhn)在读q本书之后,一定急于推荐l?zhn)的主、同事和(zhn)的朋友?/td>

    卓越的领D从不同的角度看世界。若是公司被大火烧得_օQ他非但不ؓ(f)丢饭惊慌,反而利用火焰来烧烤一大。当每个人都摇头dQ卓的领导者仍有充分的信心(j)保持乐观Q对每g事都从正面角度来思考。就因ؓ(f)凡事都看光明面,卓越的领Dƈ不把p|当失败,反将其当作学?fn)克服障的l验。正因如此,卓越的领D乐意尝试各U稀奇古怪的x(chng)Qƈ从中获得重大的突_(d)即不成功,他只把这ơ经验当成获得信息的方式之一。这U领gh不一定要有经验,而是需要强烈的q取?j)和明确的理惻I能够理想与他h沟通,鼓舞他h共同q寻理想的能力,再加上一Ҏ(gu)?x),q就是能理惛_现的卓越领导者?/p>

    每当有h完成?jin)一Ҏ(gu)的功能或特色Q就发个e -mail l大家?/strong>

例如Q?/strong>

“我已完成Faxmangler 的搜M取代功能。Frank”
ȝ应该看一下结果,然后回一个:(x)
“我检查过F a x m a n g l e r的搜M取代Q不太顺畅,请再修改。Hubie”
或是Q?
“很好Ql加油!Hubie”
x(chng)看,如果大家l常攉这cL面的e - m a i lQ一定会(x)觉得充满q劲Q这和可恨的q度报告多么不同Q程序设计师?x)很乐意看见q类的好消息Q当自己送出完成工作的信息时Q也?x)很有成感Q没有h?x)觉得这是很讨厌的报告?/p>

    每当q度快要落后?jin),到我的办公室私下讨论原因,我们一起开动脑{寻求解决之道?/strong>

例如Q?/strong>

当某位程序设计师觉得自己可能要落后了(jin)Q我?x)和他谈Q研I将来如何避免这U事情。是我们在制定进E时疏漏?jin)某一个重要环节吗Q或是时间表定得太乐观了(jin)Q是不是有个错虫( b u g )在作,宛_E序很难写或无法试Q不论问题是什么,我们一定想办法解决掉,q且预防它将来再发生?/p>

    可能减项目中组彼此间的依赖?/strong>

    目标是明确Q达成目标的q程׃(x)有效率?/strong>

    建立最适当的程序设计优先考虑序Qƈ且让所有的E序设计师确实遵守?/strong>

排出一个优先表:(x)

  • 体积大小(size)
  • 速度(speed)
  • 坚固?robustness)
  • 安全?safety)
  • 可测试?testability)
  • Ҏ(gu)l护(maintainability)
  • z?simplicity)
  • 再用?reusability)
  • 可移植?portability)

   一旦?zhn)掌握了(jin)这个概念,把它应用在项目上Q?zhn)可以大声说自q实是在聪明地工作Q而不是辛苦地工?/strong>

    一发现Bugqx(chng)除掉Q别拖g?/strong>

作者给出的提示Q?/strong>

错虫愈晚清除Q时间花得愈多?

在开发的q程q即除虫,可以让?zhn)早些学到l验Q然后就不会(x)再犯同样的错误;相反圎ͼ如果C(jin)目后期才发玎ͼ(zhn)可能已l犯q多ơ同L(fng)错误而不自知?/p>

发现错虫而立即除错是一U缓冲器Q提醒那些讲求快速而不够}慎的E序设计师,以后多加心(j)?/p>

若能保持没有M错虫Q?zhn)p比较准确估出目的完成时间?/p>

要求错虫随时发现随时改,{于是在开发过E中引进一个小的质量理机制Q多方的防微杜渐Q保护品的正确性?/strong>

    学习(fn)前h的经验;

    好方法要让大家分享;

    目只要有偏差,需要调_(d)l对不可以放任自!

    定期暂停手边的工作,然后往前思考,随时做必要的修正Q以避免未来的大障碍?/strong>

有什么事情是我今天能做,而且可以帮助目在未来几个月内顺利进行的Q?/p>



阿南 2008-03-03 08:34 发表评论
]]>
微Y团队Q成功秘诀(ȝ)http://www.aygfsteel.com/leeguannan/archive/2008/03/02/183212.html阿南阿南Sun, 02 Mar 2008 01:29:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/03/02/183212.htmlhttp://www.aygfsteel.com/leeguannan/comments/183212.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/03/02/183212.html#Feedback1http://www.aygfsteel.com/leeguannan/comments/commentRss/183212.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/183212.htmlȝ本书中的54条法则得刎ͼ(x)

  1. 一只和谐的团队Q?
  2. l团队一个明的目标Q让大家都知道这个目标ƈ把它印入脑vQ?
  3. 让品保h员明白自׃仅仅是ؓ(f)?jin)Bug而加入团队的Q?
  4. 建立合适的(g)查点和里E碑Qƈ利用(g)查点和里E碑(g)验团队的健康度;
  5. 不要x(chng)g误,要不断的修正Ҏ(gu)但不要过度的修正目标Q?
  6. 努力让团队中成员?sh)生共鸣Q?

希望大家共勉Q?/p>

阿南 2008-03-02 09:29 发表评论
]]>
微Y团队Q成功秘诀(4)http://www.aygfsteel.com/leeguannan/archive/2008/02/29/183010.html阿南阿南Fri, 29 Feb 2008 10:00:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/02/29/183010.htmlhttp://www.aygfsteel.com/leeguannan/comments/183010.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/02/29/183010.html#Feedback1http://www.aygfsteel.com/leeguannan/comments/commentRss/183010.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/183010.html法则二十七:(x)

   Be like the doctors    用医生的Ҏ(gu)

    当病人已l药石罔效时Q医生通常?x)对病情有所保留Q避免病人太q?zhn)观或恐惧Qƈ且尽量鼓qZ持希望,最好能让病人有个期望完成的目标?/p>

    ȝl对不会(x)斩钉截铁地断a什么医疗行Z定会(x)有什么样的结果,反而是?
一U自在且充满信心(j)的口吻说Q?#8220;试试看吧Q一切都q没有确定呢?/p>

    另外一件应该向ȝ学习(fn)的事情是Q即使是再小再简单的ȝ行ؓ(f)Q都带着几分风险Q所以医生会(x)_(d)(x)“当然QQ何情况都是有可能的,L率再高我都不能跟你说癑ֈ之百没问题?/p>

法则二十八:(x)

    Remember the triangle:features, resources, times    软g开发金三角Q特艌Ӏ资源和旉

    作ؓ(f)一位Y件开发的领导人,你得集中注意力在三g事情Q资源(人和钱)(j)、特Ԍ产品与其品质Q和旉。这三g事是软g开发的核心(j)Q其他的都是外围?/p>

    资源、特色和旉是三角Ş的三个边QQ何一边的变化Q都?x)?jing)响到另外一Ҏ(gu)两边。所以如果时间落后了(jin)Q去看你的三角ŞQ看看对特色和资源的影响Q当有h谈到可以增加什么功能特色时Q你得立刻谈h间和资源Q以昑־你思虑?
详反应敏捗所以,理者的W一要务是把q个三角形放在心(j)里,随时利用q个模式来思考问题,你会(x)发现{案都在q个三角形内?/p>

法则二十?ji)?x)

    Don't know what you don't know    不懂别装?/strong>

法则三十Q?/p>

    Don't go dark    建立适当的检查点

法则三十一Q?/p>

    Beware of a guy in a room    留心(j)没有(g)查点的组?/strong>

法则三十二:(x)

    If you build it, it will ship    软g要经常徏构,p利推出

法则三十三:(x)

   Get a known state and stay there    掌握实际情况

法则三十四:(x)

    Use ZD milestones    零缺炚wE碑

    零缺点不代表软g中没有错虫,也不表示没有遗漏的功能,而是指团队的成品辑ֈ?jin)事先规划的品质水准Q也l过试验证Q就是零~点里程?/p>

法则三十五:(x)

   Nobody reaches the ZD milestone until everybody does    所有组员(sh)起到N~点里程?/strong>

法则三十六:(x)

    Every milestone deserves a no-blame postmortem    完成每个里程后Q心(j)qx(chng)和地(g)?/strong>

法则三十七:(x)

    Stick to both the letter and the spirit of the milestones    把握里程的实质意义与精?/strong>

法则三十八:(x)

    Get a handle on "normal"    培养正常的团队运?/strong>

法则三十?ji)?x)

    A handful of milestones is a handful    里程不宜太多,才好掌握

法则四十Q?/p>

    Every little milestone has a meaning (story) all its own    每一个里E碑应有专属的宗?/strong>

法则四十一Q?/p>

    Look for the natural milestones    L自然出现的里E碑

以下是六U自然出现的里程:(x)
1. 产品设计于E_?
2. 中间产品被明定义?
3. 团队真正?jin)解要花多少旉和努力才能完成目标(通常q会(x)发生很多ơ,而且多半是进度落后的时候)(j)?
4. 产品设计被删减,或是资源增加Q或是进度g误,
或是三者同时发生?
5. 开发活动停止?
6. 产品q入除错或稳定阶Dc(din)?/p>

法则四十二:(x)

    When you slip, don't fall    如果滑了(jin)一跤,别就此倒地不v

  1.     q度落后与道h养I请切讎ͼ
  2.     不要隐瞒事实?
  3.     化阻力ؓ(f)助力Q利用进度落后来Ȁ发效率?

    q度落后不是问题Q被q度落后吓倒才是问题。进度落后ƈ不代表品的隑ֺ太高而无法开发。但是如果进度已l落后却未被察觉Q那表示l员?sh)不思考、不观察、不讨论Q此时组l可说是Ȓ(f)瓦解?jin)?/p>

    善用你的qgQ这是最能看Z领导能力的时候,此时也是l员最脆弱也最需要你的时候,在这个时候组员最能把你的话听q去Q此时组员的学习(fn)能力最强。如果你在办公室内激动得大喊大叫Q指天骂圎ͼ那就错失?jin)赢得组员的心(j)的大好Z(x)。你必须_(d)(x)“O KQ进度落后了(jin)Q让我们来看看问题出在那里?⋯⋯今天下午五点在会(x)议室Q我们要(g)讨每一个细节,问题?sh)定要设法解决Q?#8221;当组员(sh)(jin)解到你不是企囑֍责或帐Q而是真诚地想解决问题Q就?x)乐意把一切开诚布公地摊开来谈Q大家一L(fng)I题,从各U角度去设法克服问题?#8220;q度落后”反而变成大家宝늚成长l验?/p>

法则四十三:(x)

    Don't trade a bad date for an equally bad date    不要因ؓ(f)q度落后而更Ҏ(gu)后期?/strong>

    q度落后的程度是与计划的不确定性成正比?/p>

法则四十四:(x)

    After a slip, hit the next milestone, no matter what延误?jin)这个里E碑Q就一定要如期到达下一个里E碑

    我们必须明白Q每一ơ的延误Q就是你和团队信?j)的一ơ受挫,所以,延误q个里程时Q最好的补救办法是无论如何l不延误下一个里E碑。团队必L回对自己的信?j)和对理想的承诺Q因此,下一个Q务必d时完成的意义更重大,团队需要重Z?j)?/p>

法则四十五:(x)

   A good slip is a net positive   把g误当作宝늚学习(fn)Z(x)

法则四十六:(x)

    See the forest    见树(wi)亦见?/strong>

    如果本项目有六个模块Q各? 0 %的部分已l完成,那么你已l完成了(jin)5 4 %。每个模块完成了(jin)?ji)成Q听h是个Z错的成WQ但不能当成整个目完成?jin)百分之九(ji)十Q它们之间不是相加的关系。你必须“见树(wi)亦见?#8221;。如果Q何一个模块完成比率是Ӟ那么整个目的完成率也是零?/p>

法则四十七:(x)

    The world changes, so should you    世界在变Q所以你也得跟着改变

    虽然你想做些改变Q你未必有勇气实行?/p>

    伟大的Y件必定只有一个中?j)思想Q至于品质能够实现到什么程度,依赖领导者能否带领团队融合无C而重要的改变。如果你能在混ؕ中L识出寚w目最有意义的改变Qƈ且引导团队去适应它,它融入团队的精中Q将来就?x)在产品中表现出q项改变Q呈现在֮眼前?/p>

法则四十八:(x)

    Violate at least one sacred cow    x(chng)多于要求

法则四十?ji)?x)

   Beta is not the time to change    Beta试版不是修改功能的时?/strong>

法则五十Q?/p>

    The Beta is for spin development    Beta试是暖w活?/strong>

法则五十一Q?/p>

    Triage ruthlessly    急救?/strong>

法则五十二:(x)

   Don't shake the Jell-0    心(j)保持软g的稳?/strong>

法则五十三:(x)

    Compete with the superior story    伟大的Y件应该有一个伟大的故事

法则五十四:(x)

   Create a winning image    建立赢家形象



阿南 2008-02-29 18:00 发表评论
]]>
JFaceq度条用经验一?/title><link>http://www.aygfsteel.com/leeguannan/archive/2008/02/29/182822.html</link><dc:creator>阿南</dc:creator><author>阿南</author><pubDate>Fri, 29 Feb 2008 00:47:00 GMT</pubDate><guid>http://www.aygfsteel.com/leeguannan/archive/2008/02/29/182822.html</guid><wfw:comment>http://www.aygfsteel.com/leeguannan/comments/182822.html</wfw:comment><comments>http://www.aygfsteel.com/leeguannan/archive/2008/02/29/182822.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/leeguannan/comments/commentRss/182822.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/leeguannan/services/trackbacks/182822.html</trackback:ping><description><![CDATA[<p>    我讨论的q度条主要是JFace的进度条QRCP已经提供?jin)完善的JoblgQؓ(f)什么还要用JFace的进度条呢?原因是我要在登陆界面上做q度处理Q也是使用Eclipse3.3提供的AbstractSplashHandlerҎ(gu),可以原有的启动画面替换成ؓ(f)一个登陆界面,启动q个登陆界面ӞEclipse的Platform此时q没有启动,所以不能用RCP本n的Joblg?jin)?/p> <p>    ׃是一个检服务器是否联通的试Q所以ƈ不知道测试的真实旉Q所以就是要使用“?c)q度?#8221;?jin),也就是反复走的进度条陈刚的代码如下?x)</p> <table cellspacing="0" cellpadding="2" width="525" border="0"><tbody> <tr> <td valign="top" width="523"> <p>button.addSelectionListener(new SelectionAdapter() { <br />            private boolean stopFlag;// 停止标志 </p> <p>            private void go() { <br />                for (int i = 0; i < 10; i++) {// 循环10ơ,每次间隔一U? <br />                    System.out.println("W?quot; + (i + 1) + "个Q务执行完?quot;); <br />                    if (stopFlag) {// 监控是否要让停止后台d <br />                        System.out.println("被中断了(jin)"); <br />                        return; <br />                    } <br />                    try { <br />                        Thread.sleep(1000); <br />                    } catch (Throwable t) {} <br />                } <br />                stopFlag = true;// 执行完毕后把标志位设为停止,好通知l进度框 <br />                System.out.println("全部d执行完毕"); <br />            } </p> <p>            public void widgetSelected(SelectionEvent e) { <br />                stopFlag = false;// 每次都设初gؓ(f)false <br />                new Thread() {// 把后CQ务放C个新开U程里执? <br />                    public void run() { <br />                        go(); <br />                    } <br />                }.start(); <br />                showProgressDialog();// 打开一个进度框 <br />            } </p> <p>            private void showProgressDialog() { <br />                IRunnableWithProgress runnable = new IRunnableWithProgress() { <br />                    public void run(IProgressMonitor monitor) { <br />                        monitor.beginTask("正在执行?.....", 30); <br />                        int i = 0; <br />                        while (true) { <br />                            // 监听是否单击?jin)进度框?#8220;取消”按钮QstopFlag则是监听后台d是否停止 <br />                            if (monitor.isCanceled() || stopFlag) { <br />                                stopFlag = true; // 单击?#8220;取消”按钮要设标志位ؓ(f)停止Q好通知后台d中断执行 <br />                                break;// 中断处理 <br />                            } <br />                            // i?0后清零。ƈ进度条重新来过 <br />                            if ((++i) == 30) { <br />                                i = 0; <br />                                monitor.beginTask("正在执行?.....", 30); <br />                            } <br />                            // q度条每前进一步体息一?x),不用太长或太短,旉可Q意设? <br />                            try { <br />                                Thread.sleep(99); <br />                            } catch (Throwable t) {} <br />                            monitor.worked(1);// q度条前q一? <br />                        } <br />                        monitor.done();// q度条前q到完成 <br />                    } <br />                }; <br />                try { <br />                    new ProgressMonitorDialog(s).run(true, true, runnable); <br />                } catch (Exception e) { <br />                    e.printStackTrace(); <br />                } <br />            } <br />        });</p> </td> </tr> </tbody></table> <p> </p> <p>    主要是用两个线E交替用,W一个线E处理业务,W二个线E监控第一个线E查看它是否l束Q如果结束或者被点击cancele则停止进度条的进E,如果一直没有关闭的指o(h)Q则反复开?--累加---l束---开?--累加---l束?/p> <p>    我们几乎是把陈刚的代码原原本本的抄袭?jin)一下,仅仅是替换了(jin)go()中的内容Q但是发C个问?/p> <p><strong>new ProgressMonitorDialog(s).run(true, true, runnable);</strong> <br />使用此句的话QJFace的线E永q不?x)启动?/p> <p>替换?/p> <p><strong>new ProgressMonitorDialog(s).run(false, true, runnable);</strong> <br />使用此句的话QJFace的线E可以启动,q行正常Q但是cancele不能响应QUI界面完全卡死Q?/p> <p>    W一个参数的名字fork~乍看去,什么意思都没有Q但是看看API才发现内藏很大的玄机Q如果ؓ(f)true则此U程Z个非UIU程Q大家知道非UIU程是不?x)阻塞UI的;如果为false则此U程Z个UIU程Q大家也知道UIU程如果使用不当很容易阻塞UI的?/p> <p>    关键的问题是我们和陈刚的代码几乎一怸样他的进度条启动,我的q度条就不启动!Z么?Q这点至今不明白!Q?/p> <p>    详查API发现如果fork为false的时候还是另有洞天的Q?/p> <table cellspacing="0" cellpadding="2" width="521" border="0"><tbody> <tr> <td valign="top" width="519"> <p>This implementation of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) runs the given <code>IRunnableWithProgress</code> using the progress monitor for this progress dialog and blocks until the runnable has been run, regardless of the value of <code>fork</code>. The dialog is opened before the runnable is run, and closed after it completes. It is recommended that <code>fork</code> is set to true in most cases. <strong>If <code>fork</code> is set to <code>false</code>, the runnable will run in the UI thread and it is the runnable's responsibility to call <code>Display.readAndDispatch()</code> to ensure UI responsiveness.</strong> </p> </td> </tr> </tbody></table> <p>API中说的很明白Q如果fork为false旉要在U程中调用Display.readAndDispatch()Ҏ(gu)Q以避免UI被阻塞!</p> <p>大家如果在JFace的开发中如果使用?jin)进度条Q发现UI被阻塞的话,想x(chng)哦!Q!呵呵只用在进E中调用一下Display.readAndDispatch()p决了(jin)Q?/p><img src ="http://www.aygfsteel.com/leeguannan/aggbug/182822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/leeguannan/" target="_blank">阿南</a> 2008-02-29 08:47 <a href="http://www.aygfsteel.com/leeguannan/archive/2008/02/29/182822.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RAP官方老窝http://www.aygfsteel.com/leeguannan/archive/2008/01/13/175002.html阿南阿南Sun, 13 Jan 2008 10:11:00 GMThttp://www.aygfsteel.com/leeguannan/archive/2008/01/13/175002.htmlhttp://www.aygfsteel.com/leeguannan/comments/175002.htmlhttp://www.aygfsteel.com/leeguannan/archive/2008/01/13/175002.html#Feedback0http://www.aygfsteel.com/leeguannan/comments/commentRss/175002.htmlhttp://www.aygfsteel.com/leeguannan/services/trackbacks/175002.html有朋友在blog中给我留aQ说扑ֈRAP的官方地址Q现在我在此公布一下,有兴的朋友可以ȝ看Demo?/p>

官方首页

http://www.eclipse.org/rap/

Demo地址

http://www.eclipse.org/rap/demos.php   此页面提?个DemoQ其中的SWT的官方Demo的RAP实现在RAP的发行包中,自己下蝲下来Q自己RUNhp看到?jin)?/p>

 

RAP开发领头公?/p>

  • Innoopract   从开发h员列表和官方|站的支持力度上Q此公司最强!Q好像是家d国公司!Q?
  • 1&1
  • CAS


  • 阿南 2008-01-13 18:11 发表评论
    ]]>
    打造仿淘宝注册的TextQ二Q?/title><link>http://www.aygfsteel.com/leeguannan/archive/2008/01/08/173774.html</link><dc:creator>阿南</dc:creator><author>阿南</author><pubDate>Tue, 08 Jan 2008 12:20:00 GMT</pubDate><guid>http://www.aygfsteel.com/leeguannan/archive/2008/01/08/173774.html</guid><wfw:comment>http://www.aygfsteel.com/leeguannan/comments/173774.html</wfw:comment><comments>http://www.aygfsteel.com/leeguannan/archive/2008/01/08/173774.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/leeguannan/comments/commentRss/173774.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/leeguannan/services/trackbacks/173774.html</trackback:ping><description><![CDATA[     摘要: 上次贴了(jin)几张囄出来显摆Q这ơ彻底公布代码~大家看看原理好Q有兴趣的朋友可以和我联p,把SWT里面的控仉装一下,做一套验证框架出来~   1package com.glnpu.dmp.controls;   2   3import org.eclipse.swt.SWT;   4imp...  <a href='http://www.aygfsteel.com/leeguannan/archive/2008/01/08/173774.html'>阅读全文</a><img src ="http://www.aygfsteel.com/leeguannan/aggbug/173774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/leeguannan/" target="_blank">阿南</a> 2008-01-08 20:20 <a href="http://www.aygfsteel.com/leeguannan/archive/2008/01/08/173774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打造仿淘宝注册的TextQ一Q?/title><link>http://www.aygfsteel.com/leeguannan/archive/2008/01/01/172024.html</link><dc:creator>阿南</dc:creator><author>阿南</author><pubDate>Tue, 01 Jan 2008 14:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/leeguannan/archive/2008/01/01/172024.html</guid><wfw:comment>http://www.aygfsteel.com/leeguannan/comments/172024.html</wfw:comment><comments>http://www.aygfsteel.com/leeguannan/archive/2008/01/01/172024.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/leeguannan/comments/commentRss/172024.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/leeguannan/services/trackbacks/172024.html</trackback:ping><description><![CDATA[<p>    Z么要打造仿淘宝注册的Text呢,不ؓ(f)什么,因ؓ(f)它好看!呵呵Q这个不理由,其实最重要的原因是因ؓ(f)最q在开发过E中Q发现验证是个最ȝ(ch)的事情,虽然Eclipse和JFace为我们已l提供了(jin)比较好用?#8220;高”对话框和向导了(jin)Q对于简单的应用Q他们两个用h是非常简单,如果要验证的东西非常多,而且q有交叉验证Q我自己L(fng)名字Q就是填?jin)A׃再验证BCD的错在了(jin)Q或者填?jin)Cp验证AD存在Q处理v来了(jin)麻?ch)?jin)Q前两天以ؓ(f)新同事接手一端代码,发现里面竟然?0+个监听器Q验证逻辑复杂的要死~Z(jin)解决q个问题。再l合B/S的开发经验,我认为,完全没有必要当用h所有的必填全都填?jin)以后再把OK按键打开Q不然永q置灰~大家做过的哪个B/SE序是这L(fng)Q不都是他爱填填Q不爱填拉到Q点定的时候我告诉Q或者是Q我以上来就告诉你哪些必填,不填的,点击定l箋提醒Q?/p> <p>   OKQ闲话少_(d)先看看淘宝的注册吧~我一直认为淘宝的注册界面是国内客户体验度最好的~</p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot002_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="31" alt="ScreenShot002" src="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot002_thumb.png" width="244" border="0" /></a> </p> <p>首先界面一打开是q样的提C,在input框的左下脚又一个蓝色的箭_(d)代表此文本框必填Q?/p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot001_4.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="29" alt="ScreenShot001" src="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot001_thumb_1.png" width="244" border="0" /></a> </p> <p>当获得焦点以后改变,后面的提C框高(sh)Q着重提醒用P</p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot003_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="34" alt="ScreenShot003" src="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot003_thumb.png" width="244" border="0" /></a> </p> <p>如果没有填,必填,提交的时候的提示Q?/p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot004_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="26" alt="ScreenShot004" src="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot004_thumb.png" width="244" border="0" /></a> </p> <p>填写正确的提C;</p> <p>OKQ分析了(jin)上面的四U状态,那么我们来确定我们需要做成什么样子的~首先Q我们需要;</p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot005_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="45" alt="ScreenShot005" src="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot005_thumb.png" width="244" border="0" /></a> </p> <p>必填提醒状?/p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot006_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="41" alt="ScreenShot006" src="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot006_thumb.png" width="244" border="0" /></a> </p> <p>填写正确提醒状?/p> <p><a href="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot007_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="42" alt="ScreenShot007" src="http://www.aygfsteel.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot007_thumb.png" width="244" border="0" /></a> </p> <p>错误填写提醒状?/p> <p>q有是鼠标UdCU图标上的Q动框详细说明Q因为我们不可能像淘宝那P一个控件占那么大位|,用户界面q需要放更多的东ѝ?/p> <p>大致的Q务交代清楚了(jin)Q下一ơ再写详l的实现q程?br /> </p> <img src ="http://www.aygfsteel.com/leeguannan/aggbug/172024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/leeguannan/" target="_blank">阿南</a> 2008-01-01 22:24 <a href="http://www.aygfsteel.com/leeguannan/archive/2008/01/01/172024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϣ</a>| <a href="http://" target="_blank">̨ǰ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ԫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¸</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͩ</a>| <a href="http://" target="_blank">ƽ½</a>| <a href="http://" target="_blank">º</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">«Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽʡ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͺ</a>| <a href="http://" target="_blank">Ľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>