今天聊一个有意思的话题,假如老板让你做个新的系统,你是选择先把功能做起来至于扩展性和可靠性以后再考虑,还是设计一个非常牛逼的系统架构,可以满足未来很多年的发展。 前一段时间,某个CSDN技术交流群里有个小伙伴问用户系统怎么设计,然后就有另外的小伙伴上来就给了很高大上的建议,什么用户、角色、权限、分库分表…… 都给考虑了,算算人力,没几个月做不出来。

  然后我以半开玩笑的口吻说:别搞那么复杂,先用一个用户表,再加上权限和角色字段区分就可以了,先快速把系统搭建起来,没有什么问题是加一个字段解决不了的,如果有就再加一个字段。如果开始设计那么复杂,万一运气好系统黄了的话不就白做了嘛! 那万一运气不好,系统起飞了怎么办?那更简单了,系统都起飞了,还怕老板不给你人做优化!

  这个故事中涉及两个选择,花时间做个高质量系统和快速做个低质却堪用的系统,简单点就是好和快之间选一个。通常我们提到好和快的时候还会提到成本,好、快、便宜 三者就像CAP理论一样,只能同时选择其中的两种,无法三者都选择。质量、速度和成本三者之间似乎有着不可调和的矛盾。我们这里先去掉一个条件——成本(因为大部分情况下时间才是最大的成本),来单独谈谈好和快之间的关系,说一下我对这两者关系的看法,希望对大家日常工作和学习有所帮助。

  现实中如果工作中老板给你安排了一个任务,这时候你有两种选择:1.保质保量做完,但可能会花很长时间。 2.花很短的时间做完,但质量可能有问题。 很显然质量和速度是冲突的,做得快大概率做不好,做得好大概率做不快。 这时候你会怎么选?

  选了你就上当了,在现实情况中,你拿到的不仅仅是1或者2两种选项,可能还有花较少的时间做到较好的质量这种中间选项。我们换个问题,你倾向于快还倾向于好? 我可以先告诉你我倾向于好,我为什么选快而不选择好?我有如下几点理由:

能用更短的时间得到反馈:

  快速将事情做完,获取到结果,才能拿到别人的反馈。众所周知 反馈 在任何一个人成长的道路上必不可缺,获得的反馈越多,成长的也越快。 如果你用短时间完成的任务质量比较低,质量低其实也是一种反馈,你还有大把的时间去改进。总比你花了大量时间做出来一个低质的东西,还没有时间改进强的多。

减少风险:

  时间才是人生最大的财富,如果你在某件事上投入了过多的时间,但最后被证明这件事没有任何意义的情况下,也就意味着你会损失大量的时间。快速做完,即便突然发现这件事没有任何意义你损失的也不多。 我们在工作中可能经常听到一个词快速试错,试错总是和快速结合在一起,我相信你肯定从来没听过慢速试错吧,快速意味着即便失败,损失也是可以接受的。

快即是多:

  如果你想掌握一门技能,不断的练习是你唯一的方式。你重复的次数越多,这门技能你就越熟练,你单次练习的速度越快,单位时间内你能练习的次数也就越多。做一件事也是如此,当然做的次数多了,愈发熟练之后,做这件事的成本对你来说也就越来越低,从而你有更多的时间精力去做更多的事,接触和学习到的东西也会更多,逐渐就会形成一个增长的正循环。

  这里需要强调下,做任何事儿也不是一味追求,而完全忽略了,毕竟太差的结果就是完全在浪费时间。举个例子,用原本30%的时间拿到50分的结果这不叫快,这叫浪费了30%的时间。真正的快是用原本50%的时间将结果做到80分,而要想做到好(90分+)你可能需要花费120%的时间。 真正的快其实是奥卡姆剃刀式的高效。 这里我又想起了高德纳的一句话过早优化是万恶之源,很多时候的慢其实因为提前考虑了太多不需要的东西。

  你可能也已经看出来了,我这篇文章有点反完美主义,我承认我确实不是完美主义者,但我也不否认时间上很多优秀的作品确实是完美主义者创造的,科学和艺术可能需要完美主义者,但站在工程和实践的视角,其实就是各种利与弊的权衡,这也是绝大多数程序猿所面对的(那些完美主义的程序猿可能因为产出比较慢,早早毕业了[狗头])。做后端的同学可能也听过一句话架构其实是权衡的艺术,这便是最好的诠释。


   今天的文章就到这了,这是我在CSDN上的第301篇原创文章,如果你觉得我的文章写的还可以,可以留个赞,如果喜欢我的文章也可以关注下,我是xindoo,一个即将奔三的程序猿。

