码迷,mamicode.com
首页 > 其他好文 > 详细

程序员的自黑

时间:2015-10-22 22:34:19      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:

一直都没想当大神,但心里确实很崇拜那些才思敏捷,博学多能的程序员。以为自己可以做到优秀,但最近发现自己离优秀真的还真有很远的距离。甚至想到自己编程4年多,都有些羞愧难当。

事情是这样的。

一个同事负责开发产品的一个新版本,需要我配合修改我之前做的一个模块。这都没有问题。他一直是很细心的人,开始给我讲了很多他的思路。因为是在原来的基础上开发新版本,一方面要满足新功能的需求,一方面就是把原有的代码重构一下,还要兼容旧的版本。但发现代码有以下问题。

 1.多余的属性。

 在设计的时候有些属性并不是模型的职能。比如IsChecked,是否选中,当初是提供给做WPF界面的人绑定用的。认为不合理,不能删掉,只好标记[Obsolete].

2.命名不规范。

比如AddUser(string usernName,string role)和EditUser(string userName,string userType). 这里的role和userType就是一种不规范,本来是同一个东西,为什么要用两个名字。

3.职责不单一。

作为控制类,负责任务的控制。比如UserApplet 有OnStart,OnStop方法。能够控制一些任务的执行和停止,而这些任务就不能写入单个功能函数里面。Login,Logout方法就是登录,退出。而检验用户是否在线的代码就不能混入这两个方法里面。再譬如,有AuthorityManagement这个类负责管理权限方面的。就不能把实现其他验证权限的方法放到别的地方去。不然东一块西一块的搞的很乱。

4.重复的代码。

最常见的,一个方法有多个重载,有很多相同的验证。就不能每次复制粘贴。应该让他们都调用最基层的一个方法。Fool(string name),Fool(string name , string email).那前者就应该在内部调用后者。

5.重复的对象。

因为我们的有的数据持久化是保存在XML和XAML里面的,即使当初存下去的时候是同一个对象,但数据序列化出来后就是一个一个不同的对象。而这种情况,这就需要在加载之后让他们都指向同一个原对象。

诸如以上的问题,真的叫做改的自己都不好意思。很久之前的代码,没有去细看,重构一次还真是干净整洁了许多。而这些都不是重点,重点是修改的这个过程,我是很被动的,前前后后改了很多次。每次发现一两个问题,push了一次,然后他发现还是有问题,又要我改。为此我还动过情绪(一时之气,两人关系不影响),每次坐下没多久又叫过去看一下,再改。当时我又着急去做自己负责的其他的工作。所以总的来说,这次修改的效率比较低,对于这个事情的一直没上心,只想按照他的意思早点改完。但因为没有去好好理解这个东西,改出来的效果还是很差。真是欲速而不达。而更可笑的是,我之前还写了《代码整洁之道》的读书笔记。有种打脸的感觉,因为主管看到我跑来跑去,还笑了笑,心里很懂那种笑是什么意思。不过可以说是一次印象深刻的整洁代码实践。

现在回想,优秀程序员和不优秀的程序之间最大的差别就是态度的问题。工作的态度和学习的态度都很重要。即使后者懂很多技术,不断学习,如果做事情潦草,会造成更大的资源浪费。如果学习了不务实,那学习也没有多大的价值,反而容易自负。技术性的东西学了容易运用,你能做的,别人学一学也也能做到,但更重要是编程思想上的差别,人家能做到谋而后动,干净利落,但你改来改去还是有很多不整洁的代码。但起码,知耻而后勇,一切从自己的态度开始。

 

程序员的自黑

标签:

原文地址:http://www.cnblogs.com/stoneniqiu/p/4903017.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!