??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久久久亚洲Av无码,亚洲成A人片在线观看中文,亚洲国产综合AV在线观看http://www.tkk7.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.tkk7.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.tkk7.com/leeguannan/archive/2013/01/09/394009.html</guid><wfw:comment>http://www.tkk7.com/leeguannan/comments/394009.html</wfw:comment><comments>http://www.tkk7.com/leeguannan/archive/2013/01/09/394009.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/leeguannan/comments/commentRss/394009.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/leeguannan/services/trackbacks/394009.html</trackback:ping><description><![CDATA[今天客户Ҏ务器上突然有一个功能保存了Q查看日志信息后发现Q错误信息:<br /><div>Could not instantiate class XXX from tuple at AliasToBeanConstructorResultTransformer...<br /><br />Google了很久才发现有可能是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还要看一会儿的部|情c?/div></div><img src ="http://www.tkk7.com/leeguannan/aggbug/394009.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/leeguannan/" target="_blank">阿南</a> 2013-01-09 10:57 <a href="http://www.tkk7.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.tkk7.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.tkk7.com/leeguannan/archive/2009/07/03/285372.html</guid><wfw:comment>http://www.tkk7.com/leeguannan/comments/285372.html</wfw:comment><comments>http://www.tkk7.com/leeguannan/archive/2009/07/03/285372.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.tkk7.com/leeguannan/comments/commentRss/285372.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/leeguannan/services/trackbacks/285372.html</trackback:ping><description><![CDATA[<p>    作ؓ一个技术h员,谁不知道构架Q?/p> <p>    前一D|间公司找开发h员谈心,有位领导问一位开发h员,大致对话如下Q?/p> <p>    AQ“你了解׃现在产品的构架吗Q能不能谈谈你对构架的看法??/p> <p>    BQ“?…?/p> <p>    AQ“说说看吧~?/p> <p>    BQ“我不懂构架Q构架是什么?׃现在的品还有构架呢Q?/p> <p>    作ؓ一个有3q工作经验,2家公司经历的VCE序员来_我觉得,q几q的U篏是白做了Q这L思想永远都只能停留在写程序上~</p> <p>    一个品没有构Ӟ如同一个h没有灵魂一P他不是没有,只是你没有去思考,没有dC而已Q?/p> <p>    我记得袁z刚说过Q“一个伟大的产品背后一定有一个伟大构架师Q”,我坚信这一点~产品好坏一斚w军_于对现实问题的解决程度,另一斚w是构架的好坏Q?/p> <p>    几年前,中国的Y件公叔R面很出现构架师/架构师这L角色Q这几年开始有改观了,来多的h开始认识到很多错误的问题,其实从一开始就是错的。很多事情ƈ没有谋定而后动。一味的q求单,到最后变成了下线很简单了Q?/p> <p>   说自׃知道构架的开发h员有两种Q新手和没有思想的新手,拼命的同时我们也应该停下脚步xQ抬起头看看天空。别Ll验的缺失都归结于时间的长短Q更应该x自己是否真的U篏q?/p><img src ="http://www.tkk7.com/leeguannan/aggbug/285372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/leeguannan/" target="_blank">阿南</a> 2009-07-03 16:33 <a href="http://www.tkk7.com/leeguannan/archive/2009/07/03/285372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB3下无状态会话Bean发布为WebServicehttp://www.tkk7.com/leeguannan/archive/2009/07/02/285163.html阿南阿南Thu, 02 Jul 2009 05:54:00 GMThttp://www.tkk7.com/leeguannan/archive/2009/07/02/285163.htmlhttp://www.tkk7.com/leeguannan/comments/285163.htmlhttp://www.tkk7.com/leeguannan/archive/2009/07/02/285163.html#Feedback0http://www.tkk7.com/leeguannan/comments/commentRss/285163.htmlhttp://www.tkk7.com/leeguannan/services/trackbacks/285163.html    无状态会话Bean发布为WebService是非常有意义的,因ؓ如果我们每一个EJB模块按照SOA的思想做成一个一个独立的服务模块Q这里不讨论SCAQ我认ؓApache的SCA框架q不够强大,文档q不够全面)Q同L代码在JavaEE体系之内的应用程序可以直接用EJB3直接讉KQJavaEE体系之外的应用程序可以直接用WebService讉KQ这一Ҏ非常有意义的?/p>

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

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

    看看|上行的代码:

 

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

 

