其实有很多同事、朋友、同行,水平个个都很强的,写程序也很快,但是他们有一个共同的缺点,就是懂得太多、想法太多、想做得太多但是仔细认真做得太少、做得精的太少、经得起考验的更少、真正可以实际应用可以广泛推广的就更少。

很多人都喜欢大谈SOA、IOC、ORM等等,但是对手上的眼前的程序代码却没有多少兴趣爱好,也懒得深入研究优化自己的程序,这几年深刻的意识到,眼前的才是真,真正在用的程序才是真,其他都是虚假飘渺的,把给客户用的实实在在的程序写得最好、性能最好,用起来好用,符合客户的实际需求才是真理。

打个比方,曾经我写了一个函数,一直用得蛮好的,自己认为已经写得非常好了,同事们也没在其中找出来过多少Bug,我们在日常开发中天天也在用,所以我想把这个类发布给大家用用,提高一下大家的品质,发布到网络上后,很多人有下载,也有人在用,也有人反馈过错误,但是其中我很佩服一个人“卢骐征”,这个人应该是仔细看了我的代码,然后给我指出:“吉日,你的代码还可以优化,有一个地方你可以这么改进一下......”。

我太佩服这样的人了,我不是想跟别人大谈什么这个牛B技术、那个牛B技术,我就想实实在在知道,我的程序还有什么问题,哪里还可以怎么改进?如何写代码才更好用,更好读,别人用起来更方便?

例如我写的一个获得参数的函数:

代码

 1         #region public DbParameter MakeInParam(String targetFiled, Object targetValue)
 2         /// <summary>
 3         /// 获取参数
 4         /// </summary>
 5         /// <param name="targetFiled">目标字段</param>
 6         /// <param name="targetValue">值</param>
 7         /// <returns>参数</returns>
 8         public DbParameter MakeInParam(String targetFiled, Object targetValue)
 9         {
10             SqlParameter dbParameter = null;
11             // dbParameter = new SqlParameter("@" + targetFiled, targetValue);
12             if (targetValue == null)
13             {
14                 return dbParameter;
15             }
16             if (targetValue is String)
17             {
18                 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.VarChar);
19             }
20             else
21             {
22                 if (targetValue is Boolean)
23                 {
24                     dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.Bit);
25                 }
26                 else
27                 {
28                     if (targetValue is DateTime)
29                     {
30                         dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.DateTime);
31                     }
32                     else
33                     {
34                         if (targetValue is int)
35                         {
36                             dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.Int);
37                         }
38                         else
39                         {
40                             if (targetValue is Int64)
41                             {
42                                 dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.BigInt);
43                             }
44                             else
45                             {
46                                 if (targetValue is Double)
47                                 {
48                                     dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.Decimal);
49                                 }
50                                 else
51                                 {
52                                     if (targetValue is Byte[])
53                                     {
54                                         dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.Binary);
55                                     }
56                                     else
57                                     {
58                                         dbParameter = new SqlParameter("@" + targetFiled, SqlDbType.VarChar);
59                                     }
60                                 }
61                             }
62                         }
63                     }
64                 }
65             }
66             dbParameter.Value = targetValue;
67             return dbParameter;
68         }
69         #endregion

当时也费了不少周折,把这个函数写好,大家用用也很好用,但是我发布到网上后,人家(“卢骐征”)有水平的人就说了,这个可以改进优化,没必要写这么长,这就叫做水平,牛X啊,我佩服。

不是把程序写出来了,就叫厉害了,更厉害的是如何写才是最好、性能更高,更好用、更简洁,我按他的指导意思改进了程序的写法,变成了如下几行代码。

代码

 1         #region public DbParameter MakeInParam(String targetFiled, Object targetValue)
 2         /// <summary>
 3         /// 获取参数
 4         /// </summary>
 5         /// <param name="targetFiled">目标字段</param>
 6         /// <param name="targetValue">值</param>
 7         /// <returns>参数</returns>
 8         public DbParameter MakeInParam(String targetFiled, Object targetValue)
 9         {
10             SqlParameter dbParameter = new SqlParameter("@" + targetFiled, targetValue);
11             dbParameter.Value = targetValue;
12             return dbParameter;
13         }
14         #endregion

以前写的几十行代码,只变成了3行代码就可以了,过了一夜,我再想想很有可能,其中的两行代码也是多余的,应该是写一行代码就可以了,先做一个测试,改进后的代码是:

代码

 1         #region public DbParameter MakeInParam(String targetFiled, Object targetValue)
 2         /// <summary>
 3         /// 获取参数
 4         /// </summary>
 5         /// <param name="targetFiled">目标字段</param>
 6         /// <param name="targetValue">值</param>
 7         /// <returns>参数</returns>
 8         public DbParameter MakeInParam(String targetFiled, Object targetValue)
 9         {
10             return new SqlParameter("@" + targetFiled, targetValue);
11         }
12         #endregion

哎呀,几十行的代码,用得也很稳定的代码,其实就写一行代码就可以了,这就叫真水平,让别人也看看自己的代码,检查检查,不是自己觉得好了就是真好,别人都说好才是好,心理舒坦了很多,优化了代码,也感谢卢骐征的指点。

