首页 > 其他分享 >3月代码大全阅读笔记2

3月代码大全阅读笔记2

时间:2023-05-01 13:11:05浏览次数:49  
标签:代码 笔记 内聚性 比如 子程序 对仗 大全

第 7 章:高质量的子程序
7.1 为什么要创建子程序?

降低复杂度,让每段代码都具有单一职责;
引入中间、易懂的抽象;
避免代码重复;
支持子类化;
隐藏顺序;
隐藏指针操作;
提高可移植性;
简化复杂的布尔判断:把一切复杂的判断放入单独的函数中;
改善性能:性能一次优化,能遍布到所有调用点;
确保所有的子程序最小;

7.2 在子程序上设计

内聚性主要是让每一个子程序去做最单一的事情,比如单位换算,我们可能很多地方会使用,把其计算方式抽离出来,这就是一个实现内聚性的展现。
7.3 要起一个好的子程序名字

描述子程序所做的所有事情;
避免使用无意义、模糊或表述不清的动词;
不要仅通过数字来形成不同的子程序名字:比如 part1,part2;
根据需要确定子程序名字长度:通过最佳为 9 - 15 个字符;
给函数命名时要对返回值有所描述;
给过程起名时使用语气强烈的动词加宾语的形式,比如 printDocument(),checkOrderInfo() 等,在面向对象的语言中,最好通过多态而不用加对象:比如 document.print(),orderInfo.check();

准确适用对仗词:列举常用对仗词组:

作者:nanchen2251
链接:https://www.jianshu.com/p/02ad9e5756ea
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:代码,笔记,内聚性,比如,子程序,对仗,大全
From: https://www.cnblogs.com/lmyy/p/17366422.html

相关文章

  • 2023.4 做题笔记
    出于一些原因,只有4.21往后的题。LOJ6481VisualPython++考虑贪心。非常容易想到,从左往右扫,每次扫到一个右下角时就匹配一个在它上面但是高度差最小的左上角,如果有多个同一高度的可以不用考虑顺序,因为边界重合的情况是不合法的。对于一种匹配方案,怎么判断它合不合法呢?我们同......
  • 「学习笔记」SPFA 算法的优化
    与其说是SPFA算法的优化,倒不如说是Bellman-Ford算法的优化。栈优化将原本的bfs改为dfs,在寻找负环时可能有着更高效的效率,但是最坏复杂度为指数级别。voiddfs_spfa(intu){ if(fg)return; vis[u]=true; for(pilit:son[u]){ intv=it.first; llw=......
  • pwn刷题笔记(格式化字符串)
    攻防世界:CGfsbchecksec查看保护机制,开启了NX和Canary,32位ELF。反汇编代码如下:intmain(){charbuf[0x7E-0x76];ebp-7Eshortintanonymous_0;ebp-76chars[0x74-0x10];ebp-74intanonymous_1;ebp-10anonymous_1=gs:14h//g......
  • 【愚公系列】用友系列之YonBuilder低代码平台概论和基本使用
    (文章目录)一、引言1.代码平台的概念和发展历程低代码平台是一种通过可视化界面和模板化组件快速创建应用程序的平台,其发展历程主要经历了三个阶段:第一个阶段是第一代低代码平台:其主要关注业务流程管理及应用程序的速度开发,但其可扩展性和可定制性较低。第二个阶段是第二代......
  • 四月读书笔记3
    四月读书笔记3流程图是被吹捧得最过分的一种程序文档。事实上,很多程序甚至不需要流程图,很少有程序需要一页纸以上的流程图。”“现实中,流程图被鼓吹的程度远大于它们的实际作用。没有一个有经验的编程人员,在开始编写程序之前,会例行公事地绘制详尽的流程图。在一些要求流程图的组......
  • 构建之法阅读笔记3
    服务化架构:随着系统复杂度的提高,单体应用已经无法满足业务需求,因此需要将系统拆分成多个小的、自治的服务,以提高系统的可扩展性和灵活性。去中心化思想:在设计系统时,应该避免单点故障,采用去中心化的思想,将负载分散到多个服务器上。同时,要考虑数据的一致性和复制策略。弹性设计:系统......
  • 人月神话阅读笔记3
    第十三章涉及软件开发中普遍性的问题。尽管每个软件项目都有其独特之处,但是软件开发中也存在许多普遍性的问题,如进度管理和技术选型等。作者提出了一些建议,如制定标准的进度计划和技术选型标准等,用以避免类似的问题在未来出现,并使软件开发工作变得更加高效、可靠和可预测。第十四......
  • 「学习笔记」Floyd 的应用
    求最短路for(intk=1;k<=n;++k){ for(inti=1;i<=n;++i){ for(intj=1;j<=n;++j){ f[i][j]=min(f[i][j],f[i][k]+f[k][j]); } }}求最小环过程记原图中\(u,v\)之间边的边权为\(val\left(u,v\right)\)。我们注意到Floyd算法......
  • OpenResty学习笔记02:为服务增加waf功能
    一.WAF简介 Web应用防护系统(也称为:网站应用级入侵防御系统。英文:WebApplicationFirewall,简称:WAF)。目前国内的几大云服务商都提供了企业级的WAF产品,且均价格不菲。好消息是,在OpenResty生态中,有一款开源的WAF可供我等学习,开源万岁! 二.开源的WAF 该WAF的作者叫赵......
  • 从CPU的视角看 多线程代码为什么那么难写!
      当我们提到多线程、并发的时候,我们就会回想起各种诡异的bug,比如各种线程安全问题甚至是应用崩溃,而且这些诡异的bug还很难复现。我们不禁发出了灵魂拷问“为什么代码测试环境运行好好的,一上线就不行了?”。为了解决线程安全的问题,我们的先辈们在编程语言中引入了各种各样新名......