唯不安宁者,方可得安宁!-演道网
许久未曾联系的轩哥找到我,说想一起写本关于 React 与 Redux 的书。
乍听到这个消息,我下意识选择了拒绝。
往者不可谏
一年之前,我在路上开始迷茫,欲望膨胀得快让自己炸掉,显得急不可耐。
我觉得这是一种危险的信号。在我眼中的程序员世界,不应该被受外界打扰。
于是我决定停下来思考。
一年时间,我躲在家里,避免一切不必要的社交。
吃清淡的东西,早晨会很早起来,读书跑步,然后在夜深之后再去写代码。
脑子里想的都是苏轼的语句,“回首向来萧瑟处,归去,也无风雨也无晴。”
但是效果并不无预想中来得好,蠢蠢欲动的内心,像生出枝丫的大树,还在不断长大。
而此时轩哥的一句话,就像是在我自以为已经宁静的湖面,投下了一粒石子,掀起了惊天波浪。
说起来从事前端开发也已经好几年了,从最初的 jQuery,到各种 MVC 框架,再到 MVVM 方案,一路走过来,总是时而志得意满时而彷徨失措。手里的工具越来越强大,长期的不安却不能减少半分。
14 年正是 angular 为代表的 MVVM 方案极流行的时候,但我一直没能心悦诚服地接受。不管是模板语言描述逻辑的方式,还是 angular 的各种 API 设计,都恰恰不太对我的胃口。
诚然,借助这样的方案,我们的开发效率得到了大大的提升,但接受它的同时我们要放弃一些我们熟悉却重要的东西,比如我们对数据、对组件的控制,比如 Javascript 本身的表达能力。
我隐隐觉得,要通过一次性的逻辑描述来完成界面的开发,简化我们与浏览器打的那些交道,工具也许可以不用这么复杂而庞大。
也正是在 2014 年我知道了 React 的存在,不过跟很多人一样,一开始我并没有能真正意识到它的价值。
后来的两年里,除了继续传统的组件化开发方式外,我也先后在自己业余的项目和公司的项目中尝试了 React 的方案,随着在传统开发方式的基础上自己的进一步探索,与对 React 理解的深入,我意识到,它正是在把我好长一段时间脑海中隐约产生的,却不能够清晰描述,更无法克服重重困难加以实现的范式实现了一遍:基于少量的简单优雅的接口,完成了对数据与界面间同步逻辑的抽取。
而有名的“React 全家桶”里另外一个重要的部分 Redux,则更是一个容易被误解的工具,它的好处在应用规模更大更复杂时更为明显;在逻辑简单的场景里,引入 Redux 的约定会导致代码变得繁复,反而可能不如不引入。
后来 React 与 Redux 的方案越来越火,几乎到了每个人知道一点,每个人都能说两句的程度。我自己也接触了不少其他的前端开发者们,他们有刚接触前端不久的新手,也有有着丰富的传统前端开发经验的老手。
很有意思的是,很多说自己掌握 React 开发,能讲上两句 React 好处的人,其实并不一定了解 React。他们使用 React 实现了一些功能,却常说不清楚 React 究竟解决了什么问题;他们熟悉 React 的 API 如何使用,却不知道 React 如何通过这些 API 让开发更加高效。
相比于英文社区常常有的关于为什么这么做、怎么做更好的讨论,中文的社区里更多的是如何快速上手 XXX 的入门教程,前端世界层出不穷的框架与方案,让我们疲于奔命。
二
来者犹可追
从那时起我就觉得,我们面对技术,应该提出更多的为什么。
与其花时间学习了五个框架/工具的用法,不如用这份时间好好思考一个框架的意义与思想,后者的收获,往往是更通用更有价值的。
再想到现在正有这样的机会,而自己又十分愿意为 React 社区作出贡献,我不由跃跃欲试。
“好”,我给轩哥回复。
决定开始写书后,才发现市面上关于 React 的书籍竟然相当少,而且很多通过照搬官方文档填充内容。这些内容读者自己去官网就能看到,而且更及时更准确,如果我们也这么做,又能有多少意义呢?
我跟轩哥约定,除非必要,我们应该避开官方文档里已有的内容。
技术总是日新月异,读者不需要一本内容固定不变的 API 参考手册,我们也恰恰可以讲更多社区的、自己的思考,它们关乎 React 与 Redux 的很多为什么,从这背后可以窥见一些一以贯之的思想,如保持行为可预测、如声明式地书写逻辑,基于这些看起来更形而上、不实用的东西,不仅是撰写依赖 React 的代码,我们可以在开发的方方面面都收益良多。
这样,很多像我们一样的开发者们,可以切身体会到新方案的价值,主动地去拥抱它们,而不是被动接受。
6个月的写作时间,竟然感受到了前所未有的平静。这是因为我在前行的路上没有一丝犹豫,没有一丝苟且。
不安恐怕就是我对问题动机的某种形容,当你始终产生不安,始终在人性宣泄下,你总是需要不停地提问,而解决问题的方法不是把自己囚禁在原地,而是不停的探索。
三
找到内心的安宁
到了下半年,这本书终于大致完成,同时,我决定入职七牛云。
为什么?因为我想到一条高速公路上去奔跑!
愿你不安的心,在前端的路上能够走的更远。
转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn