在很多人眼里面,我們寫代碼的就是碼農,是屌絲。其實我們是藝術家,我們的藝術品就是代碼。不知道有朋友和我有相同的看法。
廢話不多說,開始總結自己整理的一些編碼規范:
? ? ??
1.在我們編寫的每個類應該描寫本類的作用,對于關系比較復雜的,我們應該描寫清楚數據的存儲過程。
2.不管在接口類中方法描述的再詳細,在我們的實現類的方法上都應該進行描述。這樣其它人接手我們的項目時能夠很清楚的知道方法作用。
3.業務類的代碼中對數據每一塊的數據構造和數據的驗證封裝到其它方法中。不要直接在業務方法中寫。這樣會造成一個方法很多代碼。不容易閱讀。
如下代碼:
~~~
@Transactional
public void saveMember(Member member)throws Exception {
if(member==null)
{
log.info("參數不能為空");
throw new AppException("10001","參數不能為空","參數不能為空");
}
if(StringUtils.isBlank(member.getLoginName()))
{
log.info("登錄名不能為空");
throw new AppException("10001","登錄名不能為空","登錄名不能為空");
}
if(StringUtils.isBlank(member.getLoginPwd()))
{
log.info("登錄密碼不能為空");
throw new AppException("10001","登錄密碼不能為空","登錄密碼不能為空");
}
if(member.getRoleRank()!=null)
{
log.info("角色不能為空");
throw new AppException("10001","角色不能為空","角色不能為空");
}
//下面一系列邏輯處理代碼
}
~~~
我們可以改成這樣:
~~~
@Transactional
public void saveMember(Member member)throws AppException {
/**驗證會員參數是否為空*/
validateIsNull(member);
//下面一系列邏輯處理代碼
}
/**
* 驗證會員參數是否為空
* @param member
* @throws AppException
*/
public void validateIsNull(Member member)throws AppException
{
if(member==null)
{
log.info("參數不能為空");
throw new AppException("10001","參數不能為空","參數不能為空");
}
if(StringUtils.isBlank(member.getLoginName()))
{
log.info("登錄名不能為空");
throw new AppException("10001","登錄名不能為空","登錄名不能為空");
}
if(StringUtils.isBlank(member.getLoginPwd()))
{
log.info("登錄密碼不能為空");
throw new AppException("10001","登錄密碼不能為空","登錄密碼不能為空");
}
if(member.getRoleRank()!=null)
{
log.info("角色不能為空");
throw new AppException("10001","角色不能為空","角色不能為空");
}
}
~~~
上面的代碼是不是比以前好看多了。
4.在業務類方法中對其它模塊的調用要在本方法中體現出來,而不應該封裝在其它方法中。這樣做的話是主要是便于閱讀,同時也能夠很清楚業務邏輯和模塊的調用。
5.對于其它分布式服務接口調用時,我們應該對每一個服務調用都使用try...catch的方式代替整個方法中只有一個try...catch的方式。然后在catch中打印日志。這樣在以后生產日志系統中能夠快速定位出錯的地方。
6.某一業務方法邏輯比較復雜涉及到在數據量比較大的多個表的數據進行查詢、然后在修改、最后保存的情況下。我們不應該把整個方法加上事務,這樣容易造成事務的超
時。我們應該對修改、保存方法進行封裝成單獨封裝成方法,然后使用事務把修改、保存的方法進行包含。意思就說我們只對修改和保存這一代碼塊加事務。
7.在系統中盡量完善自己的日志吧。對那些后期在排查問題有幫助的信息,最好打印出來。
8.把代碼整理出有層次感,不要把代碼寫密密麻麻一堆,這樣過不了多長時間自己看起都頭暈。
以上是我自己對編碼的一些總結,如果大家看了本篇文章后覺得不好的地方還請多多指教。
- 前言
- spring事務(Transaction )報 marked as rollback-only異常的原因及解決方法
- 自己整理的編碼規范總結。(個人覺得很受用)
- spring事務常見問題、異常分析和解決方法
- 剖析OutOfMemoryError: PermGen space產生原因及解決方法
- 剖析java.lang.OutOfMemoryError: Java heap space產生原因及解決方法
- java中不同的ORM框架實現對數據庫批量插入數據庫的方式與技巧
- 解決java讀取大文件內存溢出問題、如何在不重復讀取與不耗盡內存的情況下處理大文件
- 不得不看的Java代碼性能優化總結
- 實現使用3des在頁面js加密,后臺java解密
- Java日志記錄的5條規則