有考網(wǎng)有考網(wǎng)合作機(jī)構(gòu)>武漢培訓(xùn)學(xué)校>武漢洪山達(dá)內(nèi)IT教育培訓(xùn)
武漢洪山達(dá)內(nèi)IT教育培訓(xùn)
全國(guó)統(tǒng)一學(xué)習(xí)專線 8:30-21:00
位置:有考網(wǎng) > 計(jì)算機(jī)類>Java開發(fā)> Java開發(fā)過程中需要注意的一些技巧  正文

Java開發(fā)過程中需要注意的一些技巧

發(fā)布時(shí)間:2022-03-09 15:56:07來源:轉(zhuǎn)載

Java開發(fā)過程中需要注意的一些技巧。在Java工程師平常的開發(fā)過程中,由于業(yè)務(wù)的不同,可能關(guān)注的點(diǎn)有很多不一樣的地方,但是在基礎(chǔ)層面還是有一些共性的。此文概括了在Java開發(fā)、測(cè)試、部署、工程化方面一些需要注意的地方,供大家參考。

Java開發(fā)需要注意的一些技巧

1. 將一些需要變動(dòng)的配置寫在屬性文件中

比如,沒有把一些需要并發(fā)執(zhí)行時(shí)使用的線程數(shù)設(shè)置成可在屬性文件中配置。那么你的程序無論在DEV環(huán)境中,還是TEST環(huán)境中,都可以順暢無阻地運(yùn) 行,但是一旦部署在PROD上,把它作為多線程程序處理更大的數(shù)據(jù)集時(shí),就會(huì)拋出IOException,原因也許是線上環(huán)境并發(fā)造成也許是其他。如果線 程數(shù)目可以在屬性文件中配置,那么使它成為一個(gè)單線程應(yīng)用程序就變得十分容易了。我們不再需要為了解決問題而反復(fù)地部署和測(cè)試應(yīng)用了。這種方法也同樣適用 于配置 URL、服務(wù)器和端口號(hào)等。

這里推薦使用屬性文件外化這些配置,文件格式使用properties、yaml、hocon、json都可以。下面的類實(shí)現(xiàn)了對(duì)這些格式的文件的spring注入支持,包括占位符支持。

2. 測(cè)試中盡可能模擬線上環(huán)境

生產(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ù)料的性能、拓展和多線程問題。

3. 對(duì)于所有外部調(diào)用以及內(nèi)部服務(wù)都要做容錯(cuò)處理

不管是RPC調(diào)用還是對(duì)于第三方服務(wù)的調(diào)用,都不能想當(dāng)然的認(rèn)為可用性是的。不允許出現(xiàn)服務(wù)調(diào)用超時(shí)和重試,將會(huì)對(duì)應(yīng)用程序的穩(wěn)定性和性能造成不利地影響。

4. 安全設(shè)計(jì)上一個(gè)系統(tǒng)要遵循較小權(quán)限原則

網(wǎng)絡(luò)服務(wù)隨處可見,從而使得黑客可以輕易地利用它進(jìn)行拒絕服務(wù)攻擊。所以,設(shè)計(jì)系統(tǒng)時(shí),需要遵循“較小權(quán)限”原則,采用白名單等方式。

5. 需要提供以下文檔

編寫單元測(cè)試文檔并使其擁有良好的代碼覆蓋率。

高層次的設(shè)計(jì)圖:描述了所有的組件,交互和結(jié)構(gòu)。

詳細(xì)的設(shè)計(jì)圖:具體到代碼層面的設(shè)計(jì)

系統(tǒng)map(類似于site map):說明系統(tǒng)的所有組成文件、配置文件等。

6. 做好系統(tǒng)關(guān)鍵功能的監(jiān)控、錯(cuò)誤恢復(fù)、備份等

對(duì)于系統(tǒng)一些至關(guān)重要的功能模塊要做好對(duì)其的監(jiān)控,防止其影響系統(tǒng)的運(yùn)行,造成不可估算的損失。另外,如果可以,監(jiān)控到故障后去去試圖恢復(fù),恢復(fù)失敗再發(fā)送告警。對(duì)于一些很重要的數(shù)據(jù)文件,還要做到冗余備份,防止發(fā)生一些突然故障造成數(shù)據(jù)丟失。

7. 數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)設(shè)計(jì)一些便于追蹤歷史、整理的列

