一、变量的要求
变量名
1.简短有意义:
合适: student_count,student_ids,student_enable_list, water_price
不合适: numberOfItemsInTheCart, totalPriceOfTheOrderInTheShoppingCart,temp, data,list
2.变量名之间不要太像:
合适: totalAmount, discountRate
不合适: totalAmount, totalAmt
3.别缩写
合适: maximumValue, transactionDate
不合适: maxVal, transDate
使用变量
1.常量先定义后使用
合适:int dayOfWeek = 7 var result = sum / dayOfWeek
不合适:var result = sum / 7
2.类优先于字典
因为类提供了类型检查、支持继承、易开发(IDE提示)、易维护、可读性强
二、函数的要求
1. 命名简短且有意义,使用动+名组合
// 不推荐的命名
void DoStuff() { ... }
// 推荐的命名
void CalculateTotalAmount() { ... }
2. 单一职责
每个函数应当只做一件事。这有助于提高代码的可维护性和重用性。函数的职责应当清晰,避免承担多个任务。
反例(违反了单一职责,一个函数三件事):
1.难复用,有时候只想调用其中一个逻辑,而不是三个。
2.难维护,修改其中一个逻辑可能引发蝴蝶效应。
3. 无副作用(和单一职责差不多)
函数除了其明确的功能外,不应有其他副作用。副作用是指函数在完成主要任务外,还改变了程序的状态或依赖于外部状态。
4. 入参少
函数的入参应尽量少。过多的参数会降低函数的可读性和可维护性。如果函数需要很多参数,可以考虑使用类/元组来封装参数。
5. 函数之间不重复
避免函数之间的功能重复。函数应尽量抽取出并复用已有功能,避免重复代码。
6. 循环复杂度小
优化循环中的复杂度,使用提前返回(return)、跳出循环(break)、继续循环(continue)来简化逻辑,提升代码的可读性。
三、注释的要求
简洁+明确
正例如下
反例如下
1.太简单:// 获取分组列表
2.太罗嗦:// 这个函数会根据输入的学生列表,处理所有学生数据,然后返回一个包含按组分类的学生数据的列表
3.胡言乱语:// 处理学生数据
4.浪费口舌:// 调用函数
(未完待续。。)