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

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

   很多人都喜欢大谈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什么的,我是根本不懂的我自己也学不了,没那个水平。

 

 

 

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值