在我们写代码的时候可以使用一些小的技巧来使代码变得更加简洁,易于维护和高效。
怎样提高开发效率
给你一个任务,限定5天内完成,如果你实际用了6天,可以说是开发效率不高,或者同样的一个任务,你花了6天,而你的同事却只用了4天,也可以说是你的开发效率不高,影响开发效率的因素有很多,下面就我个人的理解来谈谈怎样提高开发效率.
工具
俗话说,工欲善其事必先利其器,使用得心应手的工具必然会提高开发效率,做微软平台开发的肯定离不开VS,就VS本身来说,除了常用功能外一些常用的快捷键一定要能熟练运用,例如下面是我认为比较有用的几个快捷键:
- 注释: Ctrl + K + C
- 取消注释: Ctrl + K + U
- 全屏: Shift + Alt + Ente
- 设置标签: CTRL + K, CTRL + K
- 下一个、上一个标签: CTRL + K, CTRL + P 、CTRL + K, CTRL + P
- 列出成员: Ctrl + J
- 显示参数信息: Ctrl + Shift + Space
- 转到定义后返回: Ctrl + -
熟练使用快捷键对于代码编写的速率和跟踪代码的速率会有大大的提高。 有时候开发工具自身的功能受到了限制,这是就需要使用插件来丰富功能,这里推荐两款插件,VS中的ReSharper和SqlServer中的SQL prompt5,ReSharper是功能很强大的一个VS插件,但会拖慢VS的速度,就看怎么去权衡了。
代码质量
代码质量好了,产生的bug就少,和测试的交互也就少了,也就不会因为前面产生的bug而影响后面的进度,效率自然就高了。代码质量可以分三个方面来看: 1 代码出错少,能够正常的运行;
- 主动学习,提升自我的编程技能;
- 勤思考,对干过的错要经常总结,一些规范性的原则要牢记,这些常常会出现一些低级错误;
- 一个任务做完后需要进行充分的自测。
2 代码的运行效率高,在大数据、高并发的时候能够高效运行;
- 高性能的开发得从点滴做起,不放过每一个细节,可能一个小的细节点就是一个性能的瓶颈;
- 要有重构代码的习惯,好的代码是重构出来的,高性能的代码也是重构出来的;
- 多学习一些原理性的知识,不光要知其然还是知其所以然,基础扎实了,一些性能的问题就知道怎么去优化了;
3 代码最后的运行结果要和客户的要求一致;
- 做需求之前把自己的理解跟需求分析进行沟通看是否能达成一致,如果是直接和客户进行沟通可以先做出小Demo,然后给客户演示,根据反馈不断改进;
- 在做的过程中如果遇到有疑问的地方一定要和需求或客户进行沟通,不要根据自己的想法想当然的去进行代码编写;
- 必要的时候可以引导客户,我们的主要目的能以最有效的方式帮客户解决问题,不能盲目的按照客户的要求来,有时客户说需要一双雨鞋,可能一把伞就可以解决问题。同样对于需求分析写的文档,开发也需要有质疑的精神。
业务知识学习
做任何的系统都避免不了有业务背景,熟练的了解业务知识可以使我们更清楚的知道我们是在做什么。很多的开发人员可能只喜欢钻研技术,对业务往往没什么兴趣,代码写完了,可能还不知道做出的模块时做什么用的,这样写出来的代码的质量就可想而知了。
- 学习业务可能很枯燥,但却是一劳永逸的事情,所以不管是否有兴趣,还是应该硬着头皮啃下来;
- 小组内可以成立兴趣小组,探讨的方式来进行学习,互相分享各自的学习内容,关键是组内的氛围要搞起来;
- 如果是直接跟客户沟通,需要用客户能听懂的语言,比如图文配合或是一些小Demo,否则当开发术语碰上领域术语就可能都是在对牛弹琴了。
1 .空操作符(??)
在程序中经常会遇到对字符串或是对象判断null的操作,如果为null则给空值或是一个指定的值。通常我们会这样来处理
string name = value; if (name == null) { name = string.Empty; }
可以使用三元操作符(?:)对上面对吗进行优化
string name = value == null ? string.Empty : value;
这样使代码简洁了不少,但这还不是最简洁的,我们还可以使用??操作符来进行进一步优化,??操作符意思是如果为null取操作符左边的值,否则取右边的值。
string name = value ?? string.Empty;
我们甚至可以写一个扩展方法来过滤掉null和空格,使返回的结果可以更好的使用??操作符
public static class StringUtility { public static string TrimToNull(string source) { return string.IsNullOrWhiteSpace(source) ? null : source.Trim(); } }
使用代码如下:
string name = string.TrimToNull(value) ?? "None Specified";
2. 使用As转换类型
在C#中进行类型转换有很多种方式比如可以进行强制类型转换,通常在转换前会使用Is进行类型的判断,所以您可能经常写过或见过类似下面的代码