在有项目权限限制的情况下,前后端配合的问题。

2013年7月10日 分类: 随笔

针对这段时间考虑的前端如何方便的修改 静态资源与模板的问题,现在把讨论的方案做个总结:

A方案,即TM时期的解决方案:弄一台测试服务器A开放相应的目录权 限,前端或UE都在这台服务器上修改。A具有SVN服务器相同的代码。待UE都修改好了,在提交代码。不定期或定期去同步代码到SVN 服务器。(类似的是UE各在自己的电脑中配置一个环境运行代码,采用这种方案只是由在自己的代码上变成共享使用同一台服务器),好处就是 所改即可所见。

这个方案有个缺点就是不能多人修改同一份代码。否则会被覆盖。有点类似FTP。多人修改同一份代码的几率有多少。修改模板的时候会跟后端冲突,这点也有坑 的。

B方案:对前端开放SVN服务器的相应目录权限,UE每修改完一个BUG,都要commit去检测看看是否有改正确,然后要同步出去,期间要花费1分钟的 时间。这样导致commit的版本会过多,而且当产品要发布的时候刚好你提交了你的测试代码,后果不堪设想。(如果branch可以解决 的话,这个顾虑可以没有)。主要现在后端上没人打branch。

C方案:利用nginx把线上的静态资源代理转发到项目SVN中。只要修改好本地的静态资源文件,就可以看见所改的。就是修改模板的时候不太方便,只能 去修改解析后的源码。如果测试没错的话,在去模板文件中修改。

这个方案不好就是对模板的修改需要做两遍。这两遍的过程中往往会出现改的问题。

D方案:就是采用虚拟机的方式。里面装好项目,每做一个项目都需要做软链。很多程度上要依赖后端。往往后端对这种每次做软链也很不爽。这个方案我已经采用 半年多了。

 

A与C的方案中,现在有点偏向C。
限于项目权限的问题,暂时没有完美的解决方案,跟朝东商量后,基于我们现有的情况。我们就暂时采用C来做。
如果哪一天权限全开放,前后端就好统一了。
如果有什么好的方案,我们也可以讨论讨论。。。

标签:

4 条评论 于 “在有项目权限限制的情况下,前后端配合的问题。”

  1. Cris
    2013年7月11日15:27
    1

    个人觉得在开发项目当中,前端开发跟后端开发的权限应该是得一致的,不能够因为只是前端开发的人员而只开发模板目录和静态资源目录,这有点被歧视的感觉,凭什么前端人员就不能拥有整个项目的源码权限。

    正常的项目程序代码里,在配置文件里是会配置支持至少三种不同的环境去运行这套代码,包括本地开发环境、内网测试环境以及正式生产环境,有需要的时候还需要再在外网加一层preview服务器,跟正式生产环境同一个机房同样的服务器配置。

    各个不同的环境所配置的域名后辍保持规范,程序代码根据不同的域名后辍读取不同的配置。比如项目正式的地址是www.abc.com,则本地开发环境域名配置为www.abc.loc,内网测试环境域名配置为www.abc.tmc,其中www.abc.tmc应该要由公司的DNS服务器或是路由器进行自动转发,无须手动设置host,www.abc.loc就要自己设置一个host。项目代码trunk到本地后,只要配置一下本机nginx的server,不需要修改项目的配置文件即可成功连接,当然得保证loc跟tmc的数据库连接都是用内网测试环境的数据库,本地机器如非特殊需要,无需自建数据库。

    A方案违背了团队协同开发同个项目的原则。
    B方案的话本地trunk下来的代码不够完整,跑不了项目,只能够每次改完都提交然后查看内网测试服务器是否正常,太费时间很痛苦。
    C方案就是利用资源劫持转发的原理进行前端开发调试,现在一般都用Fiddler进行,不知你是否有用过,Fiddler不仅可以实现你想要的这种转发效果,而且还可以调试更多的东西。改模板的时候就只能按照原来的路子改,线上调试完后再修改本地的代码,再提交SVN,同步。所以这种方案只能够是比较完美解决js,css这种CDN上的资源文件,模板的修改得分两步。
    D方案也很麻烦,纠结。

    如果说真的有项目文件权限控制,只开模板目录与静态资源目录给前端人员,目前确实只能采用C方案了。

    话说为什么要有项目文件权限控制,难道怕源码泄露吗?前端开发人员就不是主要的开发人员了?又不是说开给产品或是编辑人员。据我个人的理解,有部分前端人员也是会写后端语言的,而且模板引擎熟悉了套页面也不会差。

  2. 情封
    2013年7月15日22:08
    2

    你好@Cris,感谢回复了这么多。
    在公司里,确实只有后端开发人员具有全部的项目代码权限。这个是公司的硬性规定,因为之前确实有发生类似的事情,所以对前端开发来说,只能开放静态资源与模板。
    如果要做到比较容易的改动模板,需要动到后端的核心代码,这个技术经理已经在考虑了。(因为框架是他写的)
    你提到的各个不同的环境所配置的域名后辍保持规范,这个确实比我们现在公司的好很多,也比较规范,感谢分享。

  3. 吭哧瘪杜
    2013年7月24日10:37
    3

    不明觉厉,我们一直用branch解决…而且我们前段的权限也很少

  4. 情封
    2013年7月31日07:50
    4

    @吭哧瘪杜 我们组的前端就我一个权限比较多,我还有后端代码的权限,一些我可以修改的,我都顺手了。
    branch现在我们也有用了,但是为了为了发布方便。每天或每周的发布一次,避免不完整的代码发布出去。

Leave a Comment