乐高积木感悟

Posted by Yano on June 3, 2019

上周四公司发了六一礼物——公司吉祥物的乐高积木。从来没有拼过积木,以为很简单就能搞定,没想到耗费了那么长时间……在拼积木时有些感悟,记录下来。其实整体并未完全按照说明书,因为有一个步骤拼错了,意识到的时候已经很难再改正了……

步骤及成品

积木分类

积木分类

拼装身体

拼装头部

拼装胳膊

整体效果

整体效果

拼装感悟

不要拘泥于形式

开始拼装时就像在绣十字绣一样,进展十分缓慢。第一步拼装身体就卡住了,因为底层的几块积木并不能直接固定,需要和第二、三层同时拼装才行。经过一段时间的探索,我意识到谨慎固然重要,但是也并不一定要完全按照说明书来拼装。

就像写代码,有时候要自下而上,有时候又需要自上而下。在开发一个项目或需求时,需求文档或代码规范是必要的,但是又不能太拘泥于这些。即使是再复杂的项目,只要将任务合理拆解,就能在高质量的基础上保持效率。

分门别类

这个积木零件大概在800个左右,种类约为25种。必要的分类是必须的——因为拼装特定的部位,用到的零件大多是相同的,不可能每次都在800个零件中找一遍,这样时间复杂度就是 o(n!) 了。但是又没有必要将所有种类都分门别类整理好——桌子装不下……特别少的零件可以放在一起。

这又好比是「二八法则」,仅仅将前几名的大零件整理好,费不了多少时间,却能分类到80%。

组合

我在拼装的时候,看着设计图就感叹玩具设计的巧妙之处:有时候上层的零件仅仅与下层错位拼接,就能够使整个系统变得牢固。单个零件并不能组成什么形状,但是很多个零件有序组织起来时,竟然就能搭建出很多规律的形状!

在设计模式中经常看到的『组合模式』,也许就是这个道理吧。单个类就像上面的零件一样,也许并没有什么特殊的功能。但是当这些类以某种方式组合在一起时,却能完成任何复杂的产品需求。

结束语

在拼的时候一直想放弃,一直在纠结这个时间都可以看两部电影了,为什么要坐在这里一直拼玩具?不过拼装过程中,整个人的思绪都沉淀下来,精神全部集中在指尖,思考应该如何组合这些零件,想想也挺有意思的。这并不是一个完美的作品,不过值得纪念~