zoukankan      html  css  js  c++  java
  • TFS(Team Foundation Server)敏捷使用教程(二):源代码管理

    源代码管理

    重量型过程改进通常会先拿出一个文件夹,里面有各种规范和文档模板,琳琅满目,ISO9000如此,RUP也是如此,CMM更是如此。一般人看到这么多东西非吓晕过去不可,但咨询师会鼓励你,告诉你这是培训的框架,都是必须品,等你把这些东西掌握了就如何神通广大了,然后开始漫长的学习过程。新手?这是for高级岗位的。

    敏捷开发认为:代码是最精确的文档,一个软件什么都可以省,唯独代码是必不可少。一个项目团队可以没有项目经理,测试人员,哪怕只有一个人,那一定是个程序员。现在,只要会写代码,马上就可以开始敏捷开发了,门槛不高吧?这才是最贴近我们程序员的软件过程。

    1 TFS 2010入门

    TFS 2010的安装已经很容易了,安装完后点下面的链接先入个门:Visual Studio Application Lifecycle Management 入门

    1.1 连接到 Team Foundation Server

    1.2 新建团队项目

    1.3 将解决方案添加到源代码管理

    1.4 签入

    简单练习一下上面列出的4条,你就已经入门了。

    2 源代码管理资源管理器

    接下来请打开"源代码管理",这才是众妙之门,CMM的文档模板集只是个笨重的大包裹。练练"签入""签出",就可以用TFS来工作了。好像有的人用TFS只是来做源代码管理,有点儿可惜了。

     

     

    3 管理工作区

    3.1 编辑工作区

    接下来打开工作区,添加或编辑工作区,把TFS服务器映射到本地文件夹D:\Projects,确定后系统会提示你,"工作区已修改,是否要更新本地工作区",选是。

    3.2 本地工作区

    下图是本地工作区D:\Projects的目录结构,每个文件夹映射到一个团队项目,与服务器的团队项目完全相同。这样把各个不同的项目区分开,不同项目的成果和过程文件等各自放到各个项目文件夹里,不要再放到桌面,我的文档,逻辑驱动盘的根目录等。另外不要把不相关的文件签入到团队项目里来。敏捷的秘诀之一就是力求简单。

    3.3 团队项目目录结构

    团队项目的根目录都包含三个主要目录:

    序号

    目录

    说明

    1

    Data

    数据

    2

    Documents

    文档

    3

    Source

    源代码

    软件=程序+数据+文档,这不正是我们软件工程师理解的软件吗?让那些高高在上的理论落地,成为我们实践中的一部分。

    4 变更集

    4.1 历史记录

    在"源代码管理资源管理器"里选中"Source",然后点击工具条上的历史记录,我们将看到"Source"目录下所有的变更集。这些变更集是我们日常签入在TFS上自动化的结果,这不需要CMM过程填这样那样的表格,不会增加我们的负担。即使写个简要的注释慢慢的我们也习惯得了。要知道,我们的目的是给程序员减压,而不是加压。

    4.2 变更集详细信息

    现在我们看看70号变更集的详细信息,我们看到这次变更是添加了一个文件"LoadLayerCommand.cs"。

    右键查看一下这个文件里写了什么:

    4.3 查找变更集

    打开"查找变更集"界面,我们可以按用户,文件,日期等条件进行组合查询。下图是查文件"LoadLayerCommand.cs"的变更历史,以了解它的开发以及重构等。

    4.4 签入原则

    变更集是由签入产生的,所以正确对待每一次签入。乱糟糟的代码肯定会导致乱糟糟的变更集,关于如何写简洁的代码,请参考《敏捷软件开发:原则、模式与实践》,《重构-改善既有代码的设计》等书。对于新手,签入的时候尽量用小的变更,不要把多个单一职责的文件一起签入,比如说:"ImportTxtFileCommand.cs"和"ExportTxtFileCommand.cs"要分开签入,即使你写在同一个文件里"MainForm.cs"的两个方法"ImportTxtFile()" 和"ImportTxtFile()"也分开签入。为什么呢?是因为我们将归纳变更集来产生工作项,你签入耦合度非常大的变更集,我们就没办法归纳了。正向的工作计划不容易,逆向的工作总结要容易的多。好了,今天先说到这,至少工作项已经很近了,下一篇探讨怎么通过工作总结来提高工作计划的能力。

  • 相关阅读:
    Webpack配置开发环境总结
    vue2.0 引入font-awesome
    vue-cli 脚手架项目简介(一)
    CSS3伪类与伪元素的区别及注意事项
    页面滚动到可视区域执行操作
    56. 合并区间
    <leetcode c++>卖股票系列
    面试题 16.01. 交换数字
    542. 01 矩阵
    <leetcode c++> 445. 两数相加 II
  • 原文地址:https://www.cnblogs.com/FreeWick/p/2238301.html
Copyright © 2011-2022 走看看