最近公司 领导 和我聊起面 向对象(OOP)和设计模式。并说想要在公司中推广设计模式。但是我表示了 反对。
我想聊聊我为什么不喜欢设计模式,以及我信奉的软件 “设计模式”。
说实在的,我其实没看过 GoF 那本设计模式的书。以后也大概不会去读。但是设计模式的大名还是有听过
我之前在 Vue 团队写 Vapor 模式时。发现 Vue 的响应式系统确实使用了 OOP,但主要是出于性能上的考虑。当优化达到一定层级之后,哪怕是引擎层面的微小实现差异也会影响性能。所以我们选择 OOP,是因为它带来的优化便利,并不是因为我们想要套用某种具体的设计模式。
* Vue 的源代码中 ReactiveEffect、Dep、ComputedRefImpl 这些类的存在,是因为 V8 的 hidden class / inline cache 对固定形状的对象优化更好。
(如果理解有误,欢迎指出)
我在入行的初期学过 OOP,大约是 8 年前的事了,已经很久了。但是过去这几年,我逐渐觉得设计模式并不太适合 Vue 3 + TypeScript 的开发。如果不是为了性能优化,我现在也很少使用面向对象。我会这样看,一部分原因是受到了像 Anthony Fu (antfu) 这些人的影响。
* GoF 是 1994 年的 C++/Java 世界的产物。如今语言进化了,很多模式从"需要刻意设计"退化成了"语言原生特性"。 这就是为什么 antfu、Evan、Anthony Fu 那一派人不太谈 GoF。不是反对它,而是它已经融进语言里了,再单独命名反而显得笨重。
“ 模式之所以叫模式,是因为语言没原生支持它,你得手动重复实现。”
去年我读了一本关于如何更好的编程的书,我很快就爱上了它。我试着推荐给我的推友们,结果发现推友中已经有不少人读过了。而且也很喜欢!
这本书是《软件设计的哲学》(A Philosophy of Software Design)
我特别喜欢书中对复杂度的阐释方式,现在仍会时常翻阅。
我的 CLAUDE.md 提示词里也用了这本书的概念:
- 深模块(Design Deep Modules)
- 消除错误(Define Errors Out of Existence)
- 向下沉淀复杂性(Pull Complexity Downwards)
- 不同层不同抽象(Different Layer, Different Abstraction)
这边篇幅有限,就不展开这几个概念了。如果感兴趣的话,我可以之后仔细写写我自己的理解。
让我疑惑的问题:
设计模式如今还被使用,似乎更多是一种沟通时的共同语言。但是我们是否真的按照它的模式来设计代码架构呢?
它作为大家交流的语言和思想的工具如今是否还是合适的选择。是否落后,又是否有着与时俱进的新选择呢?
* 写了好多,以上都是我自己的主观想法,可以随便聊 🤗
显示更多
昨天的晚宴上,C位坐着一个大多数人没见过的湖南女人,她左边是库克,右边是马斯克。
40年前她还是个15岁辍学的农村打工妹。
她叫周群飞,1993年22岁的她拿着两万块,在深圳的一间三室一厅里开了厂。
那时她已经在深圳打了7年工。
5岁丧母。父亲做炸药出了事,眼睛瞎了,两根手指也没了。家里靠父亲编竹背篮过活。
她15岁辍学,跟着舅舅南下广东。
进了一家做手表玻璃的港资厂——澳亚光学。
白天在流水线上磨玻璃,晚上跑去深圳大学夜校。
她考了会计证、电脑操作员证、报关证、驾照。
3年后,她从流水线女工做到了厂长。
厂里来了越来越多老板的亲戚,排挤她。她辞职了。
辞职那天她没什么资本——就两万块,和8个一起从湖南出来的亲戚。
哥哥、姐姐、嫂子、姐夫。
他们租了三室一厅,既是车间,也是宿舍。
她一个人跑销售。揣着一本黄页,挨家挨户拜访表壳厂。
白天推销,晚上回来加班赶工,经常做到凌晨三点。
就这样过了10年。
2003年,一个机会来了。
摩托罗拉要做一款新手机,叫V3。要求薄到不能再薄,玻璃面板要超薄、超平、零瑕疵。
外企的标准把中国所有工厂都筛掉了。
她接了。
她把厂里几乎全部资源压上去,陪摩托罗拉的工程师改工艺,一遍遍打样。
V3全球卖出1亿台。
蓝思科技就此成立。订单从诺基亚、三星接连飞来。
2007年,又一个机会来了。
乔布斯发布了第一代iPhone,要求整块屏幕用一种从没量产过的强化玻璃,弧度、厚度、透光率,每一个参数都在工业极限的边缘。
苹果工程师跑遍全球,没人接。
她接了。
她带着团队和苹果工程师一起攻关三个月,把第一代iPhone的玻璃面板做了出来。
从那以后,iPad、MacBook、Apple Watch——苹果几乎所有玻璃,都交给了她。
她成了全球最大的触控玻璃供应商。
后来,特斯拉来了,宝马来了,奔驰、理想都来了。
汽车的中控、车窗、B柱玻璃,30家车企交给了她。
再后来,人形机器人来了。关节、传感器、外壳。
这就是为什么她坐在那张桌子的C位。
左边是库克——苹果所有玻璃她做了18年。
右边是马斯克——特斯拉的车窗、Optimus的关节,都在她手里。
有人问她,这一路她到底靠什么。
她没说运气,没说时代,没说勤奋。
她说了两个字:
"敢接。"
提问的人愣了一下。
她说:
"别人嫌麻烦的事,你接。 别人说做不到的事,你接。 摩托罗拉来的时候,中国没人敢接。 苹果来的时候,全世界没人敢接。 你接了,你就会了。 你会了,下一个来找你的人就更大。 机会从来不是'看见'的—— 机会是别人推开,你弯腰捡起来的那个东西。"
显示更多