Open elifzeng opened 4 years ago
(谁能想到这是我一年前打算看的东西呢? (这说明我这大半年代码能力没有一点长进,太辣鸡了,是我我就哭了 :crying_cat_face: 所有的目的都是为了使代码明确、精确和易于理解
而且发现更好的名称就换掉旧的
int daysSinceCreation; int daysSinceModification
比如
if index == 4
,这个值4的意义是什么?return lista
,这个返回的列表接下来如何使用? 上述两个语句都没有表示出来,所以应该将其改为更有意义的名称,如maxNum == 4...if index == maxNum
,return catagory
。避免误导
比如 unix, python, etc
如果要储存一组账号,但不用列表来储存,那么就不要命名为
accountsList
,用accountsGroup
等可能更好。
比如
abcde
andabcdf
,1 and l
,o and 0 and O
做有意义的区分
两个变量,以
a and b
ora1 and a2
区分完全没有意义,因为体现不出差别。 类似的,getAcount(), getAccounts(), getAccountInfo()
也完全没有区分度。使用读得出来的名称
不要用
DtaRcrd02
之类的读不出来的命名使用可搜索的名称
单字母名称和数字常量,很难在一大篇文字中找出来。长名称胜于短名称,搜得到的名称胜于自造的名称。名称长短最好与其作用域大小相对应。如单字母一般仅用于短方法中的本地变量。
避免使用编码
什么是句柄:在程序设计中,句柄(handle)是Windows操作系统用来标识被应用程序所建立或使用的对象的整数。其本质相当于带有引用计数的智能指针。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,可以使用句柄。 编程时尽量避免使用句柄。此外,前缀后缀,如
m_dsc
也尽量避免,因为人们在读代码时会下意识忽略前缀。类名
类名和对象名应该是名词或名词短语,如
AddressParser
,避免使用动词,如Info, Data
之类的。方法名
应当使用动词或动词短语,如
save, deletePage
。属性访问器、修改器和断言应该根据其值命名,并加上get, set, is
前缀。如setProp, getName
。专业名词相关命名
为了使大多数人看得懂代码,应该尽量使用CS领域的术语。若不能,就尽量用所涉领域的专业名称。
添加有意义的语境
名称是不能自我说明的,所以需要用有良好命名的类、函数或名称空间来放置名称,给读者提供语境。如果不能,就加前缀。 比如,在一个大类
Adress
下,有houseName, street, state, lastName
这些变量名,很明显是构成了一个地址。而如果没有创建类Adress
时,也可以添加前缀addrHouseName, addrStreet
来提供语境(当然,在类下这样创建变量名更清楚)。 但也不要添加没用的语境。只要短名称足够清楚,就不要用长名称
Python 基础教程(第3版)学习记录
本来是要看《深入理解Python特性》这本书的,但是我还不知道自己的菜到底是哪种程度的菜 :chicken:,所以先看看这本书。
目前计划的是:懂的略看,不懂的详看,不需要的不看,相应代码见
thisrepo/python
,那么咱们开始吧!我的天哪,为发现了我的特长——特别擅长给自己挖坑,巨坑那种 :smiley: