Java編程開發需要注意的11點錯誤
生產過程中出現的問題正逐漸得到中層和最高管理層的重視。不管是身為Java開發人員還是架構師,下列的事項都應該重視以避免陷入未來的尷尬境地。你也可以把它作為排查問題的便簽。
1、不在屬性文件或XML文件中外化配置屬性。比如,沒有把批處理使用的線程數設置成可在屬性文件中配置。你的批處理程序無論在DEV環境中,還是UAT(用戶驗收測試)環境中,都可以順暢無阻地運行,但是一旦部署在PROD 上,把它作為多線程程序處理更大的數據集時,就會拋出IOException,原因可能是JDBC驅動版本不同,也可能是#2中討論的問題。如果線程數目可以在屬性文件中配置,那麼使它成為一個單線程應用程序就變得十分容易了。我們不再需要為了解決問題而反覆地部署和測試應用了。這種方法也同樣適用於配置URL、伺服器和埠號等。
2、天真地認為應用程序中所調用的外部和內部服務是可靠的,並且是始終可用的。不允許出現服務調用超時和重試,將會對應用程序的穩定性和性能造成不利地影響。需要進行適當的服務中斷測試。這一點十分重要,因為如今的應用程序多是分布式並且面向服務的,都需要大量的網路服務。無限地請求不可用的服務會損害應用程序。也需要對負載均衡器進行測試,以確保它能正常工作,使每個節點達到平衡。
3、沒有外化可能經常發生變化的商業規則。例如稅法、政府或行業相關要求、分類法等。可以使用像Drools這樣的引擎來處理商業規則,它幫助你通過存入資料庫或 excel的形式,來外化這些商業規則。企業掌握了這些商業規則,就能以最少的變化和測試完成對稅法或相關要求地快速反應。
4、沒有遵循最低限度的安全要求。正如上文提到,網路服務隨處可見,從而使得黑客可以輕易地利用它進行拒絕服務攻擊。所以,在使用安全套接層時,必須完成基本的驗證並使用Googleskipfish等工具進行滲透測試。不安全的應用程序不僅會威脅其自身穩定性,還可能會因為數據完整性問題對公司的聲譽造成負面影響,例如出現了客戶「A」可以瀏覽客戶「B」數據的情況。
5、沒有進行跨瀏覽器的兼容性測試。如今的網路應用程序多是豐富的單頁應用程序,它們使用JavaScript編程語言以及angularjs這樣的框架。為了使你建設的網站能夠流暢地運行於不同的設備和瀏覽器之間,必須實現與之對應的設計。所以為了確保你的應用程序可以適用於所有設備和瀏覽器,必須對其進行兼容性測試。
6、測試中使用的數據集規模不合適。比如,生產過程中一個典型的場景就是只使用1到3個賬戶進行測試,而這個數量本應是1000到2000個的。在做性能測試時,使用的數據必須是真實並且未經裁剪的。不貼近真實環境的性能測試,可能會帶來不可預料的性能、拓展和多線程問題。只有使用更大規模的數據集對應用程序進行測試,才能保證它正常運行並滿足非功能屬性的SLAs(服務水平標準)。
7、沒有提供下列文檔
1.編寫單元測試文檔並使其擁有良好的代碼覆蓋率。2.集成測試。3.一個綜合的或者百科全書式的頁面列出了所有的軟體構件,比如類、腳本、配置文件等,而這些構件要麼是被修改了的,要麼是新創建的。4.高層次的概念圖描述了所有的組件,交互和結構。5.而基礎文檔則告訴開發者「如何結合數據源的詳細信息來搭建開發環境」。
除了COS(滿足的條件)這種由MindMap創建的形式之外,敏捷開發中還有1和2這兩種主要的文檔形式。
8、沒有適當的災害恢復計劃以及系統監視和歸檔策略。在項目截止日期來臨之際,常常因為急於部署項目而遺漏了這些事項。沒有通過Nagios和Splunk建立合適的系統監視機制不僅會威脅到應用程序的穩定性,還會妨礙目前的診斷和將來的改進工作。
9、沒有制定適當的回撤計劃。導致在系統發生故障時,沒有辦法將系統恢復到部署前的穩定狀態。這個計劃需要反覆推敲並有相關團隊簽字保證。計劃包括了,退回到軟體先前的版本,去除插入到資料庫中的所有數據以及屬性文件的所有條目。
10、沒有為資料庫表設計方便整理的列,比如created_datetm、update_datetm、created_by、updated_by和時間戳,也沒有提供有條理的刪除記錄列,如可以取『Y』或『N』的『deleted』列或是可以取『Active』或『Inactive』的『record_status』列。
11、在項目開始前沒有制定能力計劃。現如今,在說明對平台的要求時,僅僅說「需要一台Unix計算機,一個Oracle資料庫伺服器,一個JBoss應用程序伺服器」是遠遠不夠的。你的要求必須精確到
操作系統的特定版本,JVM等。
有多少內存(包括物理內存,JVM堆內存,JVM棧內存和JVM永久代的空間)。
CPU(內核數)。
負載均衡器,需要的節點數、節點類型,比如是active/active型還是active/passive型,以及聚類要求。
文件系統要求,例如,你的應用程序可能會收集生成的報告並將其保存一年,之後才進行歸檔。這樣的話,你就需要有足夠的硬碟空間。有些應用程序要求產生數據提取文件,並將它們暫時儲存以供其他系統進程或數據倉庫系統用來做多維分析報告。還有些數據文件是基於安全文件傳輸協議的,它們或來自內部系統,或來自外部系統,並且在歸檔前需要被保存12到36個月。
Java用途範圍廣泛,現今企業招收大量人才,隨之薪水也越來越高,想要學習Java編程,獲取高薪工作嗎?參加動力節點Java培訓,動力節點專註Java培訓多年,每位教師都具有10年以上項目管理及軟體研發經驗,關注「動力節點Java培訓」官網,深入了解動力節點吧。
※學習java編程沒有想像的那麼難
※改善程序員生活質量的3+10習慣
※隨著編程語言的百花齊放,雄踞榜首的java,還能堅挺多久?
※2017程序員薪資大爆料!你在哪個階段?
※轉行做Java程序員年齡是否被受限制
TAG:IT編輯者 |
※想要第一時間體驗 Air Max 270?那你可要注意啦!
※Apple高危漏洞你要知道,近期需注意的要點和解決辦法
※Django:當你開始一個新項目時要注意的地方 - 2018年更新
※Django:當你開始一個新項目時要注意的地方-2018年更新
※開發者注意 蘋果禁止在App設計中使用emoji
※Cimatron編程注意的問題術語
※你的iphone8已到貨,請注意查收
※注意了!iPhone已爆出7個質量問題
※iPhone 6、6S、7用戶手動解除降速要注意:後果嚴重
※孕婦用wifi,這十點需要注意了!
※不打針不動刀,Angelababy只注意這個地方就能減齡10歲!
※請注意Memcached DDoS攻擊!
※UNC&Adobe提出模塊化注意力模型,解決指示表達的理解問題
※2018買房注意要點
※iPhone又出新問題,這2款機型千萬注意!
※在視頻動作識別中引入top-down的「注意力機制」
※UNC&Adobe提出模塊化注意力模型MAttNet,解決指示表達的理解問題
※iPhone6Plus用戶請注意!免費換新機會來了
※5G就要來了,2018年買手機需要注意啥?
※使用Windows phone7.5和8.0系統用戶注意,微軟已關閉通知服務!