明天青苗训练营就开始了,今早上特意买了一个杯子,到了公司,我去洗了下杯子,发现两端都可以拧开,清洗很容易,里面有个白色的橡胶环,不知道干嘛吧,我就扔了。之后我去打水,发现无论哪边装,水都会漏,这时候我突然明白那个环是干嘛的了,赶忙回去找,没找到。回到工位上,盯着这个漏水的杯子,怎么看怎么不顺眼。
是,杯子设计的很灵活,两端都可以打开,可以方便的清洗,但是他的灵活性确实以易用性为代价的,为了使用这个杯子,我需要组装一系列的东西,掉了一个环他就不能用了。是可以灵活替换一些东西,但也使得职责分散,每个环节出错都是导致整体的不可用。
设计模式、函数式、层次、模块、组件、插件等等,拆分是为了更好的复用,可以更动态的组合,但是拆分的太细反而会使得使用成本过高。拆分要适度,结合具体的情况,适度的把代码分散到不同的代码单元中去,独立的维护和扩展。架构之初不要过度设计,有的时候遇到了问题,再去拆分重构也无可厚非,灵活性和易用性的的权衡是一门危险的艺术。
从思索中回过神来,我看着这个杯子,噘着嘴,md,我明天参加训练营,要是用这个杯子。。。。