版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)中心產(chǎn)品開發(fā)規(guī)范
XXXX公司
XX業(yè)務(wù)部
XXXX年XX月
文檔說明
本文檔所涉及到的文字、圖表等,僅限于內(nèi)部使用,未經(jīng)雙方書面許可,請(qǐng)勿擴(kuò)散到
第二方。
文檔屬性
屬性內(nèi)容
客戶名稱:
項(xiàng)目名稱:
文檔主題:
文檔編號(hào):
文檔版本:
版本日期:
文檔狀態(tài):
文檔變更
版本修訂日期修訂人描述
文檔送呈
單位姓名目的
批閱
參閱
目錄
1概述........................................................................5
1.1最根本原則..........................................................5
2Java技術(shù)規(guī)范...............................................................6
2.1平臺(tái)使用的有關(guān)技術(shù)..................................................6
2.1.1基本核心框架包..................................................6
2.1.2其他框架包......................................................6
2.2程序設(shè)計(jì)標(biāo)準(zhǔn)........................................................7
2.2.1命名約定........................................................8
2.2.2包名,類名,方法名,屬性名,常量名命名約定....................9
2.2.3注釋約定.......................................................10
2.2.4快速瀏覽JavaDoc...............................................................................................10
2.3開發(fā)規(guī)范............................................................12
2.3.1項(xiàng)目結(jié)構(gòu)說明...................................................12
2.3.2整體包結(jié)構(gòu)說...................................................12
2.3.3項(xiàng)目模塊包結(jié)構(gòu)及命名...........................................13
2.3.4各子項(xiàng)目模塊功能包結(jié)構(gòu)........................................14
2.3.5配置文件包結(jié)構(gòu).................................................14
2.4命名規(guī)則............................................................14
2.4.1共用類.........................................................14
2.4.2業(yè)務(wù)層.........................................................14
2.4.3展現(xiàn)層.........................................................15
2.4.4模型層.........................................................15
2.4.5持久層.........................................................16
2.4.6XML配置......................................................16
2.4.7資源文件.......................................................18
2.4.8JSP文件.......................................................19
2.4.9事務(wù)命名約束...................................................20
2.4.10JS命名約束...................................................20
3數(shù)據(jù)庫技術(shù)規(guī)范.............................................................21
3.1概述...............................................................21
3.2命名基本規(guī)則.......................................................21
3.3數(shù)據(jù)庫表空間.......................................................21
3.3.1命名基本規(guī)則..................................................21
3.4默認(rèn)用戶方案.......................................................21
3.5表的命名規(guī)則、約定.................................................21
3.6視圖的命名規(guī)則、約定...............................................22
3.7字段命名規(guī)則、約定.................................................22
3.8存儲(chǔ)過程的命名規(guī)則、約定..........................................22
3.9序列對(duì)象的命名規(guī)則、約定..........................................22
3.10觸發(fā)器命名規(guī)則、約定..............................................23
4HIVE技術(shù)規(guī)范.............................................................24
5HBase設(shè)計(jì)規(guī)范.............................................................25
5.1Namespace命名空間設(shè)計(jì)一............................................25
5.21.2.Table表設(shè)計(jì).....................................................26
5.2.1理想HBase表..................................................26
5.2.2預(yù)創(chuàng)建分區(qū).....................................................27
5.2.3列族數(shù)量.......................................................27
5.2.4可配置的數(shù)據(jù)塊大小.............................................27
5.2.5數(shù)據(jù)塊緩存.....................................................28
5.2.6激進(jìn)緩存.......................................................28
5.2.7布隆過濾器(Bloomfilters)............................................................................29
5.2.8生存時(shí)間(TTL)..............................................................................................30
5.2.9數(shù)據(jù)壓縮.......................................................31
5.2.10數(shù)據(jù)分割.......................................................32
5.2.11單元時(shí)間版本...................................................33
5.3ColumnFamily列族設(shè)計(jì)..............................................34
5.4Qualifier列設(shè)計(jì).....................................................35
5.5版本設(shè)計(jì)...........................................................35
5.6HBase命名規(guī)范36
1概述
本文提供一整套編寫高效可靠的Java代碼的標(biāo)準(zhǔn)、約定與指南。它們以安全可靠的軟
件工程原則為基礎(chǔ),使代碼易于懂得、保護(hù)與增強(qiáng)。而且,通過遵循這些程序設(shè)計(jì)標(biāo)準(zhǔn),
你作為一個(gè)Java軟件開發(fā)者的生產(chǎn)效率會(huì)有顯著提高。經(jīng)驗(yàn)證明,若從一開始就花時(shí)間編
寫高質(zhì)量的代碼,則在軟件開發(fā)階段,對(duì)代碼的修改要容易很多。最后,遵循一套通用的
程序設(shè)計(jì)標(biāo)準(zhǔn)將帶來更大的一致性,使軟件開發(fā)團(tuán)隊(duì)的效率明顯提高。
1.1最根本原則
□運(yùn)用常識(shí)
當(dāng)找不到任何規(guī)則或者指導(dǎo)方針,當(dāng)規(guī)則明顯不能適用,當(dāng)所有的方法都失效的時(shí)侯:
運(yùn)用常識(shí)并核實(shí)這些基本原則。這條規(guī)則比其它所有規(guī)則都重要。
□駝峰命名法
駝峰命名法(Camel-Case):就是當(dāng)變量名或者函式名是由一個(gè)或者多個(gè)單字連結(jié)在
一起,而構(gòu)成的唯一識(shí)別字時(shí),第一個(gè)單字以小寫字母開始;第二個(gè)單字的首字母大寫或
者每一個(gè)單字的首字母都使用大寫字母,比如:myFirstName、myLastName,這樣的
變量名看上去就像駱駝峰一樣此起彼伏,故得名。
駝峰命名法的命名規(guī)則可視為一種慣例,并無絕對(duì)與強(qiáng)制,目的是增加識(shí)別與可讀性。
2Java技術(shù)規(guī)范
2.1平臺(tái)使用的有關(guān)技術(shù)
平臺(tái)使用的框架包分核心框架包與其他務(wù)必的框架包,各框架包本身所依靠的開源包
不做列舉,由框架包本身的信息來定。
2.1.1基本核心框架包
平臺(tái)使用Spring+Struts2+myBatis的三層架構(gòu)作為基本框架。(JDK1.6+)。參考如下:
名稱版本備注
Struts22.2.1
Spring3.0.5
mybatis-core3.1.1不支持跨數(shù)據(jù)庫建議,目前
開發(fā)在mysql上,現(xiàn)網(wǎng)環(huán)境
在db2上
mybatis-spring1.1.1
MySQL5.0
Tomcat7.0
jQuery1.8
2.1.2其他框架包
除基本框架外,平臺(tái)其他將使用的一些框架包,參考如下:(JDK1.5+)
名稱版本備注
SpringSecurity2.0.4
ApacheCommons2.6常用的工具包等
SLF4J1.6.1
ApacheLoggingIog4j1.2.15
ApacheAnt1.7.1
Oscache2.4.1
XMemcache1.2.5
C3P00.9.1
Dom4j2.0
commons-beanutils1.8.3
Mybatis-spring1.1.1
Hadoop-core0.20.2-cdh3u5
Hive-cli0.7.1-cdh3u5
Hbase0.90.6-cdh3u5
2.2程序設(shè)計(jì)標(biāo)準(zhǔn)
Java的程序設(shè)計(jì)標(biāo)準(zhǔn)很重要,原因在于它將提高開發(fā)團(tuán)隊(duì)各成員的代碼的一致性。一
致性的提高會(huì)使代碼更易懂得,這意味著它更易開發(fā)與保護(hù)。從而降低了應(yīng)用程序的總開
發(fā)成本。
你務(wù)必牢記的是:你的Java代碼在你已離開并開始另一個(gè)項(xiàng)目之后,會(huì)保留相當(dāng)長(zhǎng)的
一段時(shí)間。因此開發(fā)過程中一個(gè)很重要的目標(biāo)就是要確保在開發(fā)成員或者開發(fā)團(tuán)隊(duì)之間的
工作能夠順利交接,不必花很大的力氣便能懂得已編寫的代碼,以便繼續(xù)保護(hù)與改進(jìn)往常
的工作。假如代碼難以懂得,很有可能被廢棄與重寫。S
2.2.1命名約定
我們將在整個(gè)標(biāo)準(zhǔn)中討論命名約定,下列是幾個(gè)基本點(diǎn):
□使用能夠準(zhǔn)確說明變量/字段/類的完整的英文描述符
比如,使用類似firstName,grandTotal或者CorporateCustomer?這樣的名
字。盡管象xLyl或者fn這樣的名字很簡(jiǎn)短,輸入起來容易,但是我們難以明白它
們代表什么、結(jié)果是什么含義,因而使代碼難以懂得、保護(hù)與改進(jìn)。
□使用該領(lǐng)域的術(shù)語
假如用戶稱他們的''客戶"(clients)為''顧客"(customers),那么就使用術(shù)語
Customer來命名這個(gè)類,而不用Client。許多程序開發(fā)者會(huì)犯的一個(gè)錯(cuò)誤是,不去
使用工業(yè)或者領(lǐng)域里已經(jīng)存在著很完美的術(shù)語時(shí),卻生造出一些普通詞匯。
□使用大小寫混合,提高名字的可讀性
通常應(yīng)該使用小寫字母,但是類與接口的名字的首字母,與任何中間單詞的首字
母應(yīng)該大寫。
□盡量少用縮寫,但假如一定要使用,就要慎重地使用
這意味著應(yīng)該保留一個(gè)標(biāo)準(zhǔn)縮寫的列表,明智地從中選取,同時(shí)在使用時(shí)保持一
致。比如,想對(duì)單詞"number”使用縮寫,那么可從nbr,no或者者num中選取
一個(gè),說明一下使用了哪一個(gè)(具體是哪個(gè)倒無所謂),同時(shí)只使用這一種形式。
□避免使用長(zhǎng)名稱(不超過15個(gè)字母)
比如:PhysicalOrVirtualProductOrService看起來大概是個(gè)不錯(cuò)的類名,但
是名字太長(zhǎng),應(yīng)該考慮重新給它起個(gè)短一點(diǎn)的名字,比如象Offering。
□避免使用相似或者者僅在大小寫上有區(qū)別的名字
比如,不應(yīng)同時(shí)使用變量名persistentObject與persistentObjects及
anSqlDatabase與anSQLDatabase這樣的名稱
□避免使用下劃線作為名字的首末字母
下列劃線為首末字母的名字通常為系統(tǒng)保留,除預(yù)處理定義之外,通常不用作用
戶命名。更重要的是,下劃線經(jīng)常造成煩惱而且難輸入,因此盡量避免使用。
2.2.2包名,類名,方法名,屬性名,常量名命名約定
□包命名
包命名全部使用小寫英文字母,中間不同意有數(shù)字下劃線等特殊字符。
□類,接口命名
類,接口名開頭使用大寫英文字母,多單詞使用駝峰命名法。類名中不要使用下
劃線與數(shù)字等特殊字符,正確的寫法示例:HibernateDaoSupporto
假如表示特殊功能的類,在類名的末尾加上所要表示的功能英文名稱,如:
****Listener,表示監(jiān)聽器等。
□方法命名
方法命名使用駝峰命名法,方法名中間不要使用下劃線與數(shù)字等特殊字符,正確
的示例:processing。。
方法的參數(shù)與方法內(nèi)部的局部參數(shù)可自定,符合要求就行。
□特殊Bean類的屬性命名約定
Bean的屬性命名規(guī)則嚴(yán)格使用駝峰命名法,不同意使用下劃線,名字長(zhǎng)度最長(zhǎng)不
要超過15個(gè)字符,確實(shí)需要長(zhǎng)名字時(shí),適當(dāng)縮寫部分英文字母。
□常量屬性命名
常量的命名規(guī)則通常為常量名全部使用大寫字母,多單詞之間使用下劃線隔開,
不同意使用數(shù)字等特殊字符,同時(shí)常量的聲明一定要是staticfinal的。
□普通類的屬性命名
普通類的屬性命名除常量依照常量命名法外,其他的屬性的名字使用“英文名字
(首字母大寫)”命名,多單詞可使用駝峰命名法或者用下劃線隔開。
2.2.3注釋約定
本文還會(huì)對(duì)注釋進(jìn)行約定,有關(guān)注釋風(fēng)格能夠在eclipse中導(dǎo)入codetemplates.xm
文件?下列是幾個(gè)基本點(diǎn):
□注釋應(yīng)該增加代碼的清晰度
代碼注釋的目的是要使代碼更易于被同時(shí)參與程序設(shè)計(jì)的開發(fā)人員與其他后繼開
發(fā)人員懂得。
□假如你的程序不值得注釋,那么它也很可能也不值得運(yùn)行。
□保持注釋的簡(jiǎn)潔
最好的注釋應(yīng)該是簡(jiǎn)單明了的注釋。注釋不必洋洋灑灑,只需提供足夠的信息,
使別人能夠懂得你的代碼。
□先寫注釋,后寫代碼
寫代碼注釋的最好方法是在寫代碼之前就寫注釋。這使你在寫代碼之前能夠想想
代碼的功能與運(yùn)行。而且這樣確保不可能遺漏注釋。另一種方法是邊寫代碼邊寫注釋。
由于注釋能夠使代碼更易懂得,因此在程序開發(fā)的過程中,也能夠利用這一點(diǎn)。假如
打算花些時(shí)間寫注釋,那么至少你應(yīng)從這個(gè)過程中獲得些什么。
□注釋信息不僅要包含代碼的功能,還應(yīng)給出原因
比如,下面例1中的代碼顯示金額在$1,000以上(包含$1,000)的定單可給
予5%的折扣。為什么要這樣做呢?難道有一個(gè)商業(yè)法則規(guī)定大額定單能夠得到折扣
嗎?這種給大額定單的特殊是有的時(shí)候限的呢,還是一直都這樣?最初的程序設(shè)計(jì)者
是否只是由于慷慨大度才這樣做呢?除非它們?cè)谀硞€(gè)地方(或者者是在源代碼本身,
或者者是在一個(gè)外部文檔里)被注釋出來,否則你不可能明白這些。
2.2.4快速瀏覽JavaDoc
Sun公司的JavaDevelopmentKit(JDK)中有一個(gè)名為javadoc的程序。它能
夠處理Java的源代碼文件,同時(shí)為Java程序產(chǎn)生HTML文件形式的外部注釋文檔。
Javadoc支持一定數(shù)目的標(biāo)記,標(biāo)識(shí)注釋文檔中各段起始位置的保留字。詳情請(qǐng)參考JDK
javadoc文檔。
標(biāo)記用于目的
說明特定某一段程序代碼的作者。每一個(gè)作者
@authorname類、接口
各有一個(gè)標(biāo)記。
說明該類的應(yīng)用程序編程接口(API)已被廢
?deprecated類、成員函數(shù)。
棄,因此應(yīng)不再使用。
?exceptionname說明由成員函數(shù)發(fā)出的特殊。一個(gè)特殊使用一
成員函數(shù)
description個(gè)標(biāo)記,并要給出特殊的完整類名?
用來說明傳遞給一個(gè)成員函數(shù)的參數(shù),其中包
@paramname
成員函數(shù)含參數(shù)的類型/類與用法。每個(gè)參數(shù)各有一個(gè)標(biāo)
description
記。
若成員函數(shù)有返回值,對(duì)該返回值進(jìn)行說明。
@returndescription成員函數(shù)
應(yīng)說明返回值的類型/類與可能的用途。
說明自從有JDK1.1以來,該項(xiàng)已存在了多長(zhǎng)
@since類、成員函數(shù)
時(shí)間。
類、接口、成員函在文檔中生成指向特定類的超文本鏈接。能夠
@seeClassName
數(shù)、字段同時(shí)應(yīng)該使用完全合法的類名。
@see
類、接口、成員函在文檔中生成指向特定成員函數(shù)的超文本鏈
ClassName#member
數(shù)、字段接。能夠同時(shí)應(yīng)該使用完全合法的類名。
functionName
?versiontext類、接口說明特定一段代碼的版本信息。
你注釋代碼的方式很大地影響著你的工作效率與所有保護(hù)改進(jìn)代碼的后繼開發(fā)者的工
作效率。在軟件開發(fā)過程中及早注釋代碼,會(huì)促使你在開始撰寫代碼之前認(rèn)真考慮這些代
碼,從而帶來更高的工作效率。而且,當(dāng)你重新閱讀數(shù)天前或者者數(shù)星期前所寫的代碼時(shí),
你能夠很容易地推斷出當(dāng)時(shí)你是怎么想的,由于這一切都有記錄。
2.3開發(fā)規(guī)范
2.3.1項(xiàng)目結(jié)構(gòu)說明
數(shù)據(jù)中心FDC項(xiàng)目使用多module式項(xiàng)目結(jié)構(gòu),其中包含如下項(xiàng)目,各項(xiàng)目模塊功能
說明如下:
父模塊模塊依靠模塊要緊業(yè)務(wù)功能描述
FDCFdc-commonnone提供FDC項(xiàng)目中公用框架包及公用工具包
FDCFdc-monitorFdc-common提供FDC項(xiàng)目中監(jiān)控告警功能
FDCFdc-computeFdc-monitor,提供FDC項(xiàng)目中核心數(shù)據(jù)運(yùn)算功能(包含
Fdc-commonETL,匯總,分發(fā))。
FDCFdc-reportFdc-monitor,提供FDC項(xiàng)目中數(shù)據(jù)展現(xiàn)功能(報(bào)表展現(xiàn),
Fdc-common短信、郵件展現(xiàn),數(shù)據(jù)導(dǎo)出等)
2.3.2整體包結(jié)構(gòu)說
包結(jié)構(gòu)整體遵循按功能不一致分包,要緊表達(dá)出平臺(tái)的整體架構(gòu)。
1.常用的包結(jié)構(gòu)如2.3.2常用包結(jié)構(gòu)及命名。
2.各個(gè)模塊包結(jié)構(gòu),如業(yè)務(wù)層,操縱層,持久層,特殊,模型POJO,常量類,工具類等.
這里的常用類與公共里的不一樣假如各大模塊在公共類里沒有找到,能夠在自己的
模塊中自行擴(kuò)展。達(dá)到遵循''開一閉"原則。
3.常用xml配置文件結(jié)構(gòu),如2.3.4配置文件包結(jié)構(gòu)。
4.平臺(tái)核心的配置文件,存放在包的根目錄,如國(guó)際化,數(shù)據(jù)庫連接,日志配置,緩存
配置,系統(tǒng)級(jí)配置等。
5.自定義xml的scheme,dtd,與tld文件存放于Web根目錄的WEB-INF文件夾下,
文件名全部使用小寫字母。
2?3.3項(xiàng)目模塊包結(jié)構(gòu)及命名
1.Fdc-common
說明:所有的緩存結(jié)構(gòu)。比如平臺(tái)所使用的Oscache與Ehcache緩存技術(shù)。
說明:各個(gè)技術(shù)層框架類。如下子包
controller:操縱層提供的共有框架類。
Module:數(shù)據(jù)bean公共基礎(chǔ)類。
Business:業(yè)務(wù)層公共業(yè)務(wù)操縱類,提供通用功能。
Persistence:數(shù)據(jù)持久層公共數(shù)據(jù)操作類。
說明:存放基本常用的類。比如文件類,字符串類等。
2.Fdc-moniter,Fdc-compute,Fdc-report
□configs
說明:該包存放所有關(guān)于讀取配置信息的類
□Controller
說明:存放在操縱層下面的業(yè)務(wù)類。比如登陸,登出,角色切換等。
□Module
說明:存放各個(gè)業(yè)務(wù)數(shù)據(jù)bean類。下分各個(gè)子業(yè)務(wù)包。
□Busines
說明:存放個(gè)業(yè)務(wù)層公共業(yè)務(wù)操縱類。下分各個(gè)子業(yè)務(wù)包。
□Persistence
說明:數(shù)據(jù)持久層數(shù)據(jù)操縱類。下分各個(gè)子業(yè)務(wù)包。
□extends
說明:平臺(tái)擴(kuò)展功能類?下分子包,第一級(jí)子包名表示擴(kuò)展功能模塊名。
□Exceptions
2.3.4各子項(xiàng)目模塊功能包結(jié)構(gòu)
按照各個(gè)層次結(jié)構(gòu)包分完:功能包基本分為2個(gè)包:
1.各個(gè)層次的接口包。
2.關(guān)于接口的實(shí)現(xiàn)包。
2.3.5配置文件包結(jié)構(gòu)
配置文件夾命名為configs,可存放在Web根目錄下的WEB-INF文件夾下,也可放
在與javaclass文件根目錄同級(jí)的目錄下。configs目錄下要緊包含下列目錄結(jié)構(gòu):
□commons
存放公共的Xml配置文件,如:struts,spring,mybatis等的xml配置文件。
□core/*
存放平臺(tái)核心模塊,各功能模塊,擴(kuò)展功能模塊的所需的配置文件。如各模塊的
spring,struts,mybatis配置文件。
2.4命名規(guī)則
2.4.1共用類
公共用類要求以“功能英文名稱(首字母大寫)+Utils”駝峰命名。比如:日期的英文
名為date,按照規(guī)則要求,命名為:DateUtils。
2.4.2業(yè)務(wù)層
□業(yè)務(wù)層接口要求以I+''模塊英文名稱(首字母大寫)”+Manager命名。比如:導(dǎo)
航菜單的英文名為navigator,按照規(guī)則要求,命名為:INavigatorManager;
□接口的實(shí)現(xiàn)類要求以''模塊英文名稱(首字母大寫)”+Managerlmpl命名。比如:
導(dǎo)航菜單的英文名為navigator,按照規(guī)則要求,命名為:
NavigatorManagerlmpI;
2.4.3展現(xiàn)層
□基類要求以''模塊英文名稱(首字母大寫)”+ActionBase命名。比如:導(dǎo)航菜單的
英文名為navigator,按照規(guī)則要求,命名為:NavigatorActionBase;
□查詢模塊列表類要求以List+''模塊英文名稱(首字母大寫)”+s+Action命名。
比如:導(dǎo)航菜單的英文名為navigator,按照規(guī)則要求,命名為:
ListNavigatorsAction;
□創(chuàng)建模塊對(duì)象類要求以Create+''模塊英文名稱(首字母大寫)"+Action命名。比
如:導(dǎo)航菜單的英文名為navigator,按照規(guī)則要求,命名為:
CreateNavigatorAction;
□修改模塊對(duì)象類要求以Modify+''模塊英文名稱(首字母大寫)”+Action命名。比
如:導(dǎo)航菜單的英文名為navigator,按照規(guī)則要求,命名為:
ModifyNavigatorAction;
□刪除模塊對(duì)象類要求以Remove+''模塊英文名稱(首字母大寫)"+Action命名。
比如:導(dǎo)航菜單的英文名為navigator,按照規(guī)則要求,命名為:
RemoveNavigatorAction;
□對(duì)模塊對(duì)象的操作類要求以''模塊英文名稱(首字母大寫)”+Operator+Action
命名。比如:導(dǎo)航菜單的英文名為navigator,按照規(guī)則要求,命名為:
NavigatorOperatorAction。
2.4.4模型層
□模型層存放的是實(shí)體類,要求以''模塊實(shí)體英文名稱(首字母大寫)”命名。比如:導(dǎo)
航菜單的英文名為navigator,按照規(guī)則要求,命名為:Navigator;
□屬性字段參照Bean屬性命名規(guī)則。
2.4.5持久層
□dao接口要求以I+''模塊英文名稱(首字母大寫)”+DAO命名。比如:導(dǎo)航菜單
的英文名為navigator,按照規(guī)則要求,命名為:INavigatorDAO;
□接口的實(shí)現(xiàn)類要求以''模塊英文名稱(首字母大寫)"+DAOImpI命名.比如:導(dǎo)航
菜單的英文名為navigator,按照規(guī)則要求,命名為:NavigatorDAOImpI。
2.4.6XML配置
要緊配置文件包含spring.xml,struts.xml,mybatis.xml等。
由于這些文件都是分包存放,因此配置文件統(tǒng)一為spring.xml,struts.xml,
mybatis.xml,假如模塊內(nèi)的spring,struts,mybatis配置較多時(shí),需要分文件來寫,
那么可直接在spring,struts,mybatis的后面直接加連接號(hào)+名字來命名。如
spring-common.xmlo
各模塊的mybatissqlmap配置文件放到相應(yīng)模塊的Model包下,一個(gè)域模型對(duì)應(yīng)一
個(gè)sqlMap配置文件,如域模型名為Item,則與域模型相對(duì)應(yīng)的sqlMap文件名為
Item.xmL
1、spring.xml平臺(tái)Spring有關(guān)組件配置。
Module
□需要新建一個(gè)用戶管理模塊managerUserModule,設(shè)置其父節(jié)點(diǎn)是后臺(tái)管理樹
的根節(jié)點(diǎn),也就是設(shè)置parentModeulId為#號(hào),然后它的子節(jié)點(diǎn)能夠設(shè)置相應(yīng)的
父節(jié)點(diǎn)為managerllserModule,?
□ationURL:指用來訪問這個(gè)有關(guān)模塊的命名空間。
□viewType:查看類型,是指要說明此模塊節(jié)點(diǎn)是要在前臺(tái)顯示還是后臺(tái)管理的。
□imgURL:指當(dāng)我們把這些模塊展示在有關(guān)樹上顯示的圖標(biāo)鏈接。
Fuction
□確定包含的功能,如增加用戶:addUsero
Method
□增加用戶的入口方法:saveAddUsero
□actionUR:指這個(gè)入口方法在當(dāng)前模塊命名空間下的訪問地址createllser.加一個(gè)
點(diǎn)是用來推斷最后的后綴,假如是點(diǎn)結(jié)尾程序會(huì)自動(dòng)補(bǔ)齊訪問鏈接的后綴,假如是
其他后綴直接訪問這個(gè)鏈接。
□isDefault:是否默認(rèn)入口,一個(gè)模塊功能只能有一個(gè)方法作為默認(rèn)入口。
2、struts.xml平臺(tái)struts組件有關(guān)配置,開發(fā)有關(guān)模塊的時(shí)候注意有關(guān)規(guī)范
□package:我們能夠在模塊中定義包以避免命名空間重復(fù),命名規(guī)則:
struts-xxx(模塊名層)。
□namespace:有關(guān)模塊的命名空間。這里涉及幾個(gè)需要注意的地方:這個(gè)鏈接會(huì)
與權(quán)限關(guān)聯(lián)由過濾器推斷命名空間管理權(quán)限功能。凡是命名空間在
/public/common這個(gè)路徑下的系統(tǒng)定義為前臺(tái)沒有權(quán)限管理的訪問鏈接,凡是
命名空間在/manage/common這個(gè)路徑下的系統(tǒng)定義為后臺(tái)沒有權(quán)限管理的訪
問鏈接。在這個(gè)兩個(gè)路徑下面訪問的地址,過濾器不作權(quán)限推斷。其它訪問地址會(huì)
根據(jù)rights中配置定義的權(quán)限進(jìn)行過濾。
□extends:在struts配置中需要考慮各類攔截器與錯(cuò)誤處理跳轉(zhuǎn),配置在
struts-interceptor.xml這個(gè)文件。
Action
□name:定義action被訪問的id命名規(guī)范與定義java變量同樣的規(guī)范。
□class:就是我們?cè)趕pring.xml文件已經(jīng)配置了注入actionspringbean的id。
□result:struts處理跳轉(zhuǎn),兩種跳轉(zhuǎn)方式dispatcher轉(zhuǎn)向與redirect重定向。
□interceptor-ref:所使用的攔截器。在struts-interceptor.xml這個(gè)文件有有關(guān)
注釋。
3、mybatis.xml,平臺(tái)myBATIS有關(guān)組件配置
□配置sqlMap元素的resource屬性,指示域模型對(duì)應(yīng)的SQL配置文件的包全路徑。
4、myBATIS的SQLMap文件
配置域模型的增刪改查SQL語句,存儲(chǔ)過程等;配置文件名與域模型同名。
□sqlMap根元素的namespace屬性,設(shè)置成域模型的本身的名字。如域模型名字
為Item.java,那么namespace屬性名就為Item。
□typeAlias,resultMap,cacheModel,select,insert,delete,update等元
素的id屬性名以“自定英文名字(首字母小寫)”命名,多單詞使用駝峰命名法。
□在使用select,insert,update,delete元素配置增刪改查時(shí),id屬性的名字規(guī)
貝為,select的id屬性名以get***開頭,insert的以add***開頭,update的
以u(píng)pdate***開頭,delete的以delete***開頭,配合事務(wù)中的配置,多單詞使
用駝峰命名法。可在這些元素中使用復(fù)合查詢配置。
□procedure元素,的id屬性名以“功能英文名(首字母小寫)+Procedurew命
名,使用駝峰命名法。
□sql元素的id屬性名以“自定義英文名字(首字母小寫)”命名。多個(gè)單詞可使用
下劃線或者使用駝峰命名法。
□statement元素的id屬性名與sql元素命名規(guī)則一致。statement要緊配置復(fù)合
查詢。
5、ehcache.xml平臺(tái)ehcache緩存實(shí)現(xiàn)配置文件
6、system-config.xml平臺(tái)系統(tǒng)配置文件
2.4.7資源文件
平臺(tái)properties與國(guó)際化資源配置文件
□perties公共日志配置文件。
□perties平臺(tái)數(shù)據(jù)連接,基本參數(shù)配置等。
□Iperties平臺(tái)日志輸出儲(chǔ)存等有關(guān)設(shè)置的配置文件。
□perties平臺(tái)調(diào)度組件有關(guān)設(shè)置的配置文件。
□perties平臺(tái)oscache緩存實(shí)現(xiàn)配置文件
□perties平臺(tái)struts組件有關(guān)系統(tǒng)配置文件(國(guó)際化、上傳等)。
國(guó)際化資源文件使用標(biāo)準(zhǔn)JSTL標(biāo)簽綁定。通過不一致的local讀取不一致語言的有關(guān)
資源,國(guó)際化資源文件中key的定義規(guī)則:模塊名稱.功能名稱.key描述,但此全部小寫,
多個(gè)單詞之間用下劃線分割。國(guó)際化資源配置文件進(jìn)行分割處理,屬于本功能模塊的國(guó)際
化資源文件放到本模塊的根包下,在JSP中使用JSTL標(biāo)簽的<fmt:messagebundle*'"
/>調(diào)用,在文件開頭處加上<fmt:setBundlebasename='"'/>設(shè)置。
全局國(guó)際化配置文件如下(直接設(shè)置在perties文件中):
□messages開頭的資源文件包含有關(guān)的國(guó)際化資源內(nèi)容。
□exceptionMessages開頭的資源文件包含特殊處理描述的國(guó)際化資源內(nèi)容。
各功能模塊的國(guó)際化配置文件使用如下:
口文件名使用“功能模塊名+"_”+messages”命名,如
search_message.properties.,
□在JSP文件最開頭處使用標(biāo)簽<fmt:setBundlebasename=""/>設(shè)置全局
bundle,其中basename屬性名為模塊資源文件所在的包全路徑,scope為使用
范圍。
□在位于setBundle設(shè)置后使用<fmt:messagekey="">標(biāo)簽可直接使用該資源
文件中的key屬性。
2.4.8JSP文件
□JSP文件統(tǒng)一存放在應(yīng)用的Web根目錄下,即與WEB-INF文件夾同級(jí)。
□文件夾名按照java關(guān)于的功能模塊名來設(shè)置,文件夾名全部使用小寫字母。
□JSP文件名以“自定英文名(首字母小寫)++功能名”命名,多單詞英文可
使用駝峰命名法。
2.4.9事務(wù)命名約束
平臺(tái)中,所有關(guān)于事務(wù)處理的,務(wù)必遵循下列命名規(guī)則:
□儲(chǔ)存/填加:以save開頭。
□修改:以u(píng)pdate開頭。
□刪除:以delete開頭。
□獲?。阂詆et開頭。
□查找:以find開頭。
2.4.T0JS命名約束
與Java命名一致,但JS文件名可小寫,甚至能夠加下劃線等特殊符號(hào)。
3數(shù)據(jù)庫技術(shù)規(guī)范
3.1概述
本規(guī)范目前只適合部分?jǐn)?shù)據(jù)庫的有關(guān)定義。
3.2命名基本規(guī)則
針對(duì)不一致工程模塊使用不一致的數(shù)據(jù)命名。
開發(fā)時(shí)數(shù)據(jù)庫:dev+系統(tǒng)名。如:devcomputeo
試運(yùn)行數(shù)據(jù)庫:test+系統(tǒng)名。如:testcompute。
正式運(yùn)行數(shù)據(jù)庫:系統(tǒng)名。$n:computeo
3.3數(shù)據(jù)庫表空間
3.3.1命名基本規(guī)則
表空間:tbs_+系統(tǒng)名。如:tbs_computeo
臨時(shí)表空間:tbs_+系統(tǒng)名+tempspace。如:tbs_computetempspaceo
3.4默認(rèn)用戶方案
Username:raysdata/root
Password:raysdata/root
3.5表的命名規(guī)則、約定
命名基本規(guī)則
按照表在當(dāng)前數(shù)據(jù)倉(cāng)庫內(nèi)不一致數(shù)據(jù)職能劃分,所有字母均大寫:
字典定義類表以D開頭;如:DDIM。
關(guān)系定義類表以P開頭,當(dāng)前表示關(guān)系類名稱中間以“”分割,表示兩者關(guān)系;如:
P_ITEM_IDT?
數(shù)據(jù)匯總類表以6_開頭,擁有數(shù)據(jù)維度的,將維度名稱使用"」’分割,拼合在表名稱
中;如:G_ITEM_VSN
對(duì)前端報(bào)表支持表以R_開頭,名稱使用各報(bào)表業(yè)務(wù)名稱定義,如:R_CONFIG_LOG
3.6視圖的命名規(guī)則、約定
命名基本規(guī)則
Vi一視圖的類型(模塊名)一英文單詞一英文單詞一
比如:vi_base_message<>
3.7字段命名規(guī)則、約定
命名基本規(guī)則
英文單詞一英文單詞一英文單詞一...
比如:message_id>message_nameo
3.8存儲(chǔ)過程的命名規(guī)則、約定
命名基本規(guī)則
USP一英文單詞一英文單詞一...
比如:usp_message
3.9序列對(duì)象的命名規(guī)則、約定
命名基本規(guī)則
seq英文單詞英文單詞
如:seq_base_message。
3.10觸發(fā)器命名規(guī)則、約定
命名基本規(guī)則
trigger.英文單詞—英文單詞_
如:trigger_message。
4HIVE技術(shù)規(guī)范
i.按照表在當(dāng)前數(shù)據(jù)倉(cāng)庫內(nèi)不一致數(shù)據(jù)職能劃分,所有字母均大寫:
字典定義類表以D_開頭;如:D_DIM?
關(guān)系定義類表以P一開頭,當(dāng)前表示關(guān)系類名稱中間以“,分割,表示兩者關(guān)系;如:
P_ITEM_IDTo
數(shù)據(jù)集成類表以FACTJf頭,使用有關(guān)業(yè)務(wù)定義名稱,如:FACT_
數(shù)據(jù)匯總類表以GJf頭,擁有數(shù)據(jù)維度的,將維度名稱使用“.“分割,拼合在表名稱
中;如:G_ITEM_VSN
對(duì)前端報(bào)表支持表以R_開頭,名稱使用各報(bào)表業(yè)務(wù)名稱定義,如:R_CONFIG_LOG
2.數(shù)據(jù)路徑
數(shù)據(jù)路徑內(nèi)全部按照大寫定義路徑字符。
5HBase設(shè)計(jì)規(guī)范
介紹了HBase應(yīng)用開發(fā)時(shí)建議遵循的設(shè)計(jì)規(guī)范,要緊是針對(duì)開發(fā)
層面的。
Hbase中與表結(jié)構(gòu)有關(guān)的邏輯模型涉及到下列幾個(gè)詞匯:命名空
間、表、列族、歹h行鍵、版本等,這些是構(gòu)建hbase表的所有元素。
下文就根據(jù)這幾個(gè)關(guān)鍵詞匯,陳述下有關(guān)的規(guī)范。
5.1Namespace命名空間設(shè)計(jì)
HBase默認(rèn)的命名空間是default,默認(rèn)情況下,假如在創(chuàng)建表時(shí)沒有
顯式地指定命名空間,那么表將創(chuàng)建在default命名空間下。假如表隸
屬于某個(gè)非默認(rèn)的命名空間,那么在引用表(譬如讀取表數(shù)據(jù))時(shí),就
務(wù)必指定命名空間,否則將出現(xiàn)類似''無法定位到表〃的錯(cuò)誤,完整表名
的格式為''命名空間名稱:表名稱〃,譬如"DLQX:SYSTEM_USER〃;假
如是默認(rèn)的命名空間,則完整表名也能夠省略掉''default:",直接拼寫
表名SYSTEM_USER即可。
命名空間與表的關(guān)系,能夠用下圖表示:
、
NameSpace
命名空間
命名空間與表之間是一對(duì)多的關(guān)系,即一個(gè)命名空間下面能夠包含多個(gè)
hbase表,但一個(gè)hbase表只能屬于一個(gè)命名空間。在創(chuàng)建表時(shí),假
如沒有指定命名空間(或者者命名空間為空),則系統(tǒng)會(huì)將此hbase
表放置在默認(rèn)命名空間(default)下。
另外,刪除命名空間之前,務(wù)必先刪除掉此命名空間下的所有hbase
表,否則將無法刪除此命名空間。
5.21.2.Table表設(shè)計(jì)
HBase有幾個(gè)高級(jí)特性,在你設(shè)計(jì)表時(shí)能夠使用。這些特性不一定聯(lián)
系到模式或者行鍵設(shè)計(jì),但是它們定義了某些方面的表行為。
5.2.1理想HBase表
Hbase作為列數(shù)據(jù)庫,根據(jù)官方的說法,在性能與效率上更擅長(zhǎng)處理
''高而瘦〃的表,而非''矮而胖"的表。所謂''高而瘦",是指表的列的數(shù)量
較少,但是行的數(shù)量極大,從而使表展現(xiàn)出一種又高又瘦的形象。所謂
''矮而胖",是指表的列的數(shù)據(jù)居多,但是行的數(shù)量卻有限,給人一種又
矮又胖的形象,盡管hbase表號(hào)稱可容納百萬列,但是那也僅僅限于
理論上的極限,在實(shí)際應(yīng)用中,請(qǐng)盡量構(gòu)建''高而瘦〃的表,同時(shí)需要對(duì)
列的數(shù)量進(jìn)行測(cè)試,以避免過度影響讀寫性能。
522預(yù)創(chuàng)建分區(qū)
默認(rèn)情況下,在創(chuàng)建HBase表的時(shí)候會(huì)自動(dòng)創(chuàng)建一個(gè)region分區(qū),
當(dāng)導(dǎo)入數(shù)據(jù)的時(shí)候,所有的HBase客戶端都向這一個(gè)region寫數(shù)據(jù),
直到這個(gè)region足夠大了才進(jìn)行切分。一種能夠加快批量寫入速度的
方法是通過預(yù)先創(chuàng)建一些空的regions,這樣當(dāng)數(shù)據(jù)寫入HBase時(shí),
會(huì)按照region分區(qū)情況,在集群內(nèi)做數(shù)據(jù)的負(fù)載均衡。
523列族數(shù)量
不要在一張表里定義太多的columnfamilyo目前Hbase并不能很
好的處理超過2~3個(gè)columnfamily的表。由于某個(gè)columnfamily
在flush的時(shí)候,它鄰近的columnfamily也會(huì)因關(guān)聯(lián)效應(yīng)被觸發(fā)
flush,最終導(dǎo)致系統(tǒng)產(chǎn)生更多的I/O。因此,根據(jù)官方的建議,一個(gè)
HBase表中創(chuàng)建一個(gè)列族即可。
5.2.4可配置的數(shù)據(jù)塊大小
HFile數(shù)據(jù)塊大小能夠在列族層次設(shè)置。這個(gè)數(shù)據(jù)塊不一致于HDFS數(shù)
據(jù)塊。其默認(rèn)值是65,536字節(jié),或者64KB。數(shù)據(jù)塊索引存儲(chǔ)每個(gè)
HFile數(shù)據(jù)塊的起始鍵。數(shù)據(jù)塊大小設(shè)置影響到數(shù)據(jù)塊索引的大小。數(shù)
據(jù)塊越小,索引越大,從而占用更大內(nèi)存空間。同時(shí)由于加載進(jìn)內(nèi)存的
數(shù)據(jù)塊更小,隨機(jī)查找性能更好。但是假如你需要更好的序列掃描性能,
那么一次能夠加載更多HFile數(shù)據(jù)進(jìn)入內(nèi)存則更為合理,這意味著數(shù)據(jù)
塊應(yīng)該設(shè)置為更大的值。相應(yīng)地索引變小,你將在隨機(jī)讀性能上付出代
價(jià)。
5.2.5數(shù)據(jù)塊緩存
把數(shù)據(jù)放進(jìn)讀緩存,但工作負(fù)載卻經(jīng)常不能從中獲得性能提升。比如,
假如一張表或者表里的列族只被順序化掃描訪問或者者很少被訪問,你
不可能介意Get或者Scan花費(fèi)時(shí)間是否有點(diǎn)兒長(zhǎng)。在這種情況下,
你能夠選擇關(guān)閉那些列族的緩存。假如你只是執(zhí)行很多順序化掃描,你
會(huì)多次倒騰緩存,同時(shí)可能會(huì)濫用緩存把應(yīng)該放進(jìn)緩存獲得性能提升的
數(shù)據(jù)給排擠出去。假如關(guān)閉緩存,你不僅能夠避免上述情況發(fā)生,而且
能夠讓出更多緩存給其他表與同一表的其他列族使用。
5.2.6激進(jìn)緩存
你能夠選擇一些列族,給予它們?cè)跀?shù)據(jù)塊緩存里有更高的優(yōu)先級(jí)(LRU
緩存)。假如你預(yù)期一個(gè)列族比另一個(gè)列族隨機(jī)讀更多,這個(gè)特性遲早
用得上。
IN_MEMORY參數(shù)的默認(rèn)值是falseo由于HBase除了在數(shù)據(jù)塊緩存
里儲(chǔ)存這個(gè)列族相比其他列族更激進(jìn)之外并不提供額外的保證,該參數(shù)
在實(shí)踐中設(shè)置為true不可能變化太大。
創(chuàng)建表的時(shí)候,能夠通過HColumnDescriptor.setinMemory(true)
將表放到Regionserver的緩存中,保證在讀取的時(shí)候被cache命中。
5.2.7布隆過濾器(Bloomfilters)
數(shù)據(jù)塊索引提供了一個(gè)有效的方法,在訪問一個(gè)特定的行時(shí)用來查找應(yīng)
該讀取的HFile的數(shù)據(jù)塊。但是它的效用是有限的。HFile數(shù)據(jù)塊的默
認(rèn)大小是64KB,這個(gè)大小不能調(diào)整太多。
假如你要查找一個(gè)短行,只在整個(gè)數(shù)據(jù)塊的起始行鍵上建立索引無法給
你細(xì)粒度的索引信息。比如,假如你的行占用100字節(jié)存儲(chǔ)空間,一
個(gè)64KB的數(shù)據(jù)塊包含(64*1024)/100=655.53=~700行,而
你只能把起始行放在索引位上。你要查找的行可能落在特定數(shù)據(jù)塊上的
行區(qū)間里,但也不是確信存放在那個(gè)數(shù)據(jù)塊上。這有多種情況的可能,
或者者該行在表里不存在,或者者存放在另一個(gè)HFile里,甚至在
MemStore里。這些情況下,從硬盤讀取數(shù)據(jù)塊會(huì)帶來10開銷,也會(huì)
濫用數(shù)據(jù)塊緩存。這會(huì)影響性能,特別是當(dāng)你面對(duì)一個(gè)巨大的數(shù)據(jù)集同
時(shí)有很多并發(fā)讀用戶時(shí)。
布隆過濾器同意你對(duì)存儲(chǔ)在每個(gè)數(shù)據(jù)塊的數(shù)據(jù)做一個(gè)反向測(cè)試。當(dāng)某行
被請(qǐng)求時(shí),先檢查布隆過濾器看看該行是否不在這個(gè)數(shù)據(jù)塊。布隆過濾
器要么確定回答該行不在,要么回答它不明白。這就是為什么我們稱它
是反向測(cè)試。布隆過濾器也能夠應(yīng)用到行里的單元上。當(dāng)訪問某列標(biāo)識(shí)
符時(shí)先使用同樣的反向測(cè)試。
布隆過濾器也不是沒有代價(jià)。存儲(chǔ)這個(gè)額外的索引層次占用額外的空
間。布隆過濾器隨著它們的索引對(duì)象數(shù)據(jù)增長(zhǎng)而增長(zhǎng),因此行級(jí)布隆過
濾器比列標(biāo)識(shí)符級(jí)布隆過濾器占用空間要少。當(dāng)空間不是問題時(shí),它們
能夠幫助你榨干系統(tǒng)的性能潛力。
你能夠在列族上打開布隆過濾器,如下所示:
hbase(main)>create
,
'mytable',{NAME=>'colfamlzBLOOMFILTER=>'ROWCOL'}
BLOOMFILTER參數(shù)的默認(rèn)值是NONE。一個(gè)行級(jí)布隆過濾器用ROW
打開,列標(biāo)識(shí)符級(jí)布隆過濾器用ROWCOL打開。行級(jí)布隆過濾器在數(shù)
據(jù)塊里檢查特定行鍵是否不存在,列標(biāo)識(shí)符級(jí)布隆過濾器檢查行與列標(biāo)
識(shí)符聯(lián)合體是否不存在。ROWCOL布隆過濾器的開銷高于ROW布隆
過濾器。
528生存時(shí)間(TTL)
應(yīng)用系統(tǒng)經(jīng)常需要從數(shù)據(jù)庫里刪除老數(shù)據(jù)。由于數(shù)據(jù)庫很難超過某種規(guī)
模,因此傳統(tǒng)上數(shù)據(jù)庫內(nèi)建了許多靈活處理辦法。比如,在TwitBase
里你不愿意刪除用戶在使用應(yīng)用系統(tǒng)期間生成的任何推帖。這些都是用
戶生成數(shù)據(jù),將來有一天當(dāng)你執(zhí)行一些高級(jí)分析時(shí)可能有用。但是并不
需要儲(chǔ)存所有推帖用于實(shí)時(shí)訪問。因此早于某個(gè)時(shí)間的推帖能夠歸檔存
放到平面文件里。
HBase能夠讓你在數(shù)秒內(nèi)在列族級(jí)別設(shè)置一個(gè)TTL。早于指定TTL值
的數(shù)據(jù)在下一次大合并時(shí)會(huì)被刪除。假如你在同一單元上有多個(gè)時(shí)間版
本,早于設(shè)定TTL的版本會(huì)被刪除。你能夠關(guān)閉TTL或者者通過設(shè)置
其值為INT.MAX_VALUE(2147483647)來讓它永遠(yuǎn)打開(這是默認(rèn)
值)。你能夠在建表時(shí)設(shè)置TTL,如下所示:
hbase(main)>create
,
'mytable',{NAM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高速公路工程結(jié)構(gòu)設(shè)計(jì)與施工合同3篇
- 二零二五年車輛融資租賃購(gòu)車合同模板(含車輛品牌置換)3篇
- 二零二五年度無人駕駛技術(shù)研發(fā)合同簡(jiǎn)易執(zhí)行版2篇
- 2025年新型建筑旋挖樁基勞務(wù)分包施工質(zhì)量保證合同2篇
- 買賣門市合同協(xié)議書范本2篇
- 2025年建筑施工團(tuán)隊(duì)合作協(xié)議3篇
- 二零二五版進(jìn)口貨物CIF和FOB價(jià)格條款服務(wù)合同2篇
- 二零二五年音樂節(jié)DJ藝人聘用及保障協(xié)議3篇
- 個(gè)性化勞動(dòng)合作協(xié)議(2024年版)一
- 二零二五版軟件開發(fā)許可協(xié)議:定制化企業(yè)信息管理系統(tǒng)開發(fā)
- 青島版(五年制)四年級(jí)下冊(cè)小學(xué)數(shù)學(xué)全冊(cè)導(dǎo)學(xué)案(學(xué)前預(yù)習(xí)單)
- 退學(xué)費(fèi)和解協(xié)議書模板
- 2024至2030年中國(guó)對(duì)氯甲苯行業(yè)市場(chǎng)全景調(diào)研及發(fā)展趨勢(shì)分析報(bào)告
- 智能教育輔助系統(tǒng)運(yùn)營(yíng)服務(wù)合同
- 心功能分級(jí)及護(hù)理
- DLT 572-2021 電力變壓器運(yùn)行規(guī)程
- 重慶育才中學(xué)2025屆化學(xué)九上期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 成都市2022級(jí)(2025屆)高中畢業(yè)班摸底測(cè)試(零診)數(shù)學(xué)試卷(含答案)
- 【云南省中藥材出口現(xiàn)狀、問題及對(duì)策11000字(論文)】
- 服裝板房管理制度
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質(zhì)環(huán)境保護(hù)與治理恢復(fù)方案
評(píng)論
0/150
提交評(píng)論