來源:https://juejin.cn/post/7371986999164928010
作者:小紅帽的大灰狼
入職第一天就干活的,就問還有誰,搬來一臺N手電腦,第一分鐘開機,第二分鐘派活,第三分鐘干活,巴適。。。。。。
打開代碼發現問題不斷
讀取配置文件居然讀取兩個配置文件,一個讀一點,不清楚為什么不能一個配置文件進行配置
一邊獲取WEB-INF下的配置文件,一邊用外部配置文件進行覆蓋,有人可能會問既然覆蓋,那可以全在外部配置啊,問的好,如果全用外部配置,咱們代碼獲取屬性有的加上了項目前綴(上面的兩個put),有的沒加,這樣配置文件就顯得很亂不可取,所以形成了分開配置的局面,如果接受混亂,就寫在外部配置;不能全寫在內部配置,因為
prop_c.setProperty(key, value);
value獲取外部配置為空的時候會拋出異常;properties底層集合用的是hashTable
public synchronized V put(K key, V value) {
// Make sure the value is not null
if (value == null) {
throw new NullPointerException();
}
}
2.很多參數寫死在代碼里,如果有改動,工作量會變得異常龐大,舉例權限方面偽代碼
role.haveRole("ADMIN_USE")
3.日志打印居然sout和log混合雙打
先不說雙打的事,對于上圖這個,應該輸出包括堆棧信息,不然定位問題很麻煩,有人可能會說e.getMessage()最好,可是生產問題看多了發現還是打堆棧好;還有如果不是定向返回信息,僅僅是記錄日志,完全沒必要catch多個異常,一個Exception足夠了,不知道原作者這么寫的意思是啥;還是就是打印日志要用logger,用sout打印在控制臺,那我日志文件干啥;
4.提交的代碼沒有技術經理把關,下發生產包是個人就可以發導致生產環境代碼和本地代碼或者數據庫數據出現不一致的現象,數據庫數據的同步是生產最容易忘記執行的一個事情;比如我的這家公司上傳文件模板變化了,但是沒同步,導致出問題時開發環境復現問題真是麻煩;
5.隨意更改生產數據庫,出不出問題全靠開發的職業素養;
6.Maven依賴的問題,Maven引pom,而pom里面卻是另一個pom文件,沒有生成的jar供引入,是的,我們可以在dependency里加
pom type>
來解決這個問題,但是公司內的,而且實際也是引入這個pom里面的jar的,我實在不知道這么做的用意是什么,有誰知道;求教
以上這些都是我最近一家公司出現的問題,除了默默接受還能怎么辦;
那有什么優點呢:
不用太怎么寫文檔
束縛很小
學到了js的全局調用怎么寫的(下一篇我來寫,順便鞏固一下)
解決之道
怎么解決這些問題呢,首先對于現有的新項目或升級的項目來說,spring的application.xml/yml 完全可以寫我們的配置,開發環境沒必要整外部文件,如果是生產環境我們可以在腳本或啟動命令添加
nohup java -Dfile.encoding=UTF-8 -Dspring.config.location=server/src/main/config/application.properties -jar xxx.jar &
來告訴jar包引哪里的配置文件;也可以加上動態配置,都很棒的,
其次就是規范代碼,養成良好的規范,跟著節奏,不要另辟蹊徑;老老實實的,如果原項目上迭代,不要動源代碼,追加即可,沒有時間去重構的;
我也曾是個快樂的童鞋,也有過崇高的理想,直到我面前堆了一座座山,腳下多了一道道坑,我。。。。。。!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.