找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 276637|回复: 0

听说程序员的这4大定理,你还不知道?

[复制链接]

该用户从未签到

发表于 2020-5-28 12:28:47 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
有些著名的定理在互联网世界同样适用,下面小信为大家介绍的定理有些和开发相关,有些和系统相关,可以帮你成为合格的软件工程师。

                               
登录/注册后可看大图


01
墨菲定律
凡事可能出错,就一定出错
这条定律来自一名航天工程师在50年代初对火箭测试失败作出的回应,给我们的启示是,永远在系统关键地方使用防御性设计,因为系统某些地方总会出错。
这就好像是你把软件暴露给终端用户,他们会创造性的输入一些意料之外的内容,导致系统宕机。因此你需要让你的软件足够健壮,检测并警告非预期行为,确保设计的架构在每个层面上都可以应对故障。

                               
登录/注册后可看大图


02
Kunth定律
在大部分编程中,优化过早是万恶之源。
这条定律是Donald Knuth的经典语录之一,告诫我们不要过早的优化系统程序代码,直到必须优化时再优化。
简单易读的源码实现99%性能需要的同时,可以提高应用的可维护性。开始时,使用简单的解决方案可以让后期出现问题更容易迭代和改进。
在Java或者C#语言中,String对象是不可变的,我们要学会使用其他结构动态创建字符串,比如StringBuilder。
现实是,直到分析应用程序前,我们并不知道String创建了多少次,并对性能产生了多大影响。因此在编写代码时,要尽量保持整洁,必要的时候再做优化。

                               
登录/注册后可看大图


03
Conway定律
系统设计的架构受限于生产设计,反映出公司组织的沟通架构
Conway定律由一名Melvin Conway的工程师提出,他注意到公司组织结构影响开发系统设计后,在一篇论文中描述了这个观点。
举一个例子,一个集中式的开发者团队会开发各种组件耦合的整体应用,而分布式的团队会开发单独的(微)服务,每一部分关注点分离清晰。
设计本身没有好坏之分,但是都受团队沟通方式的影响。现今,将大的集成应用解耦成微服务已成趋势。但也应该牢记Conway定律,在公司组织架构中投入与技术开发同样多的工作。

                               
登录/注册后可看大图


04
琐碎定律
组织成员投入精力到琐碎的事情上
琐碎定律又称为帕金森琐碎定律。这条定律的论点是:时间与事情的价值成反比。
对此,帕金森给出了一个例子,一场会议中,成员们讨论两件事情:为公司建核反应堆和为员工建车棚。建反应堆是复杂而又巨大的任务,没有人可以掌控全局,于是成员完全信赖流程和系统专家,很快就接受了项目。但建车棚的讨论时间远远超过建核反应堆的讨论时间。这条定律在软件行业非常出名,之后被称为车棚效应。

                               
登录/注册后可看大图


随着软件开发经验的积累,我们会学到更多东西,虽然这些定律看起来是常识,但却可以帮助我们识别这些模式并作出反应,提升工作效率的同时,对自己的职业生涯也有很大帮助。


课工场郑州翔天信鸽线下服务中心是北大课工场直属的高端IT培训机构,是华中地区专业最多、规模最大的院校之一。目前开设有Java开发、云计算、大数据、UI等高端课程,合作企业近5000家,实现了上万学员的高薪IT梦想!
更多精彩,请关注课工场郑州翔天信鸽微信公众号
回复

使用道具 举报

网站地图|页面地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2025-5-15 19:39

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表