項(xiàng)目研發(fā)標(biāo)準(zhǔn)和規(guī)范_第1頁(yè)
項(xiàng)目研發(fā)標(biāo)準(zhǔn)和規(guī)范_第2頁(yè)
項(xiàng)目研發(fā)標(biāo)準(zhǔn)和規(guī)范_第3頁(yè)
項(xiàng)目研發(fā)標(biāo)準(zhǔn)和規(guī)范_第4頁(yè)
項(xiàng)目研發(fā)標(biāo)準(zhǔn)和規(guī)范_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目研發(fā)標(biāo)準(zhǔn)和規(guī)范

文檔名稱項(xiàng)目研發(fā)標(biāo)準(zhǔn)和規(guī)范

版本號(hào)VI.0

創(chuàng)建人XXX

創(chuàng)建日期

保密分類秘密

文檔修訂記錄

版本號(hào)變化狀態(tài)簡(jiǎn)要說(shuō)明變更人變更日期審批人審批日期

VI.0C初次創(chuàng)建劉XX2019-3-14王XX2019-6-28

*變化狀態(tài):C=創(chuàng)立,A=增加,M=修改,D=刪除

批準(zhǔn)人:XX

批準(zhǔn)日期:2019-6-28

目錄

1.概述.......................................................................1

1.1文檔目的.............................................................1

1.2適用范圍.............................................................1

2.代碼規(guī)范...................................................................1

2.1源代碼規(guī)范..........................................................1

2.1.1通用規(guī)范........................................................1

2.1.2Java/JavaScript.......................................................................................................1

2.13文本格式........................................................3

2.2開發(fā)原則.............................................................4

2.2.1類、接口........................................................4

2.2.2方法............................................................4

2.23表達(dá)式與語(yǔ)句....................................................5

2.2.4循環(huán)語(yǔ)句........................................................7

2.2.5異常捕捉........................................................7

2.2.6變量...........................................................10

2.2.7方法...........................................................11

2.2.8日志............................................................11

2.2.9其它...........................................................12

2.2.10編程技巧.......................................................12

2.3代碼示例...........................................................16

2.3.1Example.java.........................................................................................................16

2.3.2Html/jsp/js.............................................................................................................18

3.研發(fā)過(guò)程..................................................................19

3.1研發(fā)計(jì)劃...........................................................19

3.1.1工作描述.......................................................19

3.1.2交付工作產(chǎn)品...................................................20

3.1.3文檔編寫指南...................................................20

3.1.4經(jīng)驗(yàn)分享.......................................................21

3.1.5方法與工具.....................................................22

3.1.6自檢要素........................................................24

3.2設(shè)計(jì)與開發(fā).........................................................24

3.2.1工作描述.......................................................24

3.2.2交付_L作產(chǎn)品...................................................25

3.2.3文檔編寫指南...................................................25

3.2.4經(jīng)驗(yàn)分享.......................................................25

3.2.5方法與工具.....................................................26

3.2.6自檢要素........................................................28

33發(fā)版................................................................28

3.3.1工作描述.......................................................28

3.3.2交付工作產(chǎn)品...................................................29

3.3.3文檔編寫指南...................................................29

3.3.4經(jīng)驗(yàn)分享.......................................................29

3.3.5自檢要素........................................................29

3.4項(xiàng)目結(jié)項(xiàng)............................................................30

3.4.1工作描述.......................................................30

3.4.2交付工作產(chǎn)品...................................................30

3.4.3文檔編寫指南...................................................31

3.4.4經(jīng)驗(yàn)分享.......................................................31

3.4.5自檢要素.......................................................31

4.例行工作..................................................................32

4.1例會(huì)及報(bào)告.........................................................32

4.1.1項(xiàng)目例會(huì).......................................................32

4.1.2個(gè)人周報(bào).......................................................32

4.1.3項(xiàng)目周報(bào).......................................................32

4.2研發(fā)管理...........................................................33

4.2.1里程碑報(bào)告.....................................................33

4.2.2項(xiàng)目評(píng)審.......................................................33

4.2.3風(fēng)險(xiǎn)管理.......................................................34

4.3項(xiàng)目變更............................................................34

4.3.1變更控制的要點(diǎn).................................................34

4.3.2如何進(jìn)行變更...................................................34

5.資料管理....................................................................36

5.1文檔管理............................................................36

5.1.1日常資料備份...................................................36

5.1.2項(xiàng)目資料歸檔...................................................36

5.2代碼管理...........................................................36

5.2.1崗位劃分.......................................................36

5.2.2版本劃分.......................................................37

5.2.3流程說(shuō)明.......................................................37

5.3安全管理............................................................38

XX科技信息技術(shù)有限公司

1.概述

1.1文檔目的

為加強(qiáng)對(duì)北京研發(fā)總部及各研發(fā)分中心的管理、提高研發(fā)工作效率、規(guī)范開發(fā)工作,特

制定研發(fā)標(biāo)準(zhǔn)及規(guī)范。

文檔中對(duì)研發(fā)標(biāo)準(zhǔn)及規(guī)范進(jìn)行詳細(xì)描述,在研發(fā)經(jīng)驗(yàn)總結(jié)、研發(fā)項(xiàng)目總結(jié)基礎(chǔ)上,不斷

完善規(guī)范的有效性,提高項(xiàng)目文檔質(zhì)量,幫助推進(jìn)項(xiàng)目,保證項(xiàng)目質(zhì)量,提升研發(fā)項(xiàng)目生產(chǎn)

效率,確保項(xiàng)目研發(fā)成功。

1.2適用范圍

適用于全體研發(fā)工作人員;適用于公司所有研發(fā)項(xiàng)目。

2.代碼規(guī)范

2.1源代碼規(guī)范

2.1.1通用規(guī)范

?開發(fā)人員的開發(fā)環(huán)境應(yīng)保燈統(tǒng)一:(Tomcat,JDK1.8,Intel1ijIDEA,Chrome)。

?版本控制環(huán)境,統(tǒng)一使用公司的SVN,研發(fā)分中心通過(guò)VPN接入。

?頁(yè)面設(shè)計(jì)過(guò)程中,要考慮到操作系統(tǒng)、瀏覽器、瀏覽器版本、顯示器分倍率等因素。

?代碼整潔、注釋合理,嚴(yán)格遵守Java文檔注釋標(biāo)準(zhǔn)。

