11步提高代码质量和整体工作效率

 

这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的11件事情。

1. 永远不要复制代码

不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的同事 在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得臃肿。现代的编程语 言提供了很好的方法来解决这些问题,例如,下面这个问题在以前很难解决,而如今使用lambdas却很好实现:


/// <summary>
/// 一些函数含有部分重复代码
/// </summary>
void OriginalA()
{
        DoThingsA();

        // unique code

        DoThingsB();
}

/// <summary>
/// 另外一个含有部分重复代码的函数
/// </summary>
void OriginalB()
{
        DoThingsA();

        // 没有重复的代码

        DoThingsB();
}

现在我们重构含有部分相同代码的函数,用delegate模式重写它们:


/// <summary>
/// Encapsulate shared functionality
/// </summary>
/// <param name="action">User defined action</param>
void UniqueWrapper(Action action)
{
        DoThingsA();

        action();

        DoThingsB();
}

/// <summary>
/// New implmentation of A
/// </summary>
void NewA()
{
        UniqueWrapper(() =>
        {
                // unique code
        });
}

/// <summary>
/// New implementation of B
/// </summary>
void NewB()
{
        UniqueWrapper(() =>
        {
                // unique code
        });
}

2. 留意你开始分心的时候

当你发现自己在浏览facebook或微博、而不是在解决问题,这通常是一种你需要短暂休息的信号。离开办公桌,去喝一杯咖啡,或去跟同事聊5分钟。尽管这样做看起来有点反直觉,但长久去看,它会提高你的工作效率。

3. 不要匆忙赶任务而放弃原则

当带着压力去解决一个问题或修改一个bug,你很容易失去自制,发现自己匆匆忙忙,甚至完全忘了一直坚持的重要的测试过程。这通常会导致更多的问题,会让你在老板或同事眼里显得很不专业。

4. 测试你完成的代码

你知道你的代码能做什么,而且试了一下,它确实好用,但你实际上需要充分的验证它。分析所有可能的边界情况,测试在所有可能的条件下它都能如期的工作。如果有参数,传递一些预期范围外的值。传递一个null值。如果可能,让同事看看你的代码,问他们能否弄坏它。单元测试是到达这种目的的常规方法。

5. 代码审查

提交你的代码之前,找个同事一起坐下来,向他解释你做了哪些修改。通常,这样做的过程中你就能发现代码中的错误,而不需要同事说一句话。这比自己审查自己的代码要有效的多得多。

6. 让代码更少

如果你发现写了大量的代码来解决一个简单的问题,你很可能做错了。下面的boolean用法是一个很好的例子:

if (numMines > 0) { enabled=true; } else { enabled=false; }

这时你应该写成这样:

enabled = numMines > 0;

代码越少越好。这会使bug更少,重构可能性更小,出错的几率更小。要适度。可读性同等重要,你可不能这样做而使代码丧失可读性。

7. 为优雅的代码而努力

优雅的代码非常的易读,只用手边很少的代码、让机器做很少的运算就能解决问题。在各种环境中都做到代码优雅是很难的,但经过一段时间的编程,你会对 优雅的代码是个什么样子有个初步的感觉。优雅的代码不会通过重构来获得。当你看到优雅的代码是会很高兴。你会为它自豪。例如,下面就是一个我认为是优雅的 方式来计算多边形面积的方法:


static public double GetConvexPolygonArea(Vector2[] vertices)
{
        double area = 0;
        for (int i = 0; i < vertices.Length; i++)
        {
                Vector2 P0 = vertices[i];
                Vector2 P1 = vertices[(i + 1) % vertices.Length];

                area += P0.Wedge(P1);
        }

        return area / 2;
}

8. 编写不言自明的代码

勿庸置疑,注释是编程中很重要的一部分,但能够不言自明的代码跟胜一筹,因为它能让你在看代码时就能理解它。函数名变量名要慎重选择,好的变量/方法名字放到语言语义环境中时,不懂编程的人都能看懂。例如:


void DamagePlayer(Player player, int damageAmount)
{
        if (!player.m_IsInvincible && !player.m_IsDead)
        {
                player.InflictDamage( damageAmount );
        }
}

能自我说明的代码不能代替注释。注释是用来解释“为什么”的,而自我说明的代码是来描述“是什么”的。

9. 不要使用纯数字

直接把数字嵌入代码中是一种恶习,因为无法说明它们是代表什么的。当有重复时更糟糕——相同的数字在代码的多个地方出现。如果只修改了一个,而忘记了其它的。这就导致bug。一定要用一个命名常量来代表你要表达的数字,即使它在代码里只出现一次。

10. 不要做手工劳动

当做一系列动作时,人类总是喜欢犯错误。如果你在做部署工作,并且不是一步能完成的,那你就是在做错事。尽量的让工作能自动化的完成,减少人为错误。当做工作量很大的任务时,这尤其重要。

11. 避免过早优化

当你要去优化一个已经好用的功能代码时,你很有可能会改坏它。优化只能发生在有性能分析报告指示需要优化的时候,通常是在一个项目开发的最后阶段。性能分析之前的优化活动纯属浪费时间,并且会导致bug出现。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索重复
, 问题
, 函数
, 代码
, 重构
一个
提高公司整体运行效率、如何提高代码效率、提高代码效率、提高代码运行效率、如何提高代码执行效率,以便于您获取更多的相关知识。

时间: 2024-11-29 12:54:59

11步提高代码质量和整体工作效率的相关文章

如何提高代码质量(管理篇):代码复查

