读了老鱼的《前后端分离开发模式初体验》,暂时没有和他见面详聊的机会,所以就把读后感和想法写在这里。
08年春天我离开支付宝之前,曾和资金线的同事(主要是夏天)讨论过这种做法,即把view的部分完全交给前端开发,java程序员只需给出逻辑、接口、变量和数据。双方以接口文档为工作基础,用统一的开发平台(Eclipse+SVN)来协调工作。另一方面,前端开发则不断地将Velocity/HTML封装成一个个的helpers,从而提高代码的可重用性,并以此降低编码难度(关于封装helpers这点,我曾在一次技术分享中谈过,不知老鱼是否还有印象)。我给这套方案起的名字是“开往中国的慢船”,在《为什么网页设计不应强调分工 2》一文中,我简要的介绍过。
从支付宝的情况来看,这种做法有比较大的可行性,既可以提高开发效率,又能把双方的工作边界定义的比较清楚。不过我当时即将离职,也就没有推动下去。这次看到老鱼的项目实践,很高兴。对于他说的那4点问题,我觉得:
简言之,“开往中国的慢船”这套方案的核心之一,就是把view让前端开发来创建和管理,在项目的前期及中期,前端开发就已经利用test fixtures创建出可以正常运行、几近真实、但又只包含view的应用程序来。
注:“开往中国的慢船”来自于村上春树的同名作品。我发起的项目或技术方案都以村上的作品作为代号,个人习惯。
技术上我不太懂的,不过看了一下LZ说的,我感觉,是不是可以用游戏开发公司的“引擎+level design”来类比?
比如我们玩idsoftware的游戏,引擎是卡马克写的,但是前段的图形呈现,游戏内容,关卡设计,他是通通不管的,全部是其他家伙去写。
换言之,是说技术给了一个巨大的百宝箱,然后前端的人拣起所需要的东西进行搭建。
@Rabelais 对,可以这样理解。一言以蔽之,就是我反复提到的规范和框架。
[emoticon:mdr]
没错,这个分离模式已经在不断落实,现在的瓶颈就是B这里。
B的第一点,基本上90%不错了。第二点,这需要一段时间的彼此磨合,慢慢形成标准,先有规则然后不断完善了。
第三点,这个目前不靠谱,跟开发者的能力有很大关系。
要实现你的梦想,丁宇,我们得多点人才行,哈哈。至少前后端比例正常点。
[emoticon:eye_up] 正打算搞这个