level 10
沙洲客🍼
楼主
熬了大半夜终于写完了篇博文,分享给吧友一起探讨吧。文章太长,且有代码,不方便贴全文,只贴第一段和链接了。
我也是半路出家转的web开发,有想得不周的地方大神们轻拍啊。
----
近来接到一项工作,为项目中的HTML动态表格增加几个新的功能。看着前辈留下的代码,让我如鲠在喉。所有的功能堆放在一个Backbone View里,每当数据发生变化,这个View会用一个包罗万象的Jade模板,结合新数据,重新构建整个DOM树。且不说这是否会给用户带来什么不愉悦的体验,单是不断增加的扩展开发难度就足以令人抓狂。每一个扩展开发的程序员都要了解现有所有代码,才不至于把现有的功能玩坏,而这个“所有代码”会随着时间的推移不断增长。按照现有的设计继续下去,必将陷入程序员的节操递减螺旋,一边骂着代码好烂,一边努力将其便的更烂。
经过一段时间的纠结,我终于下定决心重构(很可能是重写)这个表格。主要目标可以概括为两句话在不修改现有代码的情况下增加新功能,所有的功能能按需组合
----
全文链接
http://codepen.io/wewei/post/design-pattern-extensive-decorator
2016年01月05日 20点01分
1
我也是半路出家转的web开发,有想得不周的地方大神们轻拍啊。
----
近来接到一项工作,为项目中的HTML动态表格增加几个新的功能。看着前辈留下的代码,让我如鲠在喉。所有的功能堆放在一个Backbone View里,每当数据发生变化,这个View会用一个包罗万象的Jade模板,结合新数据,重新构建整个DOM树。且不说这是否会给用户带来什么不愉悦的体验,单是不断增加的扩展开发难度就足以令人抓狂。每一个扩展开发的程序员都要了解现有所有代码,才不至于把现有的功能玩坏,而这个“所有代码”会随着时间的推移不断增长。按照现有的设计继续下去,必将陷入程序员的节操递减螺旋,一边骂着代码好烂,一边努力将其便的更烂。
经过一段时间的纠结,我终于下定决心重构(很可能是重写)这个表格。主要目标可以概括为两句话在不修改现有代码的情况下增加新功能,所有的功能能按需组合
----
全文链接
http://codepen.io/wewei/post/design-pattern-extensive-decorator