也许你是一位项目经理,也许你是一位项目骨干成员,或者开发小组长.在我发表"如何提高代码质量"的这一系统文章后,有许多网友都向我抱怨,说他无法把握整个项目组成员的代码质量.我想,这也是所有项目组普遍存在的问题吧,它通常表现为以下几个问题: 软件项目普遍存在的问题 1)新手.任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生.这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯,所以编写代码质量较差,问题很多.他们常常成为项目组的"鸡肋"

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

提高代码质量:如何编写函数 函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的.写好一个函数是提高程序代码质量最关键的一步.本文就函数的编写,从函数命名,代码分布,技巧等方面入手,谈谈如何写好一个可读性高.易维护,易测试的函数. 命名 首先从命名说起,命名是提高可读性的第一步.如何为变量和函数命名一直是开发者心中的痛点之一,对于母语非英语的我们来说,更是难上加难.下面我来说说如何为函数命名的一些想法和感受: 采用统一的命名规则 在谈及如何为函数取一个准确而优雅的名字之前,首

如何提高linux命令行的工作效率

以前写的文章,拿来测试色彩以及斜线如何处理. 虽然最近几年个人计算机的潮流已经从命令行方式转向图形界面方式,大量的采用鼠标操作,但是 在中依然有很强的生命力.有好几种,主要有....,用得最多的是,它几乎是各种发布版的标准配置.同时在 操作系统中,即使在 下,系统管理员经常也要与命令行打交道,使用键盘次数要明显高于鼠标,本文通过介绍合理地定制与修改环境变量,以及利用 以上版本中增加的命令,可以更好地提高命令行使用的工作效率减少键盘的敲打以及拼写错误. 一定制文件 通过设置环境变量,其作用主要定义

提高代码质量:代码审查

在项目开发中,代码质量是非常重要的一环.高质量的代码对项目完成质量.能否按时完工有重大影响.而一个团队中开发成员的配置往往是金字塔形的.基于开发成本考虑,项目主管或小组长一般由经验丰富的资深高级程序员担任,开发成员则由普通程序员.新员工.实习生组成.各个开发成员水平参差不齐,以及该行业内开发人员的高流动性.这样的条件和环境必然带来代码质量问题.项目主管难于把握项目进度,很容易造成项目延期,即使加班不少. 既然问题存在了,就必须解决它.解决的思路就是代码审查. 代码审查的前提: 1.统一项目组内部

提高代码质量-工具篇

注:这是一篇翻译文章,原文:How to improve quality and syntax of your Android code,为了理解连贯,翻译过程中我修改了一些陈述逻辑和顺序,同时也加了一些自己的补充. 在这片文章中,我将从工具使用的角度上讲述如何提高 Android 代码质量,这些自动化工具包括 Checksytle.Findbugs.PMD 和 Android Lint. 团队中代码意识不一致,水平参差不齐,代码风格迥异,定下的规范也是熟视无睹.这时候就需要借助工具的力量,利用

重构真的能提高代码质量吗?

  与传统观点相反,新的研究发现,想要为了更高效和更具可维护性,而去重组软件代码,我们所花的时间和精力并不一定是值得的. 重构软件,也就是,重组现有的源代码,以使其更高效,更具可读性和可维护性,这可能是所有开发人员时不时在做的一件事情.当然,重构背后隐含的假设 是,将来的收益--可节省的人力物力,要能大于现在投入的成本--所耗费的时间和努力.然而,新的实验研究表明,情况可能并不像你想像得那样美好,重构或 许并不能大幅度地改善软件代码质量,有时候甚至是完全没有起到一点改善作用. 此研究是由研究人员

提高linux命令行下工作效率

本文介绍一些命令行下提高工作效率的技巧,有助于提高学习的兴趣. 1.命令行下拷贝与粘贴 Linux安装后每次启动时都会自动运行一个gpm程序, 然后就可以用鼠标拷贝与粘贴了.具体做法是,按住鼠标左键拖动,使要拷贝的地方反白,这样拷贝的内容就会被粘贴在光标所在位置了. 2.快速进入某些目录 键入cd-可直接进入用户的home目录:键入cd-可进入上一个目录. 3.命令补齐 命令补齐是指当键入的字符足以确定目录下一个惟一的文件时,只须按Tab键就可以自动补齐该文件名的剩下部分. Linux下的有些文

如何利用VB类提高代码质量

  可能平时我们在用VB写程序的过程中,会忽视一些面向对象的思想.希望通过一个例子能够对大家起到抛砖引玉的作用,我们举一个VB访问数据库的例子.这是本人第一次写技术方面的文章,请大家支持!!QQ:16644686 1.经常出现的写法 在VB中实现对数据库的访问,我们可能会通过一个全局函数来实现,例如以下的代码: Public Function DBSqlOpen(strName As String, strPWD As String, _                            s

如何提高你代码质量

人跟人的能力千差万别,所以写出来的代码质量,肯定是不同的.有的人,写一个小逻辑,可能需要100行,而有的人,可能仅仅需要10行.代码永远会有Bug,在这方面没有最好只有更好.模块化与面向对象是实现高效无错代码的方法.高效无错代码需要思想与实践的不断反复.如何做到代码高效无错,提高代码质量的方法有哪些?又有哪些经验和技巧呢? 一.代码质量   软件是交付给用户,并由用户体验的产品:代码则是对软件正确且详细的描述,所以代码质量关系到软件产品的质量.虽然软件质量不等于代码质量,但是代码上的缺陷会严重的