阅读了代码大全2的部分内容,做出如下总结

把不太理解的东西和一些较为理解的且十分类似的东西做比较,对这个不太了解的东西产生更深刻的理解叫做建模。

模型不可能一下子就覆盖的很全面,会经过一系列的转变,往更好更全面的模型发展。

简单的模型有简单的用处,模型的选择与设计需根据实际情况来。

增量的、迭代的、自适应的、演进的软件设计概念。

精心计划,并非意味着事无巨细的计划或过渡的计划,程序设计也是如此。

隐喻是一种启发方式,并不是算法。

迭代技术不能完全消除前期准备不足的负面影响。

需求变更的主要来源是客户参与项目的时间越长,对项目的理解深入,更加了解自己的需求。

架构的组成,类的设计、数据设计、业务规则、用户界面设计、资源管理、安全性、性能、可伸缩性、互用性、输入输出、错误处理、容错性等,红色为嵌入式系统比较中要的分。

深入一种语言去编程,不要仅 在一种语言上编程

软件的首要技术使命:管理复杂度

遇到设计不佳的旧代码,应该为新的系统编写一个与旧代码的交互层,层次化设计 有利于把低劣代码禁闭起来。

形成一致的抽象,抽象能使你忽略无关的细节。

 

 

 

合作设计,三个臭皮匠顶的上一个诸葛亮,含义是设计的过程中 可以将自己的设计方案与同事讨论一番,询问同事的一些想法,讨论一些设计方案。

类的接口应该展现一致的抽象层次

编写子程序的理由: 降低复杂度,易懂的抽象,避免代码重复,隐藏指针操作,提高可移植性,简化复杂逻辑,隐藏实现细节,形成中央控制点。

内聚性,指子程序中的操作紧密程度,

把每个知识点都变成1+1

避免在构造函数和析构函数中抛出异常,可能造成内存泄漏。

忽略异常并不是不做异常log,而是异常层次较低,对系统几乎无影响。

把伪代码变成高层次的注释

声明变量的时候进行初始化,尽可能的缩短变量的存活时间,缩小变量的作用域。

避免浮点数进行数值判断

不要随机的访问数组,应当顺序的访问数组,随机的访问数组类似goto语句。

结构化的数据可提升程序的维护性

指针是现代编程中最容易出错的领域之一,但是理解指针有助于理解内存管理机制。

避免指针错误,方法:把指针操作限制到子程序中,使用指针之前进行检查

尽可能的少用全局数据,通过访问子程序来取代全局数据。

使用if else if 将最常见的情况放到最前面有利于提高代码效率,switch case 同理

在for循环里面,循环的标志位不要再循环体内修改。且跳出循环体后,不要用循环的标志位。

循环体的边界应当使用整数或枚举类型

循环长度与多层嵌套会增加理解复杂度。

return 的目的增强子程序的可读性。

递归并不常用,如果使用,必须慎重。递归的使用需考虑递归能够正常停止,系统的堆栈够用,处理的事情要足够的简单便于理解。

c语言中,把常量放在比较的左端,编译器能够检查出错误的使用=符号

代码质量特性:正确性,可用性,效率,可靠性,完整性,适应性,精准性,健壮性。可维护性,灵活性,可移植性,可重用性,可读性,可测试性,可理解性。相互联系。

多种缺陷检测方法结合,更有利于检测出缺陷。

检测发现的缺陷成本远低于测试发现的缺陷成本,

协同构建能够有效的改善软件质量

尝试用多种方法重现错误以准确判断错误原因

抛开问题休息一下

开发阶段的重构是提升程序质量的最佳时机。

增量集成有助于项目增长

注释写的糟糕很容易,写的出色很难,注释写的不好只会帮倒忙?

注释的种类,重复代码,解释代码,代码标记,概述代码,代码意图说明,

注释代码应该注重 为何做而不是怎么做

有的注释风格需要许多重复性劳动,应当舍弃,改用易于维护的注释风格。 

posted on     阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义



点击右上角即可分享
微信分享提示