(点击上方蓝字,快速关注我们)
来源:伯乐在线专栏作者 - grapeuncle
点击 → 了解如何加入专栏作者
如需转载,发送「转载」二字查看说明
第一种工程师
第二种工程师
第一种软件工程师是天生的聪明人,他们处理复杂事物的能力是天生的,可以流利的心算三位数加三位数带进位的加法。根据认知负载理论,这类人的working memory容量超越常人,他们可以将多种因素同时纳入大脑进行思考而不会出现大脑过载。他们写出来的复杂程序,一般的看法是没有掌握分而治之的正确编程风格,其实际是他们脑筋太好使,普通人为了克服认知过载而发明的编程方法对他们而言纯粹就是多此一举。当遇到更为复杂的问题时,他们自然会分而治之。缺点是不经刻意训练,他们按照自己的认知能力写出来的程序普通人维护起来有困难。
第二种工程师是天资正常的普通人,working memeory的容量大概就是可以心算两位数加两位数带进位的加法。但是他们掌握了解决认知负载的方法。阅读复杂代码的时候,他们借助纸笔,把对其中的小片段的分析结论先写下来,避免大脑缓存太多东西,然后就这些数量变少的中间结果再进行分析,始终保持放入大脑的东西不要太多。写代码的时候,他们无法一下子把所有的细节想清楚,因此需要分步搞定,要么先把关键步骤逐次实现好再去整合整个方案,要么先写好一个大而化之的框架,然后分头实现细节。往往写完之后会发现有一点顾此失彼,因此还要调整清理一番。特点是不管那种方法,大脑在任何一个阶段都不会过载。按照这种方法写出来的代码,也不会让它的读者大脑过载。
对于团队来说,我们希望工程师具有第一种工程师的天份,同时写出来的代码要像第二种工程师那样方便理解。需要注意提防的是第三种工程师,他们缺乏第一种工程师的天资,同时还没有掌握第二种工程师的技能,经常自己被自己写出来的代码搞糊涂。
觉得本文对你有帮助?请分享给更多人
关注「ImportNew」,提升Java技能