代码改变世界

开发人员的自我修养

2011-01-14 21:52  jinze  阅读(2502)  评论(28编辑  收藏  举报
       突然想起周星驰的一部电影里面出现过一本书《演员的自我修养》,照猫画虎,想写一篇文章《开发人员的自我修养》,不断学习,这才是自我提高,实现自我的关键,还有,对编程来说,简单的才是最好的,但是,简单有的时候需要对技术的深刻把握,而深刻的把握又需要不断的学习,为此,开发人员每天都应该需要看很多书才对,可是,应该看什么样的书呢?我不觉得诸如《XXXX代码大全》之类的书有帮助,真正有帮助的应该是《XXXX编程思想》,比如,下面这个类是我们几乎每个项目都要用到的,对方法和属性没有明确认识的人,很容易会将它写成:
package com.majinze;

public class User {
    
private String UserName=null;
    
public String getUserName() {
        
return UserName;
    }
    
public void setUserName(String userName) {
        UserName 
= userName;
    }
    
public String getPassword() {
        
return Password;
    }
    
public void setPassword(String password) {
        Password 
= password;
    }
    
private String Password=null;
}

 

这样,我就经常这么写,可是在意识到简单的才是最好的之后,我发现自己的这段代码是如此的可笑,以至于把它拿给别人看似乎都需要很大的勇气,用梁静茹的一句歌词来说“写代码真的需要勇气来面对流言蜚语”。
这段代码其实这么写菜才更好:
package com.majinze;

public class User {
    
public String UserName=null;
    
public String Password=null;
}

 

方法的本质是函数,也就是说,只有需要进行复杂运算的时候,我们才需要方法,更多的时候,我们其实只需要属性。
       开发人员在进行语言学习的时候,应该更多关心的是算法,而不是API,甚至算法可能都不是最重要的,最重要的应该是编程思想,用武侠小说中的观点,编程思想,好比内功心法,API和算法 好像招式一样,理解了内功心法,招式就手到擒来,甚至可以无招胜有招,达到代码怎么写都行,而且怎么写都对的境界,当然,目前的企业开发,最好还是规规矩矩的写代码,因为毕竟,开发人员写的代码还有可能由其他人来维护,代码写天马行空,绚丽无比,别人看的时候却要绞尽脑汁才看的懂,而看你代码的仁兄又急于完成任务来向他的经理汇报,这样,岂不是害了他吗?
下面是一个代码写的天马行空的例子,偶尔听到一个编程题,题目是如何不适用第三个变量来交换两个变量的值,一般而言,我们要交换两个变量的值,我们的代码会这么写:
public static void ChangeValue(int a,int b){
        
int temp=0;
        temp
=b;
        b
=a;
        a
=temp;
        System.out.println(
"a:"+a);
        System.out.println(
"b:"+b);
    }

 

这样的代码任谁一看就知道是做什么的,可是,有好事者,比如曾经的我,把代码写成这样:
public static void ChangeValueWithThird(int a,int b){
        
        a
=a+b;
        b
=a-b;
        a
=a-b;
        System.out.println(
"a:"+a);
        System.out.println(
"b:"+b);
    }

 

老实说,这样的代码的确很美,如果写着玩,写第一段代码反而索然无味,可是做开发我却不赞成第二段代码,开发人员应该考虑的,是有价值的计算,比如如何使得代码的开销更低,执行效率更高,而不是玩这种编程游戏,可是话又说回来了,不玩编程游戏,写代码还有乐趣吗?
用电子邮件联系Andy