Java開發(fā)熟手該當(dāng)心的11個(gè)錯(cuò)誤

生產(chǎn)過程中出現(xiàn)的問題正逐漸得到中層和最高管理層的重視缤灵。不管是身為開發(fā)人員還是架構(gòu)師,下列的事項(xiàng)都應(yīng)該得到你足夠的重視以避免陷入未來的尷尬境地。你也可以把它作為排查問題的便簽确徙。

1、不在屬性文件或XML文件中外化配置屬性执桌。

比如鄙皇,沒有把批處理使用的線程數(shù)設(shè)置成可在屬性文件中配置。你的批處理程序無論在DEV環(huán)境中仰挣,還是UAT(用戶驗(yàn)收測(cè)試)環(huán)境中伴逸,都可以順暢無阻地運(yùn)行,但是一旦部署在PROD 上膘壶,把它作為多線程程序處理更大的數(shù)據(jù)集時(shí)错蝴,就會(huì)拋出IOException洲愤,原因可能是JDBC驅(qū)動(dòng)版本不同,也可能是#2中討論的問題顷锰。如果線程數(shù)目 可以在屬性文件中配置柬赐,那么使它成為一個(gè)單線程應(yīng)用程序就變得十分容易了。我們不再需要為了解決問題而反復(fù)地部署和測(cè)試應(yīng)用了官紫。這種方法也同樣適用于配置 URL躺率、服務(wù)器和端口號(hào)等。

2万矾、測(cè)試中使用的數(shù)據(jù)集規(guī)模不合適悼吱。

比如,生產(chǎn)過程中一個(gè) 典型的場(chǎng)景就是只使用1到3個(gè)賬戶進(jìn)行測(cè)試良狈,而這個(gè)數(shù)量本應(yīng)是1000到2000個(gè)的后添。在做性能測(cè)試時(shí),使用的數(shù)據(jù)必須是真實(shí)并且未經(jīng)裁剪的薪丁。不貼近真實(shí) 環(huán)境的性能測(cè)試遇西,可能會(huì)帶來不可預(yù)料的性能、拓展和多線程問題严嗜。只有使用更大規(guī)模的數(shù)據(jù)集對(duì)應(yīng)用程序進(jìn)行測(cè)試粱檀,才能保證它正常運(yùn)行并滿足非功能屬性的 SLAs(服務(wù)水平標(biāo)準(zhǔn))。

3漫玄、天真地認(rèn)為應(yīng)用程序中所調(diào)用的外部和內(nèi)部服務(wù)是可靠的茄蚯,并且是始終可用的。

不允許出現(xiàn)服務(wù)調(diào)用超時(shí)和重試睦优,將會(huì)對(duì)應(yīng)用程序 的穩(wěn)定性和性能造成不利地影響渗常。需要進(jìn)行適當(dāng)?shù)姆?wù)中斷測(cè)試。這一點(diǎn)十分重要汗盘,因?yàn)槿缃竦膽?yīng)用程序多是分布式并且面向服務(wù)的皱碘,都需要大量的網(wǎng)絡(luò)服務(wù)。無限 地請(qǐng)求不可用的服務(wù)會(huì)損害應(yīng)用程序隐孽。也需要對(duì)負(fù)載均衡器進(jìn)行測(cè)試癌椿,以確保它能正常工作,使每個(gè)節(jié)點(diǎn)達(dá)到平衡菱阵。

4踢俄、沒有遵循最低限度的安全要求。

正如上文提到送粱,網(wǎng) 絡(luò)服務(wù)隨處可見褪贵,從而使得黑客可以輕易地利用它進(jìn)行拒絕服務(wù)攻擊。所以,在使用安全套接層時(shí)脆丁,必須完成基本的驗(yàn)證并使用Google skipfish等工具進(jìn)行滲透測(cè)試世舰。不安全的應(yīng)用程序不僅會(huì)威脅其自身穩(wěn)定性,還可能會(huì)因?yàn)閿?shù)據(jù)完整性問題對(duì)公司的聲譽(yù)造成負(fù)面影響槽卫,例如出現(xiàn)了客戶 “A”可以瀏覽客戶“B”數(shù)據(jù)的情況跟压。

5、沒有進(jìn)行跨瀏覽器的兼容性測(cè)試歼培。

如今的網(wǎng)絡(luò)應(yīng)用程序多是豐富的單頁(yè)應(yīng)用程序震蒋,它們使用JavaScript編程語(yǔ)言以及angular js這樣的框架。為了使你建設(shè)的網(wǎng)站能夠流暢地運(yùn)行于不同的設(shè)備和瀏覽器之間躲庄,必須實(shí)現(xiàn)與之對(duì)應(yīng)的設(shè)計(jì)查剖。所以為了確保你的應(yīng)用程序可以適用于所有設(shè)備和瀏 覽器,必須對(duì)其進(jìn)行兼容性測(cè)試噪窘。

6笋庄、沒有外化可能經(jīng)常發(fā)生變化的商業(yè)規(guī)則。

例如稅法倔监、政府或行業(yè)相關(guān)要求直砂、分類法等『葡埃可以使用像Drools這樣的引擎來處理商業(yè)規(guī)則静暂,它幫助你通過存入數(shù)據(jù)庫(kù)或 excel的形式,來外化這些商業(yè)規(guī)則谱秽。企業(yè)掌握了這些商業(yè)規(guī)則洽蛀,就能以最少的變化和測(cè)試完成對(duì)稅法或相關(guān)要求地快速反應(yīng)。

7弯院、沒有提供下列文檔

編寫單元測(cè)試文檔并使其擁有良好的代碼覆蓋率辱士。
集成測(cè)試。
一個(gè)綜合的或者百科全書式的頁(yè)面列出了所有的軟件構(gòu)件听绳,比如類、腳本异赫、配置文件等椅挣,而這些構(gòu)件要么是被修改了的,要么是新創(chuàng)建的塔拳。
高層次的概念圖描述了所有的組件鼠证,交互和結(jié)構(gòu)。
而基礎(chǔ)文檔則告訴開發(fā)者“如何結(jié)合數(shù)據(jù)源的詳細(xì)信息來搭建開發(fā)環(huán)境”靠抑。
除了COS(滿足的條件)這種由MindMap創(chuàng)建的形式之外量九,敏捷開發(fā)中還有1和2這兩種主要的文檔形式。

8、沒有適當(dāng)?shù)臑?zāi)害恢復(fù)計(jì)劃以及系統(tǒng)監(jiān)視和歸檔策略荠列。

在項(xiàng)目截止日期來臨之際类浪,常常因?yàn)榧庇诓渴痦?xiàng)目而遺漏了這些事項(xiàng)。沒有通過Nagios和Splunk建立合適的系統(tǒng)監(jiān)視機(jī)制不僅會(huì)威脅到應(yīng)用程序的穩(wěn)定性肌似,還會(huì)妨礙目前的診斷和將來的改進(jìn)工作费就。

9、沒有為數(shù)據(jù)庫(kù)表設(shè)計(jì)方便整理的列川队。

比如created_datetm力细、update_datetm、created_by固额、updated_by和時(shí)間戳眠蚂,也沒有提供有條理的刪除記錄列,如可以取‘Y’或‘N’的‘deleted’列或是可以取‘Active’或‘Inactive’的 ‘record_status’列斗躏。

10河狐、沒有制定適當(dāng)?shù)幕爻酚?jì)劃。

導(dǎo)致在系統(tǒng)發(fā)生故障時(shí)瑟捣,沒有辦法將系統(tǒng)恢復(fù)到部署前的穩(wěn)定狀態(tài)馋艺。這個(gè)計(jì)劃需要反復(fù)推敲并有相關(guān)團(tuán)隊(duì)簽字保證。計(jì)劃包括了迈套,退回到軟件先前的版本捐祠,去除插入到數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)以及屬性文件的所有條目。

11桑李、在項(xiàng)目開始前沒有制定能力計(jì)劃踱蛀。

現(xiàn)如今,在說明對(duì)平臺(tái)的要求時(shí)贵白,僅僅說“需要一臺(tái)Unix計(jì)算機(jī)率拒,一個(gè)Oracle數(shù)據(jù)庫(kù)服務(wù)器,一個(gè)JBoss應(yīng)用程序服務(wù)器”是遠(yuǎn)遠(yuǎn)不夠的禁荒。你的要求必須精確到
操作系統(tǒng)的特定版本猬膨,JVM等。
有多少內(nèi)存(包括物理內(nèi)存呛伴,JVM堆內(nèi)存勃痴,JVM棧內(nèi)存和JVM永久代的空間)。
CPU(內(nèi)核數(shù))热康。
負(fù)載均衡器沛申,需要的節(jié)點(diǎn)數(shù)、節(jié)點(diǎn)類型姐军,比如是active/active型還是active/passive型铁材,以及聚類要求尖淘。
文件系統(tǒng)要求,例如著觉,你的應(yīng)用程序可能會(huì)收集生成的報(bào)告并將其保存一年村生,之后 才進(jìn)行歸檔。這樣的話固惯,你就需要有足夠的硬盤空間梆造。有些應(yīng)用程序要求產(chǎn)生數(shù)據(jù)提取文件,并將它們暫時(shí)儲(chǔ)存以供其他系統(tǒng)進(jìn)程或數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)用來做多維分析報(bào) 告葬毫。還有些數(shù)據(jù)文件是基于安全文件傳輸協(xié)議的镇辉,它們或來自內(nèi)部系統(tǒng),或來自外部系統(tǒng)贴捡,并且在歸檔前需要被保存12到36個(gè)月忽肛。

image.png

歡迎工作一到五年的Java程序員朋友們加入Java架構(gòu)交流:810589193
本群提供免費(fèi)的學(xué)習(xí)指導(dǎo) 架構(gòu)資料 以及免費(fèi)的解答
不懂得問題都可以在本群提來出 之后還會(huì)有職業(yè)生涯規(guī)劃以及面試指導(dǎo)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市烂斋,隨后出現(xiàn)的幾起案子屹逛,更是在濱河造成了極大的恐慌,老刑警劉巖汛骂,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罕模,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡帘瞭,警方通過查閱死者的電腦和手機(jī)淑掌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝶念,“玉大人抛腕,你說我怎么就攤上這事∶窖常” “怎么了担敌?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)廷蓉。 經(jīng)常有香客問我全封,道長(zhǎng),這世上最難降的妖魔是什么苦酱? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任售貌,我火速辦了婚禮,結(jié)果婚禮上疫萤,老公的妹妹穿的比我還像新娘。我一直安慰自己敢伸,他們只是感情好扯饶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般尾序。 火紅的嫁衣襯著肌膚如雪钓丰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天每币,我揣著相機(jī)與錄音携丁,去河邊找鬼。 笑死兰怠,一個(gè)胖子當(dāng)著我的面吹牛梦鉴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播揭保,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肥橙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了秸侣?” 一聲冷哼從身側(cè)響起存筏,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎味榛,沒想到半個(gè)月后椭坚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡搏色,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年善茎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片继榆。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巾表,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出略吨,到底是詐尸還是另有隱情集币,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布翠忠,位于F島的核電站鞠苟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏秽之。R本人自食惡果不足惜当娱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望考榨。 院中可真熱鬧跨细,春花似錦、人聲如沸河质。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至散休,卻和暖如春媒楼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背戚丸。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工划址, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人限府。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓夺颤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親谣殊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拂共,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 這是人類從未涉足的神秘國(guó)度。 天邊華麗的彩霞在云朵間若隱若現(xiàn)姻几,金黃的落日光芒尚在天邊顯現(xiàn)宜狐,照亮了半邊的云朵,燃燒了...
    易轍閱讀 190評(píng)論 0 0
  • xLua的安裝 首先從xLua的Github主頁(yè)上下載資源包 https://github.com/Tencent...
    BlauHimmel閱讀 6,982評(píng)論 0 9
  • 拿 button 和 linearlayout 來說在實(shí)際情況中蛇捌,是先有布局接著在布局中寫控件抚恒,例如在 linea...
    大王要我來巡山閱讀 298評(píng)論 0 0