版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、JAVA 編程規(guī)范編程規(guī)范1. 應(yīng)用范圍應(yīng)用范圍本規(guī)范應(yīng)用于采用 J2EE 規(guī)范的項目中,所有項目中的 JAVA 代碼(含 JSP,SERVLET,JAVABEAN,EJB)均應(yīng)遵守這個規(guī)范。同時,也可作為其它項目的參考。 2. 設(shè)計類和方法設(shè)計類和方法2.12.1 創(chuàng)建具有很強內(nèi)聚力的類創(chuàng)建具有很強內(nèi)聚力的類方法的重要性往往比類的重要性更容易理解,方法是指執(zhí)行一個統(tǒng)一函數(shù)的一段代碼。類常被錯誤的視為是一個僅僅用于存放方法的容器。有些開發(fā)人員甚至把之所以不能正確的認識類的功能,原因之一是類的實現(xiàn)實際上并不影響程序的執(zhí)行。當一個工程被編譯時,如果所有方法都放在單個類中或者放在幾十個類中,這沒有任
2、何關(guān)系。雖然類的數(shù)量對代碼的執(zhí)行并無太大的影響,但是當創(chuàng)建便于調(diào)試和維護的代碼時,類的數(shù)量有時會帶來很大的影響。類應(yīng)該用來將相關(guān)的方法組織在一起。當類包含一組緊密關(guān)聯(lián)的方法時,該類可以說具有強大的內(nèi)聚力。當類包含許多互不相關(guān)的方法時,該類便具有較弱的內(nèi)聚力。應(yīng)該努力創(chuàng)建內(nèi)聚力比較強的類。大多數(shù)工程都包含許多并不十分適合與其他方法組合在一起的方法。在這種情況下,可以為這些不合群的方法創(chuàng)建一個綜合性收容類。創(chuàng)建類時,應(yīng)知道“模塊化”這個術(shù)語的含義是什么。類的基本目的是創(chuàng)建相當獨立的程序單元。2.22.2 創(chuàng)建松散連接和高度專用的方法創(chuàng)建松散連接和高度專用的方法1. 使所有方法都執(zhí)行專門的任務(wù) 每個
3、方法都應(yīng)執(zhí)行一項特定的任務(wù),它應(yīng)出色的完成這項任務(wù)。應(yīng)避免創(chuàng)建執(zhí)行許多不同任務(wù)的方法。創(chuàng)建專用方法有許多好處。首先調(diào)試將變得更加容易。 2. 盡量使方法成為自成一體的獨立方法 當一個方法依賴于其他方法的調(diào)用時,稱為與其他方法緊密連接的方法。緊密連接的方法會使調(diào)試和修改變得比較困難,因為它牽涉到更多的因素。松散連接的方法優(yōu)于緊密連接的方法,但你不可能使每個方法都成為獨立的方法。若要使方法具備較強的獨立性,方法之一是盡量減少類變量。創(chuàng)建方法時,設(shè)法將每個方法視為一個黑箱,其他例程不應(yīng)要求了解該方法的內(nèi)部工作情況,該方法也不應(yīng)要求了解它外面的工程情況。這就是為什么你的方法應(yīng)依靠參數(shù)而不應(yīng)依靠全局變量
4、的原因。創(chuàng)建專用方法時,請考慮下列指導(dǎo)原則:1) 將復(fù)雜進程放入專用方法。如果應(yīng)用程序使用復(fù)雜的數(shù)學公式,請考慮將每個公式放入它自己的方法中。這樣使用這些公式的其他方法就不包含用于該公式的實際代碼。這樣也可以更容易發(fā)現(xiàn)與公式相關(guān)的問題。 2) 將數(shù)據(jù)輸入/輸出(I/O)放入專用方法。 3) 將專用方法中可能要修改的代碼隔離。如果你知道某個進程經(jīng)常變更,請將這個多變的代碼放入專用方法,以便以后可以更容易的進行修改,并減少無意中給其他進程帶來問題的可能性。 4) 將業(yè)務(wù)規(guī)則封裝在專用方法中。業(yè)務(wù)規(guī)則常屬于要修改的代碼類別,應(yīng)與應(yīng)用程序的其余部分隔開。其他方法不應(yīng)知道業(yè)務(wù)規(guī)則,只有要調(diào)用的方法才使用
5、這些規(guī)則。 3. 設(shè)計類和方法時,要達到下列目的: 1) 創(chuàng)建更加容易調(diào)試和維護的方法2) 創(chuàng)建具有強大內(nèi)聚力的類3) 創(chuàng)建高度專用的方法4) 創(chuàng)建松散連接的方法5) 盡量使方法具有獨立性6) 提高方法的扇入性7) 降低方法的扇出性 2.32.3 編程原則編程原則1. 為方法和類賦予表義性強的名字 為了使代碼更加容易理解,最容易的方法之一是為你的方法賦予表義性強的名字。函數(shù)名 DoIt、GetIt 的可讀性很難與 CalculateSalesTax、 RetrieveUserID 相比。由縮寫方法名組成的代碼很難理解和維護,沒有理由再這樣做了。給方法正確的命名,可使程序工程的調(diào)試和維護工作大大
6、的改觀。請認真對待方法命名的工作,不要為了減少鍵入操作量而降低方法的可理解度。實際應(yīng)用舉例:1) 給方法命名時應(yīng)大小寫字母混合使用。如果句子全使用大寫字母,那么閱讀起來就非常困難,而大小寫字母混合使用的句子,閱讀起來就很容易。 2) 定義方法名時不要使用縮寫。如果你認為應(yīng)用程序中的某些工程應(yīng)使用縮寫,那么請將這些情況加上注釋,并確保每個人在所有時間內(nèi)都使用這些縮寫。決不要在某些方法中對某些單詞進行縮寫,而在別的方法中卻不使用縮寫。 2. 為每個方法賦予單個退出點 3. 創(chuàng)建方法時,始終都應(yīng)顯式地定義它的作用域。 1) 如果你真的想創(chuàng)建一個公用方法,請向代碼閱讀者說明這一點。2) 通過為每個方法
7、賦予一個明確定義的作用域,可以減少代碼閱讀者需要投入的工作量。應(yīng)確保你為方法賦予最有意義的作用域。如果一個方法只被同一類中的另一個方法調(diào)用,那么請將它創(chuàng)建成私有方法。如果該方法是從多個類中的多個方法中調(diào)用,請將該說明為公用方法。 4. 用參數(shù)在方法之間傳遞數(shù)據(jù)應(yīng)盡量避免使用類變量。一般來說,變量的作用域越小越好。為了減少類變量,方法之一是將數(shù)據(jù)作為參數(shù)在不同方法之間傳遞,而不是讓方法共享類變量。1) 為每個參數(shù)指定數(shù)據(jù)類型。 2) 始終要對數(shù)進行檢驗,決不要假設(shè)你得數(shù)據(jù)沒有問題。程序員常犯的一個錯誤是在編寫方法時假設(shè)數(shù)據(jù)沒有問題。在初始編程階段,當編寫調(diào)用方法時,這樣的假設(shè)并無大礙。這時你完全
8、能夠知道什么是參數(shù)的許可值,并按要求提供這些值。但如果你不對參數(shù)的數(shù)據(jù)進行檢驗,那么下列情況就會給你帶來很大麻煩:另外某個人創(chuàng)建了一個調(diào)用方法,但此人不知道允許的值;你在晚些時候添加了新的調(diào)用方法,并錯誤的傳遞了壞數(shù)據(jù)。 3. 命名約定命名約定所有變量的定義應(yīng)該遵循匈牙利命名法,它使用 3 字符前綴來表示數(shù)據(jù)類型,3 個字符的前綴必須小寫,前綴后面是由表意性強的一個單詞或多個單詞組成的名字,而且每個單詞的首寫字母大寫,其它字母小寫,這樣保證了對變量名能夠進行正確的斷句。這樣,在一個變量名就可以反映出變量類型和變量所存儲的值的意義兩方面內(nèi)容,這使得代碼語句可讀性強、更加容易理解。 3.13.1
9、包、類及方法命名包、類及方法命名 標示符類型標示符類型命名約定命名約定例子例子包全部小寫。 標識符用點號分隔開來。為了使包的名字更易讀,Sun 公司建議包名中的標識符用點號來分隔。 Sun 公司的標準 java 分配包用標識符 .java 開頭。 全局包的名字用你的機構(gòu)的 Internet 保留域名開頭 。局部包:interface.screens全局包:com.rational.www. interface.screens類,接口 類的名字應(yīng)該使用名詞。 每個單詞第一個字母應(yīng)該大寫。 避免使用單詞的縮寫,除非它的縮寫已經(jīng)廣為人知,如 HTTP。Class Hello ;Class Hello
10、World ;Interface Apple ;方法 第一個單詞一般是動詞。 第一個字母是小些,但是中間單詞的第一個字母 getName();是大寫。 如果方法返回一個成員變量的值,方法名一般為get+成員變量名,如若返回的值是 bool 變量,一般以 is 作為前綴。 如果方法修改一個成員變量的值,方法名一般為:set + 成員變量名。setName();isFirst();變量 第一個字母小寫,中間單詞的第一個字母大寫。 不要用_或&作為第一個字母。 盡量使用短而且具有意義的單詞。 單字符的變量名一般只用于生命期非常短暫的變量。i,j,k,m,n 一般用于 integers;c,d
11、,e 一般用于 characters。 如果變量是集合,則變量名應(yīng)用復(fù)數(shù)。 命名組件采用匈牙利命名法,所有前綴均應(yīng)遵循同一個組件名稱縮寫列表。String myName; int students; int i;int n;char c; btNew;(bt 是 Button 的縮寫)常量 所有常量名均全部大寫,單詞間以_隔開。int MAX_NUM; 3.23.2 其它其它開發(fā)人員如果遇到上述表格中未列舉的類型,請書面通知相關(guān)管理人員,由管理人員集中更新列表內(nèi)容,不得擅自啟用未經(jīng)確定的新變量前綴。4. 使用常量使用常量4.14.1 使用常量使用常量1. 常數(shù)很容易在數(shù)據(jù)輸入時出錯 常數(shù)存在的
12、主要問題之一是你很容易在鍵入數(shù)字時出錯,從而顛倒了數(shù)字的位置。例如,當你鍵入數(shù)字 10876 時,很容易的鍵入 10867 或 18076。與處理變量和保留字的方法不同,編譯器并不在乎顛倒了位置和不正確的數(shù)字,有時簡單的錯誤造成的問題不會立即表現(xiàn)出來,而當問題表現(xiàn)出來時,它們會以隨機的計算錯誤的形式出現(xiàn),這些錯誤很難準確定位。用常量來取代常數(shù)時,編譯器將在編譯時檢查常量的有效性。如果常量不存在,編譯器便將這一情況通知你,并拒絕進行編譯,這可以消除錯誤鍵入的數(shù)字帶來的問題,只要常量擁有正確的值,使用該常量的所有代碼也有使用該正確值。 2. 常數(shù)很難不斷更新 3. 常量使代碼更容易閱讀使用常量后,
13、得到的一個額外好處是可使創(chuàng)建的代碼更容易閱讀。常數(shù)很不直觀。也許你對常數(shù)非常了解,但其他人則根本看不明白。通過合理的給常量命名,使用這些常量的代碼就變得比較直觀了,更容易閱讀。為常量賦予較寬的作用域,這與使用變量時的情況不同。在一個應(yīng)用程序中你決不應(yīng)該兩次創(chuàng)建相同的常量。如果你發(fā)現(xiàn)自己復(fù)制了一個常量,請將原始的常量說明轉(zhuǎn)至較寬的作用域,直到該常量可供引用它的所有方法為止。 5. 變量變量5.15.1 定義有焦點的變量定義有焦點的變量用于多個目的的變量稱為無焦點(多焦點)的變量。無焦點變量所代表的意義與程序的執(zhí)行流程有關(guān),當程序處于不同位置時,它所表示的意義是不固定的,這樣就給程序的可讀性和可維
14、護性帶來了麻煩。 5.25.2 只對常用變量名和長變量名進行縮寫只對常用變量名和長變量名進行縮寫如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規(guī)則的一致性。例如,如果在代碼的某些區(qū)域中使用 Cnt,而在另一些區(qū)域中又使用 Count,就會給代碼增加不必要的復(fù)雜性。變量名中盡量不要出現(xiàn)縮寫。 5.35.3 使用統(tǒng)一的量詞使用統(tǒng)一的量詞通過在結(jié)尾處放置一個量詞,就可創(chuàng)建更加統(tǒng)一的變量,它們更容易理解,也更容易搜索。例如,請使用 strCustomerFirst 和 strCustomerLast,而不要使用 strFirstCustomer 和 strLastCustomer。量詞列表:量詞
15、后綴量詞后綴說明說明First一組變量中的第一個Last一組變量中的最后一個Next一組變量中的下一個變量Prev一組變量中的上一個Cur一組變量中的當前變量5.45.4 使用肯定形式的布爾變量使用肯定形式的布爾變量給布爾變量命名時,始終都要使用變量的肯定形式,以減少其它開發(fā)人員在理解布爾變量所代表的意義時的難度。 5.55.5 為每個變量選擇最佳的數(shù)據(jù)類型為每個變量選擇最佳的數(shù)據(jù)類型這樣即能減少對內(nèi)存的需求量,加快代碼的執(zhí)行速度,又會降低出錯的可能性。用于變量的數(shù)據(jù)類型可能會影響該變量進行計算所產(chǎn)生的結(jié)果。在這種情況下,編譯器不會產(chǎn)生運行期錯誤,它只是迫使該值符合數(shù)據(jù)類型的要求。這類問題極難
16、查找。 5.65.6 盡量縮小變量的作用域盡量縮小變量的作用域如果變量的作用域大于它應(yīng)有的范圍,變量可繼續(xù)存在,并且在不再需要該變量后的很長時間內(nèi)仍然占用資源。它們的主要問題是,任何類中的任何方法都能對它們進行修改,并且很難跟蹤究竟是何處進行修改的。占用資源是作用域涉及的一個重要問題。對變量來說,盡量縮小作用域?qū)?yīng)用程序的可靠性產(chǎn)生巨大的影響。 6. 代碼的格式化代碼的格式化6.16.1 對代碼進行格式化時,要達到的目的對代碼進行格式化時,要達到的目的1. 通過代碼分割成功能塊和便于理解的代碼段,使代碼更容易閱讀和理解;2. 使用空行和注釋行,將程序中邏輯上不相關(guān)的代碼塊分開。比如:變量聲
17、明部分和代碼語句間的分隔;較長的方法中,完成不同功能的代碼塊間的分隔。要避免出現(xiàn)邏輯上混亂的分隔,如:某一邏輯功能代碼塊中間用空行進行了分隔,但是在相鄰功能代碼塊之間卻沒有分隔,這樣會給程序閱讀者造成錯覺。3. 減少為理解代碼結(jié)構(gòu)而需要做的工作;4. 使代碼的閱讀者不必進行假設(shè);5. 使代碼結(jié)構(gòu)盡可能做到格式清楚明了。 6.26.2 編程原則編程原則1. 要將多個語句放在同一行上 不論是變量聲明,還是語句都不要在一行上書寫多個。 2. 縮進后續(xù)行 當你將變量設(shè)置為某個值時,所有后續(xù)行的縮進位置應(yīng)與第一行的變量值相同;當你調(diào)用一個方法時,后續(xù)行縮進到第一個參數(shù)的開始處;當你將變量或?qū)傩栽O(shè)置為等于
18、表達式的計算結(jié)果時,請從后面分割該語句,以確保該表達式盡可能放在同一行上。 3. 在 if 語句后縮進; 在 else 語句后縮進在 switch 語句后縮進在 case 語句后縮進在 do 句后縮進已經(jīng)用行接續(xù)符分割的語句的各個行要縮進對從屬于行標注的代碼進行縮進。 4. 在執(zhí)行統(tǒng)一任務(wù)的各個語句組之間插入一個空行。好的代碼應(yīng)由按邏輯順序排列的進程或相關(guān)語句組構(gòu)成。 7. 代碼的注釋代碼的注釋7.17.1 使用代碼注釋的目的使用代碼注釋的目的1. 文字說明代碼的作用(即為什么要用編寫該代碼,而不是如何編寫); 2. 確指出該代碼的編寫思路和邏輯方法; 3. 人們注意到代碼中的重要轉(zhuǎn)折點; 4
19、. 使代碼的閱讀者不必在他們的頭腦中仿真運行代碼的執(zhí)行方法. 7.27.2 編程原則編程原則1. 用文字說明代碼的作用:簡單的重復(fù)代碼做寫什么,這樣的注釋幾乎不能給注釋增加什么信息.如果你使用好的命名方法來創(chuàng)建直觀明了的代碼那么這些類型的注釋絕對增加不了什么信息. 2. 如果你想違背好的編程原則,請說明為什么有的時候你可能需要違背好的編程原則,或者使用了某些不正規(guī)的方法,.遇到這種情況時,請用內(nèi)部注釋來說明你在做什么和為什么要這樣做。技巧性特別高的代碼段,一定要加詳細的注釋,不要讓其他開發(fā)人員花很長時間來研究一個高技巧但不易理解的程序段。 3. 用注釋來說明何時可能出錯和為什么出錯 4. 在編
20、寫代碼前進行注釋給代碼加注釋的方法之一是在編寫一個方法前首先寫上注釋.如果你愿意,可以編寫完整句子的注釋或偽代碼.一旦你用注釋對代碼進行了概述,就可以在注釋之間編寫代碼. 5. 在要注釋的代碼前書寫注釋注釋一定出現(xiàn)在要注釋的程序段前,不要在某段程序后書寫對這段程序的注釋,先看到注釋對程序的理解會有一定幫助。如果有可能,請在注釋行與上面代碼間加一空行。 6. 純色字符注釋行只用于主要注釋注釋中要分隔時,請使用一行空注釋行來完成,不要使用純色字符,以保持版面的整潔、清晰。 7. 避免形成注釋框用星號圍成的注釋框,右邊的星號看起來很好,但它們給注釋增加了任何信息嗎?實際上這會給編寫或編輯注釋的人增加
21、許多工作。 8. 增強注釋的可讀性注釋是供人閱讀的,而不是讓計算機閱讀的。1) 使用完整的語句。雖然不必將注釋分成段落(最好也不要分成段落),但你應(yīng)盡量將注釋寫成完整的句子。 2) 避免使用縮寫??s寫常使注釋更難閱讀,人們常用不同的方法對相同的單詞進行縮寫,這會造成許多混亂,如果必須對詞匯縮寫,必須做到統(tǒng)一。 3) 將整個單詞大寫,以突出它們的重要性。若要使人們注意注釋中的一個或多個單詞,請全部使用大寫字母。 9. 對注釋進行縮進,使之與后隨的語句對齊。注釋通常位于它們要說明的代碼的前面。為了從視覺上突出注釋與它的代碼之間的關(guān)系,請將注釋縮進,使之與代碼處于同一個層次上。 10. 為每個方法賦
22、予一個注釋標頭每個方法都應(yīng)有一個注釋標頭。方法的注釋標頭可包含多個文字項,比如輸入?yún)?shù)、返回值、原始作者、最后編輯該方法的程序員、上次修改日期、版權(quán)信息。 11. 當行尾注釋用在上面這種代碼段結(jié)構(gòu)中時,它們會使代碼更難閱讀。使用多個行尾注釋時(比如用于方法頂部的多個變量說明),應(yīng)使它們互相對齊。這可使它們稍容易閱讀一些。 12. 何時書寫注釋1) 請在每個 if 語句的前面加上注釋。 2) 在每個 switch 語句的前面加上注釋。與 if 語句一樣,switch 語句用于評估對程序執(zhí)行產(chǎn)生影響的表達式。 3) 在每個循環(huán)的前面加上注釋。每個循環(huán)都有它的作用,許多情況下這個作用不清楚直觀。 7
23、.3 注釋那些部分注釋那些部分 項目項目注釋哪些部分注釋哪些部分實參/ 參數(shù)參數(shù)類型 參數(shù)用來做什么任何約束或前提條件示例字段/ 字段/屬性字段描述 注釋所有使用的不變量示例并行事件可見性決策類類的目的 已知的問題類的開發(fā)/維護歷史注釋出采用的不變量并行策略編譯單元每一個類/類內(nèi)定義的接口,含簡單的說明 文件名和/或標識信息版權(quán)信息接口目的 它應(yīng)如何被使用以及如何不被使用 局部變量用處/目的成員函數(shù)注釋成員函數(shù)做什么以及它為什么做這個 哪些參數(shù)必須傳遞給一個成員函數(shù)成員函數(shù)返回什么已知的問題任何由某個成員函數(shù)拋出的異常可見性決策成員函數(shù)是如何改變對象的包含任何修改代碼的歷史如何在適當情況下調(diào)用
24、成員函數(shù)的例子適用的前提條件和后置條件 成員函數(shù)內(nèi)部注釋控制結(jié)構(gòu) 代碼做了些什么以及為什么這樣做局部變量難或復(fù)雜的代碼處理順序 7.4 示例示例7.4.1 塊注釋:塊注釋:主要用來描述文件,類,方法,算法等。一般用在文檔和方法的前面,也可以放在文檔的任何地方。以/*開頭,*/結(jié)尾。例:/*注釋*/7.4.2 行注釋:行注釋:主要用在方法內(nèi)部,對代碼,變量,流程等進行說明。與塊注釋格式相似,但是整個注釋占據(jù)一行。例:/* 注釋*/7.4.3 尾隨注釋:尾隨注釋:與行注釋功能相似,放在代碼的同行,但是要與代碼之間有足夠的空間,便于分清。例:int m=4 ;/* 注釋*/如果一個程序塊內(nèi)有多個尾隨
25、注釋,每個注釋的縮進應(yīng)該保持一致。7.4.4 行尾注釋:行尾注釋:與行注釋功能相似,放在每行的最后,或者占據(jù)一行。以/開頭。7.4.5 文檔注釋:文檔注釋:與塊注釋相似,但是可以被 javadoc 處理,生成 HTML 文件。以/*開頭,*/結(jié)尾。文檔注釋不能放在方法或程序塊內(nèi)。例:/*注釋*/ 8. 表達式和語句表達式和語句8.1 每行應(yīng)該只有一條語句。每行應(yīng)該只有一條語句。8.2 if-else,if-elseif 語句語句,任何情況下任何情況下,都應(yīng)該有都應(yīng)該有“”,“”“”,格式如下格式如下:if (condition) statements; else if (condition) statements; else statements;8.3 for 語句格式如下語句格式如下:for (initialization; condition; update) statements;如果語句為空:for (initialization; condition; update) ;8.4 while 語句格式如下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年地產(chǎn)項目土地儲備轉(zhuǎn)讓合同范本3篇
- 短期租賃場地租賃合同
- 人力資源招聘與培訓(xùn)管理辦法
- 污水處理廠水塔施工合同
- 施工電梯大修拆卸合同
- 橄欖球場遮陽棚定制協(xié)議
- 服裝企業(yè)內(nèi)部招投標管理規(guī)定
- 乳制品銷售專員招聘協(xié)議
- 鄉(xiāng)鎮(zhèn)企業(yè)員工聘用協(xié)議書
- 2024年度鐵路貨物運輸合同范本6篇
- 學會傾聽(心理健康課件)
- 開展中小學人工智能教育成功案例與經(jīng)驗分享
- 教練式溝通培訓(xùn)課件
- 養(yǎng)老院品牌建設(shè)與推廣策略
- 族概述與族操作-創(chuàng)建參數(shù)化三維族(Revit建模課件)
- 《機電一體化系統(tǒng)設(shè)計》
- 歷史 小錢幣大歷史教學設(shè)計
- 文印服務(wù)投標方案(技術(shù)方案)
- 消防控制室值班服務(wù)投標方案
- 醫(yī)養(yǎng)結(jié)合養(yǎng)老院(養(yǎng)老中心)項目可行性報告
- 初三語文總復(fù)習全程計劃表
評論
0/150
提交評論