注意Q基于RPCl定模式下ListQSet一cȝ接口都是不可传输的,q点会很ȝ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:

 

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是针Ҏ口发布出去,而且使用的DOCUMENT样式Q可以直接用List、Set的接口?/p>

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

 

 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。这样很Ҏ会话Bean变成WS~一L代码两样的功能,|



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

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

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

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

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

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

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

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

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

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

    使用JRuby来开发SWT的界面,q是有比较复杂,在熟悉SWT开发和JRuby的情况下M个比较复杂的界面时候就会非常复杂!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 {
                    //允许传对象,作ؓ参数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一Ҏ和其他的写法不同的!

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

例如Q?/strong>

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

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

例如Q?/strong>

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

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

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

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

排出一个优先表:

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

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

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

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

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

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

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

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

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

    学习前h的经验;

    好方法要让大家分享;

    目只要有偏差,需要调_l对不可以放任自!

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

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



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

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

希望大家共勉Q?/p>

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

   Be like the doctors    用医生的Ҏ

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

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

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

法则二十八:

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

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

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

法则二十九:

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

法则三十Q?/p>

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

法则三十一Q?/p>

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

法则三十二:

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

法则三十三:

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

法则三十四:

    Use ZD milestones    零缺炚wE碑

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

法则三十五:

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

法则三十六:

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

法则三十七:

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

法则三十八:

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

法则三十九:

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

法则四十二:

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

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

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

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

法则四十三:

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

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

法则四十四:

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

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

法则四十五:

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

法则四十六:

    See the forest    见树亦见?/strong>

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

法则四十七:

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

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

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

法则四十八:

    Violate at least one sacred cow    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>

法则五十二:

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

法则五十三:

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

法则五十四:

   Create a winning image    建立赢家形象



阿南 2008-02-29 18:00 发表评论
]]>
JFaceq度条用经验一?/title><link>http://www.tkk7.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.tkk7.com/leeguannan/archive/2008/02/29/182822.html</guid><wfw:comment>http://www.tkk7.com/leeguannan/comments/182822.html</wfw:comment><comments>http://www.tkk7.com/leeguannan/archive/2008/02/29/182822.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.tkk7.com/leeguannan/comments/commentRss/182822.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/leeguannan/services/trackbacks/182822.html</trackback:ping><description><![CDATA[<p>    我讨论的q度条主要是JFace的进度条QRCP已经提供了完善的JoblgQؓ什么还要用JFace的进度条呢?原因是我要在登陆界面上做q度处理Q也是使用Eclipse3.3提供的AbstractSplashHandlerҎ,可以原有的启动画面替换成ؓ一个登陆界面,启动q个登陆界面ӞEclipse的Platform此时q没有启动,所以不能用RCP本n的Joblg了?/p> <p>    ׃是一个检服务器是否联通的试Q所以ƈ不知道测试的真实旉Q所以就是要使用“ȝq度?#8221;了,也就是反复走的进度条陈刚的代码如下:</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("被中断了"); <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ؓ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 />                            // 监听是否单击了进度框?#8220;取消”按钮QstopFlag则是监听后台d是否停止 <br />                            if (monitor.isCanceled() || stopFlag) { <br />                                stopFlag = true; // 单击?#8220;取消”按钮要设标志位ؓ停止Q好通知后台d中断执行 <br />                                break;// 中断处理 <br />                            } <br />                            // i?0后清零。ƈ进度条重新来过 <br />                            if ((++i) == 30) { <br />                                i = 0; <br />                                monitor.beginTask("正在执行?.....", 30); <br />                            } <br />                            // q度条每前进一步体息一会,不用太长或太短,旉可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,如果一直没有关闭的指oQ则反复开?--累加---l束---开?--累加---l束?/p> <p>    我们几乎是把陈刚的代码原原本本的抄袭了一下,仅仅是替换了go()中的内容Q但是发C个问?/p> <p><strong>new ProgressMonitorDialog(s).run(true, true, runnable);</strong> <br />使用此句的话QJFace的线E永q不会启动;</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如果ؓtrue则此U程Z个非UIU程Q大家知道非UIU程是不会阻塞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()ҎQ以避免UI被阻塞!</p> <p>大家如果在JFace的开发中如果使用了进度条Q发现UI被阻塞的话,想x哦!Q!呵呵只用在进E中调用一下Display.readAndDispatch()p决了Q?/p><img src ="http://www.tkk7.com/leeguannan/aggbug/182822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/leeguannan/" target="_blank">阿南</a> 2008-02-29 08:47 <a href="http://www.tkk7.com/leeguannan/archive/2008/02/29/182822.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RAP官方老窝http://www.tkk7.com/leeguannan/archive/2008/01/13/175002.html阿南阿南Sun, 13 Jan 2008 10:11:00 GMThttp://www.tkk7.com/leeguannan/archive/2008/01/13/175002.htmlhttp://www.tkk7.com/leeguannan/comments/175002.htmlhttp://www.tkk7.com/leeguannan/archive/2008/01/13/175002.html#Feedback0http://www.tkk7.com/leeguannan/comments/commentRss/175002.htmlhttp://www.tkk7.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看到了;

 

