“跨界”有益
07 Sep 2018
Reading time ~1 minute
前几天参加面试,面试官问我,之前那些与前端无关的技术或项目经历,对自身的前端发展有何影响?
跨界思维
所谓跨界思维,就是用多角度,多视野,交叉,跨越的看待问题和提出解决方案的一种思维方式。
跨界思维让人们在解决问题上可以跳出原来固有的思维体系,站在一个旁观者的角度去思考,而往往那些看似无关紧要的联系能给人以瞬间的启发。
本文并不是讨论跨界思维,上面的两句话已经说明了很多问题,下面主要聊一聊小范围的角色转换。
语言魅力
先感受下文学作品转换的魅力。
夏曼·蓝波安在《海浪的记忆》里写他父亲八十几岁蹲在兰屿的海边,他说:“父亲是很低的夕阳了。”
“很低的夕阳” 就是达悟语的特殊语言模式,从汉语去感受,瞬间意味无穷。
前后端融合
说说我的技术经历,驱动、数据库、虚拟化、渗透测试、服务端、移动端都做过,直到 3 年前才转向专职前端。高级语言间的差异不是一点半点,基本发展过程是 过程式编程 => 面向对象编程 => 函数式编程
。
这些语言间的思维差异可不仅仅是阳春白雪和下里巴人这么简单。比如 Java 是强类型语言,JavaScript 是弱类型语言,这个特性就能引发出一系列不一样的检查、衍变机制。
但每种语法都有劣势和优势,纵观近几年语法标准的发展过程,能非常直观的发现各个语言之间相互的融合趋势已锐不可当。比如 TypeScript 之于 JavaScript、Lambda 表达式之于 Java。
各个高级语言间的语法都相爱相杀,若你有了一定的基础后,通过反差去体验新的语法,效果至少比直接读来要好的多。
另外,各个语言因为应用场景不同,逐渐也发展出特定的方法论。比如用 C 语言去写驱动时,要时时遵循防御性编程的理念,根本容不得你去试错。因为有这段经历在,后面在写代码时,首要就是设计逻辑、思考结构,这样写出来的代码才更为可控、健壮。一直遵循这种理念发展下去,对个人的发展绝对大有帮助。
我的经历基本上是 纵向 + 横向的全栈
都参与过,对应产品的上下游链路基本上都涉及。那么,至少每一位置的利弊点都清楚。即使只做前端,在考虑问题时也不会仅仅自扫门前雪。如果每个岗位的人都能多一些理解,拥有同理心且付诸行动,对整个产品而言一定是大有裨益。
顺带也谈一下为什么 “纵向的全栈慢慢的都会遇到瓶颈”。纵向的全栈现在很流行,基本上是一种高级语言的通吃。先抛开此种模式的恰当与否,其实现大都采用桥接的模式,必然加深关键路径长度,会引起性能的损耗。一旦业务场景复杂,这个桥的负荷就会加剧,直至产生瓶颈,最为典型的就是 React Native。
结尾
在感受过各种思维差异后,然后相互借鉴融合,加深理解,慢慢就会横看成岭侧成峰,风景大不同。
这也正是学习的魅力所在:见识更大的世界,体验多样的风情,为人生不断做加法
。
参考资料
- 《孤独六讲》
alcat2008
Dreamer, Practitioner, Incomplete Front-ender