编程规范 —— 变量的命名
2016-02-15 20:29
429 查看
变量命名的最高原则:真实物理意义。
(1)形式最好要统一:img_idx ⇒ row_idx ⇒ col_idx
(2)不要太介意变量名称的长度,其长度如果能换来含义的清晰,还是值得的。
(3)变量的命名是一完整语句的简练版:
with_**,without_**
student_name 要好于 s_n
name_length 则要好于 length_of_a_student_name
比如求解
cos(x)−x3=0
或者简单的代数分析,−1≤cos(x)≤1⇒−1≤x3≤1⇒−1≤x≤1,或者数形结合,简单的绘图,我们定义初始值为 0.5:
num_**:表示什么什么的数目
**num:表示什么什么号
patch 表示块,batch 表示批, numPatches:patch 的数目
batchNumPatches:num patches per batch
所以 numPatches / batchNumPatches = batch 的数目;
duration:持续的时间,time:则表示时刻;
make:
makebatches
acc:accumulate,累积
wait_time_acc:时间的累积
total_time_acc:
(1)converter:转换器
(2)mnist_loader:数据加载
如典型的神经网络的参数,以二层为例,W1(s2*s1),W2(s1*s2),b1(s2),b2(s1),这四个参数 unroll 之后
skip:表示跳过,或者忽视(ignore,discard)的个数,
而在客户端,调用端,起名,要尽量具体,见名知义,
logU = log(U);
(1)形式最好要统一:img_idx ⇒ row_idx ⇒ col_idx
(2)不要太介意变量名称的长度,其长度如果能换来含义的清晰,还是值得的。
(3)变量的命名是一完整语句的简练版:
with_**,without_**
0. 简短而具有描述性
name 要好于 nstudent_name 要好于 s_n
name_length 则要好于 length_of_a_student_name
1. 初始值的命名
如牛顿拉普生方法求解方程的根时对初始值的命名及赋值,double guess; // 猜测值,大概值
比如求解
cos(x)−x3=0
或者简单的代数分析,−1≤cos(x)≤1⇒−1≤x3≤1⇒−1≤x≤1,或者数形结合,简单的绘图,我们定义初始值为 0.5:
double guess = 0.5; while (abs(f(guess)) > 1e-9) guess -= f(guess)/f_prime(guess);
2. 变量的命名:实际意义
stride:表示步长,tol:totalnum_**:表示什么什么的数目
**num:表示什么什么号
patch 表示块,batch 表示批, numPatches:patch 的数目
batchNumPatches:num patches per batch
所以 numPatches / batchNumPatches = batch 的数目;
duration:持续的时间,time:则表示时刻;
3. 变量的命名:动词
“unroll” :flatten and concatenatemake:
makebatches
acc:accumulate,累积
wait_time_acc:时间的累积
total_time_acc:
4. 变量的命名:形容词
dummy:adj. 虚拟的;假的,n. 傀儡;哑巴;仿制品elems.append(None) # add a dummy element
5. 各种**器,**机(er)
我们在书中看到各种**器,**机,并非什么高深的物理概念,而只是一段代码逻辑而已。(1)converter:转换器
(2)mnist_loader:数据加载
6. 变量名称的理解
(1)unroll:展开如典型的神经网络的参数,以二层为例,W1(s2*s1),W2(s1*s2),b1(s2),b2(s1),这四个参数 unroll 之后
theta = [W1(:); W2(:); b1; b2];
skip:表示跳过,或者忽视(ignore,discard)的个数,
7. 抽象还是具体?
函数的参数(当然指的是形参),起名,尽量抽象;void mySort(vector<int>& array);
而在客户端,调用端,起名,要尽量具体,见名知义,
vector<int> input(n); vector<int> mySorted = input; vector<int> reference = input;
8. 见名知义(或根据操作定义)
sumP = sum(P);logU = log(U);
相关文章推荐
- x265-1.8版本-encoder/slicetype.cpp注释
- java项目与javaweb项目导入jar包的区别
- x265-1.8版本-encoder/ratecontrol.cpp注释
- 重学C++ (十一) OOP面向对象编程(2)
- C++继承与派生
- x265-1.8版本-encoder/motion.cpp注释
- 提高php编程效率的方法
- C++11新特性之move与forward
- Java [Leetcode 67]Add Binary
- php问答笔记
- Java用pinyin4j库实现汉字转拼音
- The Java™ Tutorials — Concurrency :Intrinsic Locks and Synchronization 内置锁和同步
- x265-1.8版本-encoder/level.cpp注释
- Scrapy
- 树状树组(Binary Indexed Tree (BIT))的C++部分实现
- x265-1.8版本-encoder/frameencoder.cpp注释
- x265-1.8版本-encoder/dpb.cpp注释
- x265-1.8版本-encoder/bitcost.cpp注释
- ContentProvider总结
- 利用python进行word_count