敏捷开发你们都不陌生,他对文档的态度是偏向于反对,可是也不是说一点文档都没有。他的说法是 代替文档。程序员
那么敏捷开发为何会这么认为呢?其实你们在作项目开发的时候都会有这样的体会:web
因而就有了这样的现象:数据库
(各位前辈呀,为后来人着想着想呀!)后端
因而乎文档就成了一个包袱一个累赘,有还不如没有。api
为啥会这样呢?由于文档和代码没有直接关系,没有“联动”关系!服务器
那么啥是联动关系呢?咱们举个例子,PowerDeszner作数据库设置的时候,咱们不只能够用这个工具作数据库文档,并且设计好了以后,还能够直接建立数据库。当文档有变化的时候,也能够自动修改数据库。还能够反向工程,就是指定一个数据库,而后根据数据库里的表和自动,自动生成文档。这就是联动。mvc
若是您对powerdes不熟悉的话,我在举一个CodeFirst的例子。CodeFirst就是先写代码设计类,而后用vs里面的来自动建立数据库,类结构发生变化了,能够自动的去修改数据库的表结构。这样就能够达到代码和数据库的一致性,并且有变化只须要修改一个地方(代码)就能够了,另外一个地方能够自动变动。asp.net
这就是我所说的“联动”。若是全部的文档均可以和代码进行这样的联动,需求有变化了,先去修改文档,而后代码会自动随之变动,那么文档就不会成为负担了!less
这就是我所说的“文档式驱动”!编辑器
固然在实际中,并非全部的功能都是先文档在代码。而是根据具体的状况来灵活控制的。
这里在举一个WebAPI的例子。咱们打开VS201*,新建一个webapi的默认项目,咱们会发现有一个help的目录。进去一看,哇,api的使用文档!有接口名称、参数名称和他们的注解,还有调用实例。这还不是最神奇的,更神奇的是,当代码修改了以后,help里面的内容也会随之更新。这样写接口不再用担忧更新文档的问题了。
这是有代码“生成”文档。这个仅仅是对程序员来讲的,写代码用的文档。除此以外还有给客户看的文档,等等。若是这些均可以“联动”起来,作到有需求的时候,只须要改动一个地方,其余的地方都会随之更新。这是否是很爽!
可能有人说,我这是痴人说梦,该醒醒了,别浪费你们宝贵的时间。这个固然不是无稽之谈,今天也不是愚人节。下面仍是用例子说话。
公司之前用asp.net mvc作项目。后来发现开发速度跟不上,因而找了一个国外的无后端的东东 ,叫作backendless。他的思路就是,凡是服务器作的事情(UI除外),均可以不用写代码了,都由他来包办。Backendless提供了一个平台,在这个平台上面配置各类服务,配置完了前台就能够直接调用。这个前台包括:web、手机web、安卓、苹果、flash(Flex)、等,而且能够生成对应的调用代码。咱们写点前台代码就OK了。
每个环节都有人在作“联动”的事情。只是从整个项目的角度来看,把各个环节用一条线,从始至终的串联起来,让各个环节能够“联动”。目前尚未发现作这种事情的人(本身除外)。
这么作的难度很大,推广也很难。其实大多数的状况都是只作一块,好比选择日期的my97,分页的Aspnetpager,在线编辑器,各类ORM,各类UI,单点登陆,用户中心等。他们都只作一块,其余的无论。这样才可以让你们灵活的选择和使用。
再举一个盖大楼的例子。要盖楼首先要一个图纸,而后请建筑公司来按照图纸把大楼盖出来。盖楼以前图纸能够修改,盖楼的时候会按照最后修改后的图纸来施工。可是楼盖好了,再去改动图纸,大楼就不会受到影响了。大楼改好以后,图纸和楼失去了联动,图纸不会去影响大楼了,由于楼已经盖好了。
再来看看导航软件,咱们输入出发地和目的地,而后导航就会规划一条路线出来,咱们按照这个路线开车,开着开着发现前方路口堵车,怎么办?从新规划路线绕过堵车点。而后咱们按照从新规划好的路线继续行驶。路线实时指导咱们的行车方向,路线变了,咱们的车就跟着变。这样就是实时联动。
说了这么多,你们可能都蒙登了,我到底要说啥?仍是来张图吧。
总之呢,就是不能让文档孤单单的存在,要让文档和代码和页面互动起来。需求有变化了,首先想到的是改文档,而后对应的地方会随之自动更新,不须要修改代码!
最后说一下啥是“超敏捷”,前面说了敏捷开发,那么超敏捷开发呢,顾名思义说的就是开发速度会更快。
ps:很久没有写博客了。沉寂了一段时间,好好的思考了一阵子,如今是新的开始,从新打造!后续会更精彩。