虽然他半年前就告诉我问题在哪里了,我也没马上修改,因为还需要考虑稳定性,自己是否有空有精力去修改,这几天正好心情好,把半年前人家提供的改进好了,心理也好舒坦。

很多改进未必是当场就改进,但是觉得应该这么改是对的,那就早晚会修正好,问题毕竟还需要按轻重缓急的顺序来一个个解决。

实实在在的水平就在于:“请告诉我,我应该怎么做才能做得更好,我的程序哪里有问题?如何改进?怎么写才是更好的?”,不要告诉我,去看RBAC吧,CMMI吧,请给我明确的指点,我不是神,你说个ISO、PMP什么的,我是根本不懂的我自己也学不了,没那个水平。

什么叫水平,不是看懂了叫水平,也不是会用了就叫水平,更不是懂得更多才叫有水平,而是知道如何做才能做得更好才叫真正有水平?...相关推荐

  1. 绩效考核方案怎么做才能让员工更容易接受

    前段时间,很多企业都做了年度考核,考核后很多企业的员工就接受不了自己的考核结果,感觉自己付出了很多,做了很多的过程,但结果不满意,对公司的考核方案产生了质疑. 这种场景几乎发生在每一家公司,因为除了年 ...

  2. 绩效管理怎么做才能确保组织更有活力?

    在绩效管理过程中,员工积极性不高的表现有很多,以下是一些常见的表现: 缺乏主动性:员工可能缺乏主动性,不愿意主动参与绩效计划的制定和实施,或者不愿意承担额外的责任和任务,导致绩效目标无法顺利完成. 消 ...

  3. 网站关键词排名优化怎么做才能让排名更高?

    一.选择一个历史记录好的老域名 域名对于网站来说那就相当于一个企业的地址,一个好的域名更容易让用户记住,当然历史记录好的域名可以给搜索引擎带来更多的信任感,让网站上线之后避免度过漫长的沙盒期,让网站的 ...

  4. BAT大神推荐:看懂英文文档,每天只需要10分钟做这件事……

    程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...

  5. BAT技术大牛推荐:看懂英文文档,每天只需要10分钟做这件事……

    程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...

  6. 看懂英文技术文档,每天只需要10分钟做这件事……

    程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...

  7. 看懂英文技术文档,每天只需要10分钟做这件事…

    程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...

  8. 一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度

    一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例,讲工业界的推荐系统. 我只讲工业界实际有用的技术. ...

  9. [转载]什么叫资源整合? 看懂了多赚一个亿!

    [转载]什么叫资源整合? 看懂了多赚一个亿! 蛮学习一下 原文地址:什么叫资源整合? 看懂了多赚一个亿!作者:餐饮军师 如果你现在只有1家店,或2家,或3家店,而且做得还不怎么样,你是断然不会去想如何 ...

最新文章

  1. c++语言中,vector容器与list容器的区别和联系?_百度知道
  2. 用bat实现自启动程序
  3. 前美团产品专家罗鑫:谈谈我对增长这件事的理解
  4. python多态的概念_python中的多态
  5. OpenCASCADE:形状愈合之修复工具
  6. 常用正则表达 (转)
  7. 中国移动也要办电竞大赛了!联合腾讯网易办首届电竞大赛
  8. mysql sum 删除_如果mysql磁盘满了,会发生什么?还真被我遇到了~
  9. WebRAY权小文:产品就是工程师的尊严
  10. centos搭建samba服务
  11. 无法在linux下启用ttysac0串口 终端只打印信息,启动出现mmc0: error -110 whilst initialising SD card该如何解决?...
  12. 《面向对象分析与设计》一3.7 例题
  13. 【重识云原生】第六章容器6.3.5节——Controller Manager概述
  14. 计算机软考网络工程师如何复习?
  15. js算法---寻找连续数组中的缺失数
  16. vivo计算机的隐藏功能介绍,六大vivo隐藏黑科技功能 绝对有你不知道的
  17. 基于有源钳位三电平的有源电力滤波器(ANPC-APF)MATLAB仿真,包括自建的DSOGI锁相模块和PQ谐波检测模块
  18. android 相机拍照声音文件格式,android4.1 添加相机快门声音开关
  19. 2020年计算机中职赛,我校在2020年广西职业院校技能大赛(中职组)中再获佳绩...
  20. 百度索引是什么如何增加索引

热门文章

  1. 随机生成11位激活码
  2. 北京筑龙出席《中国招标》30周年座谈会暨理事年会并进行分享
  3. 1030: 判断直角三角形 C语言
  4. Dataguru(炼数成金)培训优惠码分享
  5. 第五人格调香师技能可以用几次?
  6. java swing写的双色球摇奖机
  7. 访问控制模型(DAC,MAC,RBAC,ABAC)
  8. Android QQ登陆界面实例
  9. 什么是idc,什么又是idc机房?
  10. 在线学习(Online learning)与离线学习(Offline learning)