做得好 vs 做得快?相关推荐

  1. 产品方法论之:菜鸟做加法,高手做减法!

    送给真正的互联网人一顿干货早餐 [小咖导读]此本文出自公众号"最产品",主要分享了高手们是怎样从纷繁复杂的需求池中删减并找到最有价值的需求的,以及在正确的时间如何找到正确的事儿. ...

  2. sq工程师是做什么的_算法工程师为什么成天做数据,都做哪些数据?

    大家好,前几天群里有小伙伴说希望看到更多的算法工程师的日常.其实对于算法工程师而言,最大的日常就是做数据了,所以给大家分享一下做数据的那些事. 为什么很少做模型 在大家想象当中,可能算法工程师做的事情 ...

  3. Mars 是什么、能做什么、如何做的——记 Mars 在 PyCon China 2018 上的分享

    最近,在 PyCon China 2018 的北京主会场.成都和杭州分会场都分享了我们最新的工作 Mars,基于矩阵的统一计算框架.本文会以文字的形式对 PyCon 中国上的分享再进行一次阐述. 听到 ...

  4. [翻译]SQL Server 该做和不该做的

    出处:http://www.codeproject.com/cs/database/sqldodont.asp 仅供学习省事用,翻译不准,详细了解请看原文. 假设你第一次主导一个基于SQL Serve ...

  5. 如何做自己不想做的事情,却必须要去做的事情

    如何做自己不想做的事情,却必须要去做的事情 你有这样的状态,无非是:安逸和懒散的生活过得久了,整个人缺少了热情和做这件事情的惯性.所以,现在的问题就是如何产生对这件事情的热情和如何去创造做这件事情的惯 ...

  6. Mars 是什么、能做什么、如何做的——记 Mars 在 PyCon China 2018 上的分享...

    最近,在 PyCon China 2018 的北京主会场.成都和杭州分会场都分享了我们最新的工作 Mars,基于矩阵的统一计算框架.本文会以文字的形式对 PyCon 中国上的分享再进行一次阐述. 听到 ...

  7. 用天然气做燃料极空气做氧化极的燃料电池

    用天然气做燃料极空气做氧化极的燃料电池 燃料电池其原理是一种电化学装置,其组成与一般电池相同.其单体电池是由正负两个电极(负极即燃料电极和正极即氧化剂电极)以及电解质组成.不同的是一般电池的活性物质贮 ...

  8. python能代替做表格吗_做报表三年却被淘汰:别学python和Excel,这才是你该会的工具...

    我们每一个人,每天无时无刻都在生产数据,一分钟内,微博上新发的数据量超过10万,b站的视频播放量超过600万......这么庞大的数据量,预示着大数据时代,懂数据是每个人的必备技能. 前几天看朋友圈, ...

  9. 做VC?不做VC?创业还是做FA?朋友你到底想做什么?

    为什么不做VC? (四十二章经) 为什么做VC? (经纬低调分享) 为什么做FA? (小饭桌 星橦) 做FA能买房吗? 不做VC后干什么?(老道消息) 2001年时 前 谷歌 CEO 埃里克·施密特语 ...

  10. 先做加法,再做减法,看看一个行动派是如何在知乎上赚钱的?

    loonggg 读完需要 4 分钟 速读仅需 2 分钟 大家好,我是校长. 知乎好物推荐,值不值得做呢?我之前在公众号不止说过一次:知乎好物推荐值得一玩.为什么呢?因为长尾效应明显,知乎好物推荐具有长 ...

最新文章

  1. SAP SD 关于信用管理--信用更新
  2. python3 json模块操作
  3. oracle函数 case,oracle的case函数和case控制结构 (摘)
  4. vbs修改office设置_E002 Ruby 写入数据 【 =gt; Office 】
  5. Mysql学习笔记【一、环境安装配置】
  6. eclipse连接mysql_专题一、flask构建mysql数据库正确姿势
  7. 周鸿祎:朝九晚五发不了财 买房不能指望996
  8. 动态规划 —— 求解二项式系数
  9. SpringBoot 整合 JPA
  10. Padavan 路由器系统如何放开wan口的samba访问
  11. PPT之背景与标题搭配
  12. 好把旧书多读到 义言一出见英明
  13. 基于python的股票客户流失数据分析模型
  14. 【vue】vue用了keep-alive生命周期只执行一次怎么办?
  15. 今后五年你不能不知道的大数据
  16. 我远行,故我在——海陀行点滴感受
  17. IJK 使用中遇到的问题
  18. 华为3COM路由器交换机配置命令详解
  19. Python获取12306网站车次
  20. 艾司博讯:拼多多退款申请平台介入流程

热门文章

  1. 地图随意搜---情景地图
  2. 微信公众平台开发及优势
  3. 两两相望计算机音乐,两两相望 苏汐洋 两两相望歌曲,两两相望mp3在线试听 - 5nd音乐网...
  4. 【我的Android进阶之旅】 高效的设计稿标注及测量工具Markman介绍
  5. 2021-18.面向对象进阶
  6. 在c51语言中当while语句中条件,在C51语言中,当do-while语句中的条件为( )时,结束循环。...
  7. Vue packages version mismatch解决方案
  8. 如何将几个pdf合并成一个pdf?教你pdf合并最快速的方法
  9. 手绘机器学习全流程,教你如何实现模型训练
  10. 安全教育进社区:VR体验禁毒、防火、防盗骗