第一次作业

编码规范
以下是本学期的主要编码规范:

• 命名规范:

• 类名使用大驼峰式命名(CamelCase),如MyExampleClass

• 函数名和变量名使用小驼峰式(camelCase)或下划线分隔(snake_case),如myFunctionmy_function,具体取决于所使用的编程语言或团队约定。

• 常量和宏使用全大写字母和下划线分隔,如MAX_HEIGHT

• 项目的名字使用“名词”,首字母以大写开头。

• 变量的名字应当使用“名词”或者“形容词+名词”。首字母以小写开头。

• 变量命名要尽量用英语,少用拼音,避免二者混用。

• 代码布局和格式:

• 使用统一的缩进,通常是空格,而不是制表符,一般使用4个空格进行缩进。

• 每行代码长度通常不超过80到120个字符,以提高代码的可读性。

• 使用if、while语句时强制要求即使只有一行代码也要使用大括号。

• 代码块要分明,相关函数之间应留空行,增强可读性。

• 操作符和逗号前后要加空格,保持代码整洁。

• 一行一句,当语句太长,按逻辑分行。

• 注释和文档:

• 在每个类和公共接口的函数前使用文档注释,说明其用途、参数和返回值。

• 内部复杂逻辑应有足够的内联注释,解释为何这样实现以及做了哪些选择。

• 养成写注释的习惯,及时解释复杂的逻辑或函数,增强代码的可读性。

• 文件头注释包括版权信息、文件描述、版本信息等。

• 函数注释描述函数的功能、参数、返回值和可能的异常。

• 其他规范:

• 应具有描述性,能清楚地表明其用途。

• 避免使用单字母变量名,除非在循环等简单上下文中。

• 遵循大驼峰命名法(PascalCase),即每个单词的首字母都大写。

• 不要用分号结束宏定义。

• 函数宏的每个参数都要括起来。

• 不带参数的宏函数也要定义成函数形式。

• 尽量不要用goto

• 不要省略返回值的类型。

• 函数名字与返回值类型在语义上不可冲突。

• 避免使用不易理解的数字,用有意义的标识来替代。

• 每个函数应只执行一个任务,保持单一职责。

• 尽量避免特殊数字,使用常量或枚举代替,以增强可维护性。

• 避免重复代码,提取共用功能到函数或模块,提升代码复用性。

• 进行代码审查,接受他人的反馈,提高代码质量。

• 适当使用异常处理机制来捕获和处理潜在的错误。

• 尽量使用C++的类型安全特性,避免使用裸指针,优先使用智能指针(如std::unique_ptrstd::shared_ptr)来管理资源。

• 使用static_castdynamic_castconst_castreinterpret_cast替代旧式的C风格类型转换。

• 使用异常来处理错误,而不是返回错误码。

• 保持异常安全性,确保代码在抛出异常时资源得到正确释放。

• 避免不必要的复制,尽量使用引用传递特别是对于大对象。

• 使用标准库的容器和算法,而不是手动实现。

• 一个变量只用于一个目的,避免多功能变量。

《数学之美》读后感
我阅读了《数学之美》的第一章“文字和语言vs数字和信息”,收获颇丰。

• 通信原理的启示:本章通过对古代人类语言的发展与今日数字信息的发展的类比,让我明白了通信的原理,即从信息源发出信息,通过信道解码后给到接收者,这与原始人的通信方式十分相似。这使我认识到,无论是古代的通信还是现代的数字通信,其本质都是信息的传递和解码,只是形式和效率有所不同。

• 数学与文明的紧密联系:书中提到早期数字并没有书写的形式,而是掰指头,这就是为什么我们今天使用十进制的原因;描述数字最有效的是古印度人,他们发明了包括0在内的10个阿拉伯数字。阿拉伯数字或者说印度数字的革命性不仅在于它的简洁有效,而且标志着数字和文字的分离。这让我深刻体会到数学与人类文明的紧密联系,数学的发展推动了文明的进步,而文明的需求又促进了数学的发展。

• 对信息本质的理解:作者还讲述了信息的编码和解码、语料等概念,让我对信息的本质有了更深刻的理解。信息不仅仅是文字或数字,它还可以通过各种方式进行编码和传输,而解码则是将这些编码还原为原始信息的过程。这种对信息的理解,让我在日常生活中更加关注信息的传递和处理方式,也让我对计算机科学中的信息处理技术有了更深入的认识。

• 激发对数学的兴趣:这本书让我感受到了数学的魅力,作者将复杂的数学原理用通俗易懂的语言呈现出来,让我这个非数学专业的读者也能领略到数学之美。它激发了我对数学的兴趣,让我对人类文明的发展有了更深的理解。

posted @ 2025-10-08 21:09  刘4d  阅读(8)  评论(0)    收藏  举报