2.1.2Java/JavaScript

1.類/接口

每個(gè)Java類,保存為單獨(dú)的文件(內(nèi)部類除外),不允許使用非public修飾的類,確

有需要的,使用其他修飾方法解決。

1

文件開頭加入版權(quán)聲明

/**

*版權(quán)聲明XX科技信息技術(shù)有限公司版權(quán)所有違者必究

*<br>Company:天創(chuàng)科技

*<br>?author劉方正

*<br>?version1.0

*------------------------------------------------------

*/

2.包(Package)

在公司整體框架的基礎(chǔ)上,每個(gè)功能模塊單獨(dú)建立一個(gè)包,再按小模塊劃分,自行建立

子包。

包名統(tǒng)一小寫,具有業(yè)務(wù)意義。

每個(gè)功能模塊包,加入package.html,描述此包。

例如:

packagecom.gas.framework,controller:

importjava.io.File;

importjava.io.OutStream;

importjava.util.Observable;

importhotJava.util.Application;

3.方法

2

方法的命名,要求遵守:首字母小寫,以后每單詞首字母大寫。功能性方法,以其功能

的英文開頭,比如:添加用戶:addUser.

如果方法名沒(méi)有合適的英文描述,可使用拼音全拼。如果拼音全拼太長(zhǎng),可適當(dāng)縮短為

拼音首字母,但是要有詳細(xì)注釋。

方法注釋:以簡(jiǎn)明扼要的語(yǔ)句,描述方法所做的事,調(diào)用需要注意的事項(xiàng)。各參數(shù)含義,

返回值。

方法內(nèi)各語(yǔ)句的注釋,以適量為準(zhǔn),能讓不了解業(yè)務(wù)的人看明白。

4.字段

字段的命名:以業(yè)務(wù)規(guī)則命名。好的命名,可以代替注釋。字段的聲明位置,要求在類

的頭部,其get/set方法,放在類的尾部。

字段的注釋:以注釋在字段聲明同一行結(jié)尾。

5.單元測(cè)試

針對(duì)每一個(gè)業(yè)務(wù)方法,要求提供JUnit的單體測(cè)試代碼

2.1.3文本格式

?請(qǐng)以4個(gè)空格設(shè)置Tab鍵寬度,按代碼層級(jí)設(shè)置縮進(jìn)。

?花括號(hào)的使用,要配合Tab鍵,做到上下對(duì)稱,層級(jí)分明。

?在適當(dāng)?shù)奈恢眉尤肟崭窈涂招?,以保持代碼的美觀和可讀性。

?保持適當(dāng)?shù)恼坌?,一行代碼的長(zhǎng)度不要超過(guò)100個(gè)字符。

?文件的編碼格式,統(tǒng)一為UTF-8(包括數(shù)據(jù)庫(kù)編碼)。

3

2.2開發(fā)原則

2.2.1類、接口

?類的劃分粒度,不可太大,造成過(guò)于龐大的單個(gè)類,也不可太細(xì),從而使類的繼承太

深。一般而言,一個(gè)類只做一件事;另一個(gè)原則是根據(jù)每個(gè)類的職責(zé)進(jìn)行劃分,比如

用User來(lái)存放用戶信息,而用UserDao來(lái)對(duì)用戶信息進(jìn)行數(shù)據(jù)訪問(wèn)操作(比如存取數(shù)

據(jù)庫(kù)),用UserService來(lái)封裝用戶信息的業(yè)務(wù)操作等等。

?多使用設(shè)計(jì)模式,隨時(shí)重構(gòu)。多個(gè)類中使用相同方法時(shí)將其方法提到一個(gè)接口中或使

用抽象類,盡量提高重用度。同時(shí)可以減少維護(hù)難度。

?將不希望再被繼承的類聲明成final,例如某些實(shí)用類,但不要濫用final,否則會(huì)對(duì)

系統(tǒng)的可擴(kuò)展性造成影響。

?將不希望被實(shí)例化的類的缺省構(gòu)造方法聲明成privateo

?每個(gè)項(xiàng)目文件中的主class必須寫一個(gè)main方法,它要提供測(cè)試和演示功能

?在一個(gè)單獨(dú)的應(yīng)用程序中,帶有main。方法的類應(yīng)該與其他類分開。原因:如果主類

和其他類不分開,將會(huì)導(dǎo)致很難再使用

?為你經(jīng)常使用的類做一個(gè)模板。原因:代碼標(biāo)準(zhǔn)的一致化。

?在抽象類和接口都可實(shí)現(xiàn)的情況下,建議使用接口。定義抽象類,僅當(dāng)它們部分方法

抽象時(shí)。原因:接口比抽象類更容易擴(kuò)展,可以實(shí)現(xiàn)多重繼承。

?考慮每個(gè)類是否要實(shí)現(xiàn)Cloneable或者Serializer接口

?定義一個(gè)類為final,僅當(dāng)它是個(gè)子類,或者類的實(shí)現(xiàn),或者是沒(méi)有人任何實(shí)現(xiàn)方法

的接口。原因:把一個(gè)類定義為final,意味著再也沒(méi)機(jī)會(huì)重新實(shí)現(xiàn)類的方法。

?為每一個(gè)類定義一個(gè)默認(rèn)的構(gòu)造器,以便于可以通過(guò)Class.newInstanceO來(lái)構(gòu)造。

原因:通過(guò)定義默認(rèn)的構(gòu)造器,可以在編譯期間動(dòng)態(tài)的加載類。

2.2.2方法

?一個(gè)方法只完成一項(xiàng)功能,在定義系統(tǒng)的公用接口方法外的方法應(yīng)盡可能的縮小其可

見(jiàn)性。

?避免用一個(gè)類是實(shí)例去訪問(wèn)其靜態(tài)變量和方法。

4

?避免在一個(gè)較長(zhǎng)的方法里提供多個(gè)出口,如:

〃不要使用這鐘方式,當(dāng)處理程序段很長(zhǎng)時(shí)將很難找到出口點(diǎn)

if(condition){

returnA;

)

else{

returnB;

)

〃建議使用如下方式

Stringresult=null;

if(condition){

result=A;

)

else{

result=B;

)

returnresult;

?避免過(guò)多的參數(shù)列表

