2014年易读程序之美学(一)~(五).pptVIP

  1. 1、本文档共137页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
易读程序之美学(一)~(五) 第一章 程序代码应该易于理解 程序代码应该易于理解 重要概念 Node* node = list-head; if (node == NULL) return; while (node-next != NULL) { Print(node-data); node = node-next; } 「易于」的意义? for (Node * node = list-head; node != NULL; node = node-next) Print(node-data); 改良版 return exponenet = 0? mantissa * ( 1 exponent) : mantissa / (1 -exponent); 另一个例子 if (exponet = 0) { return mantissa * ( 1 exponent); } else { return mantissa / (1 -exponent); } 有比较好吗? 第一种写法比较简洁。 第二种写法比较容易了解。 结论 撰写程序时应该将读者理解所需的时间降到最短。 可读性基本定理 assert((!(bucket = FindBucket(key))) || !bucket-IsOccupied()); 比较短的程序都比较好吗? bucket = FindBucket(key); if (bucket != NULL) assert(!bucket-IsOccupied()); 这样写是不是容易理解 // hash = (65599 * hash) + c 快速版 hash = (hash 6) + (hash 16) - hash + c; 增加批注也不错 程序效率 良好的架构 可测试性 最短理解时间是否与其他目标冲突? 需要额外的功夫 需要将大脑切换到撰写时没有用到的部分 如果以此为目标: 更好的程序设计师 较少的bug 对成品更有认同感 别人乐于使用 困难所在 我们就开始吧! 第一部份 表层改善 第二章 富含信息的名称 让名称包含信息(名称可视为简短的批注) 重要概念 选择词汇 避免通用性的名称(或知道何时该使用通用名称) 优先使用具体名称而非抽象名称 利用前缀或字尾加入额外信息 决定名称该有的长度 利用格式加入更多的信息 本章主题 范例一 def GetPage(url): ... 选择词汇 这样会不会比较好? def FetchPage(url): ... def DownloadPage(url): ... 选择词汇 范例二:Binary Tree class BinaryTree { int Size(); ... } 选择词汇 这样会不会比较好? Size() Height() NumNodes() MemoryBytes() 选择词汇 范例三:Thread 类别 class Thread { int Stop(); ... } 选择词汇 这样会不会比较好? Size() Kill()『Thread无法复原』 Pause()『 Thread可复原』 (与Resume()搭配) 选择词汇 字汇 可替代的字汇 send deliver, dispatch, announce, distribute, route find search, extract, locate, recover start launch, create, begin, open make create, setup , build, generate, compose, add, new 请用「鲜明」的字汇 在PHP语言中,explode()与split()有何不同? 不要走火入魔 此Function 是用来处理字符串分割的 用法如下 $output_string = explode( , $input_string); //explode 会跟据 内的字符对字符串进行分割的动作 并把结果输出到output_string 这个变数中(Array) 要取得结果就用 $output_string[0] 就可以捉到第一个分割的 结果. PHP:Explode用法 此Function 是用来处理字符串分割的 用法如下 $output_string = split(“[/.-

文档评论(0)

briuo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档