今天小编带给大家的都是一些能让你少走弯路的基础定律哦,可以帮助你成为一个合格的软件工程师!
首先,当然是“墨菲定律”啦!!
“凡事只要可能出错,就一定会出错”
这条定律来源于 Edward A. Murphy—— 一名航天工程师在 50 年代初对火箭测试失败的回应。这条定律给我们的启示是永远在系统关键地方使用防御性设计,因为系统某些地方总会出错!
第二、Knuth 定律
“在(至少大部分)编程中,过早优化是万恶之源”
高德纳被称为“人工智能之父”,这条定律是高德纳(Donald Knuth) 的经典语录之一,它告诫我们不要过早优化应用程序中的代码,直到必须优化时再优化。
的确,简单易读的源码可以满足 99% 的性能需要,并能提高应用的可维护性。最开始使用简单的解决方案也让后期性能出现问题时更容易迭代和改进。
第三、North 定律
“每一个决定都是一次权衡”
严格的说它目前还不是公认的定律,这是取自 Dan North 的演讲 Decisions,Decisions
这条语录强调无论你做的选择是什么,你总会放弃一个或多个选项
但这不是最重要的。 最重要的是理智地做出决定,了解其他选项,清楚你为什么不选择它们。你要始终根据当前你掌握的信息来权衡并做出决定。
第四、Conway 定律
“系统设计的架构受限于生产设计,反映出公司组织的沟通架构”
在 60 年代,一位名叫 Melvin Conway 的工程师注意到公司组织结构影响到他们开发的系统的设计。他用一篇论文描述了这个观点,并命名为“Conway 定律”。
这条定律很适用于软件开发领域,甚至体现到代码层面上。交付软件组件的各个团队组织结构直接影响到组件的设计。
第五、琐碎定律(帕金森琐碎定律)
“组织成员投入大量精力到琐碎的事情上”
这条定律论点是在会议中花费的时间与事情的价值成反比。的确是这样,人们更愿意把注意力和观点放在他们熟悉的事物上,而不是复杂的问题上。
帕金森给出一个例子,一场会议中,成员们讨论两件事:为公司建核反应堆和为员工建车棚。建反应堆是一件巨大而复杂的任务,没有人能完全掌控全局。他们完全信赖流程和系统专家,并很快接受了项目。
另一边,建车棚是一般人都可以做的,每个人都可以对颜色有意见。事实上,每个会议成员都会表达自己的意见,使得建车棚的决议所花费的时间远远超过建反应堆的。
首先,当然是“墨菲定律”啦!!
“凡事只要可能出错,就一定会出错”
这条定律来源于 Edward A. Murphy—— 一名航天工程师在 50 年代初对火箭测试失败的回应。这条定律给我们的启示是永远在系统关键地方使用防御性设计,因为系统某些地方总会出错!
第二、Knuth 定律
“在(至少大部分)编程中,过早优化是万恶之源”
高德纳被称为“人工智能之父”,这条定律是高德纳(Donald Knuth) 的经典语录之一,它告诫我们不要过早优化应用程序中的代码,直到必须优化时再优化。
的确,简单易读的源码可以满足 99% 的性能需要,并能提高应用的可维护性。最开始使用简单的解决方案也让后期性能出现问题时更容易迭代和改进。
第三、North 定律
“每一个决定都是一次权衡”
严格的说它目前还不是公认的定律,这是取自 Dan North 的演讲 Decisions,Decisions
这条语录强调无论你做的选择是什么,你总会放弃一个或多个选项
但这不是最重要的。 最重要的是理智地做出决定,了解其他选项,清楚你为什么不选择它们。你要始终根据当前你掌握的信息来权衡并做出决定。
第四、Conway 定律
“系统设计的架构受限于生产设计,反映出公司组织的沟通架构”
在 60 年代,一位名叫 Melvin Conway 的工程师注意到公司组织结构影响到他们开发的系统的设计。他用一篇论文描述了这个观点,并命名为“Conway 定律”。
这条定律很适用于软件开发领域,甚至体现到代码层面上。交付软件组件的各个团队组织结构直接影响到组件的设计。
第五、琐碎定律(帕金森琐碎定律)
“组织成员投入大量精力到琐碎的事情上”
这条定律论点是在会议中花费的时间与事情的价值成反比。的确是这样,人们更愿意把注意力和观点放在他们熟悉的事物上,而不是复杂的问题上。
帕金森给出一个例子,一场会议中,成员们讨论两件事:为公司建核反应堆和为员工建车棚。建反应堆是一件巨大而复杂的任务,没有人能完全掌控全局。他们完全信赖流程和系统专家,并很快接受了项目。
另一边,建车棚是一般人都可以做的,每个人都可以对颜色有意见。事实上,每个会议成员都会表达自己的意见,使得建车棚的决议所花费的时间远远超过建反应堆的。