盡量控制在5個(gè)以內(nèi),若需要傳遞多個(gè)參數(shù)時(shí),應(yīng)使用一人容納這些參數(shù)的對(duì)象

進(jìn)行傳遞,以提高程序的可讀性和可擴(kuò)展性。參數(shù)類型和返回值盡量接口化,以屏

蔽具體的實(shí)現(xiàn)細(xì)節(jié),提高系統(tǒng)的可擴(kuò)展性,

例如:

publicvoidjoinGroup(ListuserList){}

publicListlistAHUsersO{}

2.2.3表達(dá)式與語(yǔ)句

?控制語(yǔ)句

判斷中如有常量,則應(yīng)將常量置與判斷式的右側(cè)。

如:

if(true==isAdminO)...

if(null==user)...

if(.equals(strParameter)….這種判斷還可以省了判斷null

盡量不使用三目條件判斷。

所有if語(yǔ)句必須用。包括起來(lái),即便是只有一句,如:

〃不要使用這種

if(true)i=0;

〃使用這種方式

if(true){

i=0;.

)

?過(guò)多的else分句請(qǐng)將其轉(zhuǎn)成switch語(yǔ)句或使用子函數(shù)

每當(dāng)一個(gè)case順著往下執(zhí)行時(shí)(因?yàn)闆](méi)有break語(yǔ)句),通常應(yīng)在break語(yǔ)句的位

置添加注釋。如:

switch(condition){

caseABC:

//statements;

〃繼續(xù)下一個(gè)CASE

caseDEF:

//statements;

break;

caseXYZ:

//statements;

break;

default:

6

//statements;

break;

}//endswitch

2.2.4循環(huán)語(yǔ)句

循環(huán)中必須有終止循環(huán)的條件或語(yǔ)句,避免死循環(huán)。

當(dāng)在for語(yǔ)句的初始化或更新子句中使用逗號(hào)時(shí),避免因使用三個(gè)以上變量,而導(dǎo)致

復(fù)雜度提高。若需要,可以在for循環(huán)之前(為初始化子句)或for循環(huán)末尾(為更新子句)

使用單獨(dú)的語(yǔ)句。

避免在循環(huán)中執(zhí)行取固定值的重復(fù)操作,比較一下兩種循環(huán)的差異:

〃不推薦方式______________________________________________

while(index<products.getCountO){

〃每此都會(huì)執(zhí)行一次gelCount()方法,

〃若此方法耗時(shí)則會(huì)影響執(zhí)行效率

〃而且可能帶來(lái)同步問(wèn)題,若有同步需求,請(qǐng)使用同步塊或同步方法

}

〃推薦方式________________________________________________

〃將操作結(jié)構(gòu)保存在臨時(shí)變量里,減少方法調(diào)用次數(shù)

finalintcount=products.getCount0;

u-hile(index<count){

)

2.2.5異常捕捉

?當(dāng)捕捉到異常時(shí),必須處理catch代碼區(qū),打印錯(cuò)誤信息。原因:不能預(yù)料代碼運(yùn)行

可能出現(xiàn)的所有情況。為了減少測(cè)試周期和避免未知的錯(cuò)誤,必須在catch代碼區(qū)報(bào)

告錯(cuò)誤信息。

7

try(

_serivce.connect0;

}catch(ConnectionExccptionce){

//Thisisunexpectedbutsince

//IreadthecodingstandardandIunderstand

//itsbenefits,I'11logamessage

_logger.og(ce.printStackTrace());

}

?不要使用Exception,而應(yīng)該盡可能的精確捕捉異常。原因:精確的捕捉異常能夠幫

助你了解代碼和確切知道你要做什么。下面為錯(cuò)誤使用異常的案例:

try{

_file=newFile(name);

if(_file.existsO){

db.store(_file);

}

printReport();

}catch(Exceptione){

e.printStackTraceO;

}

正確異常捕捉的案例:

8

try(

_file=newFile(name);

if(_file.existsO){

db.store(_filc);

)

printReport();

}catch(lOExceptionie){

Stringmessage=MessageService.message(FILE_NOT_FOUND,name);

thrownewStoringException(ie,message);

}catch(JDOExceptionje){

Stringmessage=MessageService.message(DB_ERROR);

thrownewStroringException(je,message);

}catch(ReportExceptionre){

logger,log(re.getMessage());

?每個(gè)構(gòu)造器和方法必須明確的聲明所有可能拋出的未經(jīng)制止的異常。原因:為了保持

一致性,構(gòu)造方法和其他方法可以在他們調(diào)用的命令上設(shè)置約束。文檔允許調(diào)用者忽

略運(yùn)行期異常。

?當(dāng)拋出異常時(shí),不要提及拋出這個(gè)異常的方法的名字,而是使用說(shuō)明性的文字。原因:

報(bào)告信息不能只提供方法的名字,一個(gè)好的異常信息是非常有用的。

?確保有一個(gè)catch塊捕捉和處理所有未能預(yù)料的異常。原因:java允許開發(fā)者不去聲

明和捕捉共有的容易處理的異常。應(yīng)定義它并捕捉它。

9

?不要用一個(gè)未經(jīng)處理的異常來(lái)代替檢測(cè)異常條件的代碼

如:空指針異??捎蓷l件處理

〃不要這樣做

StringuserName=request.getParameter("username");

try(

userName=userName.trim();

)

catch(NulIPointExceptionnpex){

npex.printStackTrace0;

)

〃應(yīng)這樣

StringuserName=request.getParameter("username");

userName=(null==userName)?userName:userName.trim();

2.2.6變量

?不要把一個(gè)實(shí)例變量聲明為public(這不包括常量的聲明)。原因:這是面向?qū)ο蟮?/p>

原理。使變量為公開的,意味著放棄對(duì)類內(nèi)部結(jié)構(gòu)的控制,而且不能保證變量有有效

的值。

?盡量減少使用變量默認(rèn)的初始化值。(像String初始化為“”)。原因:盡量減少初

始化的錯(cuò)誤。

?盡量減少static。staticfinal常量除外。原因:static變量相當(dāng)于非00語(yǔ)言的全

局變量。它們使方法依賴于局部的上下文環(huán)境,有時(shí)會(huì)引起同步錯(cuò)誤,而且使代碼更

容易崩潰。

?通常用long代替int,double代替float。原因:用long比int要少4億次的上溢和

