1. 计划(Plan)

  2. 所谓Plan,其实就是对应于编程中的“设计”阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式编程前至少要考虑一下下面的问题:
  3. 你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的,你才能做得对,做得好。
  • 需要有什么样的功能。需要你给出来个功能列表。这样可以保证我们不会遗露了什么。
  • 准备好一些技术难题的前期调查和解决方案。不要等到开始编程的时候才去想。
  1. 下面这你因为有“Plan”而得到的好处:
  2. 你能够清楚地明白你要做的东西长什么样?
  • 你能清楚知道你要开发的东西要干些什么事?
  • 你能够在开发过程中解决你所有可能发生的难题。
  1. 使用伪代码

    伪代码是一个非常不错的方式,让你可以看到你要写的程序长什么样?根据 维基百科(Wikipedia),伪代码被写定义成这样:
    伪代码是一个紧凑和非正式的从高层描述一个计算机编程算法的结构约定。其主要是为了让人阅读而不是让计算机执行。典型的伪代码一般会忽略那些算法中不需要人去关心的细节。比如:变量声明,系统调用,或是子程序。在伪代码中,编程语言被自然的人类语言所增强而放大,从而,更方便,更紧凑。
    一些人并不喜欢伪代码,因为他们并不相把同样的代码写两遍,一遍是伪代码,一遍是真代码。其实,这是可以理解的,因为两个copy的东西是比较不好维护的。但是我想,这是可以权衡的,如果的算法很简单,那么就不需要伪代码了,如果你的算法比较复杂,比较绕,那么,有一个伪代码提纲挈领将会是一件非常不错的事情,因为他有利于让别人从一个简单的文档来了解一个复杂的算法或系统。这就好像一个电线的布线图一样,你可以很容易地通过一个简单的文档从复杂的实现中找到头绪。
  2. 书写清楚的注释

    请在你的代码中书写清楚的程序注释。当然,注释不是越多越好,注释应该是简明扼要的,如果你的程序足够地清楚简单,那么注释就会显的多余。另外,注释应该是注释“原因,理由,目的”,而不是注释“是什么”,在“酷壳”的另一篇文章《惹恼程序员的十件事》中,有一条就是关于坏的注释是多么的另个讨厌。
  3. 使用自动的编辑工具

    自动的编辑工具有很多,比如 Typinator,这是一个可以通过设定一些替代的简单代码来实现重复语句的快捷插入,比如你自己的签名、常用的语句等等,通过它可以设定替代的简短代码。还有其它一些代码自动完成的工具,比如一些VC的插件,还有像Source Insight这样的东西。别小看这一点点时间,如果你每天都在写代码的话,今天一点点,明天一点点,将会为你省出很多的时间。
  4. 减少代码

    减少代码的数量,坚持DRY(Don’t Repeat Yourself) 和KISS(Keep It Simple & Stupid) 原则。这样可以有交物减少代码的复杂度,提高程序的易读性和可维护性,同时也能增加代码的质量。
  5. 代码重用

    DRY (don’t repeat yourself) 原则就是告诉我们需要重用现有的代码。这样,你才能够站在巨人的肩膀之上,从而可以更多的关注和自己所要处理业务的逻辑。编程的最高境界就是写出来的代码是可能被重用的,重用和泛型这是编程里始终在追求的目标。
  6. 代码重构

    一些老的代码可能已经不合时宜了,比较以前老的C++的STL库在多线程下可能会出现很多问题。所以,我们自己的代码也是一样的,每过一段时间,我们需要把这些代码回收再利用,这就是软件的重构。重构代码所追求的并不是要提供更多的功能,而是让老的代码更有生命力,让老的代码跟上时代,更具扩展性,灵活性。
  7. 使用设计模式

    设计模式是一种从代码级解决某一些问题的方法论。这个世界上有很多很多的设计模式,比如MVC,单实例,工厂,观察者等等,等等。使用好的设计模式可以让你的代码更具重用和扩展性。关于设计模式,请参看本站的另一篇文章《101个设计模式》
  8. 使用程序框架Framework

    Frameworks 是一份给程序员的礼物,他们帮助你完成了很多很细节的事情,他们有可能是一个lib库,你需要进行简单的拼装,一个几乎完成了的软件框架就已形成。这是一个能够给开发工作提速的东西。只要上网随便搜一搜,你可以看到太多太多的框架了。形形×××,几乎都是开源社区贡献的。
  9. 泛型编程

    如果抽像出一些程序中相似的东西,然后把这些相似的东西用一个标准的东西实现,这也是编程所追求的最高境界之一,像诸如C++中的STL之类的东西就是此类东西的最佳体现。灵活之及,几乎都快放之四海皆准了。
  10. 使用开源的代码

    这个世界上有太多太多开源的代码了。学会利用他们可以让你更节省时间和精力,因为我们完全没有必要把相当的东西实现若干次,学会使用开源的代码不但是一个学习的过程,同样也是一个增加编程效率的事情。
  11. 完善开发环境

    开发环境非常重要,因为好的开发环境可以让你事倍功半。他们可以让你不需要关注别的东西,比如,我曾看过某程序员在调整编辑器的字体和高亮上花费了不少工夫。是的,这是值得肯定了,只有把开发环境变得舒服,才能让自己更好的编程。
  12. 使用调试器

    学会使用调试器来调试代码,单步跟踪,变量值跟踪,内存,堆栈等等。熟练地使用调试器可以让你更好的查找程序的问题,以得到最优的代码。
  13. 使用版本管理工具

    版本管理工具应该是任何程序员都应该要去学会使用的东西,特别在一个团队中,如何管理程序的不同版本,如何维护,存放代码,版本管理工具绝对是开发过程中不可少的东西。其意义绝对不只代码备份和共享那么简单。下面是一些开源的管理管理工具:Git,SVN,CVS和Bazaar。

