阅读笔记之《程序员修炼之道从小工到专家》(三)

注重实效的哲学-让你的用户参与与权衡

作为一个优秀的程序员,编写出完美的产品是我们一生的追求。但是实际情况中,需要考虑很多不特定因素,如时间、技术、成本等,导致我们没有办法一步到位。而且用户在向你提需求的时候,很多时候他们只有一个方向,也不清楚具体的细节,不知道自己真正所需要的产品的最终形态。如果你先给用户一个不完美,存在瑕疵,但是可用的软件,让他们及早使用,他们会向你反馈他们真正的需求,能把你引向更好的最终解决方案。今天了不起的软件比明天的完美软件更加可取。
我现在所做的项目就很好的印章了这一点。这是一个线下售卖收银系统,由于在项目搭建初期时间特别紧急,我们只能快速设计,快速编程,快速上线,然后不断的迭代,不断修复各种问题。虽然该项目上线后存在不少的问题,但是至少能够满足用户的核心业务,能够正常的售卖商品。而且在得到用户的反馈后,产品在不断的完善,到目前为止产品已经基于稳定,已经无限接近用户的真实需求了。以现在的角度来看,这也是一个成功的项目。

注重实效的途径-可撤销性

书中举了个切换关系数据库供应商的例子。大概意思就是如果讲数据库的概念抽象出来(抽象到数据库知识把持久作为服务提供出来的程度),你就会拥有“中流换马”的灵活性,抽象能让你的程序更加健壮。
但我想说的是,如果程序都是单一的解决方案,没有可以替代的方案,那有时候对你的程序将是一个毁灭性的隐患。例如你的收银系统只有建行一个供应商,正常情况下系统跑着不会出现什么问题,但是但凡建行端出现任何问题就会导致你的收银系统瘫痪,无法完成在线支付,这对业务来说绝对是一个毁灭性的消息。而且你还无能为力,只能依赖你的供应商进行解决。所以这就要求我们在程序设计必须考虑可替代性、灵活性。

原文地址:https://www.cnblogs.com/wfswf/p/14873389.html