下溢;類似的,用double比f(wàn)loat少出現(xiàn)精確度的問(wèn)題。另一方面,由于JAVA的限制,

用long和double要同步,而用int和float不需要同步。

?如果要使變量在類的生命期內(nèi)不被改變,定義為finals原因:使用這種方式定義的

10

常量不需要任何同步。

?避免定義多余的存取實(shí)例變量的方法。只有直正需要時(shí),才為它們寫get/set方法。

原因:許多類中的變量的值依賴其它的變量。

?盡可能不要在方法中直接存取實(shí)例變量,而是采用protected的存取方法來(lái)代替。原

因:OOP規(guī)則

?通常使用protected代替private。

?避免給一個(gè)類中的成員變量取和超類相同的名字。原因:它們通常會(huì)造成錯(cuò)誤。

?在你知道局部變量值時(shí),你才去定義它。原因:盡量減少因?yàn)榫植孔兞砍跏蓟鴰?lái)

的問(wèn)題。

?寧愿定義和初始化一個(gè)局部變量,也不要使用一個(gè)碰巧不再使用的一個(gè)已經(jīng)定義的變

量。原因:盡量減少局部變量初始化而帶來(lái)的問(wèn)題。

?賦予不再使用的變量的值為null。原因:保證垃圾更容易回收

2.2.7方法

?聲明你的類和方法是線程安全的。原因:保證代碼在任何情況都可以正常運(yùn)行。

?避免覆蓋返回有爭(zhēng)議類型的方法。原因:默認(rèn)版本的clone可能不像你期望的那樣實(shí)

現(xiàn)你所要實(shí)現(xiàn)的。

?寫一個(gè)僅做“一件事”的方法。

?定義主類中有默認(rèn)實(shí)現(xiàn)的方法為抽象方法。原因:Java編譯器會(huì)強(qiáng)迫子類的實(shí)現(xiàn)者去

實(shí)現(xiàn)抽象方法,避免因?yàn)闆](méi)有實(shí)現(xiàn)父類的方法而導(dǎo)致程序出錯(cuò)。

2.2.8日志

以下內(nèi)容請(qǐng)使用日志形式記錄,不要使用System.out.printin.

?所有調(diào)試信息

?操作日志

?系統(tǒng)業(yè)務(wù)日志

11

2.2.9其它

?如果一個(gè)Serializable類依賴于那些有不同處理過(guò)程的狀態(tài),例如hashcodes和

transient字段,覆蓋readObject和writeObject。原因:否則這個(gè)類的對(duì)象將不能

正確傳送。

?如果你認(rèn)為在你寫的類中可能調(diào)用clone。方法,那你就明確的定義它(聲明這個(gè)類繼

承Cloneable接口)。原因:默認(rèn)版本的clone可能不像你期望的那樣實(shí)現(xiàn)你所要實(shí)現(xiàn)

的。

?如果你替換了Object.equals,同時(shí)你也要替換Object.hashCode。原因:木質(zhì)上,所

有的容器和其他工具在比較對(duì)象時(shí),所有的使用equals的方法都是依靠hashCode來(lái)比

較是否相等。

?對(duì)象比較時(shí)用equals代替==,尤其是Strings比較時(shí)。原因:默認(rèn)的equals方法等

同于“=="方法。

?用notifyAll代替notify和resumeo原理:僅使用notify的類能夠正常的支持僅使

用一種等待條件跨越所有類和子類方法的情況。使用suspend/resume更容易使代碼崩

潰。

2210編程技巧

?exit()

exit除了在main中可以被調(diào)用外,其他的地方不應(yīng)該被調(diào)用。

?異常

申明的錯(cuò)誤應(yīng)該拋出一個(gè)RuntimeException或者派生的異常。

頂層的main。函數(shù)應(yīng)該截獲所有的異常,并且打?。ɑ蛘哂涗浽谌罩局校┰谄聊?/p>

上。

?數(shù)據(jù)庫(kù)連接池

連接完數(shù)據(jù)庫(kù)時(shí),必須關(guān)閉數(shù)據(jù)庫(kù)連接。

盡量使用PreparedStatement,而不要使用Statemento

12

盡可能使用批處理操作。

?垃圾收集

JAVA使用成熟的后臺(tái)垃圾收集技術(shù)來(lái)代替引用計(jì)數(shù),你必須在使用完對(duì)象的實(shí)例

后進(jìn)行清除。下面是一個(gè)錯(cuò)誤使用的例子:

FileOutputStreamfos=newFileOutputStream(projectFile);

project.save(fos,"IDEProjectFile");

}

除非輸出流一出作用域就關(guān)閉,否則Java是不能自動(dòng)完成變量的清除工作的。下

面為正確例子:

FileOutputStreamfos=newFileOutputStream(projectFile);

project,save(fos,"IDEProjectFile*);

fos.close();

?final類

絕對(duì)不要因?yàn)樾阅艿脑蚨鴮㈩愝p易定義為final0

如果一個(gè)類還沒(méi)有準(zhǔn)備好被繼承,最好在類文檔中注明,而不要將它定義為final,

因?yàn)椴荒鼙WC它以后不會(huì)被繼承。

?Clone

下面是一種有用的方法

implementsCloneable

13

public

Objectclone()

(

try(

ThisClassobj=(ThisClass)super,clone();

obj.fieldl=(int[])fieldl.clone();

obj.field2=field2;

returnobj;

}catch(CloneNotSupportedExceptione){

thrownewInternalError(*UnexpectedCloneNotSUpportedException:“

+e.getMessage());

)

)

?byte數(shù)組轉(zhuǎn)換到characters

把characters轉(zhuǎn)換到byte數(shù)組

“Helloworld!\getBytesO;

?Utility類

Utility類(僅僅提供方法的類)應(yīng)該被申明為抽象的來(lái)防止被繼承或被初始化。

?初始化

下面的代碼是一種很好的初始化數(shù)組的方法:

objectArguments=newObject[]{arguments);

?枚舉類型

14

JAVA對(duì)枚舉的支持不好,但是下面的代碼是一種很有用的模板:

