??xml version="1.0" encoding="utf-8" standalone="yes"?>av免费不卡国产观看,欧美日本一区二区高清播放视频 ,欧美日韩精品二区http://www.aygfsteel.com/hitlang/category/15681.html学以致用zh-cnFri, 02 Mar 2007 06:35:53 GMTFri, 02 Mar 2007 06:35:53 GMT60CVS&~程规范学习W记http://www.aygfsteel.com/hitlang/articles/71861.htmlliulangliulangMon, 25 Sep 2006 15:24:00 GMThttp://www.aygfsteel.com/hitlang/articles/71861.htmlhttp://www.aygfsteel.com/hitlang/comments/71861.htmlhttp://www.aygfsteel.com/hitlang/articles/71861.html#Feedback1http://www.aygfsteel.com/hitlang/comments/commentRss/71861.htmlhttp://www.aygfsteel.com/hitlang/services/trackbacks/71861.html2004-11-19       星期五       ??/p>

1.  CVS(Concurrent Version System)安装CZ
{:1) 下蝲地址Q?a href="ftp://ftp.sunfreeware.com/pub/freeware/sparc/8/cvs-1.11.5-sol8sparc-local.gz">ftp://ftp.sunfreeware.com/pub/freeware/sparc/8/cvs-1.11.5-sol8sparc-local.gz;
    2) 包解压:%gunzip cvs-1.11.5-sol8-sparc-local.gz;
    3) 安装Q? 用户dQ?su -
             . 使用pkgaddq行安装Q?pkgadd -d cvs-1.11.5-sol8-sparc-local

2.  CVS功能
{:1) q行版本控制pȝ
       . 一个程序的多个版本控制和管?
       . 同一个程序可以被多个E序员修?
    2) 源码备䆾pȝ
       . 很好的备份系l?
       . 记录你修改了哪些内容;

3.  构徏你的CVSpȝ
{:1) dCVS
       cvs login(在CVSROOT变量指定的目录用命令:source .cshrc)
    2) 建立一个新的项?br />       . 建立一个新的目?br />         make netct
         cd netct
       . 在你的home路径中徏立项目目?br />         %cvs import -m "目说明字符? 目名称 v_0 start
         %cd ..
         %cvs checkout 目名称         /* only first time */
 
4.  在CVS仓库中进行改?br />{:1) 加入一个新文g
       %cvs add file.c
    2) q行持久改变
       %cvs commit [file.c]   /*commit后无具体文gQ则提交所有未提交的文?/

5.  查看文g状?br />{:1) 查看所有文件的状?br />       %cvs status
    2) 查看指定文g的状?br />       %cvs status file.c
    3) 四种可能的状?br />       . Up-to-date: 本地文g和CVS仓库中文件完全一?
       . Locally Modified: 本地文g比CVS仓库中文件新Q需本地文件commit入仓库中;
       . Needing Patch: CVS仓库中文件比本要文g斎ͼ需仓库中文gupdatexC;
       . Needs Merge: CVS仓库和本地文件均有新东西。解军_法,先commitQ再updateQ最后用vi调整文g中更新的先后序;

6.  同步更新状?br />{:1) 同步所有文?br />       %cvs update
    2) 同步指定文g状?br />       %cvs update file.c
    3) 同步指定文g指定版本状?br />       %cvs update -r 1.2 file.c  /*一旦取得以前版本,该文件便不能再被cvs所理, q时可作Z个新文gq行理*/