转载于:https://blog.51cto.com/lovely/236005

高效编程所需要做的14件事相关推荐

  1. 程序员可以在周末做的 8 件事

    转自:http://www.runoob.com/w3cnote/8-things-programmers-can-do-at-weekends.html 在过去的几十年里已经有许多国家有一二天的周末 ...

  2. 程序员可以在周末做的8件事

    本文转载自 IT江湖,原文链接:Click me,译文链接:Click me 在过去的几十年里已经有许多国家有一二天的周末.周末是拔掉的日常工作得到充电的重要时刻.他们也提供了更深入地思考事情的好机会 ...

  3. 程序员在周末可以做的8件事

    在过去的几十年,许多国家已经采取了为期两天的周末.周末是脱离朝九晚五的工作环境并可以为自己充充电的一个重要的时间.他们也是一个很好的机会来更深刻地思考一些事情.跟他职业相比,程序员(开发者或软件工程师 ...

  4. 建立高效的团队,可以做这七件事

    通常来说,团队员工的留存率以及他们的敬业度,是人力资源管理部门或中高层管理人员的职责.一项研究表明,对直属经理感到不满的员工,相比于对公司不满,他们的离职率会更高,这也意味着,员工的离开,往往是为了躲 ...

  5. 【杂谈】提升写代码效率不得不做的三件事

    想成为一个优秀的AI算法工程师必须要熟练使用Linux,这是学习AI的一个基础,如果你一直还在用Windows,那就很low了.本文我们聊聊提升写代码效率不得不做的三件事. 作者&编辑 | 汤 ...

  6. 安装Linux Mint 18.2后要做的20件事

    安装Linux Mint 18.2后要做的20件事 Linux Mint 18.2 Qiana Cinnamon Linux Mint 18.2已经发布,定名为Qiana.Mint是Linux最佳发行 ...

  7. 编程程序的名称要记住吗_学习编程时要记住的5件事

    编程程序的名称要记住吗 by Kurt 由库尔特 学习编程时要记住的5件事 (5 Things to Remember When You're Learning to Program) Learnin ...

  8. Kali linux学习入门-安装Kali Linux 后需要做的 20 件事

    安装Kali Linux 后需要做的 20 件事 [51CTO精选译文]我在本文中整理出了安装一份全新的Kali Linux后总是要做的若干件事情.由于我有多台笔记本电脑和工作站,所以尽量扩大下列操作 ...

  9. 停止做这7件事,你的工作效率至少翻一倍!

    停止做这7件事,你的工作效率至少翻一倍! 中国网 2018-03-06 你知道吗?忙(Busy)和高效率(Productive)之间有着非常显著的区别. 忙仅仅是你的状态,但是它并不代表你有产出.实际 ...

最新文章

  1. C语言位操作--判断整数是否为2的幂
  2. Django实战之添加markdown编写文章的支持
  3. yum安装软件包提示Error Downloading Packages解决方法
  4. 高级SQL优化(三) 常用优化工具 ——《12年资深DBA教你Oracle开发与优化——性能优化部分》...
  5. C# 在自定义的控制台输出重定向类中整合调用方信息
  6. 笨办法学 Python · 续 练习 48:`ed`
  7. PHP性能:序——谈ab(Apache Bench)压力测试工具
  8. linux hal 结构图
  9. Atitit 安全规范 指南 常见五种意外防止规范 attilax总结
  10. 一个黑客都要学习什么语言
  11. 【统计学】基本Stata使用手册:合集
  12. adb 静默安装_Android静默安装与静默卸载(系统应用)
  13. Android集成谷歌定位sdk,Android 地图sdk,集成了百度、高德、谷歌三种地图
  14. 为什么计算机内存数值存储方式是补码?
  15. OpenCV粘连对象计数
  16. Excel利用公式向导快速设置成绩的评级系统!
  17. I帧、B帧、P帧以及IDR帧之间的关系
  18. Android下QQ空间查看大图特效
  19. 2021年11月11日文章读后感
  20. shell脚本编程学习笔记3(xdl)——Bash变量的运算与测试

热门文章

  1. Android Studio打开项目所有Java文件的import显示红色
  2. 巴西CC成为FreeStor全球首个用户
  3. SSH登录忽然变慢与DNS反向解析问题处理
  4. Microsoft Security Essential: 微软安全软件
  5. zsh与oh-my-zsh
  6. RTMPdump(libRTMP) 源代码分析 3: AMF编码
  7. compass reset和layout [Sass和compass学习笔记]
  8. 在DataGrid(WebControl)中处理DropDownList事件的补充说明
  9. @ResponseBody 和 @RequestBody 的作用
  10. Skype For Business 2015 综合部署系列一:Skype 环境需求及部署规划