classColor{

publicstaticfinalColorBLACK=newColor(0,0,0);

publicstaticfinalColorRED=newColor(OxFF,0,0)

這種方式實(shí)現(xiàn)了RED,GREEN,BLUE等可以像其他語(yǔ)言的枚卷類型一樣使用。可以

使用“二”操作符來(lái)比較。

但是這樣使用有一個(gè)缺陷:如果用下面方法創(chuàng)建顏色BLACK如:new

Color(0,0,0)o

使用“==”操作符會(huì)產(chǎn)生錯(cuò)誤。它的equal。方法仍然有效。這種技巧的缺陷最

好注明在文檔中,或者只在自己的包中使用。

?訪問(wèn)類的成員變量

大部分的類成員變量應(yīng)該定義為private的來(lái)防止繼承類使用他們。

注意,要用packets”,而不是"intpackets1]〃,后,種永遠(yuǎn)也不要用。

publicvoidsetPackets(int[]packets){this,packets=packets;}

CounterSet(intsize){

this,size=size;

?成員函數(shù)的可見(jiàn)性

良好的程序設(shè)計(jì)應(yīng)該盡可能減小類與類之間耦合,所遵循的經(jīng)驗(yàn)法則是:盡量限制

成員函數(shù)的可見(jiàn)性。如果成員函數(shù)沒(méi)必要公有(public),就定義為保護(hù)(protected);

沒(méi)必要保護(hù)(protected),就定義為私有(private)(,

可見(jiàn)性說(shuō)明正確用法

public公有成員函數(shù)可被任何其它對(duì)象和當(dāng)該成員函數(shù)必須被該函數(shù)所在的層

15

類的成員函數(shù)調(diào)用。次結(jié)構(gòu)之外的其他對(duì)象和類在訪問(wèn)

時(shí)。

protected被保護(hù)的成員函數(shù)可被它所在的類當(dāng)該成員函數(shù)提供的行為被它所在類

或該類的子類的任何成員函數(shù)調(diào)的層次結(jié)構(gòu)內(nèi)部而非外部需要時(shí)。

用。

private私有成員函數(shù)只可以被該類所在的當(dāng)該成員函數(shù)用提供的行為明確針對(duì)

其它成員函數(shù)調(diào)用,該類的子類不定義它的類時(shí)。私有成員函數(shù)常常是

可以調(diào)用。重新分配要素的結(jié)果。重新分配要素

又叫“重組”,指類內(nèi)其它成員函數(shù)

封裝某一個(gè)特定行為的做法。

2.3代碼示例

2.3.1Example.java

/**

*xx科技信息技術(shù)有限公司版權(quán)所有違者必究

*

*<br>Company:天創(chuàng)科技

*<br>?author李四

*<br>?version1.0

?-------------------------------------------

*修改記錄

*修改者:李四

*修改原因:新增解析XM:方法,參見(jiàn)504行。

*

packagecom.intalio.n3.xml;

importjava.io.Serializable;

16

importjava.net.URL;

importjava.net.MalformedURLException;

/**

*示例,用于示例

*

publicclassExampleClassimplementsSerializable(

privateStringid;〃用戶ID

/**

*構(gòu)造函數(shù),根據(jù)傳入的ID創(chuàng)建一個(gè)新的對(duì)象

*@paramidString新ID

*/

publicExampleClass(Stringid){

this.id=id;

}

/??

*添加新用戶

?@paramUseruser新用戶實(shí)例

*@retumString0,成功,1,已存在,2,校瞼失敗,3,系統(tǒng)錯(cuò)誤

?/

publicStringaddUser(Useruser){

〃1.查看庫(kù)中是否存在用戶

try{

UsertmpUser=dao.getUser(user.getldO);

if(null!=tmpUser){

17

return1;

)

}catch(NulIPointerExcepticne){

return"3";

)

//2校驗(yàn)用戶是信息

if(user.getName().indcxOf("w)>0){

return"2";

)

//3.保存

dao.saveUser(user);

return"0";

)

//=====—===getter/setter=========

publicStringgetldO{

returnthis,id;

)

publicvoidsetld(Stringid){

this,id二id:

)

2.3.2Html/jsp/js

<html>

<hcad>

18

。一引入內(nèi)容一〉

〈/head〉

<body>

</body>

/**

*JS方法,添加用戶

*/

functionaddUser(id,name)

)

</html>

3.研發(fā)過(guò)程

3.1研發(fā)計(jì)劃

3.1.1工作描述

項(xiàng)目經(jīng)理根據(jù)項(xiàng)目實(shí)際情況,按照項(xiàng)目管理計(jì)劃模板,制定出項(xiàng)目管理計(jì)劃。主要包括:

項(xiàng)目目標(biāo)、項(xiàng)目環(huán)境資源需求、項(xiàng)目過(guò)程定義、主要里程碑、項(xiàng)目人力資源計(jì)劃、干系人介

入計(jì)劃、項(xiàng)目組培訓(xùn)計(jì)劃、評(píng)審計(jì)劃、度量數(shù)據(jù)收集與分析計(jì)劃、可交付成果清單、方法與

工具等。

根據(jù)項(xiàng)目管理計(jì)劃中的里程碑時(shí)間點(diǎn)制定項(xiàng)目詳細(xì)進(jìn)度計(jì)劃。進(jìn)度計(jì)劃中應(yīng)進(jìn)行任務(wù)細(xì)

分,將每個(gè)階段的工作細(xì)化,并規(guī)定完成時(shí)間以及負(fù)責(zé)人。使用Project編寫進(jìn)度計(jì)劃。

19

項(xiàng)目經(jīng)理需要識(shí)別項(xiàng)目潛在風(fēng)險(xiǎn),并使用《項(xiàng)目風(fēng)險(xiǎn)/重大跟蹤表》記錄和跟蹤風(fēng)險(xiǎn)狀

態(tài)。

配置管理員與項(xiàng)目變更控制委員會(huì)(CCB)確認(rèn)項(xiàng)目的訪問(wèn)控制、基線和版本策略、

分支版本策略、構(gòu)建發(fā)布策略、變更控制策略等,建立配置管理計(jì)劃。

由品質(zhì)保證工程師根據(jù)項(xiàng)目開發(fā)計(jì)劃中的時(shí)間進(jìn)度,制定針對(duì)其具體過(guò)程和產(chǎn)品的品質(zhì)

保證計(jì)劃。計(jì)劃中需要根據(jù)項(xiàng)目的特征確定檢查哪些過(guò)程和工作成果,還需要計(jì)劃?rùn)z查的時(shí)

間和人員。

測(cè)試負(fù)責(zé)人根據(jù)項(xiàng)目管理計(jì)劃和需求規(guī)格說(shuō)明書對(duì)項(xiàng)目的測(cè)試進(jìn)度、測(cè)試資源的投入、

測(cè)試的整體思路和測(cè)試重點(diǎn)等進(jìn)行計(jì)劃,完成項(xiàng)目測(cè)試計(jì)劃。

項(xiàng)目管理計(jì)劃及附屬計(jì)劃評(píng)審,使用評(píng)審報(bào)告記錄和跟蹤評(píng)審發(fā)現(xiàn)問(wèn)題。如項(xiàng)目工期緊

張,該項(xiàng)評(píng)審工作可采用郵件評(píng)審方式。

需求范圍明確后,需要對(duì)項(xiàng)目管理計(jì)劃中的里程碑時(shí)間點(diǎn)、人員安排等做調(diào)整,各附屬

計(jì)劃也進(jìn)行相應(yīng)調(diào)整。

項(xiàng)目立項(xiàng)且需求基本確定后,由項(xiàng)目經(jīng)理根據(jù)項(xiàng)目的實(shí)際情況,會(huì)同分管領(lǐng)導(dǎo)意見(jiàn),提

出項(xiàng)目獎(jiǎng)金申請(qǐng),申請(qǐng)過(guò)程通過(guò)編報(bào)《項(xiàng)目詳細(xì)進(jìn)度計(jì)劃》、《項(xiàng)目成本估算、獎(jiǎng)金核定表

(研發(fā))》、并將完成的相關(guān)材料通過(guò)郵件發(fā)送給運(yùn)營(yíng)監(jiān)管中心項(xiàng)目監(jiān)管部并抄送主管領(lǐng)導(dǎo),

進(jìn)行審批。

3.1.2交付工作產(chǎn)品

?《項(xiàng)目管理計(jì)劃》

?《項(xiàng)目詳細(xì)進(jìn)度計(jì)劃》

?《風(fēng)險(xiǎn)/重大問(wèn)題跟蹤表》

?《品質(zhì)保證計(jì)劃及路線圖》

3.1.3文檔編寫指南

(1)《項(xiàng)目管理計(jì)劃》

20

項(xiàng)Fl經(jīng)理在制定項(xiàng)Fl管理計(jì)劃時(shí),至少要明確,項(xiàng)目目標(biāo)與內(nèi)容、項(xiàng)目所需資源及環(huán)境

要求、項(xiàng)目過(guò)程定義、項(xiàng)目主要里程碑、人力資源計(jì)劃、干系人介入計(jì)劃、項(xiàng)目度量計(jì)劃、

項(xiàng)目評(píng)審計(jì)劃、提交的工作產(chǎn)品清單、方法與工具等。

項(xiàng)目過(guò)程定義主要是根據(jù)項(xiàng)目實(shí)際情況對(duì)項(xiàng)目過(guò)程進(jìn)行裁剪;項(xiàng)目干系人介入計(jì)劃主要

明確項(xiàng)目相關(guān)干系人何時(shí)、如何介入項(xiàng)目;項(xiàng)目度量計(jì)劃和評(píng)審計(jì)劃目前模板中已經(jīng)有固定

的數(shù)據(jù)了,項(xiàng)目經(jīng)理可以根據(jù)項(xiàng)目情況進(jìn)行裁剪。需求、開發(fā)規(guī)模的度量,計(jì)劃、需求、功

能評(píng)審都是必須要做的。

(2)《項(xiàng)目詳細(xì)進(jìn)度計(jì)劃》

根據(jù)項(xiàng)目管理計(jì)劃使用xls或MSProject編寫項(xiàng)目詳細(xì)計(jì)劃,項(xiàng)目詳細(xì)計(jì)劃中的工作包

顆粒度要細(xì),每個(gè)工作包需要投入的資源及資源投入百分比都需要填寫。項(xiàng)目進(jìn)度計(jì)劃制定

后,應(yīng)定期進(jìn)行跟蹤、更新、細(xì)化,至少1-2周一次。

(3)《風(fēng)險(xiǎn)/重大問(wèn)題跟蹤表》

制定項(xiàng)目計(jì)劃的同時(shí),對(duì)項(xiàng)目潛在風(fēng)險(xiǎn)進(jìn)行識(shí)別,并記錄在風(fēng)險(xiǎn)/重大問(wèn)題跟蹤表的上

半部分,如果風(fēng)險(xiǎn)發(fā)生,轉(zhuǎn)變?yōu)閱?wèn)題后,應(yīng)該更新風(fēng)險(xiǎn)的狀態(tài),并將問(wèn)題記錄在風(fēng)險(xiǎn)/重大