7.  高命o
{:1) 昄指定文g每行修改的版本号
       %cvs annotate file.c
    2) 昄文g的历史注释信?在提交的时候所填写的内?
       %cvs log file.c
    3) 查看整个目所有文件最后修改的版本?br />       %cvs rlog netct
    4) 从cvs仓库中移除一个文?br />       %cvs remove file.c       /*形式上删除,物理上没有删?/
    5) 从cvs仓库中删除一个目?br />       %cvs release netct

 

 

 

 

 

()

 

 

 

 

 

 

 

 

 



liulang 2006-09-25 23:24 发表评论
]]>
CVS&PGhttp://www.aygfsteel.com/hitlang/articles/71860.htmlliulangliulangMon, 25 Sep 2006 15:22:00 GMThttp://www.aygfsteel.com/hitlang/articles/71860.htmlhttp://www.aygfsteel.com/hitlang/comments/71860.htmlhttp://www.aygfsteel.com/hitlang/articles/71860.html#Feedback0http://www.aygfsteel.com/hitlang/comments/commentRss/71860.htmlhttp://www.aygfsteel.com/hitlang/services/trackbacks/71860.html目标
  CVS安装
  CVS功能
  CVSl构
  怎样使用CVS
  相关技?br /> 
4. CVS资源
  http://www.cvshome.org
  http://www.loria.fr/~molli/cvs-index.html
  http://www.sunfreeware.com
  发送邮件给info-cvs-request@gnu.org以加入info-cvs邮g列表
  CVS使用|社团——comp.software.config-mgmt

5. CVS样例安装
  从因特网下蝲CVS二进制版本,在浏览器中键?br />  ftp://ftp.sunfreeware.com/pub/freeware/sparc/8/cvs-1.11.5-sol8-sparc-local.gz
  解压该包
  %gunzip cvs-1.11.5-sol8-sparc-local.gz
  安装CVS
  1.成ؓ用户
    %su-
  2.使用pkgadd安装
    #pkgadd -d cvs-1.11.5-sol8-sparc-local
    
6. CVS本地配置
  新徏一个目录ƈ授权l想使用它的问权Q?br />  #mkdir /users/cvs
  #chmod 777 /users/cvs
  初始化CVS储藏?br />  #cvs -d /users/cvs init
  以普通用L录ƈ讄CVS环境
  为C外壳用户加入setenv CVSROOT /users/cvs?cshrc
  为其它外壳用户加入CVSROOT=/users/cvs; export CVSROOT?profile
 
7. CVS|络样例服务器配|?br />  1.成ؓ用户
  2.?etc/services中加入一行cvspserver 2401/tcp
  3.加入一行tcp不等待流源▲/export/home/openlab/cvs/bin/cvs cvs -f -
    -allow-root=/export/home/openlab/cvs pserver?etc/inetd.conf
  4.发送信号HUPl超q程inetd
    #pkill -HUP inetd
  5.建立CVS组和CVS用户
  6.成ؓCVS用户和初始化CVS储藏室▲
    %setenv
    CVSROOT=:pserver:cvs@openlab.ca:/export/home/openlab/cvs
    %cvs init
  注:?stream tcp nowait root详见TCP/IP协议
      ?团队开发的源代?׃n的未发布版本)?/p>

8. I白
   
9. CVS|络样例服务器配|?l?
   使用户可讉K$CVSROOT
   %chmod 777 /export/home/openlab/cvs
   d用户?CVSROOT/CVSROOT/writers?CVSROOT/CVSROOT/passwd
  
10. CVS客户机环境变?br />    CVSROOT-说明告诉CVS储藏室在哪儿
     C外壳: setenv CVSROOT 储藏室目?br />      例子Qsetenv CVSROOT:pserver:gzhu@openlab:/export/home/openlab/cvs
     其它外壳QCVSROOT=储藏室目? export CVSROOT
      例子QCVSROOT=:pserver:gzhu@openlab:/export/home/openlab/cvs; export CVSROOT
    CVSEDITOR-说明哪个~辑器被用来~辑注释
     C外壳Qsetenv CVSEDITOR /usr/bin/vi
     其它外壳QCVSEDITOR=/usr/bin/vi; export CVSEDITOR
    PATH-说明你可以从哪个目录扑ֈCVS的命?br />     C外壳Qsetenv PATH /export/home/openlab/cvs/bin:$PATH
     其它外壳QPATH=/export/home/openlab/cvs/bin:$PATH; export PATH
    MANPATH-说明CVS在线指南的位|?br />     C外壳Qsetenv MANPATH /export/home/openlab/cvs/man:$MANPATH
     其它外壳QMANPATH=/export/home/openlab/cvs/man:$MANPATH; export MANPATH
     
11. C外壳脚本例子(.cshrc)
  #@(#)cshrc 1.11 89/11/29 SMI   
  stty erase ^H
  umask 022
  setenv CVSROOT :pserver:gzhu@openlab:/exporthome/openlab/cvs
  setenv CVSEDITOR /usr/bin/vi
  setenv CC /usr/local/bin/gcc
  setenv CCC /usr/local/bin/g++
  setenv ORACLE_BASE /tarenadb
  setenv ORACLE_HOME /tarenaora/software/9.0.1
  set path=(/export/home/openlab/cvs/bin /usr/local/bin /usr/openwin/bin /usr/j2se/bin
  /tarenaapp/j2sdkee1.3.1/bin /usr/bin /usr/sbin /usr/ucb ${ORACLE_HOME}/bin /usr/ccs/bin /etc.) 
  setenv JAVA_HOME /usr/j2se
  setenv JDK_HOME /usr/j2se
  setenv J2EE_HOME /tarenaapp/j2sdkee1.3.1
  setenv OPENWINHOME /usr/openwin
  setenv LD_LIBRARY_PATH /usr/lib:/usr/local/lib:/usr/dt/lib:/usr/openwin/lib:${ORACLE_HOME}/lib
  setenv ORACLE_SID TARENADB
  setenv MANPATH /usr/share/man:/usr/openwin/share/man:/usr/openwin/man:/usr/dt/share/man:/usr/dt/man:/usr/bin/man:
  /usr/perl5/5.00503/man:/usr/perl5/man:/usr/man:/usr/apache/man:/usr/j2se/man:/usr/local/man:/export/home/openlab/cvs/man
  set cdpath=$HOME
  if($?prompt)then
   set history=32
   
12. B外壳脚本例子(.profile)
  #@(#)cshrc 1.11 89/11/29 SMI   
  stty erase ^H
  umask 022
  CVSROOT=:pserver:gzhu@openlab:/exporthome/openlab/cvs
  CVSEDITOR=/usr/bin/vi
  CC=/usr/local/bin/gcc
  CCC=/usr/local/bin/g++
  ORACLE_BASE=/tarenadb
  ORACLE_HOME=/tarenaora/software/9.0.1
  PATH=(/export/home/openlab/cvs/bin /usr/local/bin /usr/openwin/bin /usr/j2se/bin
  /tarenaapp/j2sdkee1.3.1/bin /usr/bin /usr/sbin /usr/ucb ${ORACLE_HOME}/bin /usr/ccs/bin /etc.) 
  JAVA_HOME=/usr/j2se
  JDK_HOME=/usr/j2se
  J2EE_HOME=/tarenaapp/j2sdkee1.3.1
  OPENWINHOME=/usr/openwin
  LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/dt/lib:/usr/openwin/lib:${ORACLE_HOME}/lib
  ORACLE_SID=TARENADB
  MANPATH=/usr/share/man:/usr/openwin/share/man:/usr/openwin/man:/usr/dt/share/man:/usr/dt/man:/usr/bin/man:
  /usr/perl5/5.00503/man:/usr/perl5/man:/usr/man:/usr/apache/man:/usr/j2se/man:/usr/local/man:/export/home/openlab/cvs/man
  export CVSROOT CVSEDITOR CC CCC ORACLE_BASE ORACL_HOME PATH JAVA_HOME J2EE_HOME JDK_HOME LD_LIBRARY_PATH ORACLE_SID MANPATH
  
13. CVS功能
  协作版本控制pȝ
   多版?br />   多程序员
  源代码备份系l?br />   备䆾
   改动记录
   
14. CVSl构
  文g-文g服务?---CVS服务?CVS客户机  ?br />  
15. 贮藏室结?br />  $CVSROOT
   +yoyodyne
   | +-tc
   | |  |
   | |  |--Makefile,v
      |--backend.c,v
      |--driver.c,v
      |--frontend.c,v  
      |--parser.c,v
      |--man
      |  |
      |   +tc.1,v
      |
      |--testing
         |
         +-testpgm.t,v
         +-test2.t,v
         
16. 建造你的CVSpȝ
  dCVS
  %cvs login
  讄一个新工程
   1.Z个目?br />    %mkdir nnm
    %cd nnm
   2.在你自已的目录里Z个工E?br />    %cvs import -m "network node management" nnm v_0_0_1 start
    %cd
    %cvs checkout nnm  /* only first time */         
  
