写点什么

等几年,再用新框架

2020 年 1 月 15 日

等几年,再用新框架

在技术领域,尤其是前端领域,新框架出现的频率令人咋舌。新框架问世之初,大多打着解决老的流行框架痛点的旗号,声势浩大,但随着时间的推移,却发现其自身出现了更多新的问题无法解决。技术浪潮面前,不要急着用新框架。新技术很酷,但选型要慎重。


在新框架发布之后,先不要急着学,等上几年再说。不要害怕会错过什么,即使当下错过了,来年总能学回来。这又不是飞向木星然后一去不复返的宇宙飞船。因为害怕错过而做出的任何决定只会让你原地踏步。既然向前跑,就应该产生价值,而不是停留在原地。所以,你不应该因为害怕错过而做出任何决定。


新技术的发起者难免会过度炒作他们的作品。没有人会说:“我们新推出的技术其实很平庸”。他们不会这么说的,更不可能在正式的场合(比如苹果开发者大会、StackOverflow 或播客)上这么说。即使是公司内部开发的工具或框架,他们也会倾向于说自己的东西好,因为他们的东西得到采用对他们的职业发展来说是有利的,同时也给他们带来了成就感,而我们所有人都喜欢这种感觉!


框架作者并不是唯一炒作框架的人。年轻的开发者对什么技术都感到新鲜,他们很容易就会成为某某框架的拥护者。但是,你不能因为框架的拥护者说了什么就做出决定,因为他们肯定会为框架说好话。


新技术难免有缺陷,它们很少会像它们所承诺的那么好。它们可能在某些方面会好一些,但在某些方面会差一些。在想好自己需要什么之前不应该鲁莽使用它们。它们通常没有完善的文档,框架本身也很粗糙。没有成形的规范可以告诉我们如何有效地使用它们,或者在什么情况下使用它们才是有意义的。如果你用了,团队的其他成员为了看懂你的代码,也要跟着学,这就给他们带来了额外的负担。所以,先等上几年,等这些问题都解决了再说。


有些框架问题多多,比如 iCloud Core Data Sync,它会丢失用户数据!你不希望丢失用户数据,但如果你总是迫不及待地采用新技术,发生这样的事情就在所难免。如果你匆匆忙忙选择了一个新框架,在花了很多时间研究它之后,你会发现它可能并不适合你,或者即使可以用,也可能在性能、向后兼容性等方面存在严重的问题,而这些是你无法预料的。采用新框架不是小事,不是“我们切换到 Swift UI 只需要三个礼拜就可以了”,如果真的那么简单,那就可以无所顾忌了。但问题是,在软件开发领域,我们面对的通常是用未知的工作量换得未知的好处,所以我们不得不变得谨慎而保守。


如果新框架不如预期,你不得不切换回来,那就要付出双倍的成本。即使不需要切换回来,很可能出现的情况是,有些变得更好了,有些变得更差了,那就等于付出的努力没有为你带来额外的好处。你只是做了一个改变,而不是改进。


新技术的出现并不会让旧技术马上过时。例如,Swift 1.0 是在 2014 年发布的,但直到 2016 年才准备就绪。但这并不意味着你一定要在 2016 年开始使用它,你完全可以等到 2018 年。新的编程语言、工具或框架的出现并不会让旧技术马上过时,这中间通常会有好多年的过渡期。你可以在过渡期的任何时刻采用它们,没有必要在刚推出时就迫不及待地上船。


英文原文

Learn New Frameworks after a Few Years, Not Immediately


2020 年 1 月 15 日 10:212914
用户头像
小智 前 InfoQ 主编

发布了 399 篇内容, 共 316.6 次阅读, 收获喜欢 1757 次。

关注

评论 2 条评论

发布
用户头像
技术的升级是迭代式的往前的,这样才会更好适应之。使用新架构,跨越最大的不是技术本身,而可能是技术演进背后的逻辑。
2020 年 01 月 17 日 13:52
回复
用户头像
等等党大获全胜
2020 年 01 月 15 日 10:34
回复
没有更多了
发现更多内容

iOS面试高薪,进阶 你会这些呢嘛?

ios swift 面试

基于 getty 的分布式事务框架seata-golang 通信模型详解

apache/dubbo-go

dubbo dubbo-go dubbogo seata

第三周学习心得

cc

美团十年架构师精心分享:手写分布式消息中间件RocketMQ笔记

小Q

学习 面试 微服务 MQ 中间件

2020年我凭借这份pdf成功拿到了阿里,腾讯,京东等六家大厂offer

Crud的程序员

Java 阿里巴巴 程序员 java面试 offer

Week 12

黄立

2021数字化投资规划,你做好了吗?

ThoughtWorks洞见

架构 业务架构

作业-第8周

arcyao

shell脚本的使用该熟练起来了,你说呢?(篇三)

良知犹存

Shell

架构师训练营第 1 期 - 第十二周总结

Todd-Lee

极客大学架构师训练营

【小菜学网络】物理层概述

fasionchan

网络编程 计算机网络 网络协议 TCP/IP 物理层

生产环境全链路压测建设历程之六 淘宝网2012年双十一的痛

数列科技杨德华

架构师训练营第 1 期 - 第十二周作业

Todd-Lee

极客大学架构师训练营

Tronex智能合约APP系统开发|Tronex智能合约软件开发

开發I852946OIIO

系统开发

实践出真知!华为Android面试真题解析,附超全教程文档

欢喜学安卓

android 程序员 面试 移动开发

第三周设计作业

cc

Gradle使用问题梳理

maijun

Gradle

找到相同链表的点

落朽

腾讯T3大牛手把手教你!从外包月薪5K到阿里月薪15K,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

学习笔记丨Linux中数据提取相关命令

Liuchengz.

Linux ubuntu #Ubuntu

TRONex智能合约APP系统软件开发

开發I852946OIIO

系统开发

图解MyBatis

田维常

《前端算法系列》如何让前端代码速度提高60倍

徐小夕

Java 算法 前端 前端进阶

100+大厂应届offer,从7个维度全面分析

程序员小灰

编程 面试 面经 腾讯大厂

架构师养成第三课

万有引力

网易游戏部门Java架构师必看的“完美版”Netty源码笔记

Java架构追梦

Java 学习 源码 架构 Netty

复盘不止复盘,更是个人认知升级加速器?

Alan

复盘 思维 技术人应知的创新思维模型 28天写作

记录一次腾讯c/c++ linux后台开发岗面试经历(面试题含答案)

linux大本营

c++ Linux 腾讯 后台开发 架构师

《架构即未来:现代企业可扩展的Web架构流程和组织》.pdf

田维常

架构

TCC Demo 代码实现

Java 分布式事务 Demo TCC

天下武功,唯“拆”不破之MECE原则一| 技术人应知的创新思维模型 (5)

Alan

职场成长 技术人应知的创新思维模型 组合创新 结构化思维 28天写作

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

等几年,再用新框架-InfoQ