資源描述:
《stag-java快速上手指南》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Stag-Java快速上手指南深圳市施泰信息技術(shù)有限公司StagJava快速上手指南StagJavaCodingQuickGuideVersion1.0KimShieh2014/9/12編程不是藝術(shù),而是一項(xiàng)工程活動(dòng)。對(duì)于任何工程項(xiàng)目來說,統(tǒng)一的施工標(biāo)準(zhǔn)都是保證工程質(zhì)量的重要因素。高品質(zhì)、易維護(hù)的軟件開發(fā)離不開清晰明確的編碼規(guī)范。8/9Stag-Java快速上手指南修訂歷史修改人修改內(nèi)容時(shí)間版本號(hào)KimShieh起草、編寫2014.9.13Ver1.08/9Stag-Java快速上手指南目錄1概述31.1書籍推薦32
2、命名約定42.1文件和目錄42.2代碼43代碼風(fēng)格與版式64注釋74.1普通注釋74.2文檔化注釋88/9Stag-Java快速上手指南1概述本指南根據(jù)《Stag-Java編碼規(guī)范》內(nèi)容,抽離出具體的代碼模板并加以點(diǎn)評(píng),以幫助新同事快速熟悉主要的編碼規(guī)范點(diǎn),以便盡快地投入到項(xiàng)目中。本指南僅僅是編碼規(guī)范的一個(gè)子集,側(cè)重于代碼的風(fēng)格和版式。更多為了避免深層次的Bug而推出的編程習(xí)慣、技巧和規(guī)則,請(qǐng)參考完整的《Stag-Java編碼規(guī)范》。1.1書籍推薦下面列出一些評(píng)價(jià)非常高的著作,對(duì)于高質(zhì)量編程具體非凡的指導(dǎo)意義,希望大
3、家在緊張的工作中,抽出一些時(shí)間進(jìn)行學(xué)習(xí)、積累和沉淀:l《Java編程思想》(關(guān)注怎樣編程)l《代碼大全》(編程經(jīng)驗(yàn)積累)l《編程之美:微軟技術(shù)面試心得》(關(guān)注有趣算法)l《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》(關(guān)注設(shè)計(jì)和架構(gòu))l《敏捷軟件開發(fā):原則、模式與實(shí)踐》(關(guān)注項(xiàng)目過程)l《人月神話》(關(guān)注項(xiàng)目管理)8/9Stag-Java快速上手指南1命名約定1.1包包名全部采用小寫字母,包名中不能出現(xiàn)下劃線,并且第一個(gè)字母不能是數(shù)字。1.2代碼文件:DscpDevice.h使用#define防止頭文件被多重包含。格式:
4、ROJECT>___H_#ifndefDSCP_DEVICE_DSCP_DEVICE_H_#defineDSCP_DEVICE_DSCP_DEVICE_H_#include"Common/Types.h"使用相對(duì)于項(xiàng)目根目錄的相對(duì)路徑。路徑分隔符使用/,而不是避免使用絕對(duì)路徑,避免使用.或..#include"DncpStack/DncpStack.h"#include"DNCP/App/DscpController.h"#include"DscpMonitor.h"#include"Dsc
5、pMsg.h"/***@briefDSCP設(shè)備對(duì)象,用于操作指定的一個(gè)設(shè)備。*@note本節(jié)點(diǎn)基于DNCP的TRP路由協(xié)議,通信之前不建立連接。類型名稱都使用PascalCase風(fēng)格,包括:類、結(jié)構(gòu)/聯(lián)合體、枚舉、名字空間、typedef等*/classDscpDevice{public:DscpDevice(Uint8d1,Uint8d2,Uint8d3=0,Uint8d4=0);~DscpDevice(void);方法名稱使用PascalCase風(fēng)格,按業(yè)務(wù)功能命名,使用有意義的動(dòng)詞或動(dòng)賓短語public:voi
6、dSetTimeout(intmillisecond);public:boolSend(Uint16cmdCode,void*data=NULL,Uint16len=0);變量名采用camelCase風(fēng)格,除了第一個(gè)單詞外,所有單詞首字母大寫DscpRespExpectResp(Uint16respCode);Uint16ExpectStatus(Uint16respCode);DscpEventExpectEvent(Uint16eventCode);類成員變量使用m_前綴;全局變量使用g_前綴;靜態(tài)變量使用s_前
7、綴;private:8/9Stag-Java快速上手指南DeviceAddressm_deviceAddress;intm_timeout;};#endif//DSCP_DEVICE_DSCP_DEVICE_H_文件:DscpDevice.cpp#include"DscpDevice.h"宏和枚舉值的命名采用UPPER_CASE風(fēng)格,即所有字母都大寫,單詞之間使用下劃線分隔。#defineDEVICE_PORT_NUM12enumAlternateUrlTableErrors{OK,OUT_OF_MEMORY,MAL
8、FORMED_INPUT,常量名稱采用camelCase風(fēng)格,但應(yīng)使用常量前綴k;常量命名不使用類型前綴,通常也不使用范圍前綴};constintkDaysInAWeek=7;/**變量不使用類型前綴,也不使用指針前綴。錯(cuò)例:uiCmdCode、pData、szText*@brief發(fā)送命令到設(shè)備,阻塞調(diào)用。*@param[in]cmdCode