問(wèn)題跟蹤表的下半部分進(jìn)行跟蹤。對(duì)風(fēng)險(xiǎn)和問(wèn)題的跟蹤也應(yīng)是定期的,至少1-2周一次。

(4)《品質(zhì)保證計(jì)劃及路線圖》

主要明確品質(zhì)保證工程師在那些點(diǎn)介入項(xiàng)目,進(jìn)行審計(jì)和檢查。

3.1.4經(jīng)驗(yàn)分享

項(xiàng)目管理計(jì)劃及附屬計(jì)劃完成后需進(jìn)行評(píng)審,評(píng)審可采取郵件或會(huì)議形式,為節(jié)約資源,

一般都建議采取郵件評(píng)審方式。項(xiàng)目計(jì)劃出現(xiàn)變更時(shí),相關(guān)附屬計(jì)劃都需要隨之進(jìn)行變更。

項(xiàng)目管理計(jì)劃中,比較容易忽略的資源環(huán)境、干系人介入計(jì)劃一定要按實(shí)際情況填寫,

評(píng)審計(jì)劃、度量數(shù)據(jù)收集計(jì)劃、項(xiàng)目使用的方法與工具應(yīng)按照項(xiàng)目實(shí)際情況進(jìn)行填寫。提交

的工作產(chǎn)品清單應(yīng)盡量詳細(xì),命名也要規(guī)范,要與項(xiàng)目過(guò)程定義時(shí)確認(rèn)需要提交的工作產(chǎn)品

保持一致。

21

