`
java-mans
  • 浏览: 11420444 次
文章分类
社区版块
存档分类
最新评论

你是否做好了代码的备份?

 
阅读更多

//=====================================================================
//TITLE:
// 你是否做好了代码的备份?
//AUTHOR:
// norains
//DATE:
// Tuesday 16-March-2010
//Environment:
// WINDOWS XP
//=====================================================================

我认为,一个优秀的程序员,不仅需要代码写得漂亮,能快速解决问题,更需要懂得如何备份自己的代码。我想当程序员有一段时日的朋友,总会有那么一两次碰到需要恢复到之前代码的时候,那么你的代码备份的完善程度,将决定于你烦恼的多少。

一般来说,我觉得代码的备份应该基于如下原则:

1. 清晰明了,能够简单地看出备份的文件是哪个节点。
2. 当代码出现问题时,能够最简单地恢复到最近状态
3. 尽可能减小代码出问题引起的灾难。

  我就以我日常工作的备份方式作为本文的主题。当然,我不敢说我的备份方式是最好的,但我可以说是满足了以上所列的要求。仅此,作为抛砖引玉。
  
  首先,我会将整个工程文件拷贝到一个文件夹里,删掉一些生成的无用文件,比如:*.ncb,*.exe等。
  
  然后将该文件夹更名,以日期+英文字母的方式。日期就是当前的年月日,字母以A,B,C依次排列。这样的话,我们看前面的数字,就能知道该备份文件是什么时候开始的;英文字母则是当天的第几次备份。
  
  最后,则是将所有的文件,压缩成一个压缩包。这样的好处是,当文件夹里面的文件出问题时,能够从压缩包里面将文件解压出来。虽然这样是增加了不少磁盘空间,但相对来说,却大大降低了风险。


 

 

这里还有一个ReadMe.TXT的文件,用来记录每次备份的改动。文件里的内容,其实是以文件夹的名称作为索引的。摘录其中一段的备份数据如下:



这样备份以后,当代码出现问题,那么恢复到某天的某个结点是非常简单的。但这却有个致命的缺陷,我们很难知道单个文件的更改情况。虽然我们可以根据readme.txt文档查找相关类的信息,但在如此浩荡的信息量中,我们很难保证不遗漏一两条信息。所以这时候我们只能借助于代码管理工具。

代码管理工具其实很多,功能也多种多样。在这里,我选用的是微软的VSS。没有什么别的原因,仅仅是因为其够简单。如何使用VSS我这里就不再大费口舌了,网上教程一大把,大家尽可以搜。我这里只是想说每一次的chech in。

其实我的check in很简单,其实是和readme.txt是一一对应的:


这样的好处也很明显,改动的信息我只需要写一次,剩下的,就是复制黏贴而已。并且这样,在一致性上面维护的也很好。

而这VSS的数据库,也如同之前的工程一样,每天需要备份。只不过方式有所不同,每天的备份,其实都只是备份其压缩文档而已。因为VSS的数据库实在太庞大,如果以单个工程的方式来进行,所耗费的时间和空间着实很惊人。

最后,也是极其重要,不可忽视的一环,就是备份的介质。我的做法是,VSS的数据库有单独的一个服务器,这样可以和工作机分离,也方便大家的协同合作。而每天的备份,都会在外部硬盘有相应的拷贝。我一般是用两个移动硬盘,里面的数据都是一样的,上面拷贝的都是每天备份的内容,以此降低单个硬盘硬盘损坏造成的灾难。

分享到:
评论

相关推荐

    mysql备份脚本(bat) v1.1.zip

    mysql备份脚本,mysql做好以后做个计划任务用管理员权限运行就中了。另外如果想节省空间就装个 7zip 软件, 注意bat 必备哦!如何使用,请查看代码。

    能够去除代码中的注释的软件,C、C++、汇编语言均支持,自动识别汇编与C,能够批量添加。

    本软件主要用于代码保密,即使是被他人获取了无注释源码也难以理解代码核心思想。 能批量删除代码中的注释,C、C++、汇编语言均支持,自动识别汇编与C,能够批量添加,处理...软件直接处理目标文件,使用前请做好备份。

    数飞OA代码说明

    做好客户,数飞尔公司特推出“OA代码开发培训+OA表单实施培训+OA源代码”的系统服务,合作单位在购买本服务后,我们 将提供有专门开发工程师的代码开发培训,表单实施培训,只要您拥有自己的技术开发团队,您就可以...

    基于Java实现的动物拯救游戏源代码

    把你的代码分门别类的做好,并且记录清楚,这一点非常重要。你的发展方式有很大 的自由度,但要注意从概念上区分事物。以下是一些值得思考的问题。 游戏环境 这里是操控玩家等级和进度的地方, 在游戏中有欢迎玩家,...

    售饭系统源代码(重新整理)

    售饭系统采用Delphi7+SQLServer2000,里面包括数据库的创建,数据库备份还原,以及.dll文件等,多个网友下载了本系统,说不能编译,是因为以前刚做好,收尾工作还没有完成,软件的连接上还有点问题,所以不能编译的。...

    致远A6数据库分离代码,历史数据部署,文件配置要点

    作为DBA,分离数据库前做好备份是必须的,在测试服务器演练也是必须的!备份数据的难点在于附件文件的备份,即/upload文件夹........慢慢等吧!根据服务器配置,整个工程时间至少需要两天,其中大部分时间用于数据...

    Syn TextEditor v2.6.2.94

    Syn TextEditor是使用Synedit编写开发的文本编辑器,支持所有的常规文本操作,支持语法高亮、拼写检查、执行外部程序、脚本调试执行、FTP打开和存储。...如果你要使用在你的程序中,请做好代码备份。

    购物商城系统源代码--004

    所有密码使用MD5不可逆加密,所有参数进行服务器端的有效性检验,重要操作都有日志,涉及钱的数据都进行流水账处理(如日志删除并不影响余额),备份关联处理(如商品删除了,原来有订购此商品的订单可有效查看),...

    批量删除注释的小工具

    功能说明: ● 本软件能批量删除代码中的注释。自动识别C代码和汇编代码。 ● 支持扩展名: *.c, *.cpp, *.h, ... ■ 本软件直接处理目标文件,使用前请做好备份; ■ 将不用的文件尽量删除,这样可以缩短扫描时间;

    小说网源码

    3.运行注册机授权你的域名,将得到的域名授权码复制到/configs/define.php文件JIEQI_LICENSE_KEY','代码后(注意,代码内的开始和结束都有'符号,不要删这个符号,说白就是替换掉两个'符号内的代码) 4.访问你的...

    动软代码生成器_主键Bug修复.rar

    动软代码生成器在SqlServer中,生成的代码会将唯一索引错误地识别为主键, 反编译源代码后,发现其中的SQL...(替换前请做好备份,该修复基于最新版本V2.78) 若安装在默认目录下,也可直接执行附件中的批处理命令。

    UniSynEdit-cvs-2005-09-05

    UniSynedit是Synedit的Unicode版本。...所以字符串类型要改为WideString,所以使用Ansi版本的程序需要重新写 2.需要安装JCL控件来支持Unicode操作 3.Unicode版本的Synedit与...如果你要使用在你的程序中,请做好代码备份。

    UniSynEdit v2005-09-26

    UniSynedit是Synedit的Unicode版本。...所以字符串类型要改为WideString,所以使用Ansi版本的程序需要重新写 2.需要安装JCL控件来支持Unicode操作 3.Unicode版本的Synedit与...如果你要使用在你的程序中,请做好代码备份。

    基于51单片机的升压斩波5-20V(Boost)proteus,原理图、流程图、物料清单、仿真图、源代码

    基于51单片机的升压斩波5-20V(Boost)proteus,原理图、流程图、物料清单、仿真图、源代码 基于51单片机的升压斩波5-20V(Boost) 升压斩波电路实现5V-20V...3、为了防止仿真崩溃导致文件损坏,仿真前最好做好备份。

    显示生日用户插件 for leadbbs 2.88

    <br> 2、修改boards.asp文件 在下面加入以下代码: <br> 在上面加入以下代码 如果你的boards.asp文件没有做过修改,你可以用我提供的boards.asp文件覆盖,注意:覆盖前请做好备份。...

    mysql备份脚本(bat) v1.1

    mysql做好以后做个计划任务用管理员权限运行就中了。另外如果想节省空间就装个 7zip 软件, 注意bat 必备哦怎么用看代码

    织梦网站程序/网站源码/淘宝客程序整套源码程序

    这是整理好的整套源码,所以你无需去织梦官网下载基本源码再做修改而达到这种框架,你只需把我这整套源码上传到你的服务器(什么是服务器,我在乐晨博客给新人伙伴有介绍的),然后重新安装下,把我的数据库信息、密码...

    自动友情链接程序

    是否已经做好连接.作为首页连接...不做友情连接..作为内页连接. ※其他功能待续开发..... 采用ASP+ACCESS架构,运用系统安全码。安全稳定 ※防注入功能,把安全放在第一位 ※支持无限级分类,方便自由 ※ 包含全站1...

    C++实现的偷偷复制U盘内的所有内容

    现在将做好的软件的源代码和可执行文件(exe)分享给大家,交流学习 软件用法:直接双击运行(没有任何界面效果,软件已在后台运行,可在任务管理器中看到,高隐蔽性),程序会在C盘下创建一个名为UBack的文件夹...

Global site tag (gtag.js) - Google Analytics