17. 在贮藏室中修?br />  d一个新文g
  %cvs add file.c
  作一个永久改?br />  %cvs commit [file.c]
  
18. 查状?br />  查所有文件的状?br />  %cvs status
  查某个文件的状?br />  %cvs status file.c  
  四种可能的状?br />  Up-to-date: 最新版本     ?br />  Locally Modified: 未提交的改动
  Needing Patch: 其它人已提交的改?br />  Needs Merge: 你和其它人的改动
  
19. 贮藏室的同步状?br />  同步所有文?br />  %cvs update
  同步一个指定文件的最q状?br />  %cvs update file.c
  同步一个指定文件的指定状?br />  %cvs update -r 1.2 file.c
  
20. CVS工作?br />  (囄)  
  
21. 开发环?br />  (囄)  
  
22. 高命o
  昄最q版本行被修改过
   %cvs annotate file.c
  打印出文件的历史信息  
   %cvs log file.c
  昄最q版本模块被修改q?br />   $cvs rannotate netct8  
  打印出模块的历史信息   
  %cvs rlog netct8
  从贮藏室删除一个入?br />   %cvs remove file.c
  从贮藏室释放一个模?br />   %cvs release netct8
   
23. 从CVSpȝ出▲    
  外检
  %cvs logout
  注:?M一Ƅ本控制系l的基本功能Q检?check out)是指向外发布代码Q检?check in)则是指从外引q代码?br />  
