高效编程所需要做的那点事

聊聊如果才能高效编程

  • 计划(Plan)

所谓Plan,其实就是对应于编程中的设计阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式编程前至少要考虑一下下面的问题: 你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的

你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的,你才能做得对,做得好。 需要有什么样的功能。需要你给出来个功能列表。这样可以保证我们不会遗露了什么。准备好一些技术难题的前期调查和解决方案。不要等到开始编程的时候才去想。下面这你因为有“Plan”而得到的好处:你能够清楚地明白你要做的东西长什么样?你能清楚知道你要开发的东西要干些什么事?你能够在开发过程中解决你所有可能发生的难题。

  • 使用伪代码

伪代码是一个非常不错的方式,让你可以看到你要写的程序长什么样?根据 维基百科(Wikipedia),伪代码被写定义成这样:

伪代码是一个紧凑和非正式的从高层描述一个计算机编程算法的结构约定。其主要是为了让人阅读而不是让计算机执行。典型的伪代码一般会忽略那些算法中不需要人去关心的细节。比如:变量声明,系统调用,或是子程序。在伪代码中,编程语言被自然的人类语言所增强而放大,从而,更方便,更紧凑。

一些人并不喜欢伪代码,因为他们并不相把同样的代码写两遍,一遍是伪代码,一遍是真代码。其实,这是可以理解的,因为两个copy的东西是比较不好维护的。但是我想,这是可以权衡的,如果的算法很简单,那么就不需要伪代码了,如果你的算法比较复杂,比较绕,那么,有一个伪代码提纲挈领将会是一件非常不错的事情,因为他有利于让别人从一个简单的文档来了解一个复杂的算法或系统。这就好像一个电线的布线图一样,你可以很容易地通过一个简单的文档从复杂的实现中找到头绪。

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

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

  • 减少代码减少代码的数量,坚持DRY(Don’t Repeat Yourself) 和KISS(Keep It Simple & Stupid) 原则。这样可以有交物减少代码的复杂度,提高程序的易读性和可维护性,同时也能增加代码的质量。
  • 代码重用DRY (don’t repeat yourself) 原则就是告诉我们需要重用现有的代码。这样,你才能够站在巨人的肩膀之上,从而可以更多的关注和自己所要处理业务的逻辑。编程的最高境界就是写出来的代码是可能被重用的,重用和泛型这是编程里始终在追求的目标。
  • 代码重构一些老的代码可能已经不合时宜了,比较以前老的C++的STL库在多线程下可能会出现很多问题。所以,我们自己的代码也是一样的,每过一段时间,我们需要把这些代码回收再利用,这就是软件的重构。重构代码所追求的并不是要提供更多的功能,而是让老的代码更有生命力,让老的代码跟上时代,更具扩展性,灵活性。
  • 使用设计模式设计模式是一种从代码级解决某一些问题的方法论。这个世界上有很多很多的设计模式,比如MVC,单实例,工厂,观察者等等,等等。使用好的设计模式可以让你的代码更具重用和扩展性。关于设计模式,请参看本站的另一篇文章《101个设计模式》
  • 使用程序框架FrameworkFrameworks 是一份给程序员的礼物,他们帮助你完成了很多很细节的事情,他们有可能是一个lib库,你需要进行简单的拼装,一个几乎完成了的软件框架就已形成。这是一个能够给开发工作提速的东西。只要上网随便搜一搜,你可以看到太多太多的框架了。形形色色,几乎都是开源社区贡献的。
  • 泛型编程如果抽像出一些程序中相似的东西,然后把这些相似的东西用一个标准的东西实现,这也是编程所追求的最高境界之一,像诸如C++中的STL之类的东西就是此类东西的最佳体现。灵活之及,几乎都快放之四海皆准了。
  • 使用开源的代码这个世界上有太多太多开源的代码了。学会利用他们可以让你更节省时间和精力,因为我们完全没有必要把相当的东西实现若干次,学会使用开源的代码不但是一个学习的过程,同样也是一个增加编程效率的事情。
  • 完善开发环境开发环境非常重要,因为好的开发环境可以让你事倍功半。他们可以让你不需要关注别的东西,比如,我曾看过某程序员在调整编辑器的字体和高亮上花费了不少工夫。是的,这是值得肯定了,只有把开发环境变得舒服,才能让自己更好的编程。
  • 使用调试器学会使用调试器来调试代码,单步跟踪,变量值跟踪,内存,堆栈等等。熟练地使用调试器可以让你更好的查找程序的问题,以得到最优的代码。
  • 使用版本管理工具版本管理工具应该是任何程序员都应该要去学会使用的东西,特别在一个团队中,如何管理程序的不同版本,如何维护,存放代码,版本管理工具绝对是开发过程中不可少的东西。其意义绝对不只代码备份和共享那么简单。下面是一些开源的管理管理工具:Git,SVN,CVS和Bazaar。

小编明后两天,暂不推送,周日恢复正常,期待吧..........,周日为大家送上“我们聊聊SSM那点事”

原文发布于微信公众号 - 码神联盟(lkchatspace)

原文发表时间:2017-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构

金三银四如何找工作?阿里、京东、美团内推题送给还在迷茫的朋友从事Java开发工作十二年总结面试宝典一、阿里巴巴面试二、京东金融面试三、美团面试四、滴滴面试

3664
来自专栏Java架构

Java高级工程师——面试总结

2045
来自专栏Java技术栈

爱上 Java 的10 大理由,Python 弱爆了!

Java和JVM已经存在了很长一段时间了,基于这个事实,一些程序员开始将很多事情视为理所当然。今天我们就来说一说“Java之所以能够成为并将继续是软件项目领先平...

1304
来自专栏架构师之路

框架组件,究竟要不要自研?

一、问题的提出 询问框架组件,是否需要自研? 18年规划系统介绍58到家的技术体系,15年加盟58到家后,架构部正好也是负责范围的一部分,故谈一谈自己的想法,个...

4256
来自专栏微信公众号:Java团长

Java高级工程师面试总结

原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的...

1021
来自专栏java一日一条

关于烂代码的那些事(中)

这是烂代码系列的第二篇,在文章中我会跟大家讨论一下如何尽可能高效和客观的评价代码的优劣。

1492
来自专栏Python爬虫与数据挖掘

用代码向90后逝去的青春致敬

前段时间,腾讯宣布停止乐斗Ⅱ和QQ宠物的运营,然后就订阅号里就被各种回忆杀的推文刷屏了。今天也来称蹭一下"热点",虽然有点晚。

871
来自专栏Java架构师进阶

Java高级工程师面试总结

原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的...

1012
来自专栏WeTest质量开放平台团队的专栏

国庆长假综合症?云真机新功能让你迅速重回高效测试状态

可是,假期远去,日子还得照样过,为了让技术人员在国庆假期结束后能够加快测试效率,WeTest开发人员,在长假期间中开发了一个新功能——云真机键盘输入。

994
来自专栏云计算D1net

云计算网络应用防火墙提高应用程序的安全性

人们通过云计算网络应用防火墙以确保未在本地托管的应用程序,这是可行的。行业专家马特·帕斯库奇解释它们是如何工作的,以及企业对此所需要了解哪些事情。 如今,网络应...

38811

扫码关注云+社区

领取腾讯云代金券