第一周作业

一、本学期主要编码规范

(一)通用核心原则

遵循 “可读性、一致性、安全性、可维护性” 四大目标,所有规范落地均以降低协作成本、保障系统稳定为核心。具体包括:

  1. 可读性优先:代码需让他人或 3 个月后的自己快速理解,拒绝 “天书式” 命名与无意义注释。

  2. 一致性至上:团队内统一风格,通过 Pylint、ESLint 等工具强制执行,杜绝个人风格差异。

  3. 最小权限原则:函数 / 类仅承担单一职责,变量访问权限严格控制(如非必要不设 public 属性)。

  4. 安全性前置:编码阶段规避空指针、SQL 注入等风险,而非依赖后续测试。

(二)具体实践规范

  1. 代码格式(强制要求)
  • 缩进:统一使用 4 个空格,禁止混合空格与 Tab。

  • 空格:保留字与括号间加空格(如if (x > 0)),二元运算符两侧加空格(如a = b + c),行尾无多余空格。

  • 换行:单行不超过 120 字符,函数参数换行时逗号与前内容同行,后续行多缩进 4 个空格。

  • 空行:类内成员间留 1 个空行,函数内逻辑分组用空行分隔,避免多空行堆砌。

  1. 命名规则(语言通用)
元素类型 规范要求 示例
类 / 接口 大驼峰,名词短语 UserRepository
方法 / 变量 小驼峰,方法用动宾短语 getUserId()
常量 全大写 + 下划线 MAX_RETRY_COUNT
包 / 数据库字段 全小写 + 下划线 com.company.order
  1. 注释规范
  • 单行用//,多行注释需对齐星号(如/* 第一行\n * 第二行 */)。

  • 公共类 / 方法必须加 Javadoc(含功能、参数、返回值),避免逐行注释与冗余说明。

  • 禁止注释语法细节或第三方库用法,聚焦业务逻辑与设计思路。

  1. 语言特性规范
  • 变量:需用时声明并初始化,一次只声明一个变量,优先用局部变量。

  • 函数:长度控制在 50 行内,参数不超过 6 个(超则用对象封装),避免深层嵌套。

  • 特殊要求:Java 禁用 import 通配符,Python 优先用const/let替代var,C++ 用智能指针管理内存。

  1. 协作规范
  • Git 提交:高频细粒度提交,描述清晰(如 “fix: 修复用户登录空指针问题”),master 分支仅用于发布。

二、《数学之美》读后感 —— 以 “搜索引擎的数学原理” 章节为例

(一)章节核心内容

该章节揭示搜索引擎的底层逻辑并非复杂工程堆砌,而是基于数学模型的优雅实现:

  1. 布尔代数与检索基础:通过 AND/OR/NOT 逻辑将用户查询转化为数学表达式,快速筛选匹配文档,这是早期搜索引擎的核心骨架。

  2. 向量空间模型与相关性排序:将文档与查询都转化为高维向量,通过余弦相似度计算二者关联度 —— 这一突破让搜索从 “有没有” 升级为 “好不好”。

  3. PageRank 算法:借助图论中 “随机游走” 模型评估网页重要性,解决了 “如何信任网页内容” 的核心问题,奠定谷歌搜索的技术优势。

(二)感想与体会

  1. “简单数学解决复杂问题” 的震撼此前总认为搜索引擎是海量代码与服务器的产物,却不知其核心是布尔代数、线性代数等基础数学工具的精妙应用。例如余弦相似度,本质是初中 “向量夹角” 概念的延伸,却能精准量化文本相关性。这让我意识到:顶尖技术的本质是将现实问题抽象为数学模型的能力,而非追求炫技式的复杂实现。

  2. 对编码实践的启发章节中 “PageRank 算法忽略网页内容,仅通过链接关系评估重要性” 的设计,完美诠释了 “单一职责原则”—— 这与编码规范中 “函数只做一件事” 的逻辑高度契合。联想到本学期编码时,曾为追求 “多功能” 写过长函数,导致调试困难。如今明白:如同数学模型的简洁性保障了搜索引擎的高效,代码的模块化与单一职责才是可维护性的基石

  3. 技术认知的升维书中提到 “谷歌用 30 行代码实现 PageRank 核心逻辑”,这打破了我对 “复杂系统需复杂代码” 的固有认知。结合编码规范中的 “避免重复造轮子” 原则,更深刻理解:真正的技术高手是能看透问题本质、复用基础数学与工程原则的人,而非沉迷于语法细节的 “码农”。未来学习中,我将更注重数学基础与问题抽象能力的培养,而非仅关注编程语言的表层特性。

posted @ 2025-09-26 12:18  麦明港  阅读(13)  评论(0)    收藏  举报