缘起一个梦
2017年9月15日周五晚,参加完拆书帮的活动后,竟然对RIA着了魔。因为那天晚上,我做了一个神奇的梦——梦见我自己在拆书过程中竟然要去写代码实现一个抽象方法。
因为这一个梦,我开始思考编程与拆书之间的关系,哇,原来它们之间有很多惊人的相似。
提示表VS源代码
预备提示表与软件的源代码有许多相似之处。
1、模块化
提示表分为多个模块,如自我介绍、FAB图书介绍、RIA,I又可分为WHAT、WHY、HOW等模块,A又分为A1、A2、A3等模块,然后这些模块组合起来协同工作,成为一个结构清晰完整的提示表。对于由成千上万甚至数十万代码组成的软件,同样是模块化思维,在软件被开发之前,就已经设计、拆分成许多模块, 当然这些模块有的又被分为多个子模块,最后这些模块一起组织起来成为应用软件。
不同之处在于,提示表的多个模块是由一个人完成的,而软件的多个模块需要由多个人来完成。也就是提示表是一个人的作品,而软件往往是多个人合作的成果。
2、组织化
提示表的多个模块是有先后顺序的,例如自我介绍、FAB图书介绍必须在最前面,A模块必须在RI后面,这是由于模块之间存在依赖性导致必须有先后顺序。那么,在软件程序中,模块之间也是存在依赖性,模块的先后执行有严格的顺序,如果乱了顺序,程序无法运行,比如更新数据之前,必须先运行数据服务、建立网络通道等等。
3、复用性
说到复用性,这是代码的一大特色。其实提示表中也存在复用性,比如拆解《沟通的艺术》中的一个片段,写好了FAB,那么下次再拆解《沟通的艺术》中的另外一个片段,上次的FAB就可以直接拿来用,这就叫复用性。当然,有时候同一个A1也可以用在不同的提示表中。最最重要的复用就是复用R,一个片段可以多个人拆解,拆出来各有特色。
关于复用性,我还想说一点,其实程序员其本上都是代码搬运工,遇到不能实现的代码,只好百度、谷歌查找别人的代码,然后拿来为我所用。我想拆书家大概也是知识搬运工,遇到不懂的知识点,也只能借鉴复用别人的东西。
4、抽象性
这里的抽象性是指拆书家手册,拆书家手册相当于一个软件中的抽象类,定义了一些列的接口,比如TF1-1就定义了这四个接口R、I、A1、A2,那么每位拆书家按着接口要求实现这些接口即可。这一点,和程序开发设计非常相似。
拆书VS编程
1、拆书家与程序员
本质上,拆书家就是要按照拆书家手册,模块化,组织化,像程序员一样编写RIA的代码。从这个角度看,拆书家手册更像一本《XXX程序开发指南》,是一本技术指导手册。
2、观察员与QC
QC就是质量控制,保证产品质量合格。由一群程序员开发的软件,需要有QC进行功能测试、性能测试、集成测试等等,保证软件质量,及时发现BUG。
观察员做的就是QC,观察记录表像是一个测试报告,哪些合格,哪些不合格,哪些有轻微BUG,哪些有严重缺陷,一目了然。对于这些BUG如何修复,观察员也竟然能给出具体的解决方案,从这个角度看,观察员 = 程序员 + QC。
3、拆书家与产品经理
刚才,我说过拆书家手册是一本技术指导手册,那么按照这个技术手册进行升级打怪只能成为一个合格的程序员,虽然能写出可靠、符合要求的软件,但是这样的软件是否是用户所喜欢的呢?
所以,我想说的是拆书家手册缺少产品思维上的指导。因此,我认为拆书家的终极目标应该是成为一个产品经理,做出用户喜欢的产品。
最后一句话总结:
不想成为产品经理的拆书家不是好程序员!
领取专属 10元无门槛券
私享最新 技术干货