首先做一个背景说明,我是以纯前端开发的角色参与到实际项目开发当中去的,在此之前(我公司目前的产品开发项目),我从未真正接触过一个完整项目的开发。我们公司当前的主力开发语言是Java,而我所处的项目组里只有我一个纯前端,经过一年多的开发实践之后,最最困扰我的事情就是如何将前端开发的过程无缝接入到整体开发流程当中去?
目前在我公司的项目组里,前端开发和后台开发几乎是完全分离的。当一个阶段的开发计划定下来之后,先由我实现一个纯静态的版本(包括部分不必依赖后台数据交互的Javascript),这些代码和项目主代码完全没有交集,版本控制也是分离的。然后Java工程师们再把我的这些静态代码分拆开写入到他们的模板系统中去,在这个过程中再添加和数据交互的部分以及剩余的Javascript。因为我不懂Java和他们使用的各种框架,所以这个过程我参与的不多,大多数过程就是帮他们整理HTML的结构和优化CSS+JS。
我个人觉得这是一套非常低效的作业流程,自从我开始接触Ruby和Rails之后,我一直希望能够把前后端的开发融合在一起。但问题是我觉得Rails的方式也不够完美,特别是当多位前端工程师协同工作的时候。如果我们直接使用Rails的模板系统写前端的代码,不同的前端工程师有不同的编码习惯,这取决于各自的经验和技术水平。我个人是很不乐意看到一大堆的views里充斥着不一致的标签解构,那会让我觉得很cheap。我心目中的理想方式是有一个统一的前端开发的控制和管理方式,然而一旦这么做就会和后台开发割裂开来,又回到复制/粘贴的老路线上去了,重复劳动增加。而且,如果负责写views的人对前端的理解较差,就会导致错误的改动原本ok的前端代码,产生不良影响(我们项目组里的工程师经常这么干)。
当然,我自己的理解是,造成我现在这种困惑的主因就是在我的团队里,前后端的”交集“太少,我对Java非常不了解,而且也厌恶看到Java纷繁复杂的结构;而Java工程师对前端的认知又极差,经常把HTML/CSS/JS改的一塌糊涂。是不是在各位高手看来,如果前后端偏科不严重的话,这样的问题就不再是问题了呢?
于是在加入这个开源项目的时候我就想和众多前端们探讨一下如何优雅的实现前后端无缝集成?想听听和了解你们大家的方式和建议。
我自己目前使用yeoman作为我的前端控制中心,通过它来管理我使用到的技术和框架,通过它来优化、合并、压缩我的图片、样式和脚本。问题就在于如何把yeoman集成到Rails当中去呢?
就我目前的经验来看,已知两种方式,不过它们都不完美。
1 在Ruby-China组织的一次线上活动中,我看到讲师在一个项目里创建一个单独的controller
来管理前端界面,然后再通过c/p的方式把这些静态代码替换到实际的views当中去。我不知道这是一种理想的集成方式呢,还是为了本次活动特意这么做的。但我觉得这样的方式本质上还是等于把大部分的HTML代码重写了一遍(通过复制),而且纯静态阶段的开发还要依赖分离的views吗?会不会太麻烦了?
2 在StackOverflow我看到有人回答说他在项目的app/assets/js
下创建一个yeoman
的目录,然后在这里用传统的方式来使用yeoman做前端开发,既不干扰rails框架本身,又可以实现统一的版本管理,还可以利用yeoman强大的功能。我想知道这会是各位前端高手们的选择吗?
就是这样,我很想听听各位对本项目前后端整合技术的见解和选择,你们是倾向于把前后端分离开,还是不管这些直接从views开始写起呢?又或者你们有什么更好的经验传授一下吗?