前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >如何编写出优秀软件

如何编写出优秀软件

作者头像
用户1289394
发布2018-02-26 16:50:16
发布2018-02-26 16:50:16
8810
举报
文章被收录于专栏:Java学习网Java学习网

如何编写出优秀软件

  软件必须是自由的   优秀软件是自由软件。我将避免使用“开源”,因为它根本没有包含社会层面,它和技术本身同等重要。你可以从这里了解更多。   广泛被接受的工具和语言   编写优秀软件的语言是被广泛使用的,这使得有人能够阅读和修改代码。优秀的语言,比如C、Python和Java。当然也有例外,一些较少被使用的语言是更好的选择。   保持简单   优秀软件不做不必要的事情。换句话说,没有不必要的功能。实现没人使用的功能只会产生bug。设计软件时,保持简单应该作为最高优先级。正如爱因斯坦说的“让事情尽可能简单,而不是比较简单。”   太多抽象是糟糕的。如果你把代码隐藏在多层抽象之后,你也隐藏了bug。太多的抽象让代码难以理解,难以跟踪执行路径和debug。它也会降低性能。抽象之上的抽象经常可以在Java编写的企业软件中看到。优秀软件可以用Java编写,但是Java也让编写恐怖的、结构复杂代码变得非常容易。C++也是如此。   不要弄成火箭科学   使用具有真正意义的变量名。不要使用单字符变量名。它们几乎不可能理解和追踪。也有单字符的变量名,它们是被普遍接受了。例如对于坐标,用x和y就行。对于循环,就使用i,j等等。除此之外,不要这样使用了。通常地,对于优秀软件,代码的结构是清晰的,还有可查的、记录下来的代码风格。   文档是重要的   不管文档是多么地让人厌烦,优秀软件也是有文档的。代码有清晰的注释,软件有随之一起安装的手册。对于web应用程序,让文档可以在线上访问到。   开发者经常认为,当软件被完成后再去写文档,就足够了。那是完全错误的方式。文档必须是开发人员在开发软件过程中的一件事情。文档必须是开发的一部分,而不是代码被写完之后的工作。   使用版本控制系统   优秀软件使用版本控制系统,一直都用。如今我差不多总是推荐Git做版本控制,但是有一些情况,SVN之类的系统就可以做得很好了。版本控制容易回滚到可能有问题的修改。考虑下面的例子,如果没有版本控制系统,该怎么办: 开发者A修改了文件program.c,该文件被拷贝到了源码树(source tree),旧文件被替换了。后来发现了一个bug,问题出在开发者A对program.c所做的修改。开发者B、C等人费了好大劲儿才搞清楚开发者A修改了什么。如果有版本控制系统,这就不是问题了。当然聪明的开发组应该有备份的,因此在这种情况下,他们将找到修改前的原始备份,使用diff工具看看修改了什么地方。然而,既花时间、又麻烦。更不要提从备份拷贝并替换文件是多么地容易出错了。   扩展性   扩展性不是严格意义上的强制项,不过它经常让软件更加有用。开发软件、便于让它能够与其它软件一起被使用,是一种优秀的方式。事实上,这是Unix主要设计原则之一。   例子   互联网充满了编写良好的软件。很多标准的Unix工具编写良好,然而有些就不是。一个写得不错的例子是Memo,这是我写的软件。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何编写出优秀软件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档