asp.net mvc3:自己编写的一些垃圾代码,删前分享(2013-01-18)
2013-01-18 09:57
555 查看
不小心发现自己编写的一些垃圾代码,删前留念。可以作为面试题使用。
有时候一个程序员会或者不会什么具体的技术差别不大,因为看看书几分钟就能学会;但编写垃圾代码一旦养成习惯,不是一天两天能改好的。
1. 这段代码等同于?
return vc.RequestContext.HttpContext.Request.Params["view"] != null ? vc.RequestContext.HttpContext.Request.Params["view"] : null;2001年曾经有个MM写过这样的代码(基本上一个字不差),后来被发现后,她自己也笑了:
switch (n) { case 1: return 1; case 2: return 2; case 3: return 3; case 4: return 4; case 5: return 5; case 6: return 6; default: return n; }[code]如果能安装一个静态代码检查工具如Resharper,多数情况都会被发现出来。
作为编程者而言,无论经验多少,都经常会不小心写出垃圾代码。有个心法是:任何时候看到两处以上代码、两行以上代码、两个以上长变量……外观很相似时,都要提高警惕,几乎比有方法解决。
2. 如何写成一行代码?
if (String.IsNullOrEmpty(originalPage)) { AnaylizeUrl(isInHomeArea, page.Request.RawUrl); } else { AnaylizeUrl(isInHomeArea, HttpUtility.UrlDecode(originalPage)); }
3. 这些代码实际上不存在,但差点被写出来,请看哪里可以优化?
名字很长,可能不太容易看懂,但不用看懂就能发现有问题的地方。
if (team.MethodologyValueOf(Methodology.TeamManagementTypeName) == Methodology.TeamManagementTypeKanban) { @RenderPage("MyItems/_MyItemsKanban.cshtml", myItemsViewModel, team, userName) } else if (team.MethodologyValueOf(Methodology.TeamManagementTypeName) == Methodology.TeamManagementTypeScrum) { @RenderPage("MyItems/_MyItemsScrum.cshtml", myItemsViewModel, team, userName) } else if (....) { ... }Mehthodology在此定义:
public static string TeamManagementTypeName = "TeamManagementType"; public static string TeamManagementTypeKanban = "Kanban"; public static string TeamManagementTypeScrum = "Scrum";提示:修改后那些if-else-if代码只有一行,无论日后是否增加新的分支,都无需改动。
相关文章推荐
- asp.net mvc3:自己编写的一些垃圾代码,删前分享(2013-11-13)
- 把自己搜集到的一些silverlight网站、第三方控件及开源代码与大家们分享(微软转载)
- enote笔记法使用范例(1)——自己总结的一些编写代码的常识 (a)
- Silverlight-把自己搜集到的一些silverlight网站、第三方控件及开源代码与大家们分享
- 信息熵计算(自己编写的python代码,垃圾,高手绕道)
- 转:把自己搜集到的一些silverlight网站、第三方控件及开源代码与大家们分享(微软转载)
- 把自己搜集到的一些silverlight网站、第三方控件及开源代码与大家们分享
- 自己总结的一些编写代码的常识
- [Sliverlight]把自己搜集到的一些silverlight网站、第三方控件及开源代码与大家们分享(微软转载)
- jquery博客分享一些php常用代码(三)
- 编写高质量代码改善C#程序的157个建议——建议125:避免用FCL的类型名称命名自己的类型
- 分享一些自己的学习过程和学习方法
- 编写自己的Sqlhelp类,封装连接数据库、执行方法的代码
- 分享一些自己写的前端库,并骗骗 star(库都是在实际项目中大量运用过的)
- 编写自己的jQuery插件简单实现代码
- 自己编写的一些好用的jquery方法(部分方法仅适用于我的项目)
- 刚把过去一些vc共3G多参考的代码恢复到系统中,可惜自己写的有几个无法恢复了
- 通过自己编写的C语言程序获取lcm正常格式的初始化数据代码
- 分享一些自己常用的软件
- 自己学习smarty的一些代码 和记录