美文网首页
糟糕的命名:编程最难的事3

糟糕的命名:编程最难的事3

作者: sailor33 | 来源:发表于2015-06-10 16:19 被阅读141次

如果你不知道一件事物叫什么,

你就不知道它是什么。

如果你不知道这是什么,

你就不可能坐下来写代码。”


文章转载自杰微刊,是一个全新的技术原创平台,尽管在这里介绍容易招来推广之嫌,但是,文章的每一个字,都是经过的细细雕琢,即使能引来大家的质疑和批评,也乐意听取,不断改进自己。

运用正确意味着每一个词都要用的恰到好处。

关于命名 ——菲利普·卡尔顿(Phil Karlton)

计算机科学有两个艰难的事:

1.缓存失效 ;

2.命名。

关于不好的命名——刘易斯·卡罗尔(Lewis Carroll)

当我使用一个词,胖墩儿说是一种轻蔑,当然这也正是我本事的意思-不多也不少。

爱丽丝奇遇记中,透过镜子,爱丽丝究竟发现了什么?(1871)

故意无意义的名称

理论上讲,foo仅仅作为一个占位符名称(因为它无任何含义)

关于命名——萨姆·加德纳(Sam Gardiner)

“如果你不知道一件事物叫什么,

你就不知道它是什么。

如果你不知道这是什么,

你就不可能坐下来写代码。”

什么是最糟糕的变量名?

——data

什么是更糟糕的变量名?

data2

什么是第三糟糕的变量名?

data_2

缩写容易引起歧义

以英文为例, char 是 character(字符) 还是 characteristic(特点)?

mod 的意思是 modify(修改) 还是 modulo (模)?

acc,pos或者auth呢?

另外, fab 只是一个函数,ƒ:A➞B。

而不是 fabulous (传说)

允许一个例外:ID 作为 “identity” (身份)


一个字母太短

局部变量:它的含义是什么?

var a = 42;

这一个是例外:

for  (int  i  =  1;  i  < 42; ++i)

改成 ii,jj,kk 也并不好

函数式编程:一个字母仍然太短

def modp[C](f: B1 => (B2, C), a: A1): (A2, C) = {

val (b, c) = f(get(a)) (set(a, b), c)

}

代码出处:第70行 


可以用特定含义的词代替更多的词

什么是appointment_list?

A calendar?日历?


什么是company_person?

Employee普通职员 或者是owner老板?

什么是text_correction_by_editor?

只是一个edit-编辑。

模糊语言是模糊的

艾伦·格林写了一些模糊的词,如:

InvoiceManager、

TaskManager

‘Manager’ 非常不准确,

其含义之一可能是你想要的字:

Bucket, Supervisor, Planner, Builder

原文地址:点击查看

代码里的模糊用语

get在方法名的开头只用于返回一个字段值。

如果不是这样,或者从其他地方得到的数据, 用其他的词:

fetch, find, lookup, create, calculate, derive, concoct.

错误的词是错的,同义词易混淆

order ≠ shipment

carrier ≠ broker

shipment ≠ transport leg

shipment = consignment

carrier = transporter

transport leg = journey

Java企业中间件示例 -

Apache Camel

JF杰微刊出品: Apache Camel- http://camel.apache.org


再探属性访问器

在许多库中, 这些方法名称将是不可抗拒的,但不建议使用:

getEven

getReal

getAround

getRoundTo

getRichQuick

getJoke

糟糕命名的总结

无意义:foo;

太一般:data;

太短:a;

太长:text_correction_by_editor;

缩写:acc;

模糊:InvoiceManager;

错误:order;

只是不好笑:startCamel


未完待续。


原文地址:JF杰微刊出品


相关文章

  • 糟糕的命名:编程最难的事3

    如果你不知道一件事物叫什么, 你就不知道它是什么。 如果你不知道这是什么, 你就不可能坐下来写代码。” 文章转载自...

  • Android周报第三期

    编程那些事 1)编程如何命名(一、二) Android开发 1)FlyRefresh——让人眼前一亮的下拉刷新 2...

  • 编程时如何命名?

    编程中离不开命名。命名是指给变量、方法或函数、类、文件起名字。命名的最基本要求是,要遵守特定编程语言对命名的要求。...

  • vue中的路由

    vue中4中路由包含: 1、动态路由2、嵌套路由3、编程式路由4、命名式路由 1、动态路由 2、嵌套路由 3、编程...

  • 6、vue-router路由

    1、安装 2、结构 3、动态路由匹配 4、嵌套路由 5、编程式导航 6、命名路由 7 、命名视图 8、重定向和别名...

  • 糟糕的事不糟糕

    八月本以为工作进展顺利,生活安排很妥帖,学习也在持续,于是计划好好运动减个肥,结果接到任务从新工作安排,接到通知焦...

  • 糟糕的事并不糟糕

    Ray Dalio 在《原则》中讲述他个人经历中讲到: “对我而言,很好的事要比糟糕的事好,而糟糕的事要比平庸的事...

  • 编程大白话之—— CSS命名规范及推荐

    编程大白话之—— CSS命名规范及推荐 css命名看似简单,但常常困扰着编程人员,特别是初入编程行业的小白...

  • 糟糕的事

    每个人都想谈恋爱后直接步入婚姻殿堂,我也不例外,经人介绍,我和他一起了,我俩是闪婚。认识一个星期就登记了,第一次谈...

  • 糟糕的事

    糟糕的事 唉呀!糟糕,写了半天的东西又被我删掉了,可惜没有进行保存,自己的手按在了上面,一下...

网友评论

      本文标题:糟糕的命名:编程最难的事3

      本文链接:https://www.haomeiwen.com/subject/kourqttx.html