过犹不及,别再在编程中高射炮打蚊子

2018-11-10 admin

在编程的社区中,有些现象让我感到十分困扰。(为了更好地阐述我的观点,)我将以 Vue 作为例子,尽管这同样存在于其他编程领域之中。

首先,我们一起来看看问题的根源。

在编写代码时,可能会遇到一些问题,自然想(前往社区)寻求帮助。此时,你会迫切地想得到问题的解决方案。然而,我对部分的问题回答者保留意见。他们鼓吹提问者 切换工具、类库或者整个框架 ,而不是根据实际情况提供一个恰到好处的 解决方案 。

部分回答者不会尝试去了解你所遇问题的背景。他们会建议你去用 高射炮 ,尽管你只想杀的 bug 是只 蚊子 。

这实在是答非所问!比如我在烤一个蛋糕时,问你:

我正在烤一个蛋糕,烤箱应该设置多少度呢?

我期待的答案是告诉我应该设置什么温度,然而回答却并非如此:

别烤蛋糕了,你做过沙拉吗?

在社区中类似的场景比较常见。我不是想指责什么,但这并不是一个好现象。我刚接触编程时,也经常犯这个错误。但之后我意识到这并不对。

我并不是说换一个工具就不能解决问题,我的意思是: 需要了解问题的需求与背景 。

与其建议对方 用自己正在用的 ,不如在了解背景之后, 提供一个恰到好处的解决方案 。不要因为熟悉某项技术,就不断怂恿他人使用。

那么,Vue 的社区有什么问题呢?

在 Vue 的社区中,无论是在 Facebook、论坛还是 Discord,只要涉及到处理 state 或者 SEO 的问题,回答者经常在 询问提问者项目的规模 之前,就给出一样的回答。

  • 提问者:我 Vue 的项目中碰到一点 SEO 问题 […] 我该怎么办呢? - 回答者:你尝试过 nuxt 吗?

这并不是好的答案?如果提问者的项目中并未使用 nuxt,回答者首先应该根据提问者的项目背景提供解决方案,而不是建议他直接去使用 nuxt。

不要误会,我喜欢 nuxt,nuxt的作者是法国人,而我一向法国兄弟的好哥们。我的观点是:nuxt 并不是在 Vue 项目中解决 SEO 的唯一方案。

迁移到 nuxt 并不是一件简单的事情,nuxt 有自己的架构,如果和现在的架构不兼容时,迁移的成本并不低。

因此,告诉提问者:“ 用 nuxt 就好 ”,实在不是好的解决方案。这和只建议人们使用 prerender-spa-plugin 或其他工具是一样的。

  • 提问者:有两个组件,我想让他们共享状态,我该怎么做呢? - 回答者:用 vuex 就好。

vuex 是两个组件共享状态的唯一方案吗?显然不是!

我也十分喜欢 vuex,我在项目中经常使用它,但 vuex 在小的项目中,实在是大材小用。先了解背景与需求,再去回答对应的问题!

在 Vue 中,要共享状态, 至少有三种不同的解决方案 :共享一个响应式的对象、Event Bus、Vuex。 https://vuejs.org/v2/guide/state-management.html#Simple-State-Management-from-Scratch

除非是提问者要求的,不然在推荐一个新工具之前,应该先去了解问题的背景。

虽然我十分喜欢 Vue,但如果有人问我: 我在登录页中应该使用什么呢? 。我不会直接告诉他: 使用Vue 。我会先询问他,在页面中要实现什么功能。

以上只是冰山一角。

这只是一点抱怨。我之前也经常这么做,但我觉得这只是 将自己喜欢的强加于对方 ,但并没有解决 提问者的问题 。

Have a nice day~编程是一件美好的事情。

最后:不少人在 reddit 上谈论 XY 问题。如果提问者一开始就使用了不合适的工具,那么推荐新的工具并没有任何问题。我指的 高射炮爱好者 ,是那些 在不了解背景的情况下就直接推荐 的人。

原文链接:https://www.jianshu.com/p/673…

原文链接:https://segmentfault.com/a/1190000016971779

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-45088.html

文章标题:过犹不及,别再在编程中高射炮打蚊子

相关文章
typeof、instanceof和contructor的区别
typeof:以字符串的形式返回变量的原始类型,typeof在两种情况下会返回"undefined":一个变量没有被声明的时候,和一个变量的值是undefined的时候,注意,typeof null也会返回object,...
2015-11-12
jQuery中DOM树操作之使用反向插入方法实例分析
本文实例讲述了jQuery中DOM树操作之使用反向插入方法。分享给大家供大家参考。具体分析如下: 使用反向插入方法 这里我们先把创建的内容插人到元素前面,然后再把同一个元素插人到文档 中的另一个位置。通常,当在jQuery中操作元素时,利用...
2015-11-13
可以从CSS框架中借鉴到什么
现在很多人会使用 CSS 框架进行快速建站。   那 CSS 框架是什么呢,它通常是一些 CSS 文件的集合,这些文件包括基本布局、表单样式、网格、简单组件、以及样式重置。使用 CSS 框架大大降低工作成本进行快速建站。   当然对于一些大...
2016-03-11
jQuery中DOM树操作之复制元素的方法
本文实例讲述了jQuery中DOM树操作之复制元素的方法。分享给大家供大家参考。具体分析如下: 复制元素 前面提到的操作包括:插人新创建的元素、将元素从文档中的一个位置移动 到另一个位置,以及通过新元素来包装已有的元素。可是,有时候也会用到...
2015-11-13
H5即将迎来黄金时代 轻应用再成行业焦点
鎽樿�侊細浠庣伀閫熻交搴旂敤鑾峰緱鎶曡祫绛変腑涓嶉毦鐪嬪嚭锛孒TML5鍗冲皢杩庢潵榛勯噾鏃朵唬銆傝秺鏉ヨ秺澶氱殑浼佷笟鎴栧垱涓氳€呭紑濮嬫秹瓒矵5锛岃�╄交搴旂敤鍐嶆�℃垚涓鸿�屼笟鐨勭劍鐐癸紝鎺ヤ笅鏉ュ皢鏈夋洿澶欻5寮曟搸浠ュ強鏇村�欻5...
2015-11-12
在 Microsoft Azure 中使用 MEAN 堆栈基于开放数据协议
网络开发人员通常构建伟大的应用程序在客户端使用JavaScript和ASP(c#或Visual Basic . NET)在服务器端。 但是如果你能使用一个共同的语言来构建应用程序的所有层堆栈,从浏览器和服务器端业务处理服务层,甚至在数据库查...
2015-11-12
WebSocket断开原因分析,再也不怕为什么又断开了
阅读原文:https://wdd.js.org/websocket-… 1. 把错误打印出来 WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来。 在线demo地址:https://wdd.js.org/we...
2018-04-25
三步搞定vue在vscode的环境配置问题
1. vscode基础开发插件 vscode-icons 图标美化 Debugger for Chrome 调试 Beautify 代码格式化 Prettier 代码格式化 ESLint 代码规范 JavaScript (ES6) cod...
2017-12-25
JS中Select下拉列表类(支持输入模糊查询)功能
下面给大家分享一段代码关于select下拉列表类支持输入模糊查询功能的实现代码,具体代码如下所示: <span style="font-size:14px;"> <HTML> &lt...
2017-03-06
2014年十大编程语言
近日,IEEE Spectrum推出了一个最流行的编程语言排行榜。排行榜筛选了12项指标,综合了10个来源(含 IEEE Xplore、Google、GitHub)的数据,最终评选出了下面这个排行榜(满分100,得分越高排名越靠前),其中的...
2015-11-11
回到顶部