JAVA代码规范
Java編碼規(guī)范
1.標(biāo)識符命名規(guī)范
/*** 類命名使用駝峰式MarcoPolo,見樣例【1】。*/// 樣例【1】,用戶類命名規(guī)則UserController、UserService、UserServiceImpl/*** 方法名命名規(guī)范* 1)獲取單個對象使用get作為前綴,見樣例【2】。* 2)獲取多個對象使用list作為前綴,見樣例【3】。* 3)獲取統(tǒng)計數(shù)據(jù)使用count作為前綴,見樣例【4】。* 4)插入數(shù)據(jù)使用install作為前綴,見樣例【5】。* 5)修改數(shù)據(jù)使用update作為前綴,見樣例【6】。* 6)刪除數(shù)據(jù)使用delete作為前綴,見樣例【7】。* ps:方法命名使用小駝峰英文命名,禁止出現(xiàn)中文拼音。批量操作使用batchXXX開頭。*/// 樣例【2】,根據(jù)用戶id查詢單個用戶數(shù)據(jù)public User getUserByUserId(Long userId);// 樣例【3】,根據(jù)用戶對象查詢用戶列表數(shù)據(jù)public List<User> listUserByUser(User user);// 樣例【4】,根據(jù)用戶部門統(tǒng)計用戶總數(shù)public T countUserByDeptId(String deptId);// 樣例【5】,新增用戶數(shù)據(jù)public int installUser(User user);// 樣例【6】,修改用戶數(shù)據(jù)public int updateUser(User user);// 樣例【7】,根據(jù)用戶id刪除用戶數(shù)據(jù)public int deleteUserByUserId(Long userId);/*** 變量與常量命名規(guī)范* 1.變量名使用小駝峰命名,并且使用英文,禁止出現(xiàn)中文拼音,見樣例【8】。* 2.常量名使用全大寫命名,并且使用英文,禁止出現(xiàn)中文拼音,見樣例【9】。* ps:boolean類型,變量不要用is開頭。*/// 樣例【8】,變量命名規(guī)則,字符串、對象、數(shù)字String userId = "";User userInfo = new UserInfo();int userAge = 0;// 樣例【9】,常量命名規(guī)則,系統(tǒng)文件上傳路徑private final String SYSTEM_FILE_UPLOAD_URL = "/home/upload";2. 代碼格式
/*** 1.縮進(jìn):程序塊要采用縮進(jìn)風(fēng)格編寫,縮進(jìn)只使用TAB鍵,不能使用空格鍵;* 方法體的開始、類的定義、以及if、for、do、while、switch、case語句中的代碼都要采用縮進(jìn)方式;* * 2.對齊:程序塊的分界符左大括號"{" 和右大括號"}"都另起一行,應(yīng)各獨(dú)占一行并且位于同一列,* 同時與引用它們的語句左對齊;對齊只使用TAB鍵,不使用空格鍵;不允許把多個短語句寫在一行中,* 即一行只寫一條語句;if、for、do、while、case、switch、default等語句自占一行,見樣例【10】.** 3.換行:一行的長度超過80個字符需要換行,見樣例【11】。** 4.間隔:類、方法及相對獨(dú)立的程序塊之間、變量說明之后必須加空行;關(guān)鍵字之后要留空格,見樣例【12】。**/// 樣例【10】,對其方案// 錯誤的樣例if (useAge > 18) youngMan = false;String[] strings = new String[]{"文字1", "文字2", "文字3"};for (String str : strings) System.out.println(StringUtils.isNotEmpty(str));// 正確的樣例if (useAge > 18) {youngMan = false;}String[] strings = new String[]{"文字1", "文字2", "文字3"};for (String str : strings) {System.out.println(StringUtils.isNotEmpty(str));}// 樣例【11】,換行方案// 錯誤的樣例String[] strings = new String[]{"文字1", "文字2", "文字3"};List<String> stringsNew = Arrays.stream(strings).distinct().map(item -> return strings + "+").filter(item -> item.length() > 10).collect(Collectors.toList());// 正確的樣例List<String> stringsNew = Arrays.stream(strings).distinct().map(item -> strings + "+").filter(item -> item.length() > 10).collect(Collectors.toList());// 樣例【12】,間隔方案// 錯誤的樣例if(userAge>18){youngMan = false;}else{youngMan = true;}for(int i=0;i<=10;i++){userAge++;}// 正確的樣例if (userAge > 18) {youngMan = false;} else {youngMan = true;}for (int i=0; i<=10; i++){userAge++;}3.注釋
1、基本注釋(必須加)
(a) 類(接口)的注釋。(b) 構(gòu)造函數(shù)的注釋。(c) 方法的注釋。(d) 全局變量的注釋。2、特殊必加注釋(必須加)
(a) 典型算法必須有注釋。(b) 在代碼不明晰處必須有注釋。(c) 在代碼修改處加上修改標(biāo)識的注釋。(d) 在循環(huán)和邏輯分支組成的代碼中加注釋。(e) 為他人提供的接口必須加詳細(xì)注釋。4.常用工具類
/*** 通用工具類一般存放在,caiwei-common包的util下*/// 工具類【1】,【BeanUtils】Bean 工具類,常用于對象拷貝。BeanUtils.copyBeanProp(目標(biāo)對象,源對象);// 工具類【2】,【file】文件處理工具類,包含文件增刪改、圖片處理、文件上傳。FileUtils、ImageUtils、FileUploadUtils// 工具類【3】,【html】通用html工具封裝,一般為系統(tǒng)放Xss攔截使用。// 工具類【4】,【http】通用http發(fā)送方法,包含通用Get、Post發(fā)送方法。// 發(fā)送Post請求 HttpResponse response = HttpUtils.doPost("請求地址", "請求接口", "請求方式", "請求header", "請求參數(shù)", bodys);System.out.println(response.toString());// 發(fā)送Get請求String rspStr = HttpUtils.sendGet("請求地址", "請求參數(shù)(xx=1&xx=2)", "編碼類型(Constants.GBK)");// 工具類【5】,【ip】IpUtils可用于獲取用戶ip地址、AddressUtils根據(jù)用戶ip地址獲取地址。// 獲取用戶ip地址IpUtils.getIpAddr(request);// 根據(jù)用戶ip地址,獲取地址AddressUtils.getRealAddressByIP(ip);// 工具類【6】,【Excel】Excel文檔處理可讀、寫文檔。// 導(dǎo)出ExcelExcelUtil<實(shí)體> util = new ExcelUtil<實(shí)體>(實(shí)體.class);return util.exportExcel(列表數(shù)據(jù), "文件名");// 工具類【7】,【sign】加密方法,包含Base64加解密與解密。// 加密Base64.encode// 解密Base64.decodeStr// 工具類【8】,【spring】方便在非spring管理環(huán)境中獲取bean。// 獲取當(dāng)前的用戶LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());// 工具類【9】,【uuid】包含兩個id生成工具類。IdUtils.randomUUID();UUID.randomUUID();// 工具類【10】,【AesUtil】用于用戶登錄加密與解密。AesUtil.encrypt("要加密的數(shù)據(jù)","加密key","加密iv");AesUtil.desEncrypt("要解密的數(shù)據(jù)","解密key","解密iv");// 工具類【11】,【DateUtils】包含一些常用的時間處理方法。// 獲取當(dāng)前時間DateUtils.getNowDate();// 格式化時間DateUtils.parseDateToStr("格式化類型","時間");// 工具類【12】,【DictUtils】系統(tǒng)字典操作的工具類。DictUtils.getDictCache("字典key");// 工具類【13】,【JDBCUtils】數(shù)據(jù)庫鏈接工具類。總結(jié)
- 上一篇: 网站总结 和 相关控件 总结
- 下一篇: XP Embedded:不同的用户使用不