RAP开发领头公?/p>

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


  • 阿南 2008-01-13 18:11 发表评论
    ]]>
    打造仿淘宝注册的TextQ二Q?/title><link>http://www.tkk7.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.tkk7.com/leeguannan/archive/2008/01/08/173774.html</guid><wfw:comment>http://www.tkk7.com/leeguannan/comments/173774.html</wfw:comment><comments>http://www.tkk7.com/leeguannan/archive/2008/01/08/173774.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/leeguannan/comments/commentRss/173774.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/leeguannan/services/trackbacks/173774.html</trackback:ping><description><![CDATA[     摘要: 上次贴了几张囄出来显摆Q这ơ彻底公布代码~大家看看原理好Q有兴趣的朋友可以和我联p,把SWT里面的控仉装一下,做一套验证框架出来~   1package com.glnpu.dmp.controls;   2   3import org.eclipse.swt.SWT;   4imp...  <a href='http://www.tkk7.com/leeguannan/archive/2008/01/08/173774.html'>阅读全文</a><img src ="http://www.tkk7.com/leeguannan/aggbug/173774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/leeguannan/" target="_blank">阿南</a> 2008-01-08 20:20 <a href="http://www.tkk7.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.tkk7.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.tkk7.com/leeguannan/archive/2008/01/01/172024.html</guid><wfw:comment>http://www.tkk7.com/leeguannan/comments/172024.html</wfw:comment><comments>http://www.tkk7.com/leeguannan/archive/2008/01/01/172024.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/leeguannan/comments/commentRss/172024.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/leeguannan/services/trackbacks/172024.html</trackback:ping><description><![CDATA[<p>    Z么要打造仿淘宝注册的Text呢,不ؓ什么,因ؓ它好看!呵呵Q这个不理由,其实最重要的原因是因ؓ最q在开发过E中Q发现验证是个最ȝ的事情,虽然Eclipse和JFace为我们已l提供了比较好用?#8220;高”对话框和向导了Q对于简单的应用Q他们两个用h是非常简单,如果要验证的东西非常多,而且q有交叉验证Q我自己L名字Q就是填了A׃再验证BCD的错在了Q或者填了Cp验证AD存在Q处理v来了麻烦了Q前两天以ؓ新同事接手一端代码,发现里面竟然?0+个监听器Q验证逻辑复杂的要死~Z解决q个问题。再l合B/S的开发经验,我认为,完全没有必要当用h所有的必填全都填了以后再把OK按键打开Q不然永q置灰~大家做过的哪个B/SE序是这LQ不都是他爱填填Q不爱填拉到Q点定的时候我告诉Q或者是Q我以上来就告诉你哪些必填,不填的,点击定l箋提醒Q?/p> <p>   OKQ闲话少_先看看淘宝的注册吧~我一直认为淘宝的注册界面是国内客户体验度最好的~</p> <p><a href="http://www.tkk7.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.tkk7.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot002_thumb.png" width="244" border="0" /></a> </p> <p>首先界面一打开是q样的提C,在input框的左下脚又一个蓝色的箭_代表此文本框必填Q?/p> <p><a href="http://www.tkk7.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.tkk7.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot001_thumb_1.png" width="244" border="0" /></a> </p> <p>当获得焦点以后改变,后面的提C框高亮Q着重提醒用P</p> <p><a href="http://www.tkk7.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.tkk7.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.tkk7.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.tkk7.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot004_thumb.png" width="244" border="0" /></a> </p> <p>填写正确的提C;</p> <p>OKQ分析了上面的四U状态,那么我们来确定我们需要做成什么样子的~首先Q我们需要;</p> <p><a href="http://www.tkk7.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.tkk7.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot005_thumb.png" width="244" border="0" /></a> </p> <p>必填提醒状?/p> <p><a href="http://www.tkk7.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.tkk7.com/images/blogjava_net/leeguannan/WindowsLiveWriter/Text_13478/ScreenShot006_thumb.png" width="244" border="0" /></a> </p> <p>填写正确提醒状?/p> <p><a href="http://www.tkk7.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.tkk7.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务交代清楚了Q下一ơ再写详l的实现q程?br /> </p> <img src ="http://www.tkk7.com/leeguannan/aggbug/172024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/leeguannan/" target="_blank">阿南</a> 2008-01-01 22:24 <a href="http://www.tkk7.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"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://www33399.com" target="_blank">һ߹ۿվ</a>| <a href="http://djqq520.com" target="_blank">޼ɫС˵</a>| <a href="http://by6635.com" target="_blank">ѴƬavֻƬ</a>| <a href="http://bentuxinli.com" target="_blank">޶߹ۿ</a>| <a href="http://linanhotel.com" target="_blank">޸һƷ</a>| <a href="http://sdhgjscl.com" target="_blank">AëƬƵл</a>| <a href="http://54vpn.com" target="_blank">޵һAVվ</a>| <a href="http://zbvip888.com" target="_blank">ɫtvվѿ</a>| <a href="http://hwafarda.com" target="_blank">ŷƷһ </a>| <a href="http://323c.com" target="_blank">vavavaӰĻ </a>| <a href="http://53reniao.com" target="_blank">޳˻ɫ</a>| <a href="http://av520av.com" target="_blank">1000žžʮδֹۿ </a>| <a href="http://imfever.com" target="_blank">˳77777߲</a>| <a href="http://cz655.com" target="_blank">97Ƶ</a>| <a href="http://hztkw.com" target="_blank">2019ҹ</a>| <a href="http://micehunan.com" target="_blank">ŮƬѹۿƵ</a>| <a href="http://www-959kj.com" target="_blank">Ůwwwһ</a>| <a href="http://szclinic.com" target="_blank">뿴avվ</a>| <a href="http://pyjxyey.com" target="_blank">վѹۿ</a>| <a href="http://bnb989.com" target="_blank">˾þô߽</a>| <a href="http://taoduoduo666.com" target="_blank">ɫҹƵ</a>| <a href="http://ahsuibao.com" target="_blank">˳վӰȷ沥</a>| <a href="http://137499.com" target="_blank">ձƬѹۿһ</a>| <a href="http://trio2003.com" target="_blank">Ļav</a>| <a href="http://48eh.com" target="_blank">޹Ʒһ</a>| <a href="http://bbav04.com" target="_blank">ĻѾþ</a>| <a href="http://5c7m.com" target="_blank">Ƶ</a>| <a href="http://28896543.com" target="_blank">ڵƵ</a>| <a href="http://vvww-3499.com" target="_blank">xxxxxܴƬƵ</a>| <a href="http://dgyinhezy.com" target="_blank">޾Ʒþ</a>| <a href="http://hnqkzj.com" target="_blank">ѻɫַ</a>| <a href="http://xfmkt.com" target="_blank">2019Ļ</a>| <a href="http://wogool.com" target="_blank">ͼƬУ԰ɫ</a>| <a href="http://lzlcp.com" target="_blank">޾ƷƬ߹ۿ</a>| <a href="http://ywgj50225.com" target="_blank">һѿ</a>| <a href="http://qq-gm.com" target="_blank">¹޾ƷӰԺ</a>| <a href="http://wwwly6080.com" target="_blank">һһëƬȫ</a>| <a href="http://peipeixiu.com" target="_blank">þùƷȰ׽</a>| <a href="http://18888kj.com" target="_blank">˳վ߹ۿ</a>| <a href="http://dzhankong.com" target="_blank">˳AVվ</a>| <a href="http://www222yy.com" 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>