24. 相关技?br />  SCCS
   源代码控制系l?br />  RCS
   修正控制pȝ
   
1. 软g工程师培训系列教?br />     ~程规范
     
2. ~程规范

3. 概述
  基本要求
  可读性要?br />  l构化要?br />  正确性与定w性要?br />  可重用性要?br />  命名规范
  注释规范
  ~程风格
 
4. d
   E序设计l对是一门艺术,而不仅仅是一门技术?br />   E序设计的出发点是给别h看,可读、易理解、好l护Q?br />   如果你的E序只能自己来维护,Cdq个E序Ӟ你的E序也就与你一L开了这个世界?br />  
5. 模块1Q编E要?/p>

6. 基本要求
  E序l构清晰单易懂,单个函数的程序行C得超q?00行?br />  打算q什么,要简单,直接了当Q代码精Q避免垃圄序?br />  量使用标准库函数和公共函数
  不要随意定义全局变量Q尽量用局部变?br />  使用括号以避免二义?br /> 
7. 可读性要求   ?
  可读性第一Q效率第二?br />  保持注释与代码完全一?br />  每个源程序文Ӟ都有文g头说明,说明规格见规?br />  每个函数Q都有函数头说明Q说明规D规范
  主要变量(l构、联合、类或对?定义或引用时Q注释能反映其含?br />  帔R定义(DEFINE)有相应说?br /> 
8. 可读性要?br />   处理q程的每个阶D都有相x释说?br />   在典型算法前都有注释
   利用~进来显C程序的逻辑l构Q羃q量一致ƈ以Tab键ؓ单位
   循环、分支层ơ不要超q五?br />   注释可以与语句在同一行,也可以在上行
  
9. 可读性要?br />   I和空白字W也是一U特D的注释
   一目了然的语句不加注释
   注释的作用范围可以ؓQ定义、引用、条件分支以及一D代?br />   注释行数(不包括程序头和函数头说明部分)应占总行数的1/5?/3
  
10. l构化要求 ?
   止出现两条{h的支?br />   止GOTO语句
   用IF语句来强调只执行两组语句中的一l。禁止ELSE GOTO和ELSE RETURN
   用CASE实现多\分支

11. l构化要求    ?
  避免从@环引出多个出?br />  函数只有一个出?br />  不用条件赋D?br />  避免不必要的分支
  不要L用条件分支去替换逻辑表达?br />  
12. 正确性与定w性要?br />  E序首先是正,其次是优?br />  无法证明你的E序没有错误Q因此在~写完一D늨序后Q应先回头检?br />  改一个错误时可能产生新的错误Q因此在修改前首先考虑对其它程序的影响
  所有变量在调用前必被初始?br />  
13. 正确性与定w性要?br />  Ҏ有的用户输入Q必进行合法性检?br />  不要比较点数的相等Q如Q?0.0*0.1 == 1.0Q不可靠
  E序与环境或状态发生关pLQ必M动去处理发生的意外事Ӟ如文件能否逻辑锁定Q打印机是否联机{?br />  单元试也是~程的一部分Q提交联调测试的E序必须通过单元试
  
14. 可重用性要?br />  重复使用的完成相对独立功能的法或代码应抽象为公共控件或c?br />  公共控g或类应考虑OO思想Q减外界联p,考虑独立性或装?br />  公共控g或类应徏立用模?br />  
15. 模块2Q编E规?br />  
16. 命名规范
  变量命名
  函数命名
  
17. 变量命名
  命名必须h一定的实际意义QŞ式ؓxAbcFghQx由变量类型确定,Abc、Fgh表示q箋意义字符Ԍ如果q箋意义字符串仅两个Q可都大写,如OK
  含义清晰Q不易؜?br />  不和其它模块、系lAPI的命名空间相冲突
  
18. 变量命名
  有意识的为变量名、宏名加上本模块的关键字Q就不至于和其它模块、系lAPI的命名空间相冲突
   例如Q宏的名U过短,如:"DEBUG"?_DEBUG"Q很可能和别的模块、系l模块相冲突
  局部变量尤其是循环变量Q用约定俗成的i,j,k
  宏、常量、枚举enumQ全部用大写字母
  全局变量加上前缀"g"Q后面跟上首字母大写的单词,如:g_全局变量 g_bFlag
  
19. 函数命名                  
  函数原型说明包括引用外来函数及内部函敎ͼ外部引用必须在右侧注明函数来源、模块名及文件名Q如是内部函敎ͼ只要注释其定义文件名
  W一个字母必M用大写字母,要求用大写字母l合规范函数命名Q必要时可用下划UK隔,CZ如下Q?br />  void UpdateDB_Tfgd(TRACK_NAME); //Module Name: r01/sdw.c
  
20. 函数命名
  模块?br />   某一功能Q如果重复实C遍以上,卛_考虑模块化,它写成通用函数Qƈ向小l成员发布。同时也要尽可能利用其它人的现成模块?br />   模块化的一些注意事?br />   1. 设计好模块接口,用面向对象的观点看,包括Q函数接口和变量接口
   2. 定义好接口以后不要轻易改动,q在模块开?文g的开头或函数的开?加以说明
   3. 不要在外部用接口以外的其它函数或变?br />   4. 注意全局变量也是一U接?br />   5. 接口x|列Z个模块的所有的与外部打交道的变量、函数等
   
21. 格式规范
  ~进用TabQ不用空?br />  一个Tab定义为四个空?br />  标点W号的右边留一个空?左括号除?   
  赋倹{判断、运符号两辚w要加一个空?br />  I也是注释Q适当的空行逻辑更清楚,函数内部不应该有q箋IQ函C间至有两个q箋I
  
22. 注释规范
  文g注释
  函数注释
  变量注释
  其它
  
23. 文g注释
  文g开始注释内容包括:公司名称、版权、作者名U、时间、模块用途、背景介l等Q复杂的法需要加上流E说?br />  文g开头的注释模板
  /******************************************************************
  **文g名:  
  **版权Q?br />  **创徏人:
  **日期Q?br />  **修改人:
  **日期Q?br />  **描述Q?br />  **
  **版本Q?br />  **-----------------------------------------------------------------
  ******************************************************************/
  
24. 函数注释
  函数注释包括Q输入、输出、函数描q、流E处理、全局变量、调用样例等Q?br />  复杂的函数需要加上变量用途说明:
  函数开头的注释模板        
  /******************************************************************
  **函数名:  
  **输入Qa, b, c
  **a---
  **b---
  **c---
  **输出Qx---
  **x?Q表C?..
  **x?Q表C?..
  **功能描述Q?br />  **全局变量Q?br />  **调用模块Q?br />  **作者:
  **日期Q?br />  **修改Q?br />  **日期Q?br />  **版本Q?br />  ******************************************************************/               
  
25. ?4Q印刷错?/p>

26. 变量及其?br />  变量Q对于非通用的变量,请在定义时加以注释说明,变量定义可能放在最开始处?br />  其它Q函数内各功能模块,如:循环、流E的各分支等Q尽可能多的加以注释
  
27. ~程风格
  严格采用梯Ş层次对应好各层次Q?br />  int main()
  {
   int i, j;
   ......
   for(i == 0; i < 100; i ++)
   {
    ......
    ......
    if(i == 0)
    {
     ......
     ......
    }
    ......
    ......
   }
   ......
  }

28. ~程风格
  注意错误处理Q?br />  ~程中要考虑函数的各U执行情况,可能处理所有流E情况,函数分两类Q?br />  一cMؓ与屏q的昄无关  
  二类Z屏幕的显C有?br />  
  对于与屏q显C无关的函数Q函数通过q回值来报告错误
  对于与屏q显C无关的函数Q函数要负责向用户发告,q进行错误处?br />  
29. ~程风格
  错误处理代码一般放在函数末,如下(以VBE序Z)Q ?br />   ......
   On Error Goto errHandle
   ......
   Exit Sub
  errHandle:
   Select Case Err
   Case 1:
    ...
   Case 2:
    ...
   Case Else:
    ...
   End Select
  End Sub
   对于通用的错误处理,可徏立通用的错误处理函敎ͼ处理常见的通用的错?br />   
30.  



liulang 2006-09-25 23:22 发表评论
]]>
վ֩ģ壺 | | | β| ͨɽ| | ǭ| Դ| Ʊ| | | | ʲ| ʡ| | | Ѩ| ®| ˫| | ˱| ½| | | | ÷| | Ѯ| ͷ| | | | Ӣ| | | ·| ƽ| | | ̽| Ϫ|