版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.net項(xiàng)目開發(fā)管理2011-6-4Agent議程開發(fā)過程團(tuán)隊(duì)組成開發(fā)工具溝通文檔模板開發(fā)規(guī)范軟件開發(fā)過程RUP軟件產(chǎn)品開發(fā)過程.NETProject
Plans
Approved項(xiàng)目計(jì)劃確定Scope
Complete開發(fā)完成ReleaseReadiness
Approved產(chǎn)品成型Deployment
Complete部署完成Vision/ScopeApproved規(guī)劃和范圍確定MSF持續(xù)改進(jìn)TimeFunctionality通過分解成小的迭代周期將大項(xiàng)目的實(shí)施風(fēng)險(xiǎn)降低,并提高用戶體驗(yàn)Version1Version2Version3開發(fā)過程應(yīng)用團(tuán)隊(duì)模型CommunicationDeliveringthesolutionwithinprojectconstraintsSatisfiedcustomersEnhancedusereffectivenessSmoothdeploymentandongoingoperationsApprovalforreleaseonlyafterallqualityissuesareidentifiedandaddressedBuildingtospecification開發(fā)測試配置管理用戶體驗(yàn)產(chǎn)品經(jīng)理項(xiàng)目經(jīng)理團(tuán)隊(duì)建設(shè)角色合并規(guī)則NNNNNNNNNNNNPPPPPPPPPPUUUUUUUUP
PossibleU
UnlikelyN
NotRecommended產(chǎn)品經(jīng)理項(xiàng)目經(jīng)理開發(fā)測試用戶體驗(yàn)界面設(shè)計(jì)配置管理產(chǎn)品經(jīng)理項(xiàng)目經(jīng)理開發(fā)測試用戶體驗(yàn)界面設(shè)計(jì)配置管理角色說明角色責(zé)任主管領(lǐng)導(dǎo)該角色由高層主管領(lǐng)導(dǎo)擔(dān)任。該角色對(duì)項(xiàng)目的最終成敗負(fù)有責(zé)任。在項(xiàng)目進(jìn)行過程中,該角色有權(quán)力對(duì)用戶方進(jìn)行協(xié)調(diào),代表用戶方做出決定,支持項(xiàng)目組的工作。該角色需要時(shí)才出現(xiàn)。程序管理該角色按周檢查項(xiàng)目進(jìn)展情況,并進(jìn)行項(xiàng)目的日常管理,協(xié)調(diào)項(xiàng)目組的工作,報(bào)告項(xiàng)目進(jìn)展情況。產(chǎn)品管理由最終用戶或懂業(yè)務(wù)的人員擔(dān)任這一角色,在項(xiàng)目進(jìn)行的全過程中,始終代表著最終用戶的利益,反映最終用戶的要求。擔(dān)任這一角色的人員可以不是技術(shù)人員。開發(fā)組開發(fā)組在項(xiàng)目中負(fù)有如下責(zé)任:充分了解技術(shù)環(huán)境在項(xiàng)目的整個(gè)生命周期中設(shè)計(jì)、開發(fā)、模塊測試測試組規(guī)劃和進(jìn)行新系統(tǒng)的測試用戶教育保證最終用戶在使用系統(tǒng)時(shí)的方便性,負(fù)責(zé)與最終用戶溝通進(jìn)行操作方面的要求,負(fù)責(zé)用戶界面設(shè)計(jì)的合理性,準(zhǔn)備最終用戶的培訓(xùn)教材,并進(jìn)行最終用戶的培訓(xùn)工作。該角色評(píng)估各種培訓(xùn)方式,挑選合適的培訓(xùn)項(xiàng)目。系統(tǒng)實(shí)施該角色規(guī)劃和進(jìn)行系統(tǒng)的安裝實(shí)施,完成硬件和軟件的規(guī)劃、定貨、采購和安裝。開發(fā)環(huán)境和工具VisualStudioTeamSystemVisualStudioTeamSuiteMSF軟件開發(fā)過程指導(dǎo)VisualStudioTeamFoundationServerVisual
Studio
行業(yè)伙伴Software
ArchitectsSoftware
DevelopersSoftware
TestersVisual
Studio
Team
Explorer應(yīng)用建?;A(chǔ)架構(gòu)和部署模型代碼分析性能調(diào)優(yōu)安全分析PerformanceTestingManualTestingTestCaseManagementVisualStudioProfessionalEdition變更管理工作項(xiàng)跟蹤報(bào)表項(xiàng)目站點(diǎn)集成服務(wù)項(xiàng)目管理LoadTestAgentVisioandUMLModeling類模型單元測試代碼覆蓋率開發(fā)環(huán)境開發(fā)流程業(yè)務(wù)分析項(xiàng)目經(jīng)理開發(fā)測試使用者需求變更用例非功能性需求Bugs任務(wù)產(chǎn)品缺陷
溝通管理日常溝通工作報(bào)告工作會(huì)議階段溝通Kickoff項(xiàng)目啟動(dòng)Tollgatereview階段回顧日常溝通工作周報(bào)總結(jié)本周工作安排計(jì)劃下周工作工作進(jìn)度評(píng)估工作問題總結(jié)解決方案日常溝通工作會(huì)議會(huì)議議題參與人員、時(shí)間、地點(diǎn)議程結(jié)論實(shí)施計(jì)劃階段溝通
階段溝通點(diǎn)項(xiàng)目Kickoff會(huì)議關(guān)注重點(diǎn)
項(xiàng)目的目標(biāo)和范圍介紹項(xiàng)目的背景明確項(xiàng)目目標(biāo)明確項(xiàng)目的范圍和遞交件實(shí)施方案綜述系統(tǒng)架構(gòu)介紹
項(xiàng)目的組織和時(shí)間計(jì)劃項(xiàng)目組織結(jié)構(gòu)設(shè)置及角色職責(zé)項(xiàng)目實(shí)施時(shí)間計(jì)劃和里程碑項(xiàng)目管理綜述溝通管理問題管理風(fēng)險(xiǎn)管理:風(fēng)險(xiǎn)管理的方法及當(dāng)前存在的風(fēng)險(xiǎn)及其緩解措施變更管理項(xiàng)目領(lǐng)導(dǎo)總結(jié)發(fā)言項(xiàng)目Kickoff會(huì)議關(guān)注重點(diǎn)(續(xù))
項(xiàng)目組織結(jié)構(gòu)定義說明PMZhangJiawenConsultant&Architecture:LiWei,WangZhongkun,MSGlobalresourceProgrammer:XuYunfeng,QinLeiTesterXuYunfengQualityAssuranceArchitectTeam(Solution,DataandInfra.)TangZhechuan,WangXuminConfigurationManagementSGM:ZhangJiawenProjectExecutiveSGM:WangYingMicrosoft:WuPengProjectSteeringCommitteeSGM:ChenYingjian,BaoYeBusinessProjectChampionXuLiangsong,HuQionglinSystemOperationOwnerLinBojun,ZhangYuMicrosoftSGMPMWuWeihuaConfigurationManagerWuWeihuaPlan&DefineTollgateReview關(guān)注重點(diǎn)
項(xiàng)目實(shí)施情況介紹(本階段完成的主要成果)
需求開發(fā)結(jié)果介紹用戶需求和非功能性需求是否與當(dāng)初SOW有差異?如何處理?
AD&Solution介紹,AD和SRS中非功能需求中必須提供本項(xiàng)目實(shí)際適用的安全設(shè)計(jì),安全設(shè)計(jì)的要素按《系統(tǒng)平臺(tái)安全管理標(biāo)準(zhǔn)》、《網(wǎng)絡(luò)安全管理標(biāo)準(zhǔn)》、《應(yīng)用開發(fā)安全指南》、《賬戶安全管理標(biāo)準(zhǔn)》界定,安全標(biāo)準(zhǔn)文檔位于\\sisqn211\ITOperationdoc\信息安全體系文檔
Define階段的系統(tǒng)架構(gòu)是否與立項(xiàng)時(shí)向IT管理層匯報(bào)的架構(gòu)存在差異?如何處理?
SRS設(shè)計(jì)文檔是否滿足operation提出的運(yùn)維支持要求?項(xiàng)目時(shí)間進(jìn)度及其里程碑(計(jì)劃與實(shí)際比較)針對(duì)新系統(tǒng)建設(shè)項(xiàng)目,新應(yīng)用系統(tǒng)名稱要求在plan&definetollgate之前由應(yīng)用總監(jiān)審核最終確定花費(fèi)的人工工時(shí)(timesheet)統(tǒng)計(jì)(計(jì)劃與實(shí)際比較)項(xiàng)目遞交的文檔清單及其簽字情況建立文檔基線的情況(CMBaseline),是否放入PMOVSS?
Dev/SIT/QA/PRD環(huán)境準(zhǔn)備(按照ITBOM定義)
QACertification
風(fēng)險(xiǎn)控制狀況重要的問題跟蹤與解決
BestPractice&LessonsLearned(Optional)下一步行動(dòng)(ActionItems)Q&AConstruct&TestTollgateReview關(guān)注重點(diǎn)
項(xiàng)目狀態(tài)介紹(本階段完成的主要任務(wù))
構(gòu)建結(jié)果介紹(是否按照設(shè)計(jì)實(shí)施?)測試結(jié)果介紹(其中需要對(duì)設(shè)計(jì)文檔中提及的安全設(shè)計(jì)予以測試和驗(yàn))培訓(xùn)情況介紹-包括系統(tǒng)管理員、運(yùn)維人員、最終用戶的培訓(xùn)在本階段發(fā)生過的變更及其影響分析需求的變更解決方案的變更由變更可能影響的相關(guān)文檔是否更新?(BRD,SRS,SDD,AD,RTM,Project
Plan,Project
Schedule,ITBOM)項(xiàng)目時(shí)間進(jìn)度及其里程碑(計(jì)劃與實(shí)際比較)截至目前,花費(fèi)的人工工時(shí)(timesheet)統(tǒng)計(jì)(計(jì)劃與實(shí)際比較)項(xiàng)目遞交的文檔清單及其簽字情況建立配置管理基線(CMBaseline),是否放入PMOVSS?
QACertification
風(fēng)險(xiǎn)控制狀況
重要的問題跟蹤與解決
BestPractice&LessonsLearned(Optional)項(xiàng)目新增/更新的CI是否按照要求申請(qǐng)加入CMDB
-提交CMDB支持人員分組表
上線變更流程是否按照要求執(zhí)行審批完畢?(至少提前兩周提交RFC)
是否存在老系統(tǒng)退役的情況,需要單獨(dú)提交RFC,提醒CIOwner及SystemOwner更新CMDB上線計(jì)劃OnlineReviewQ&A項(xiàng)目里程碑確定目標(biāo)和范圍業(yè)務(wù)需求文檔:清晰地描述用戶對(duì)應(yīng)用系統(tǒng)的要求和業(yè)務(wù)流程。是由產(chǎn)品管理和程序管理共同完成的。系統(tǒng)目標(biāo)文檔:是在組隊(duì)角色其它成員提供信息的前提下,由產(chǎn)品管理角色組共同創(chuàng)建的。系統(tǒng)設(shè)計(jì)范圍文檔:提供了對(duì)項(xiàng)目當(dāng)前所要實(shí)現(xiàn)業(yè)務(wù)功能范圍的描述,它可以由程序管理或產(chǎn)品管理來創(chuàng)建。這份文檔應(yīng)確定在功能說明設(shè)計(jì)開始前,需要解決的問題和征求的意見。風(fēng)險(xiǎn)評(píng)估:是隨著項(xiàng)目的進(jìn)展過程更新的動(dòng)態(tài)文檔。這個(gè)文檔確定了可能影響項(xiàng)目實(shí)施的技術(shù)和組織機(jī)構(gòu)上的問題。項(xiàng)目組織結(jié)構(gòu)文檔:定義了項(xiàng)目組的管理結(jié)構(gòu),并描述整個(gè)項(xiàng)目實(shí)施過程的基本階段。項(xiàng)目里程碑制定項(xiàng)目計(jì)劃功能說明:描述了最終交付的應(yīng)用系統(tǒng)應(yīng)具有什么樣的功能,包括概要設(shè)計(jì)、邏輯流程設(shè)計(jì)和詳細(xì)設(shè)計(jì),它是這個(gè)里程碑上必須提交的文檔。風(fēng)險(xiǎn)評(píng)估:是由項(xiàng)目組的組長們根據(jù)已知的問題不斷更新的文檔。項(xiàng)目計(jì)劃:各種角色的實(shí)施方案。根據(jù)功能說明中確定的任務(wù),將其細(xì)分為內(nèi)部里程碑。項(xiàng)目計(jì)劃的內(nèi)容中包括實(shí)現(xiàn)方法、依賴條件、假設(shè)、預(yù)算和費(fèi)用等信息。項(xiàng)目時(shí)間進(jìn)度:由每種組隊(duì)角色的進(jìn)度安排合并而成。項(xiàng)目里程碑范圍完成/第一次使用全功能的源代碼:這些代碼能夠穩(wěn)定地用于聯(lián)調(diào)測試。風(fēng)險(xiǎn)評(píng)估:是由項(xiàng)目組的組長們根據(jù)已知的問題不斷更新的文檔。測試規(guī)范文檔:針對(duì)代碼的各個(gè)方面,給出了需要完成的測試,并定義了特定領(lǐng)域的測試需求。測試的案例:描述出如何測試某一方面的代碼,滿足測試規(guī)定的要求?;诎姹镜墓δ苷f明:在項(xiàng)目設(shè)計(jì)核準(zhǔn)里程碑上給出的基于版本的功能規(guī)定,這個(gè)功能說明是根據(jù)版本的變動(dòng)不斷被修改的,所有的更改都應(yīng)該反映在功能規(guī)定中。時(shí)間進(jìn)度安排:根據(jù)風(fēng)險(xiǎn)和已知的變化,更新項(xiàng)目提交的時(shí)間進(jìn)度安排。項(xiàng)目里程碑系統(tǒng)正式發(fā)布可執(zhí)行代碼發(fā)布的注釋不同版本的源代碼培訓(xùn)手冊(cè)、文檔記錄和應(yīng)用系統(tǒng)演示輔助工具安裝的平臺(tái)和工具軟件/數(shù)據(jù)的安裝程序和轉(zhuǎn)換遷移工具文檔模板過程的指引文檔與流程確定階段需要提交的文檔SOW制定階段交付物清單通過文檔控制流程開發(fā)規(guī)范總體原則基本命名風(fēng)格及編碼規(guī)范命名空間及層次結(jié)構(gòu)命名規(guī)范類成員使用規(guī)范類型使用規(guī)范注釋規(guī)范異常產(chǎn)生與處理日志和跟蹤使用其它事項(xiàng)數(shù)據(jù)庫規(guī)范總體原則符合.NET框架及具體開發(fā)語言(C#等)通用開發(fā)規(guī)范包層次體系清晰,結(jié)構(gòu)性強(qiáng)接口,類設(shè)計(jì)靈活,可擴(kuò)展性強(qiáng)注釋清晰,程序可讀性高基本命名風(fēng)格及編碼規(guī)范基本命名風(fēng)格Pascal風(fēng)格這種風(fēng)格大寫每個(gè)單詞的首字母。(如:BackColor)
Camel風(fēng)格這種風(fēng)格除了第一個(gè)單詞的首字母,其他單詞都應(yīng)大寫首字母。(如:backColor)編碼規(guī)范(一)大小寫敏感不要出現(xiàn)必須要大小寫敏感支持的名字不要出現(xiàn)兩個(gè)只用大小寫區(qū)分的命名空間不要出現(xiàn)兩個(gè)只用大小寫區(qū)分的參數(shù)不要出現(xiàn)只用大小寫區(qū)分的同一命名空間的類型不要出現(xiàn)只用大小寫區(qū)分的同一類型屬性不要出現(xiàn)兩個(gè)只用大小寫區(qū)分的方法編碼規(guī)范(二)類型風(fēng)格備注ClassPascal風(fēng)格
EnumerationvaluePascal風(fēng)格
EnumerationtypePascal風(fēng)格
EventPascal風(fēng)格
ExceptionclassPascal風(fēng)格用后綴Exception.Read-onlystaticfieldPascal風(fēng)格
InterfacePascal風(fēng)格用前綴I.MethodPascal風(fēng)格
NamespacePascal風(fēng)格
PropertyPascal風(fēng)格
PublicinstancefieldPascal風(fēng)格很少使用,更多使用properties.ProtectedinstancefieldCamel風(fēng)格很少使用,更多使用properties.ParameterCamel風(fēng)格
在所有由多單詞組成的公共描述符中使用Pascal風(fēng)格在局部變量參數(shù)名或私有類屬性名稱上使用Camel風(fēng)格編碼規(guī)范(三)只在少于兩個(gè)字母的縮寫中使用大寫。三個(gè)以上字母的縮寫都應(yīng)該使用Pascal風(fēng)格(如:如用HtmlButton而非HTMLButton,但不要用System.Io來取代System.IO)不要使用常用的命名空間的名字做類名(如:System、Forms)不要使用和關(guān)鍵字沖突的識(shí)別符不要使用不被廣泛認(rèn)可的縮寫只有絕對(duì)需要時(shí)再使用廣為人知的縮寫(如:UI來表示UserInterface)命名空間及層次結(jié)構(gòu)命名空間基本原則<Company>.<Project>.<Module>.<Tier>[.Sub-Module][.Function][.Design]約定<Company>--HYSOFT<Project>--HLMIS 注意事項(xiàng)避免兩個(gè)PUBLISED的NAMESPACES名稱一樣的可能 使用一個(gè)穩(wěn)定的被廣泛認(rèn)可的技術(shù)名稱作為層的名稱使用Pascal風(fēng)格命名NAMESPACES的每一層,并用分隔號(hào)(.)分開。在適當(dāng)?shù)牡胤绞褂脧?fù)數(shù)命名不要讓命名空間和類都使用同樣的名字包層次結(jié)構(gòu)名字空間備注HYS.Hlims[BusinessModule]Entity業(yè)務(wù)實(shí)體Contract接口契約定義DAL數(shù)據(jù)持久化Biz業(yè)務(wù)邏輯實(shí)現(xiàn)HYSFrameworkLog平臺(tái)框架日志Audit平臺(tái)框架審計(jì)ORM平臺(tái)框架數(shù)據(jù)統(tǒng)一操作HYSPortalEntity[Function]平臺(tái)管理實(shí)體定義Contract[Function]平臺(tái)管理接口契約定義DAL[Function]平臺(tái)管理數(shù)據(jù)持久化BLL[Function]平臺(tái)管理業(yè)務(wù)實(shí)現(xiàn)命名規(guī)范命名規(guī)范-類命名使用名詞或名詞短語命名類使用Pascal風(fēng)格謹(jǐn)慎使用縮寫命名類不要使用任何類前綴(如C)偶爾可能會(huì)出現(xiàn)已I作為類名開頭的情況,而這個(gè)類又不是一個(gè)接口類。這種情況下只要第二個(gè)字母是小寫就可以接受(如:IdentityStore)建議使用組合詞來命名派生類。在此情況下,你應(yīng)該考慮使用基類名稱作為派生類名稱的結(jié)尾。(如:CoffeeCup)命名規(guī)范-枚舉命名使用Pascal風(fēng)格來命名枚舉類型使用Pascal風(fēng)格命名枚舉值不要使用簡寫來命名枚舉值不要在枚舉前加前綴和后綴使用單數(shù)來命名枚舉,除非它是一個(gè)BIT類屬性使用復(fù)數(shù)來命名BIT類屬性命名規(guī)范-靜態(tài)類屬性命名使用名詞,名詞短語或簡寫來命名靜態(tài)類屬性使用Pascal風(fēng)格來命名靜態(tài)類屬性
命名規(guī)范-參數(shù)命名使用有意義的參數(shù)名.在所有場合,參數(shù)名稱和類型應(yīng)該清楚地描述以決定其反映的意義用Camel風(fēng)格來命名參數(shù)使用名稱來表現(xiàn)其作用而非表現(xiàn)其類型不要使用reserved參數(shù)。在下個(gè)版本中需要更多的數(shù)據(jù)那么就使用重載請(qǐng)不要使用匈牙利命名法來在名稱前加前綴命名規(guī)范-方法屬性命名方法命名使用動(dòng)詞或動(dòng)詞短語來命名方法使用Pascal風(fēng)格來命名方法屬性命名使用名詞或名詞短語來命名屬性使用Pascal來命名屬性命名規(guī)范-事件命名使用事件EventHandler來命名HANDLER(代理類型)publicdelegatevoidMouseEventHandler(objectsender,MouseEventArgse)兩個(gè)參數(shù)取名叫sender和e使用EventArgs后綴來命名事件的參數(shù)使用現(xiàn)在時(shí)態(tài)和過去時(shí)態(tài)來命名有“前”、“后”概念的事件。不要使用BeforeXxx\AfterXxx,而是應(yīng)該使用有意義的詞。(如:一個(gè)可以取消的關(guān)閉事件可以表示為Closing和Closedevent)考慮使用動(dòng)詞來命名事件類成員使用規(guī)范類成員使用規(guī)范-屬性使用使用Pascal風(fēng)格來命名屬性不要使用匈牙利命名法建議不要使用相同的類的屬性名字和類型名字當(dāng)對(duì)一個(gè)類中屬性作賦值操作時(shí)發(fā)生了異常(Exception)時(shí),一定要保證這個(gè)屬性中還保留著以前保存的屬性值。避免這個(gè)屬性的內(nèi)容處于不確定狀態(tài)
必須允許類的屬性可以以任意的順序賦值。屬性與其他屬性間應(yīng)該是沒有狀態(tài)關(guān)系的只讀和只寫的屬性
:當(dāng)在邏輯上要求用戶不能改變類的屬性時(shí),需要使用只讀屬性。
禁止使用只寫屬性類成員使用規(guī)范-事件使用使用Pascal風(fēng)格來命名事件不要使用匈牙利命名法。應(yīng)該使用“raise”(“產(chǎn)生”)術(shù)語來表示產(chǎn)生事件而不是使用“fire”或“trigger”。(如:當(dāng)在文檔中描述事件時(shí),應(yīng)該使用“aneventwasraised”而不是“aneventwasfired”或“aneventwastriggered.”)應(yīng)考慮用動(dòng)詞來命名一個(gè)事件事件處理程序應(yīng)返回void值應(yīng)該從System.EventArgs類中派生出事件處理數(shù)據(jù)類。
應(yīng)該假設(shè)在事件處理過程中會(huì)發(fā)生任何事情(要注意異常處理)。
考慮在事件處理中使用try/finally程序塊處理異常類成員使用規(guī)范-方法使用使用Pascal風(fēng)格來命名事件不要使用匈牙利命名法缺省使用非虛函數(shù)的方法一個(gè)類中有兩個(gè)同名的方法可以使用,只不過他們有不同的調(diào)用參數(shù)時(shí),我們需要方法重載類成員使用規(guī)范-構(gòu)造函數(shù)使用只有當(dāng)一個(gè)類中僅有靜態(tài)的方法和屬性時(shí),我們才能使用私有的構(gòu)造方法在構(gòu)造函數(shù)中盡量做最少的工作.多余的功能應(yīng)該留到后續(xù)的代碼中,當(dāng)客戶代碼調(diào)用這個(gè)功能時(shí)再做相應(yīng)的工作建議不要在“struct”(valuetypes)中定義一個(gè)空的構(gòu)造函數(shù)類成員使用規(guī)范-類成員變量使用不要將類成員變量設(shè)為外界可直接訪問的.應(yīng)考慮提供get和set的成員存取方法來代替將成員變量設(shè)為public避免在類成員的名字中使用縮寫
不要使用匈牙利命名法。好的名字應(yīng)該描述語法而不是類型類型使用規(guī)范類型使用規(guī)范-總述類型是在運(yùn)行時(shí)封裝的單元.有三種基本的類型類
類是最基本的一種通用類型。類可以是抽象的或密封的。抽象類需要子類來實(shí)現(xiàn)相應(yīng)的方法。密封的類不允許被繼承。
值類型
值類型代表一系列存儲(chǔ)在堆棧中的二進(jìn)制值。
接口類型
一個(gè)接口類型是對(duì)值的部分描述。它可以被許多對(duì)象類型所支持類型使用規(guī)范-類使用盡量使用類代替其他類型。在被管理的運(yùn)行環(huán)境中,類應(yīng)該是最普遍使用的類型。
基類使用場合
基類是將一組有共同功能的對(duì)象組織起來的非常有用的方法?;惪梢蕴峁┮唤M缺省的功能,而同時(shí)又允許擴(kuò)展和定制。只有當(dāng)你有一個(gè)非常明確的用戶場景時(shí),才應(yīng)該在設(shè)計(jì)中加入對(duì)象的擴(kuò)展和多態(tài)等功能。
類型使用規(guī)范-基類VS接口接口適用于下列條件下:多個(gè)不相關(guān)的類必須支持同一個(gè)協(xié)議類已經(jīng)有了基類(forexample,someareUIcontrols,someareWebservices),而c#中是不支持多重繼承的.這個(gè)時(shí)候我們需要使用接口實(shí)際情況不適合使用聚合對(duì)于其他的情況,類的繼承是一個(gè)更好的模式類型使用規(guī)范-結(jié)構(gòu)使用在如下的情況中,建議使用struct類型來滿足要求
只作為簡單的類型。
類型實(shí)例的大小要在16個(gè)字節(jié)以下
類型是不可變的值類型是更符合要求的不要在結(jié)構(gòu)類型中提供一個(gè)缺省構(gòu)造函數(shù).運(yùn)行時(shí)環(huán)境會(huì)自動(dòng)加入一個(gè)構(gòu)造函數(shù)將所有的值初始化為0.這在實(shí)例化結(jié)構(gòu)數(shù)組時(shí)能夠大大提高效率類型使用規(guī)范-枚舉使用應(yīng)該使用枚舉類型來作為強(qiáng)類型的參數(shù),屬性和返回值。這樣程序會(huì)更有意義且很難出錯(cuò)。同時(shí)在參數(shù)或?qū)傩灾惺褂妹杜e類型(enum)可以讓開發(fā)工具知道這個(gè)屬性或參數(shù)所有的可能值,從而自動(dòng)提示給程序員。這樣可以提高開發(fā)的效率。
如果二進(jìn)制的OR操作符會(huì)作用在枚舉類型里的數(shù)值上時(shí),一定要在此枚舉類型上加上System.Flags屬性。不要假設(shè)枚舉類型(enum)的參數(shù)會(huì)在定義的范圍之內(nèi),一定要做參數(shù)校驗(yàn)。
如果你用了多個(gè)相關(guān)的常量(staticfinalconstants),那應(yīng)該考慮用enum類型代替他們。
注釋規(guī)范注釋規(guī)范-模塊注釋在一個(gè)程序模塊的開始,應(yīng)用注釋說明模塊的名字、功能、開發(fā)者和日期和版本變更歷史//-------------------------------------------------------------------//版權(quán)所有:版權(quán)所有(C)2008,Microsoft//系統(tǒng)名稱:EBOM//文件名稱:BenBLL.cs//模塊名稱:BENManager//模塊編號(hào)://功能說明:BENManager//修改人修改時(shí)間修改內(nèi)容//WY2009.12.1新建BenBLL類注釋規(guī)范-類的注釋在定義一個(gè)類之前,應(yīng)用“///”注釋說明類的功能、使用方法和特殊的屬性注釋規(guī)范-類成員方法的注釋在定義類成員方法前,應(yīng)說明該過程/函數(shù)的名字、功能、輸入/輸出和版本變更歷史注釋規(guī)范-類成員屬性、常量、變量注釋在定義類成員屬性前,應(yīng)描述該屬性注釋規(guī)范-程序注釋在代碼實(shí)現(xiàn)時(shí),應(yīng)對(duì)其目的和實(shí)現(xiàn)的功能進(jìn)行說明采用了特殊的語法需要對(duì)語法注釋為實(shí)現(xiàn)部分功能需要注釋不能通過上下文立即明白其功能需要注釋異常產(chǎn)生與處理異常產(chǎn)生與處理(一)使用Exception作為異常類的后綴publicclassFileNotFoundException:IOException{}推薦使用預(yù)定義的異常類型.只有為場景定義了新的例外類型才能讓使用你程序庫的用戶能根據(jù)例外的類型做恰當(dāng)?shù)奶幚韯?dòng)作
不要直接從Exception中派生一個(gè)新類。在System*命名空間中,可以直接繼承SystemException。在其他命名空間中,從ApplicationException中繼承異常消息要支持本地化(用中文描述異常消息),并且對(duì)開發(fā)人員和用戶具有較好的可讀性異常產(chǎn)生與處理(二)只在例外情況下才甩出異常
不要為正?;蝾A(yù)期之中的錯(cuò)誤使用異常
不要在正常的控制流程中使用異常推薦返回null來作為通常的錯(cuò)誤返回.如文件沒有找到,那么File.Open就返回一個(gè)null,但如果文件被鎖住了就應(yīng)該激發(fā)一個(gè)異常類在設(shè)計(jì)時(shí)在正常流程中不應(yīng)拋出異常寧愿用異常而不要使用內(nèi)定的錯(cuò)誤代碼(ErrorCode)日志和跟蹤使用日志綜述當(dāng)判斷系統(tǒng)出現(xiàn)異常(錯(cuò)誤的時(shí)候)或者進(jìn)行關(guān)鍵的系統(tǒng)操作的時(shí)候,請(qǐng)使用日志把相應(yīng)信息記錄下來
其中需要記錄的信息包括:
系統(tǒng)出現(xiàn)異常和出現(xiàn)運(yùn)行結(jié)果錯(cuò)誤:一般是在try{…}catch{}結(jié)構(gòu)中的catch代碼塊中,或者在函數(shù)調(diào)用返回出現(xiàn)錯(cuò)誤碼不為零的時(shí)候?qū)懭?。需求中明確要求記錄的操作。對(duì)系統(tǒng)運(yùn)行有重大影響的操作,如添加、刪除用戶,更改管理員權(quán)限等其它事項(xiàng)數(shù)組vs集合(一)特性對(duì)比。數(shù)組是固定大小的,不能伸縮;集合是可變長的。(System.Array.Resize支持重定義數(shù)組大小,但需要額外初始化開銷)
數(shù)組要聲明元素的類型,集合類的元素類型卻是object。(.NETFramework2.0支持泛型)數(shù)組可讀可寫,不能聲明只讀數(shù)組。集合類可以提供ReadOnly方法以只讀方式使用集合。
數(shù)組要有整數(shù)下標(biāo)才能訪
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同管理培訓(xùn)合同:上海項(xiàng)目實(shí)踐與招投標(biāo)(2025版)
- 二零二五年度智慧城市建設(shè)名義合伙人合同3篇
- 2025年度農(nóng)民工勞動(dòng)合同電子化管理方案及實(shí)施細(xì)則3篇
- 二零二五年度農(nóng)業(yè)產(chǎn)業(yè)鏈金融服務(wù)創(chuàng)新合同-@-1
- 2025版企業(yè)內(nèi)部設(shè)備維修承包合同規(guī)范文本4篇
- 2025年度排洪渠項(xiàng)目監(jiān)理合同模板3篇
- 二零二五年度人工智能核心算法軟件知識(shí)產(chǎn)權(quán)獨(dú)家轉(zhuǎn)讓合同3篇
- 二零二五年度全新品牌專賣店開設(shè)服務(wù)合同范本4篇
- 2025年度票據(jù)代理業(yè)務(wù)委托合同范本6篇
- 2025年度苗圃技術(shù)員崗位聘用合同修訂版
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(含答案)
- 商場電氣設(shè)備維護(hù)勞務(wù)合同
- 《妊娠期惡心嘔吐及妊娠劇吐管理指南(2024年)》解讀
- 2025年高考語文作文滿分范文6篇
- 2023年國家公務(wù)員錄用考試《行測》真題(行政執(zhí)法)及答案解析
- 全國教學(xué)設(shè)計(jì)大賽一等獎(jiǎng)英語七年級(jí)上冊(cè)(人教2024年新編)《Unit 2 Were Family!》單元教學(xué)設(shè)計(jì)
- 2024智慧醫(yī)療數(shù)據(jù)字典標(biāo)準(zhǔn)值域代碼
- 年產(chǎn)12萬噸裝配式智能鋼結(jié)構(gòu)項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)備案
- 【獨(dú)家揭秘】2024年企業(yè)微信年費(fèi)全解析:9大行業(yè)收費(fèi)標(biāo)準(zhǔn)一覽
- 醫(yī)療器械經(jīng)銷商會(huì)議
評(píng)論
0/150
提交評(píng)論