这是一篇翻译文章,为了使读者更好的了解,会在原文翻译的根底减少一些解说或形容。
软件工程是当您增加工夫和其余程序员时编程产生的事件。— Russ Cox
Russ 正在辨别软件编程和软件工程。前者是您为本人编写的程序,后者是随着工夫的推移许多人会应用的产品。工程师会来来去去,团队会扩充和放大,需要会扭转,性能会被增加,谬误会被修复。这是软件工程的实质。
三条根本准则
- 清晰可读
- 化繁为简
- 生产力
你会留神到我没有说性能或并发性。有些语言比 Go 快一点,但它们必定不像 Go 那样简略。有些语言将并发作为最高指标,但它们的可读性和生产力都不高。
性能和并发性是重要的属性,但不如清晰、简略和生产力重要。
1.1 清晰可读
程序代码应该次要是不便人类浏览,并且能够在机器上运行。代码的浏览次数比编写次数多得多。一段代码在其生命周期中将被浏览数百次,甚至数千次。清晰很重要,因为所有软件,不仅仅是 go 程序,都是由人类编写的,以供其他人浏览。机器也应用软件这一事实是主要的。
如果你正在为本人编写一个程序,兴许它只须要运行一次,或者你是惟一会看到它的人,那么就做对你有用的事件。然而,如果这是一个多人奉献的软件,或者人们会在足够长的工夫内应用它,要求、性能或运行它的环境可能会发生变化,那么您的指标必须是为您的 程序是可保护的。
1.2 化繁为简
简略是可靠性的先决条件。— Edsger W. Dijkstra
为什么咱们要谋求简略?为什么 Go 程序简略很重要?
管制复杂性是计算机编程的实质。— Brian Kernighan
咱们都遇到过你说“我无奈了解这段代码”的状况,是吗?咱们都参加过你胆怯做出扭转的程序,因为你放心它会毁坏程序的另一部分;您不理解且不晓得如何修复的局部。这是复杂性。
构建软件设计有两种形式:一种是简略到没有显著的缺点,另一种是简单到没有显著的缺点。第一种办法要艰难得多。— C. A. R. Hoare
复杂性将牢靠的软件变成了不牢靠的软件。复杂性会扼杀软件我的项目。因而简略是 Go 的最高指标。无论咱们编写什么程序,咱们都应该批准它们很简略。
1.3 生产力
设计是一门艺术,要求编写的代码以后可用,并且当前仍能被改变 –Metz
我要强调的最初一个根本准则是生产力。开发人员的生产力是一个宏大的话题,但归结为这一点;你花多少工夫做有用的工作而不是期待你的工具或失望地迷失在外国代码库中。Go 程序员应该感觉他们能够用 Go 实现很多工作。
有玩笑说 Go 是在期待 C++ 程序编译时设计的。疾速编译是 Go 的一个要害个性,也是吸引新开发人员的要害个性。编译速度是经久不衰的话题,偏心地说,在其余动态语言中须要几分钟的操作,在 Go 中只须要几秒钟。这有助于 Go 开发人员感觉与应用动静语言工作的同行一样高效,而不会呈现那些动静语言固有的可靠性问题。
Go 程序员须要意识到编写代码是为了浏览,因而将浏览代码的行为置于编写代码的行为之上。Go 甚至通过工具和自定义来强制所有代码都以特定款式格式化。这打消了学习我的项目特定方言的艰难,并有助于发现错误,因为它们看起来不正确。
Go 程序员不会花几天工夫调试难以了解的编译谬误。他们不会在简单的构建脚本或将代码部署到生产环境中浪费时间。最重要的是,他们不会花很长时间去了解共事写的代码。
Go 是一种旨在进步生产力的语言,它是为大规模、工业规模的软件设计而构建的。
本文由 mdnice 多平台公布