日期:2014-05-16 浏览次数:20914 次
不小心发现自己编写的一些垃圾代码,删前留念。可以作为面试题使用。
有时候一个程序员会或者不会什么具体的技术差别不大,因为看看书几分钟就能学会;但编写垃圾代码一旦养成习惯,不是一天两天能改好的。
1. 这段代码等同于?
return vc.RequestContext.HttpContext.Request.Params["view"] != null ? vc.RequestContext.HttpContext.Request.Params["view"] : null;
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代码只有一行,无论日后是否增加新的分支,都无需改动。