第一章作业
本学期核心编码规范围绕统一性、可读性、可维护性三大原则构建,具体涵盖以下维度:
1. 代码组织规范
- 模块化拆分:功能关联紧密的代码(如一个类或一组核心函数)集中于同一模块,禁止将松散关联的功能混合存放。
- 目录结构:采用 src/include (头文件)、 src/source (源文件)、 rel/bin (可执行文件)、 rel/lib (库文件)的标准目录结构,复杂项目按子系统进一步拆分目录。
- 文件拆分:C程序使用 .h (约束文件)和 .c (实现文件),C++程序使用 .hpp 和 .cpp ,内部函数仅在实现文件中声明,不对外暴露。
2. 命名规范 - 通用原则:使用英文完整单词或标准简写,避免中文、易混淆字符(如1与l、0与o),禁止仅靠大小写区分名称。
- 语言适配:C/C++变量采用匈牙利命名法(如 g_strSysName 表示全局字符串变量),宏与常量用全大写+下划线( MAX_BUFFER_SIZE );Java类名用帕斯卡命名法( FileName ),方法与变量用驼峰命名法( getUserName )。
- 长度限制:名称长度控制在15字符内,超长时使用统一简写(如 PagReq 代表 PagingRequest )。
3. 编码风格规范 - 排版规则:缩进统一使用4个空格(或按团队约定用Tab),二元运算符(+、==等)两侧加空格, sizeof 等关键字后不加空格。
- 行长控制:每行代码不超过80-100字符,超长语句拆分至多行,保持逻辑连贯。
- 内存与异常:C/C++中严格匹配内存申请与释放,避免泄漏;Java中规范捕获异常,不忽略异常处理逻辑。
4. 注释规范 - 分类标注:包含文档化注释(函数功能、参数说明)、语句块注释(核心逻辑解释)、维护注释(修改原因与时间)。
- 一致性要求:注释与代码同步更新,避免“注释与代码不符”问题,语言简洁明了,不冗余赘述。
读《数学之美》“搜索引擎的数学原理”章节感想
《数学之美》中关于搜索引擎原理的章节,彻底打破了我对“复杂技术”的固有认知——看似庞大的搜索引擎系统,核心竟由概率论、信息论等基础数学理论支撑,这种“化繁为简”的智慧令人震撼。
章节中提到,早期搜索引擎依赖人工排序,效率低下且质量参差,而谷歌创始人布林和佩奇引入“PageRank算法”,用数学模型解决了网页重要性排序问题:将网页间的链接视为“投票”,通过迭代计算每个网页的“得票权重”,自动筛选出权威内容。这让我意识到,数学的价值不在于复杂公式的堆砌,而在于用抽象模型提炼现实问题的本质——就像用“图论”将亿级网页转化为可计算的节点与边,用“概率”量化信息的可信度。
另一个触动点是“香农信息熵”在关键词匹配中的应用:通过计算词语出现的概率来衡量其“信息量”,避免将“的、是”等高频无意义词纳入核心检索。这解释了为何搜索引擎能精准捕捉用户需求,其本质是用数学工具剥离信息中的“噪音”。
这一章让我明白,顶尖技术的突破往往源于对基础理论的深刻理解。比起死记硬背技术框架,回归数学本质、培养“用模型解决问题”的思维,才是应对复杂系统的核心能力。这种“大道至简”的思维方式,不仅适用于计算机领域,更对日常问题的分析与解决极具启发。