您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    提高代码质量:如何编写函数
    时间:2017-03-10 00:08 来源:网络整理 作者:12图资源库 浏览:收藏 挑错 推荐 打印

    函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的。写好一个函数是提高程序代码质量最关键的一步。本文就函数的编写,从函数命名,代码分布,技巧等方面入手,谈谈如何写好一个可读性高、易维护,易测试的函数。

    提高代码质量:如何编写函数

    命名

    首先从命名说起,命名是提高可读性的第一步。如何为变量和函数命名一直是开发者心中的痛点之一,对于母语非英语的我们来说,更是难上加难。下面我来说说如何为函数命名的一些想法和感受:

    采用统一的命名规则

    在谈及如何为函数取一个准确而优雅的名字之前,首先最重要的是要有统一的命名规则。这是提高代码可读性的最基础的准则。
    帕斯卡命名法和驼峰命名法是目前比较流行的两种规则,不同语言采用的规则可能不一样,但是要记住一点:保持团队和个人风格一致。

    1、帕斯卡命名法

    帕斯卡命名法简单地说就是:多个单词组成一个名称时,每个单词的首字母大写。比如:

    public void SendMessage (); 

    public void CalculatePrice (); 

    在C#中,这种命名法常用于类、属性,函数等等,在JS中,构造函数也推荐采用这种方式命名。

    2、驼峰命名法

    驼峰命名法和帕斯卡命名法很类似,多个单词组成一个名称时,第一个单词全部小写,后面单词首字母大写。比如:

    var sendMessage = unction () {}; 

    var calculatePrice = function () {}; 

    驼峰命名法一般用于字段、局部变量、函数参数等等。,在JS中,函数也常用此方法命名。

    采用哪种命名规则并不绝对,最重要的是要遵守团队约定,语言规范。

    尽可能完整地描述函数所做的所有事情

    有的开发者可能觉得相较于长函数名来说,短函数名看起来可能更简洁,看起来也更舒服。但是通常来说,函数名称越短其描述的意思越抽象。函数使用者对 函数的第一印象就是函数名称,进而了解函数的功能,我们应该尽可能地描述到函数所做的所有事情,防止使用者不知道或误解造成潜在的错误。

    举个例子,假设我们做一个添加评论的功能,添加完毕后并返回评论总数量,如何命名比较合适呢?

    // 描述不够完整的函数名 

    var count = function addComment() {} 

    // 描述完整的函数名 

    var count = function addCommentAndReturnCount() {}; 

    这只是简单的一个例子,实际开发中可能会遇到得更多复杂的情况,单一职责原则是我们开发函数要遵守的准则,但是有时候无法做到函数单一职责时,请记 得函数名应该尽可能地描述所有事情。当你无法命名一个函数时,应该分析一下,这个函数的编写是否科学,有什么办法可以去优化它。

    采用准确的描述动词

    这一点对母语非英语的开发者来说应该是比较难的一点,想要提高这方面的能力,最主要的还是要提高词汇量,多阅读优秀代码积累经验。

    这里简单说说我自己的一些感想和看法:

    1、不要采用太抽象广泛的单词

    很多开发人员会采用一个比较宽泛的动词来为函数命名,最典型的一个例子就是get这个单词。我们平时开发中经常会通过各种不同的方式拿到数据,但是每一种方式都用get就有点太抽象了。具体如何命名,要具体分析:

    (1)简单的返回数据

    Person.prototype.getFullName = function() { 

    return this.firstName = this.lastName; 

    (2)从远程获取数据

    var fetchPersons = function () { 

     ... 

        $.ajax({ 

     }) 

    (3)从本地存储加载数据

    var loadPersons = function () {}; 

    (4)通过计算获取数据

    var calculateTotal = function () {}; 

    (5)从数组中查找数据

    var findSth = function (arr) {}; 

    (6)从一些数据生成或得到

    var createSth = function (data) {}; 

    var buildSth = function (data) {}; 

    var parseSth = function(data) {}; 

    这是一个简单的例子,我们平时开发中遇到的情况肯定会复杂得多,关键还是靠单词的积累,多阅读优秀源码

    下面是整理的一些常用的对仗词,大家可以参考使用

    add/remove        increment/decrement       open/close 

    begin/end            insert/delete                      show/hide 

    (责任编辑:admin)