制定項(xiàng)Fl計(jì)劃階段要重視風(fēng)險(xiǎn)識(shí)別,最好所有干系人都參與風(fēng)險(xiǎn)識(shí)別,可以參考類似項(xiàng)

目,必要時(shí)向?qū)<艺?qǐng)教。需求、設(shè)計(jì)階段要持續(xù)進(jìn)行風(fēng)險(xiǎn)識(shí)別??梢詮墓δ?、質(zhì)量、性能角

度識(shí)別技術(shù)風(fēng)險(xiǎn),從人力資源狀況識(shí)別管理風(fēng)險(xiǎn)。

制定項(xiàng)目計(jì)劃時(shí),選用合適的軟件工具,盡量減少項(xiàng)目計(jì)劃的工作量。

3.1.5方法與工具

在進(jìn)行進(jìn)度和成本估算時(shí)可使用以下方法:

(1)專家判斷法

即請(qǐng)本領(lǐng)域的專家來(lái)判斷執(zhí)行項(xiàng)目各工作所需時(shí)間的長(zhǎng)短。工作持續(xù)時(shí)間的估計(jì)常常是

相當(dāng)困難的,它要涉及到眾多的因素,一般很難找到一個(gè)通用的計(jì)算方法,這個(gè)時(shí)候?qū)<业?/p>

歷史經(jīng)驗(yàn)和記錄就顯得尤為重要,盡管這種方法的結(jié)果也具有一定的不確定性和風(fēng)險(xiǎn),但仍

然不失為一種行之有效的方法。

(2)三時(shí)估算法

一般地還可以通過(guò)估計(jì)完成工作的最樂(lè)觀時(shí)間、最悲觀時(shí)間及最可能時(shí)間按下式來(lái)估算

工作持續(xù)時(shí)間:工作持續(xù)時(shí)間=(樂(lè)觀的時(shí)間+4義最有可能的時(shí)間+最悲觀的時(shí)間)/6

(3)經(jīng)驗(yàn)估算法

進(jìn)行估計(jì)的人應(yīng)有專門知識(shí)和豐富的經(jīng)驗(yàn),據(jù)此提出一個(gè)近似的數(shù)字。這種方法是一種

最原始的方法,還稱不上估算,只是一種近似的猜測(cè)。它僅適合于要求很快拿出一個(gè)大概數(shù)

字的項(xiàng)目。

(4)自上而下估算法

此方法一般要求有類似完成項(xiàng)目的經(jīng)驗(yàn)的情況下使用。其主要內(nèi)容是:收集上、中層管

理人員的經(jīng)驗(yàn)和判斷,以及相關(guān)歷史數(shù)據(jù),然后上、中層管理人員估計(jì)整個(gè)項(xiàng)目的費(fèi)用和各

個(gè)分項(xiàng)目的費(fèi)用,將此結(jié)果傳送給下一層管理人員,責(zé)成其對(duì)組成項(xiàng)目和子項(xiàng)目的任務(wù)和子

任務(wù)的費(fèi)用進(jìn)行估算,并繼續(xù)向下傳送其結(jié)果,直到項(xiàng)目組的最基層。

這種過(guò)程和層級(jí)計(jì)劃制定的過(guò)程類似,費(fèi)用如同項(xiàng)目一樣,按照IBS過(guò)程,從最高層到

最底層進(jìn)行逐層分解。

22

這種方法的缺點(diǎn)是特別需要是立好上下管理層暢通的溝通渠道。因?yàn)樯蠈庸芾砣藛T根據(jù)

經(jīng)驗(yàn)得出的費(fèi)用估算結(jié)果可能不能滿足下層管理人員認(rèn)為完成任務(wù)的需要。此時(shí)若不能適當(dāng)

地溝通,費(fèi)用分配方案失去原有的作用而變成完成項(xiàng)目任務(wù)的阻礙,從而導(dǎo)致項(xiàng)目的失敗。

使用此方法的好處是中、上層管理人員能夠比較準(zhǔn)確地掌握項(xiàng)目整體費(fèi)用分配,從而使

項(xiàng)目的費(fèi)用能夠合理地控制在一個(gè)水平上,一定程度上避免了項(xiàng)目的費(fèi)用風(fēng)險(xiǎn)。

(5)自下而上估算法

該方法是指參與項(xiàng)目工作的每一機(jī)構(gòu)和基層單位都估算自己的費(fèi)用,將估算結(jié)果加起來(lái)

的總和,得到該項(xiàng)目的整個(gè)估算燹用。具體地可按照WBS體系,從下而上估算各個(gè)工作的費(fèi)

用,得到項(xiàng)目的直接費(fèi)用估計(jì),項(xiàng)目經(jīng)理再在此基礎(chǔ)上加上合理的間接費(fèi)用,估算出項(xiàng)目的

總費(fèi)用。

根據(jù)軟件程序模塊的標(biāo)識(shí)和定義,估計(jì)代碼的行數(shù),可近似確定開發(fā)和測(cè)試軟件的費(fèi)用。

這種方法的缺點(diǎn)在于要保證所有的工作和任務(wù)都被考慮到,而且對(duì)每個(gè)工作單元有過(guò)高

估算的傾向,往往導(dǎo)致最后的費(fèi)用估算無(wú)法接受。

它的優(yōu)點(diǎn)在于比起高層管理人員來(lái),底層直接參與項(xiàng)目工作的人員更清楚項(xiàng)目工作所需

資源的種類和數(shù)量,費(fèi)用估算更為精確。而且費(fèi)用估算出自他們自己的估計(jì),可以避免以后

費(fèi)用預(yù)算過(guò)程中的一些沖突和不滿。

(6)類比估算法

即比照以前的經(jīng)驗(yàn),或比較以往類似項(xiàng)目的檔案資料,根據(jù)以前的類似的實(shí)際項(xiàng)目的工

作時(shí)間來(lái)推測(cè)估計(jì)當(dāng)前項(xiàng)目各工作時(shí)間的。如果當(dāng)前的項(xiàng)目與類比的項(xiàng)目很類似時(shí),類比估

計(jì)是一種最有效的方法。

類比估算中的不確定性歸根結(jié)底是由技術(shù)人員和費(fèi)用估算人員所作的主觀評(píng)價(jià)引起的。

在多數(shù)情況下,可以進(jìn)行實(shí)際的技術(shù)比較。問(wèn)題是在技術(shù)差異的基礎(chǔ)上建立費(fèi)用關(guān)系,甚至

