算法第一章作业
- Google 编码规范
适用范围:覆盖 C++、Java、Python、Go 等主流语言,开源且被广泛参考
核心特点:
命名:C++/Java 类名用PascalCase,函数 / 变量用snake_case(Python)或camelCase(Java)
格式:缩进用 2 空格,每行不超过 80 字符,括号位置严格固定(如 C++ 左括号不换行)
注释:要求 “解释为什么做,而非做了什么”,复杂逻辑必须有 “非 obvious 说明”
禁忌:禁止使用全局变量,禁止函数参数超过 5 个(需用结构体封装) - 阿里巴巴 Java 开发手册
适用场景:针对 Java 后端业务系统,结合国内业务特点(如电商、支付)定制
核心特点:
命名:POJO 类名用PascalCase,方法用camelCase,常量全大写 + 下划线(如MAX_ORDER_AMOUNT)
异常处理:禁止捕获Exception基类,必须捕获具体异常;禁止在循环中创建对象(如new String())
数据库:表名、字段名必须用小写 + 下划线,禁止使用关键字(如order);索引命名格式固定(如idx_字段名)
工程结构:严格规定包名层次(如com.aliyun.business.module.feature),禁止跨模块调用私有方法 - 华为 C/C++ 编码规范
适用场景:面向嵌入式、通信等高性能场景,强调代码效率和稳定性
核心特点:
内存管理:禁止使用malloc/free,必须用封装的内存池接口(便于监控和泄漏检测)
类型安全:禁止隐式类型转换(如int转unsigned int必须显式声明)
宏定义:禁止在宏中使用复杂表达式,必须加括号(如#define ADD(a,b) ((a)+(b)))
注释:关键算法必须包含 “设计思路” 和 “性能指标”,修改代码时必须同步更新注释 - Facebook (Meta) JavaScript 规范
适用场景:前端 React 生态,兼顾开发效率和大规模应用维护
核心特点:
类型:强制使用 Flow 或 TypeScript 进行类型检查,禁止any类型滥用
组件设计:React 组件必须拆分 “容器组件” 和 “展示组件”,禁止在render中定义函数
状态管理:禁止跨组件直接修改状态,必须通过 props 或状态管理库(如 Redux)传递
性能:列表渲染必须加key,禁止在循环中使用useEffect等钩子
我应该遵守的编码规范
先选择一套成熟规范比如 Python 用 PEP8、Java 用阿里手册,不用自己从头制定,命名时让变量和函数名直白易懂,比如用 calculate_total_price 而非模糊的缩写,格式方面借助 Prettier 等自动格式化工具处理缩进和换行,不用手动纠结,注释重点说清复杂逻辑的 “为什么”,方便他人接手,函数保持单一职责,太长就拆分,提交代码前花一分钟快速检查是否有明显不合规的地方,核心是让代码像说话一样好懂,同时借助工具减少手动维护成本
数学之美观后感
关于为什么程序员要读这本书的思考
程序员看《数学之美》,说白了就是帮你搞懂那些天天用的技术到底是咋来的——比如搜东西时排序靠的是线性代数,设密码用的是数论,语音转文字背后是概率模型,这些不是凭空造的,全是数学原理在撑着。它能让你别光盯着代码一行行写,而是能从根儿上明白技术逻辑,遇到复杂问题时,能想到更简单高效的解法,不是只会堆代码。而且看懂了这些,你也能明白为啥技术会这么发展,对这行的理解能深一大截。