开发人员的自我修养
2011-01-14 21:52 jinze 阅读(2504) 评论(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;
}
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;
}
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);
}
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);
}
a=a+b;
b=a-b;
a=a-b;
System.out.println("a:"+a);
System.out.println("b:"+b);
}
老实说,这样的代码的确很美,如果写着玩,写第一段代码反而索然无味,可是做开发我却不赞成第二段代码,开发人员应该考虑的,是有价值的计算,比如如何使得代码的开销更低,执行效率更高,而不是玩这种编程游戏,可是话又说回来了,不玩编程游戏,写代码还有乐趣吗?