比如created_time、update_time可以說明記錄的創(chuàng)建和更新時(shí)間。;created_by、updated_by可以說明記錄是由誰創(chuàng)建和更新的。

此外,刪除記錄有時(shí)候并非真正刪除,這時(shí)需要設(shè)計(jì)表示此記錄狀態(tài)的列,

如可以取‘Y’或‘N’的‘deleted’列

或是可以取‘Active’或‘Inactive’的 ‘status’列。

8. 制定好項(xiàng)目回滾計(jì)劃

新的功能上線時(shí),如果發(fā)生故障,沒有一份回滾計(jì)劃,那么可能會(huì)手忙腳亂。有一個(gè)良好的回顧及計(jì)劃,可以讓你能夠有條不紊的執(zhí)行相關(guān)操作,將系統(tǒng)恢復(fù)到一個(gè)可運(yùn)行的狀態(tài)。

9. 項(xiàng)目上線前要做好量化分析

對(duì)于項(xiàng)目中用到的內(nèi)存、數(shù)據(jù)庫(kù)、文件、緩存等,要做好量化分析。預(yù)估出未來一段時(shí)間的空間占用,給運(yùn)維分配機(jī)器時(shí)一個(gè)參考。防止,由于數(shù)據(jù)量增長(zhǎng)過快,導(dǎo)致存儲(chǔ)不夠。

10. 制定好系統(tǒng)的部署計(jì)劃。

系統(tǒng)部署的平臺(tái)是一個(gè)至關(guān)重要的部分。對(duì)于平臺(tái)的描述,不能僅限于一臺(tái)服務(wù)器、兩個(gè)數(shù)據(jù)庫(kù)這個(gè)層面,至少需要包括

操作系統(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-Standby型還是Active-Active型。

文件系統(tǒng)要求,例如,你的應(yīng)用程序可能會(huì)收集生成的日志并將其保存很長(zhǎng)的周期,之后才進(jìn)行歸檔。這樣的話,你就需要有足夠的硬盤空間。

相關(guān)內(nèi)容: Java開發(fā) Java開發(fā)技巧 達(dá)內(nèi)IT教育

同類文章
最新文章
相關(guān)熱詞
導(dǎo)航

雅思 托福 GRE SSAT SAT GMAT ACT 個(gè)人提升英語 英語四六級(jí) 多鄰國(guó)英語測(cè)試 詞庫(kù) IB 英語口語 商務(wù)英語 公共英語 考研英語 青少兒英語 成人英語 A-Level 學(xué)生英語 初高中英語 OSSD AP課程 AEAS個(gè)性化定制課程 一級(jí)建造師 二級(jí)建造師 消防工程師 消防設(shè)施操作員 BIM 造價(jià)工程師 環(huán)評(píng)師 監(jiān)理工程師 咨詢工程師 安全工程師 建筑八大員 公路水運(yùn)檢測(cè) 通信工程 裝配式工程師 注冊(cè)電氣工程師 二級(jí)注冊(cè)建筑師 一級(jí)注冊(cè)建筑師 智慧消防工程師 智慧建造工程師 全過程工程咨詢師 EPC 碳排放管理師 ACCA CFA 注冊(cè)會(huì)計(jì)師 會(huì)計(jì)證 初中級(jí)經(jīng)濟(jì)師 初級(jí)會(huì)計(jì)師 中級(jí)會(huì)計(jì)師 基金從業(yè) 證券從業(yè) 稅務(wù)師 薪稅師 企業(yè)合規(guī)師 會(huì)計(jì)就業(yè)實(shí)操 期貨從業(yè) FRM CMA CQF 教師資格 人力資源管理 導(dǎo)游考試 心理咨詢師 健康管理師 社會(huì)工作師 普通話 育嬰員 物流師 家庭教育指導(dǎo)師 專利代理師 教師招聘 兒童專注力 兒童情緒管理 法律職業(yè)資格 少兒編程 書法培訓(xùn) 國(guó)畫 茶藝 樂器音樂 舞蹈 棋類 機(jī)器人編程 戲曲培訓(xùn) 信奧賽C++ 少兒小主播 口才培訓(xùn) 籃球培訓(xùn) 商務(wù)辦公 影視后期 剪輯包裝 游戲設(shè)計(jì) 游戲程序 UI設(shè)計(jì) 室內(nèi)設(shè)計(jì) photoshop CAD制圖 視覺設(shè)計(jì) 商業(yè)空間設(shè)計(jì) 平面設(shè)計(jì)