在技术领域,尤其是前端领域,新框架出现的频率令人咋舌。新框架问世之初,大多打着解决老的流行框架痛点的旗号,声势浩大,但随着时间的推移,却发现其自身出现了更多新的问题无法解决。技术浪潮面前,不要急着用新框架。新技术很酷,但选型要慎重。
在新框架发布之后,先不要急着学,等上几年再说。不要害怕会错过什么,即使当下错过了,来年总能学回来。这又不是飞向木星然后一去不复返的宇宙飞船。因为害怕错过而做出的任何决定只会让你原地踏步。既然向前跑,就应该产生价值,而不是停留在原地。所以,你不应该因为害怕错过而做出任何决定。
新技术的发起者难免会过度炒作他们的作品。没有人会说:“我们新推出的技术其实很平庸”。他们不会这么说的,更不可能在正式的场合(比如苹果开发者大会、StackOverflow 或播客)上这么说。即使是公司内部开发的工具或框架,他们也会倾向于说自己的东西好,因为他们的东西得到采用对他们的职业发展来说是有利的,同时也给他们带来了成就感,而我们所有人都喜欢这种感觉!
框架作者并不是唯一炒作框架的人。年轻的开发者对什么技术都感到新鲜,他们很容易就会成为某某框架的拥护者。但是,你不能因为框架的拥护者说了什么就做出决定,因为他们肯定会为框架说好话。
新技术难免有缺陷,它们很少会像它们所承诺的那么好。它们可能在某些方面会好一些,但在某些方面会差一些。在想好自己需要什么之前不应该鲁莽使用它们。它们通常没有完善的文档,框架本身也很粗糙。没有成形的规范可以告诉我们如何有效地使用它们,或者在什么情况下使用它们才是有意义的。如果你用了,团队的其他成员为了看懂你的代码,也要跟着学,这就给他们带来了额外的负担。所以,先等上几年,等这些问题都解决了再说。
有些框架问题多多,比如 iCloud Core Data Sync,它会丢失用户数据!你不希望丢失用户数据,但如果你总是迫不及待地采用新技术,发生这样的事情就在所难免。如果你匆匆忙忙选择了一个新框架,在花了很多时间研究它之后,你会发现它可能并不适合你,或者即使可以用,也可能在性能、向后兼容性等方面存在严重的问题,而这些是你无法预料的。采用新框架不是小事,不是“我们切换到 Swift UI 只需要三个礼拜就可以了”,如果真的那么简单,那就可以无所顾忌了。但问题是,在软件开发领域,我们面对的通常是用未知的工作量换得未知的好处,所以我们不得不变得谨慎而保守。
如果新框架不如预期,你不得不切换回来,那就要付出双倍的成本。即使不需要切换回来,很可能出现的情况是,有些变得更好了,有些变得更差了,那就等于付出的努力没有为你带来额外的好处。你只是做了一个改变,而不是改进。
新技术的出现并不会让旧技术马上过时。例如,Swift 1.0 是在 2014 年发布的,但直到 2016 年才准备就绪。但这并不意味着你一定要在 2016 年开始使用它,你完全可以等到 2018 年。新的编程语言、工具或框架的出现并不会让旧技术马上过时,这中间通常会有好多年的过渡期。你可以在过渡期的任何时刻采用它们,没有必要在刚推出时就迫不及待地上船。
英文原文
Learn New Frameworks after a Few Years, Not Immediately
评论 2 条评论