专栏首页技术向程序员应该熟悉的定律法则

程序员应该熟悉的定律法则

本文由腾讯云+社区自动同步,原文地址 http://stackoverflow.club/article/programmer_should_know_laws/

二八定律

二八定律是19世纪末20世纪初意大利经济学家帕累托发现的。他认为,“在任何一组事物中,最重要的只占其中一小部分,约20%。其余80%尽管使多数,却是次要的”。因此又被称为二八定律。

这应该是应用最广泛的一个定律了。在代码中也是约20%的核心代码逻辑支撑了整个系统的运转,对老系统的治理过程中我们也会先找出20%的代码去重构,在大促备战中先是梳理出20%的功能,而这些功能往往恰好是“黄金”功能。

海恩法则

海恩法则是德国飞机涡轮机的发明者德国人帕布斯・海恩提出一个在航空界关于飞行安全的法则,海恩法则指出:“每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆及1000起事故隐患”。该法则强调两点:“一是事故的发生是量的积累的结果;二是再好的技术、 再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。”

海恩法则对我们是一种警示,我们平时对测试中和线上的小问题都不可忽视,比如对于笔者所在的公司,每次大促之前我们都要对核心系统和核心流程做梳理,不能放过任何一个小的问题,而且越是平时不被关注的边缘系统越容易出问题。

我们常说一切问题皆是人的问题,所以在平时我们还要注重人的自身素质提高的培养。

墨菲定律

墨菲定律的具体内容是“凡是有可能出错的事就一定会出错”,指的是任何一个事件,只要具有大于零的概率,就可以确定它可以发生。

该定律跟海恩法则常常被我们应用在大促之前的备战中,当然平时也会经常用到,只是大促备战的过程中更加重视。凡是我们怀疑的系统薄弱点,都要拿出来仔细过一遍,绝不能轻易放过一丝一毫的怀疑,避免因疏忽遗漏导致线上重大事故的发生。

康威定律

康威定律指的是“系统设计的结构必定反映其团队的组织结构”。一个直接跟程序设计有联系的定律。换言之,有什么样的团队结构就产生什么样的技术架构。

SMART原则

“SMART原则是目标管理中的一种方法,SMART原则中的S, M, A, R, T分别对应了五个英文单词Specific(明确), Measurable(可衡量), Achievable(可达成), Relevant(相关),和Time-bound(有时限)”。

我们在指定一个架构目标的时候要符合这样的原则,对一个老系统做架构升级改造,需要目标明确,达到控制和逻辑分离,子系统之间解耦;可衡量,各个系统上线之后是否会相互影响;可达成,分离和解耦的目标是一定可以实现的;相关,比如跟其他系统的边界交互处要考虑的因素都有哪些;有时限,目标不能无休止进行下去,一定要有一个清晰的完成日期。

摘抄自《架构修炼之道》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在ubuntu中使用supervisor

    示例如下,在目录/etc/supervisor/conf.d/下创建redsocks2.conf,并加入:

    羽翰尘
  • nextcloud性能调优

    默认的nextcloud是Apache web, 我们将其换为nginx,通过搭配nextcloud-fpm和nginx两个docker完成。

    羽翰尘
  • tensorflow lstm原理与代码从头构建

    本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/construct_lstm_from_nothin...

    羽翰尘
  • Python网络爬虫(七)- 深度爬虫CrawlSpider1.深度爬虫CrawlSpider2.链接提取:LinkExtractor3.爬取规则:rules4.如何在pycharm中直接运行爬虫5.

    意气相许的许
  • 电影荒?看看豆瓣排行榜上有没有你想看的电影!

    项目创建完成后可以看到在工程创建的位置有了douban文件夹,打开以后包含了上述的组件,可以使用spyder,pycharm等ide打开项目

    老肥码码码
  • 29个国家使用的SIM卡容易受到Simjacker攻击

    在此之前,我们曾分析过SIM卡中的一个安全漏洞,这个漏洞名叫Simjacker,而就在最近,Adaptive Mobile的研究人员(SimJacker的发现者...

    FB客服
  • [计算机视觉论文速递] ECCV 2018 专场4

    Amusi 将日常整理的论文都会同步发布到 daily-paper-computer-vision 上。名字有点露骨,还请见谅。喜欢的童鞋,欢迎star、for...

    Amusi
  • 搭建一个MVP框架

      MVP是一种设计模式,是MVC模式的一种演变。他出现的主要目的是划分代码模块职责,降低模块耦合度,易于单元测试。

    饮水思源为名
  • scrapy 入门(一)

    Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘...

    用户6029108
  • 移动端开发总结

    到目前为止,互联网行业里,手机越来越智能化,移动端占有的比例越来越高,尤其实在电商,新闻,广告,游戏领域。用户要求越来越高,网站功能越来越好,效果越来越炫酷,这...

    grain先森

扫码关注云+社区

领取腾讯云代金券