中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Java老手該當(dāng)心的13個(gè)錯(cuò)誤

2018-07-20    來(lái)源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

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

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

#2、測(cè)試中使用的數(shù)據(jù)集規(guī)模不合適。比如,生產(chǎn)過(guò)程中一個(gè)典型的場(chǎng)景就是只使用 1 到 3 個(gè)賬戶(hù)進(jìn)行測(cè)試,而這個(gè)數(shù)量本應(yīng)是 1000 到 2000 個(gè)的。在做性能測(cè)試時(shí),使用的數(shù)據(jù)必須是真實(shí)并且未經(jīng)裁剪的。不貼近真實(shí)環(huán)境的性能測(cè)試,可能會(huì)帶來(lái)不可預(yù)料的性能、拓展和多線程問(wèn)題。只有使用更大規(guī)模的數(shù)據(jù)集對(duì)應(yīng)用程序進(jìn)行測(cè)試,才能保證它正常運(yùn)行并滿(mǎ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ù)。無(wú)限地請(qǐng)求不可用的服務(wù)會(huì)損害應(yīng)用程序。也需要對(duì)負(fù)載均衡器進(jìn)行測(cè)試,以確保它能正常工作,使每個(gè)節(jié)點(diǎn)達(dá)到平衡。

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

#5、沒(méi)有進(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、沒(méi)有外化可能經(jīng)常發(fā)生變化的商業(yè)規(guī)則。例如稅法、政府或行業(yè)相關(guān)要求、分類(lèi)法等?梢允褂孟 Drools 這樣的引擎來(lái)處理商業(yè)規(guī)則,它幫助你通過(guò)存入數(shù)據(jù)庫(kù)或 excel 的形式,來(lái)外化這些商業(yè)規(guī)則。企業(yè)掌握了這些商業(yè)規(guī)則,就能以最少的變化和測(cè)試完成對(duì)稅法或相關(guān)要求地快速反應(yīng)。

#7、沒(méi)有提供下列文檔

  1. 編寫(xiě)單元測(cè)試文檔并使其擁有良好的代碼覆蓋率。
  2. 集成測(cè)試。
  3. 一個(gè)綜合的或者百科全書(shū)式的頁(yè)面列出了所有的軟件構(gòu)件,比如類(lèi)、腳本、配置文件等,而這些構(gòu)件要么是被修改了的,要么是新創(chuàng)建的。
  4. 高層次的概念圖描述了所有的組件,交互和結(jié)構(gòu)。
  5. 而基礎(chǔ)文檔則告訴開(kāi)發(fā)者“如何結(jié)合數(shù)據(jù)源的詳細(xì)信息來(lái)搭建開(kāi)發(fā)環(huán)境”。

除了 COS(滿(mǎn)足的條件)這種由 MindMap 創(chuàng)建的形式之外,敏捷開(kāi)發(fā)中還有 1 和 2 這兩種主要的文檔形式。

#8、沒(méi)有適當(dāng)?shù)臑?zāi)害恢復(fù)計(jì)劃以及系統(tǒng)監(jiān)視和歸檔策略。在項(xiàng)目截止日期來(lái)臨之際,常常因?yàn)榧庇诓渴痦?xiàng)目而遺漏了這些事項(xiàng)。沒(méi)有通過(guò) Nagios 和 Splunk 建立合適的系統(tǒng)監(jiān)視機(jī)制不僅會(huì)威脅到應(yīng)用程序的穩(wěn)定性,還會(huì)妨礙目前的診斷和將來(lái)的改進(jìn)工作。

#9、沒(méi)有為數(shù)據(jù)庫(kù)表設(shè)計(jì)方便整理的列,比如 created_datetm、update_datetm、created_by、updated_by 和時(shí)間戳,也沒(méi)有提供有條理的刪除記錄列,如可以取‘Y’或‘N’的‘deleted’列或是可以取‘Active’或‘Inactive’的 ‘record_status’列。

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

#11、在項(xiàng)目開(kāi)始前沒(méi)有制定能力計(jì)劃。現(xiàn)如今,在說(shuō)明對(duì)平臺(tái)的要求時(shí),僅僅說(shuō)“需要一臺(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)類(lèi)型,比如是 active/active 型還是 active/passive 型,以及聚類(lèi)要求。
  • 文件系統(tǒng)要求,例如,你的應(yīng)用程序可能會(huì)收集生成的報(bào)告并將其保存一年,之后才進(jìn)行歸檔。這樣的話(huà),你就需要有足夠的硬盤(pán)空間。有些應(yīng)用程序要求產(chǎn)生數(shù)據(jù)提取文件,并將它們暫時(shí)儲(chǔ)存以供其他系統(tǒng)進(jìn)程或數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)用來(lái)做多維分析報(bào)告。還有些數(shù)據(jù)文件是基于安全文件傳輸協(xié)議的,它們或來(lái)自?xún)?nèi)部系統(tǒng),或來(lái)自外部系統(tǒng),并且在歸檔前需要被保存 12 到 36 個(gè)月。

下面的#12來(lái)自“David DeCesare”發(fā)自“java.dzone”的評(píng)論,

#12、“不在工作時(shí)使用最好的工具”。很多情況下,開(kāi)發(fā)者會(huì)在生產(chǎn)系統(tǒng)中使用一門(mén)想要學(xué)習(xí)的語(yǔ)言或某種工具。通常這不是最好的選擇。比如,為已經(jīng)實(shí)際上是關(guān)系型的數(shù)據(jù)使用 NoSQL 數(shù)據(jù)庫(kù)。請(qǐng)記住,無(wú)論你采用哪種工具,都需要在未來(lái) 3 到 5 年(甚至更長(zhǎng)的時(shí)期)內(nèi)維護(hù)你的產(chǎn)品。

#13、在 16 個(gè)關(guān)鍵技術(shù)領(lǐng)域缺少充足的知識(shí)儲(chǔ)備。這些領(lǐng)域包括識(shí)別并修復(fù)1)“并發(fā)問(wèn)題”、2)事務(wù)問(wèn)題、3)性能問(wèn)題。很多次面試中,我靠著這 3 個(gè)方面的知識(shí)拿到了新的合同。

標(biāo)簽: Google 安全 代碼 服務(wù)器 腳本 開(kāi)發(fā)者 數(shù)據(jù)庫(kù) 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:愛(ài)上Java和JVM的10大理由

下一篇:大公司最喜歡問(wèn)的Java集合類(lèi)面試題