您的位置:首页 > 其它

关于版本管理的一些初步理解

2015-06-22 09:41 435 查看
今天和袁威又聊了好一会,感觉受益匪浅。我主要和他聊到了项目前端的版本管理方面的问题。其实在用svn之前,我并没有花很多精力关注版本管理这一块,可等项目慢慢大起来,我发现版本管理是变得越来越重要了。

袁威的版本管理方法在他看来是不科学的,确实也是,但是比我的科学多了。



如图,袁在每个css和js后面都加上了版本号,这样做的好处就是看起来一目了然,知道当前所用版本。

但是,有一个弊端,当我修改其中某一个css或js后,我必定要更新其版本号,为了统一,我必须更新所有的css和js版本号。这样除了麻烦,还有一个问题就是关于浏览器缓存。每次我修改版本号之后,浏览器都会认为这是一个新的css或js文件,那么它会重新加载该全部css或js,而不是调用原来已经存好的css和js,这样就会造成资源的浪费。因为我只修改了其中一个文件,却要把所有文件全部重新reload。

有效的解决办法就是利用百度的fis前端解决方案,其中利用到了md5版本号转换。将所有的css和js文件通过md5进行转换得到一个固定版本号,当我只修改其中一个css或js时,只有对应的文件的版本号换了,那么我在引入处只需将修改的css和js的版本号更换即可。

这样,在md5之前,版本号依旧是统一的,但是经过md5转换之后,只有修改了的文件其转译版本号才会修改。这遍免去了一定的问题。

另外说说我这边,我现在的项目分为三个版本,前端静态页面版本、本地服务器开发版本(svn)、远程服务器访问版本。静态页面版本基本已经被废弃了,因为自从将静态页面开发好,我便将其部署到svn中继续开发,之后做了很多次修改,都没有再在静态页面版本中进行,直接在svn版本中进行。可是这时候问题就来了,在svn中访问页面时,必须经过controller,但是有时候我只想试一些简单的效果(比如引入top.html和footer.html),那么我还得在controller写一个方法,相当麻烦。所以我只能回归静态页面版本,在静态页面中把效果写好了,才将其引入svn版本。

另外,在后端开发中,版本管理并不像前端版本管理那么麻烦。一开始,我学习的是很简单的版本管理办法,如图:



版本迭代以0.1开始,每一个整数算是一个大版本,在0.1之类的小版本之间要做版本迭代,只需以0.1.1开始,如图中所示的1.9.1。

后来,我学到了一个更科学一点的版本管理方法,该科学主要体现在编号上,如图:



在编号上,所有的版本后面都留有两位做中间插入版本,比如图中1710。

在版本管理上,我觉得我了解还有很多欠缺,要在这方面多多关注下。

————于2015年4月30日

昨晚逛知乎的时候突然看到一篇特别详细的关于版本管理及前端部署开发的回答,感觉受益匪浅,终于明白了很多之前没有搞清楚的问题。
比如前面袁威一直和我说的版本管理问题,我真心没多大体会,因为我做的项目在版本管理方面并没有太多的要求。
看了知乎上的回答才知道,当项目越来越大,版本管理的必要性才真正能够体现。
此处将该篇知乎贴出来,真的是一篇好文章啊!
http://www.zhihu.com/question/20790576/answer/32602154
————于2015年6月22日
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: