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