编写go语言代码三条基本原则

这是一篇翻译文章,为了使读者更好的理解,会在原文翻译的基础增加一些讲解或描述。 > 软件工程是当您添加时间和其他程序员时编程发生的事情。 — 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 是一种旨在提高生产力的语言,它是为大规模、工业规模的软件设计而构建的。 ![](https://upload-images.jianshu.io/upload_images/28199768-df5d761e65a802b7.png) 本文由[mdnice](https://mdnice.com/?platform=6)多平台发布
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容