编程中最神奇的数字,你知道吗?
这个问题可是没有什么标准答案。 对于万能的编译器来说,你的继承体系哪怕有成千上万个类也没关系。但是有句话说的好,“要针对⼈编程,⽽不是针对机器编程”。虽然机器可以⽀持⽆限的接⼝,可以⽀持⽆限的函数参数....... 但是没办法啊,我们的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,可没有说社会伦理学的东东,你就少联想啦。
发布评论