在编程的社区中,有些现象让我感到十分困扰。(为了更好地阐述我的观点,)我将以 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 问题。如果提问者一开始就使用了不合适的工具,那么推荐新的工具并没有任何问题。我指的 高射炮爱好者 ,是那些 在不了解背景的情况下就直接推荐 的人。

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:943129070,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

过犹不及,别再在编程中高射炮打蚊子 1相关推荐

  1. [译文]过犹不及,别再在编程中高射炮打蚊子

    原文链接:Anyway,stop recommending bazookas to kill flies in programming. 众成翻译地址:过犹不及,别再在编程中高射炮打蚊子 译者注:翻译 ...

  2. 网络编程中的关键问题总结

    网络编程中的关键问题总结 总结下网络编程中关键的细节问题,包含连接建立.连接断开.消息到达.发送消息等等: 连接建立 包括服务端接受 (accept) 新连接和客户端成功发起 (connect) 连接 ...

  3. 编程中new[]和delete[]应该如何使用?

    在平时资料中,我们常看到:new和delete,new[]和delete[]一定要配对使用!有时候不配对使用也不会出现问题.也许你也是只知其然,不知其所以然,然而我也有点懵了. 在平时资料中,我们常看 ...

  4. 并发编程中的大坑:你的直觉有序性问题

    引言 并发编程无疑是编程领域中的上甘岭,他的"难"主要体现在两个方面,从宏观上来讲,主要是如何确定最优化的模型,例如Redis是单线程模型,Nginx是多进程单线程模型,而Nett ...

  5. 作为程序员,你在编程中吃了哪些数学的亏?

    作为程序员你在编程中吃过哪些亏?(以下留言来自图灵读者亲身经历) 精彩评论 我再等一分钟 吃过最大的亏就是现在看数据分析与挖掘的书,面对各种各样的矩阵.积分.微积分等各类高数,线代的知识......头 ...

  6. IP地址的三种表示格式及在Socket编程中的应用

    转自:http://blog.csdn.net/hguisu/article/details/7449955 使用TCP/IP协议进行网络应用开发的朋友首先要面对的就是对IP地址信息的处理.IP地址其 ...

  7. shell编程中for/while/util/case/select/break/continue

    2019独角兽企业重金招聘Python工程师标准>>> Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for.while和until.w ...

  8. cas无法使用_并发编程中cas的这三大问题你知道吗?

    在java中cas真的无处不在,它的全名是compare and swap,即比较和交换.它不只是一种技术更是一种思想,让我们在并发编程中保证数据原子性,除了用锁之外还多了一种选择. 一.cas的思想 ...

  9. java内存栅栏_内存屏障(Memory Barriers/Fences) - 并发编程中最基础的一项技术

    我们经常都听到并发编程,但很多人都被其高大上的感觉迷惑而停留在知道听说这一层面,下面我们就来讨论并发编程中最基础的一项技术:内存屏障或内存栅栏,也就是让一个CPU处理单元中的内存状态对其它处理单元可见 ...

  10. linux shell let命令,shell编程中的let与(())

    let与(()) 在shell编程中是可以互换的:它们在循环语句中控制变量变化非常有用: 使用let语句或者(())我们可以像C语言那样写程序~ 对于变量赋值,判断什么的不用繁琐的$VAR, -eq等 ...

最新文章

  1. verilog基础篇RAM IP核的使用
  2. 二叉搜索树的最小绝对差
  3. 解析 WordPress 插件机制
  4. mvc的视图中显示DataTable的方法
  5. To install 64-bit ODBC drivers
  6. python 的案例实战_python案例实战之一
  7. ServletContext(重要)
  8. django报错:ImproperlyConfigured和AppRegistryNotReady
  9. java web 许令波_Java Web——Web概述
  10. 互联网轻量级框架SSM-查缺补漏第九天
  11. U-Boot源码之串口驱动
  12. html5 文本框只能输入正整数,控制input文本框只能输入正整数
  13. 腾讯会议如何使用讲演者模式进行汇报(nian gao)
  14. Hbuilder X自定义安装微信开发工具无法启动
  15. 几种基本的数字正则表达式[转]
  16. linux可用直播软件,免费直播软件OBS Studio下载 支持Windows/Mac和Linux
  17. 【总结】大学生寒假社会实践总结-社区志愿关爱模板
  18. EXCEL表格 显示 超长 数字 E+ 变成 文本格式,数字全部显示
  19. 惯导系列(二):滤波相关的算法
  20. win10修复引导工具怎么用【系统天地】

热门文章

  1. 实验5——JAVA常用类
  2. 在一棵度为3的树中,度为3的节点个数为2,度为2的节点个数为1,则度为0的节点个数为()----百度2016研发工程师笔试题(六)
  3. 用python提取pdf中的文字,表格以及读取csv文件
  4. springboot毕设项目计算机实验室设备管理系统mam10(java+VUE+Mybatis+Maven+Mysql)
  5. mysql按照月份统计数据(CASE表达式)
  6. Quick-Cocos2d-x初学者游戏教程(2) ——【Quick内部的代码结构及相应的原理】
  7. 安永计算机编程审计,在安永做审计的三次流泪 刻骨铭心
  8. 多来a梦html代码,html5 canvas绘制哆啦A梦机器猫图形代码
  9. 小程序学习(七):尝试QQ小程序,并初步连接PHP后台(QQ小程序连接PHP后台接口,链式函数)(别说了,我就是喜欢傻瓜教学)
  10. EventBusException:Subscriber class and its super classes have no public methods with the @Subscribe