关键是,当你的程序规模不大时,你并不知道哪些东西是ugly的。个人而言,我不用审美的眼光去看待别人的程序。如果要批评一个程序,我会指出它缺乏某方面的灵活性或者扩展性。但当程序规模很小时,你看不到究竟哪个方面需要灵活或者扩展。我想还是等到规模有变大的趋势再去重构会比较现实,毕竟审美的追求将是没有尽头的。

解决方案 »

  1.   

    >看不得嵌套的if-else语句。两层嵌套勉强还可以,三层嵌套就受不了。基本同意,某个方法中结构(出现{的地方)超过4层,且该层内的代码超过5行,就应该考虑Extract一个Method出来>看不得类之间互相引用太多,会认为耦合太多不上品。
    那可不一定>看不得依赖于字符串比较的程序分支,恨不得一个又一个地定义基本类型常量接口。
    使用常量是不错的主意,但是如果用滥了>看不得内部匿名类。在我的程序中是:new ActionListener(){public voidActionPerformed(){//...}}。但是把这个移到别的类中又会引起一堆琐事。两头为难。
    看那种方便,用哪个,如果只用一处,根本没有重用性可言的话,就让他默默无闻吧>看不得一个类或者一个方法太长(其实一个小程序能有多长的代码?但我看到一个方法超过1屏幕就不爽。分辨率1024x768)
    一个类不能超过一屏? 你一行写多少statement啊?总之,在尽可能的情况下(考虑工期,代码易读性等),完美是没错的。但是,世界上有几成的程序员会用最快的位操作来判断一个int是2的倍数或者次方啊?
      

  2.   

    好程序是重构出来的,一般来说大会随着规模的增大而一步步走向完美的设计,当然也不乏相反的例子,那就是失败的软件项目。
    有这样的思维方式很好,但是如果被这样的思维方式羁绊,以至于影响写程序的效率,那就只能怀疑你的能力了。以你提到的这些症状而言
    -----------------------------------------------------------------------
    看不得嵌套的if-else语句。两层嵌套勉强还可以,三层嵌套就受不了。
    看不得类之间互相引用太多,会认为耦合太多不上品。
    看不得依赖于字符串比较的程序分支,恨不得一个又一个地定义基本类型常量接口。
    看不得内部匿名类。在我的程序中是:new ActionListener(){public voidActionPerformed(){//...}}。但是把这个移到别的类中又会引起一堆琐事。两头为难。
    看不得一个类或者一个方法太长(其实一个小程序能有多长的代码?但我看到一个方法超过1屏幕就不爽。分辨率1024x768)
    ------------------------------------------------------------------------
    都应该在一个合格的程序员的潜意识中解决掉的。一般来说,在书写程序的过程中,如果已经开始采用CCP手段(copy cut paste)了,那就会下意识的改变代码以避免进一步的CCP.如果代码宽度超过了80行(编辑器设了80行的虚线位),暗地里就会用各种无意识的手段如:折行、减少变量名的长度、拆分复杂表达式等等,当然也包括整个重构代码。有时候经常会把功能相关的函数放到相邻的位置,除了体现布局的美学外,也方便上下参照者写代码,如果有过长的函数在那碍手,势必会成为眼中钉,要不了多久,你自己也忘了它什么时候被你除去的。实际上以一种美学观点去看待程序,大部分情况下会提高工作效率和程序运行效率。
    当你在使程序达到美的过程中,你自己是在进行一种审美,是一种轻松的休息状态。而美的程序会在你接下来的苦战中减轻你的疲劳和不适,你会觉得工作相当愉悦。
      

  3.   

    关键是有人欣赏!自己美不算,要有慧眼识珠的!那才叫英雄习英雄!
    可是一般老板不看你的代码如何优美,高雅,脱俗!tmd的就要功能。你要是一设计,很有可能超时,到时候tmd就开始嚷嚷了。你的设计也许别人还不知道你再说什么。孤独的英雄!
    咱就凑合了吧,设计得差不多就好了。先让他们淫乐一下好了!给钱就好了!
      

  4.   

    是给自己做的程序,才容易犯上这种症状,大框上采用重量级的模式、框架,局部的代码上,还要讲究简洁明快、更优化的算法、更高效的执行效率。打工的话,去tmd,完成功能就行了
      

  5.   

    回复人: juqiang(方枪枪(正在修炼伤心小箭)) ( ) 信誉:100  2004-07-22 12:39:00  得分: 0  
     
     
       to 小菜,你讲出了大家一直很郁闷的一个事实:老板喜欢懂业务的程序员。所以,国内程序员的薪水低:写出的软件不是客户要的。
      
     
    ====================================================
    没有什么可以郁闷的。用户需要用户需要的东西,只要满足了用户的需求(短期和长期的,已有的和变化的),用户就会觉得是好东西,他并不在乎你是怎么实现的。驾驭语言的能力是高超还是低劣。
    中国的应用软件不好,有很大一部分原因就是因为对业务的理解和跟踪做得不到位。
      

  6.   

    太牛了我看不得MFC,看到就会吐,基本上写程都是纯Api
    我看不得写个a+b也用类的程序,从不用3个以上的类,最常用anis c来实现一切
    我看不得Delphi的VCL,我只用Object Pascal就行了
    我看不得用类的驱动,恨不得不用C来写驱动,只用汇编