- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
26-高质量编程的代码结构一揭开自文档代码的奥秘 本章内容 什么是高质量编程代码? 外部和内部代码质量 命名标示符 命名类型,类,接口,枚举,属性,方法,参数,变量,常量,等 代码格式 设计高质量类 抽象,封装,继承,创建一个类的原因 什么是高质量编程代码? 为什么代码质量很重要? 这段代码在做什么?正确么? static void Main() { int value=010, i=5, w; switch(value){case 10:w=5;Console.WriteLine(w);break;case 9:i=0;break; case 8:Console.WriteLine(8 );break; default:Console.WriteLine(def );{ Console.WriteLine(hoho ); } for (int k = 0; k i; k++, Console.WriteLine(k - f));break;} { Console.WriteLine(loop!); } } 为什么代码质量很重要? 现在这段代码已格式化,但仍然不清楚 static void Main() { int value = 010, i = 5, w; switch (value) { case 10: w = 5; Console.WriteLine(w); break; case 9: i = 0; break; case 8: Console.WriteLine(8 ); break; default: Console.WriteLine(def ); Console.WriteLine(hoho ); for (int k = 0; k i; k++, Console.WriteLine(k - f)) ; break; } Console.WriteLine(loop!); } 软件质量 外部质量 软件表现的正确么? 产出的结果正确? 软件运行快么? 软件UI界面易于使用么? 内部质量 代码是否易于阅读和理解? 代码是否良好构造? 代码是否易于修改? 什么是高质量的编程代码? 高质量编程代码: 易于阅读和理解 易于修改和维护 所有情况下正确行为 已良好测试 良好的architecture架构和设计 良好的文档 自文档代码 良好的格式 代码约定 code convention代码约定是源代码风格的正规准则: 代码格式化约定 缩进,空白,等 命名约定 PascalCase帕斯卡拼写法或camelCase骆驼拼写法,前缀,后缀,等 最佳实践 类,接口,枚举,结构体,继承,异常,属性,事件,构造函数,字段,操作符,等 代码约定 微软有官方的代码约定称为 开发类库的设计准则/zh-cn/library/ms229042.aspx 大型机构遵循严格的约定 在不同团队中代码约定有变化 开发人员遵守微软官方建议的大多数约定,但也扩展了这些约定 高质量代码超越代码约定 软件质量不仅仅是约定集合-而是一种思考方式 管理复杂度 managing complexity管理复杂度在软件构建中扮演了核心角色 最小化复杂度总和,每个人的头脑都在固定时间处理这个任务 架构和设计挑战 设计模块和类来减少复杂度 代码构建挑战 应用良好的软件构建实践:类,方法,变量,命名,语句。错误处理,格式化,注释,等 管理复杂度 称为高效程序员的关键: 最大化的安全的忽略一部分程序,当工作在任何一段代码时 即将讨论的大部分实践提出了完成这一重要目标的方式 高质量代码的关键特征 正确行为 与需求保持一致 稳定的,没有挂起,没有崩溃 无bug 对不正确用法的正确反映 易于阅读 易于理解 可维护性-当需要时易于修改 命名标示符命名类,接口,枚举,方法,变量和常量 命名准则综述 总是使用英文 如果你阅读日文代码以及日文变量名,感觉如何? 英语是软件开发人员所说的唯一语言 避免缩写 示例:scrpCnt vs. scriptsCount 避免难于发音的名字 示例:dtbgRegExPtrn vs. dateTimeBulgarianRegExPattern 使用有意义的名字 总是更喜欢使用有意义的名字 名字应该回答这些问题: 这个类在做什么?这个变量有什么意图?这个变量/类用于什么? 示例: FactorialCalculator, studentsCount, Math.PI, configFileName, CreateReport 不正确示例: k, k2, k3, jun
有哪些信誉好的足球投注网站
文档评论(0)