當(dāng)技術(shù)人員做出的所有決策都可以定量客觀評(píng)價(jià)時(shí),費(fèi)用估算人員還需要確定有關(guān)技術(shù)發(fā)現(xiàn)

的費(fèi)用影響。在很多情況下,這些費(fèi)用影響是非常主觀的,因而,這種估算還是具有較大的

不確定性。類比估算適用于項(xiàng)目早期,此時(shí)還沒(méi)有系統(tǒng)的實(shí)際費(fèi)用數(shù)據(jù),也沒(méi)有相似系統(tǒng)的

大型數(shù)據(jù)庫(kù),只有此種方法的估算較為準(zhǔn)確。

23

3.1.6自檢要素

令相關(guān)文檔的命名是否符合公司相關(guān)規(guī)范,是否以項(xiàng)目編號(hào)+項(xiàng)目名稱+文檔名稱的方

式命名

令項(xiàng)目管理計(jì)劃里程碑時(shí)間點(diǎn)是否是具體的日期,并且有標(biāo)志性提交物

?項(xiàng)目管理計(jì)劃最終提交二作產(chǎn)品清單是否全部包含了項(xiàng)目裁剪后生命周期模型所

要求的工作產(chǎn)品

?是否制定了項(xiàng)目組必須的培訓(xùn)計(jì)劃(包含對(duì)內(nèi)培訓(xùn)和對(duì)外培訓(xùn))

?是否對(duì)項(xiàng)目的風(fēng)險(xiǎn)進(jìn)行了識(shí)別,制定了風(fēng)險(xiǎn)管理措施

令是否識(shí)別了相關(guān)干系人,并對(duì)干系人介入的活動(dòng)進(jìn)行了定義

令項(xiàng)目進(jìn)度計(jì)劃中,工作任務(wù)的工期、工時(shí)、起止時(shí)間、資源是否否己明確定義

令項(xiàng)目的溝通計(jì)劃是否清晰明確

令項(xiàng)目的評(píng)審、度量計(jì)劃是否已制定

令項(xiàng)目管理計(jì)劃及其附屬計(jì)劃是否經(jīng)過(guò)正式評(píng)審(郵件或會(huì)議),并保留了評(píng)審記錄

令進(jìn)行成本估算時(shí),項(xiàng)目的主要需求是否已確定

3.2設(shè)計(jì)與開發(fā)

3.2.1工作描述

分析與設(shè)計(jì)軟件的體系結(jié)構(gòu),產(chǎn)生《概要技術(shù)方案說(shuō)明書》。

對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行設(shè)計(jì),定義各數(shù)據(jù)實(shí)體的存儲(chǔ)結(jié)構(gòu),確定結(jié)構(gòu)、約束、索引、關(guān)系等,

產(chǎn)生《數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書》

設(shè)計(jì)關(guān)鍵用戶界面,設(shè)計(jì)軟件模塊的主要接口、類、數(shù)據(jù)結(jié)構(gòu)、算法,產(chǎn)生《模塊設(shè)計(jì)

說(shuō)明書》

完成代碼的編寫,并通過(guò)單元測(cè)試,完成集成測(cè)試所需要的產(chǎn)品

24

3.2.2交付工作產(chǎn)品

?《技術(shù)研究報(bào)告》

?《概要技術(shù)方案說(shuō)明書》

?《數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書》

?《模塊設(shè)計(jì)說(shuō)明書》

?《相關(guān)評(píng)審報(bào)告》

3.2.3文檔編寫指南

(1)《技術(shù)研究報(bào)告》

需要明確項(xiàng)目的技術(shù)路線.描述集中可能用到的技術(shù)路線,并加以對(duì)比分析,最終確認(rèn)

可行的技術(shù)路線。

(2)《概要技術(shù)方案說(shuō)明書》

確定項(xiàng)目的總體框架、關(guān)鍵技術(shù)。

(3)《數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書》

主要描述項(xiàng)目總體ER圖及各模塊的ER圖,項(xiàng)目各表之前的關(guān)系及表結(jié)構(gòu)。

(4)《模塊設(shè)計(jì)說(shuō)明書》

主要對(duì)各模塊的類圖、調(diào)用關(guān)系、接口等進(jìn)行設(shè)計(jì)。

(5)《相關(guān)評(píng)審報(bào)告》

如項(xiàng)目有設(shè)計(jì)工作,設(shè)計(jì)工作產(chǎn)品應(yīng)及時(shí)進(jìn)行評(píng)審,每個(gè)項(xiàng)目都必須做功能評(píng)審。

3.2.4經(jīng)驗(yàn)分享

目前公司多數(shù)產(chǎn)品都是基于D&A平臺(tái)進(jìn)行開發(fā)的,一般都是做完需求規(guī)格后直接就進(jìn)

行開發(fā),項(xiàng)目的設(shè)計(jì)工作可以根據(jù)項(xiàng)目具體情況進(jìn)行裁剪,單元測(cè)試、功能評(píng)審一定要做。

系統(tǒng)設(shè)計(jì)可分為兩個(gè)部分進(jìn)行,首先是總體設(shè)計(jì),其任務(wù)是系統(tǒng)的總體結(jié)構(gòu)進(jìn)行設(shè)計(jì),

在此基礎(chǔ)上進(jìn)行第二階段一一詳細(xì)設(shè)計(jì),它的任務(wù)是在系統(tǒng)總體設(shè)計(jì)的指導(dǎo)下,對(duì)系統(tǒng)各組

成部分進(jìn)行細(xì)致、具體的物理設(shè)計(jì),使系統(tǒng)總體設(shè)計(jì)階段所作的各種決定具體化。

25

對(duì)開發(fā)人員進(jìn)行“代碼審查、測(cè)試、改錯(cuò)”等方面的培訓(xùn),提高他們的工作效率。

開發(fā)小組根據(jù)產(chǎn)品的特征,可以適當(dāng)?shù)匦薷谋疽?guī)范的各種文檔模板。

代碼設(shè)計(jì)的基本原則:具備唯一確定性;標(biāo)準(zhǔn)化與通用性:可擴(kuò)充且易修改;短小精

悍即選擇最小值代碼;具有規(guī)律性、便于編碼和識(shí)別。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論