编程中最神奇的数字,你知道吗?

来源:互联网 发布:杭州天迈网络怎么样 编辑:程序博客网 时间:2024/05/17 03:08

大家在coding的过程中,经常会碰到这样的问题,比如一个继承体系最多允许有多少类?  一个接口最多包含多少个函数? 一个函数最多允许多少个参数? ......??????

这个问题可是没有什么标准答案。 对于万能的编译器来说,你的继承体系哪怕有成千上万个类也没关系。但是有句话说的好,“要针对人编程,而不是针对机器编程”。虽然机器可以支持无限的接口,可以支持无限的函数参数....... 但是没办法啊,我们的coding针对是“人”,是人就有其局限性,如果给你一个含有20多个参数的函数,你会调用吗? 我觉得啊,要是真有这样的函数你早就吐啦,就别说调用啦。那么人的极限在哪里呢? 这个问题非常好啊,幸亏哥喜欢博览全书,要不还解释不了。记得看过的书中,记得有两本书提到了这个问题,一本是潘爱民讲com的,另外一本是***(名字忘啦)讲的《代码大全》的书,他们都提到了一个神奇的数字7,据说是很多“牛Ber”们研究了很多年研究出来的,据说是人们一下子记得的事情最大的极限就是7。

有了这样的答案,我们就可以回答本文开头提到的几个问题啦,是的上述问题的答案就是7。既然我们是针对人来coding的,所以我们coding起来要以人为本,既然人的极限是7,那么我们做好不要超过7。阐述完毕,准备收工。

楼主,这也太简单啦,这经的起推敲吗?要不你开博,回答一下我们的问题。鄙视,OK,哥就满足你的愿望,现在正式进入提问回答时间。

楼主,我的代码太复杂啦,我有好多函数都需要N>7个参数,所以啊,你说的话有道理,但是我不能用。敲打,你就不会把那七个参数包成一个类啊,真是SB!既然有这么多类似参数都放在一块,那你把它放在这里干什么啊??你不会封装啊??我看你面向对象没学好,赶紧时间去看哥的”世说新语:面相对象之一封装“,或者看哥即将推出的”九阴真经上篇:面相对象基本原则之单一职责“。要是理解不了哥那么深邃的思想,就抓紧时间去看《重构》的一本书。

楼主,我的代码写的非常好,但是只有一个函数,它需要的参数太多啦,我也是没办法啊??要是应用你的原则,就是搞不定啊??吐舌头,凡事不可绝对。哥只是说最好不要超过7个,也没叫你不能用七个以上啊。哥给你举个例子,比如国际上有一个非常知名的叫”18摸“的公司,据说公司有非常多的规章制度来控制着公司的发展,但是每一条规章都有一条exception。为什么呢??据说是因为所有的制度都有漏洞,所以只有提供一些额外的条例来调整,不至于使整个公司的失去活力。从这个角度上说,娱乐圈的潜规则也就有一定的原因啦。但是呢,例外总是例外,有非常严格的制度来控制着这些例外,比如可以破格提拔一个人,但是这个人在总人数中占的比例不能超过5%。要是从这个角度上看呢,貌似娱乐圈的潜规则多了点。

楼主,7是接近人接受极限的一个数字,有没有最优的数字啊?呵呵,其实这个问题非常好,虽然没有像7这个数字一样的经过推导,但是我个人认为3是个最优数字,比如,如果继承体系超过3层,就很难理解,再比如说,如果函数的参数3个以内的话,用户调用起来是基本不会出现没有任何问题的。所以,在coding过程中,如果出现这种”最多允许多少个“的问题,如果是3个以内,你就尽情的去写。如果在3-7之间,无所谓,也可以,不过要增加注意,为了便于理解,应该多写点注释什么的。如果超过7,就必须非常慎重,在非万不得已的情况下,一定不要超过7.

楼主,我记得你在前面的文章中说过,继承体系最好不要超过3层的,这次怎么成7啦?呵呵,这次说的是继承体系中最多允许出现多少类,不是继承的层次,继承层次还是3,哈哈,哥思维很严谨的。

楼主,3这个数字是你随口说的,还是有一点道理啊。呵呵,3这个数字是深思熟虑的,3一般是人们公认的一个极限,比如,”事不过3“,”3足鼎立“,”3人行,必有我师“,......."3分天注定,7分靠打拼",”3,7开“。看到了吧,其实3和7这两个神奇的数字早就存在于中国民族的智慧中,不过我们还不太能把这些“放之四海而皆准”的道理,而推广到coding中来而已。

楼主,3和7能不能用在管理中呢?呵呵,哥现在还没机会去管理,所以我也不知道。但是我听过说一种叫”1-3-9“团队建设的方法,貌似使用起来还是非常有效的。所以啊...,我觉得这个问题可以推广。

楼主,那是不是男朋友或者女朋友最好也是3个啊,比如,新时代女性有很多标准:出得厅堂,入得厨房,写的了代码,斗得过色狼,这些标准很难在一个人上出现,那是不是......敲打,赶紧给我打住,哥说的是coding,可没有说社会伦理学的东东,你就少联想啦。




原创粉丝点击