什么叫水平,不是看懂了叫水平,也不是会用了就叫水平,更不是懂得更多才叫有水平,而是知道如何做才能做得更好才叫真正有水平?...
其实有很多同事、朋友、同行,水平个个都很强的,写程序也很快,但是他们有一个共同的缺点,就是懂得太多、想法太多、想做得太多但是仔细认真做得太少、做得精的太少、经得起考验的更少、真正可以实际应用可以广泛推广的就更少。
很多人都喜欢大谈SOA、IOC、ORM等等,但是对手上的眼前的程序代码却没有多少兴趣爱好,也懒得深入研究优化自己的程序,这几年深刻的意识到,眼前的才是真,真正在用的程序才是真,其他都是虚假飘渺的,把给客户用的实实在在的程序写得最好、性能最好,用起来好用,符合客户的实际需求才是真理。
打个比方,曾经我写了一个函数,一直用得蛮好的,自己认为已经写得非常好了,同事们也没在其中找出来过多少Bug,我们在日常开发中天天也在用,所以我想把这个类发布给大家用用,提高一下大家的品质,发布到网络上后,很多人有下载,也有人在用,也有人反馈过错误,但是其中我很佩服一个人“卢骐征”,这个人应该是仔细看了我的代码,然后给我指出:“吉日,你的代码还可以优化,有一个地方你可以这么改进一下......”。
我太佩服这样的人了,我不是想跟别人大谈什么这个牛B技术、那个牛B技术,我就想实实在在知道,我的程序还有什么问题,哪里还可以怎么改进?如何写代码才更好用,更好读,别人用起来更方便?
例如我写的一个获得参数的函数:
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啊,我佩服。
不是把程序写出来了,就叫厉害了,更厉害的是如何写才是最好、性能更高,更好用、更简洁,我按他的指导意思改进了程序的写法,变成了如下几行代码。
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行代码就可以了,过了一夜,我再想想很有可能,其中的两行代码也是多余的,应该是写一行代码就可以了,先做一个测试,改进后的代码是:
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什么的,我是根本不懂的我自己也学不了,没那个水平。
什么叫水平,不是看懂了叫水平,也不是会用了就叫水平,更不是懂得更多才叫有水平,而是知道如何做才能做得更好才叫真正有水平?...相关推荐
- 绩效考核方案怎么做才能让员工更容易接受
前段时间,很多企业都做了年度考核,考核后很多企业的员工就接受不了自己的考核结果,感觉自己付出了很多,做了很多的过程,但结果不满意,对公司的考核方案产生了质疑. 这种场景几乎发生在每一家公司,因为除了年 ...
- 绩效管理怎么做才能确保组织更有活力?
在绩效管理过程中,员工积极性不高的表现有很多,以下是一些常见的表现: 缺乏主动性:员工可能缺乏主动性,不愿意主动参与绩效计划的制定和实施,或者不愿意承担额外的责任和任务,导致绩效目标无法顺利完成. 消 ...
- 网站关键词排名优化怎么做才能让排名更高?
一.选择一个历史记录好的老域名 域名对于网站来说那就相当于一个企业的地址,一个好的域名更容易让用户记住,当然历史记录好的域名可以给搜索引擎带来更多的信任感,让网站上线之后避免度过漫长的沙盒期,让网站的 ...
- BAT大神推荐:看懂英文文档,每天只需要10分钟做这件事……
程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...
- BAT技术大牛推荐:看懂英文文档,每天只需要10分钟做这件事……
程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...
- 看懂英文技术文档,每天只需要10分钟做这件事……
程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...
- 看懂英文技术文档,每天只需要10分钟做这件事…
程序员这个行业是很特殊的.之所以说特殊,就是因为它所有的技术大多来自欧美,所以最主流,最新鲜,最正确的技术文章都是英文,遗憾的是,大部分还没有译本. 有些译文还比较差.与其等待别人的翻译,不如直接阅读 ...
- 一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度
一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例,讲工业界的推荐系统. 我只讲工业界实际有用的技术. ...
- [转载]什么叫资源整合? 看懂了多赚一个亿!
[转载]什么叫资源整合? 看懂了多赚一个亿! 蛮学习一下 原文地址:什么叫资源整合? 看懂了多赚一个亿!作者:餐饮军师 如果你现在只有1家店,或2家,或3家店,而且做得还不怎么样,你是断然不会去想如何 ...
最新文章
- c++语言中,vector容器与list容器的区别和联系?_百度知道
- 用bat实现自启动程序
- 前美团产品专家罗鑫:谈谈我对增长这件事的理解
- python多态的概念_python中的多态
- OpenCASCADE:形状愈合之修复工具
- 常用正则表达 (转)
- 中国移动也要办电竞大赛了!联合腾讯网易办首届电竞大赛
- mysql sum 删除_如果mysql磁盘满了,会发生什么?还真被我遇到了~
- WebRAY权小文:产品就是工程师的尊严
- centos搭建samba服务
- 无法在linux下启用ttysac0串口 终端只打印信息,启动出现mmc0: error -110 whilst initialising SD card该如何解决?...
- 《面向对象分析与设计》一3.7 例题
- 【重识云原生】第六章容器6.3.5节——Controller Manager概述
- 计算机软考网络工程师如何复习?
- js算法---寻找连续数组中的缺失数
- vivo计算机的隐藏功能介绍,六大vivo隐藏黑科技功能 绝对有你不知道的
- 基于有源钳位三电平的有源电力滤波器(ANPC-APF)MATLAB仿真,包括自建的DSOGI锁相模块和PQ谐波检测模块
- android 相机拍照声音文件格式,android4.1 添加相机快门声音开关
- 2020年计算机中职赛,我校在2020年广西职业院校技能大赛(中职组)中再获佳绩...
- 百度索引是什么如何增加索引