为什么用户关心你的代码编写方式

64 阅读4分钟

早在2011年10月,Ryan Dahl写了一篇题为"我几乎讨厌所有的软件"的博文,其中他断言:

软件中唯一重要的东西是用户的体验。

我完全同意这句话,但我认为它的含义比Ryan所建议的更广泛。

在以前的雇主那里,我被要求在一个弹出窗口的内容中添加一个单一的复选框和标签。当被问及这需要多长时间时,我考虑到应用程序的这部分逻辑是在一个超过1000行的Backbone视图中,并且它扩展了另一个超过2000行的Backbone视图。 我估计这需要一个星期,而项目经理很惊恐。更糟糕的是,它实际上花了将近三周的时间。😱

为什么会花这么长时间?这段代码是不可维护的。我能够很容易地添加复选框,但从复选框中获取数据以更新模型是一场噩梦。如果这还不够,我用我的黑客例子引入的bug数量也很吓人,因为(当然)这些文件到处都有泄漏的抽象,而且完全没有测试。

现在想想,如果这个组件是用SOLID编程原则(DRY,SRP,等等等等)构建的。我也许可以在一天之内完成这个功能。

那么,应用程序的代码编写方式是否影响了最终用户?当然有。用户是否关心他们不得不为新功能等待几周而不是几天? 是的,他们完全关心。


所以,是的,这是真的。软件中唯一重要的是用户的体验。我们创造计算机是为了改善我们的生活,如果我们使用的软件不能做到这一点,那么它就是失败的。

用户的体验是间接的,但与我们如何构建软件有着密切的联系。

所以,最大的问题是。对用户来说,我们使用最新的JS框架、构建工具、const与let、分号、标签、git合并策略或特定的部署服务是否重要?当然不是!

我们衡量成功的标准应该是我们如何很好地提供用户想要的东西(而不是更多)。我们对工具的选择应该基于这一基本目标。

同时,最新的技术和良好的用户体验并不相互排斥。最新和最伟大的技术可以是实现这一目标的好方法。

那么,为什么这很重要呢?

我们把时间无休止地浪费在影响不大的细枝末节上--我们是否应该在我们的JavaScript中使用分号(不),或者用多少个空格来缩进(两个),但我们应该把注意力放在有重大影响的技术选择上:坚实的设计模式、提示(请只有好的规则)、测试、持续集成、交付和部署。这些选择是一个提供高质量用户体验的应用程序的基础。一个伟大的应用程序永远不会真正完成。需求会发生变化,而我们作为开发者的选择决定了我们能够多么容易和快速地提供新的功能,同时尽可能地保持产品的完美。

为变化而优化。

所以,是的,我们的用户并不真正关心我们如何构建我们的应用程序,或者我们在这样做时使用什么抽象概念。请记住,我们使用JavaScript和网络是因为,有了它们,我们可以为那些不想下载、安装和定期更新我们的应用程序的用户提供一个很棒的体验。如果我们找到其他的解决方案来更好地完成这个任务,我们都会跳槽。

用户体验包括很多东西,而不仅仅是基本功能。你的应用程序是如何编写、构建和部署的,可以产生很大的不同。

这里给你的真正启示是,你应该对你花时间争论的事情有意识地去做。在你坚持的每一个观点背后,要确保你的观点是建立在对使用你的软件的人来说是最好的。如果不是这样(或者这种联系很微弱),可能就不值得争论了。

我只是补充一下,因为我必须这样做。删除eslint-config-reacteslint-config-airbnb ,用eslint-config-react-app 来代替。还有...使用更漂亮的...