成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java開發者需要注意的十條法則

開發 后端
本文將給大家列出Java開發者的十條注意事項,知道這些規則不重要,遵循這些規則才是最重要的。希望這些規則可以幫助大家成為更好更專業的編程人員。

1.給你的代碼加注解—每個人都知道這一點,但是總會有人忘記遵守。你有多少次“忘記”加注解了?的卻不加文字注解有助于程序的功能性。但是一次又一你返回兩星期前寫的代碼,結果你想不起來那是什么了!如果這個未注解的代碼確實是你寫的那你就是幸運的了。因為在那些代碼中可以喚起你的記憶。不幸的是,大多數的時候代碼是別人寫的,而且他已將離開了公司!有句諺語是這樣說的“自己的事情自己做”。所以為了別人或是我們自己考慮,在你的代碼上加上注解吧。

2.別把事情復雜化— 我以前就是這么做的而其我相信你們也一樣。開發者喜歡把簡單的問題用很復雜的方法來解決。我們介紹EJBs到有五個用戶的應用程序中。我們完成一個框架結構那是應用程序所不需要的。我們添加屬性文件,目標源方案到本不需要這些東西的應用程序中。為什么我們要這樣做呢?一些人是不知道如何去做,而一些人故意這么做是想去學習新的東西,想讓我們感興趣。對于那些不知道如何去做的人,我建議去向經驗豐富的編程人員去詢問。而對于那些喜歡把應用程序設計搞復雜的人,我的建議還是要更專業一些來處理問題。

3.記住—“少即是多”不見得是件好事。—代碼效率是件非常好的事情,但是很多情況下少寫幾行代碼并不能提高代碼工作的效率。舉個簡單的例子:

if(newStatusCode.equals("SD") && (sellOffDate == null || 
todayDate.compareTo(sellOffDate)<0 || (lastUsedDate != null &&

todayDate.compareTo(lastUsedDate)>0)) ||

(newStatusCode.equals("OBS") && (OBSDate == null ||

todayDate.compareTo(OBSDate)<0))){

newStatusCode = "NYP";}

查出“if”條件下在做什么是多么簡單的事情?現在想象一下寫這個代碼的人,沒有遵守第一個規則-給代碼加注解 。如果我們把這個情況分成兩個獨立的if語句豈不是更簡單一些么?現在看一下修改后的代碼:

if(newStatusCode.equals("SD") && (sellOffDate == null || 
todayDate.compareTo(sellOffDate)<0 || (lastUsedDate != null &&

todayDate.compareTo(lastUsedDate)>0))){

newStatusCode = "NYP";

}else

if(newStatusCode.equals("OBS") && (OBSDate == null ||

todayDate.compareTo(OBSDate)<0))

{

newStatusCode = "NYP";}

是不是更清晰了?是的,我們在重復一下。我們有另一個“IF” 和兩個額外的括號,但是這個代碼更容易讀懂了!
 

4.不要有難懂的代碼—開發者經常忘記這一點或是忽略故意忽略這條規則,因為通常我們都在趕時間。但是如果我們能遵守這個規則,我們就不會終止我們所處的形勢了。要花多長時間去寫入另外一行最后定義的靜態變量代碼呢?

舉個例子:

public class A { 
public static final String S_CONSTANT_ABC = "ABC";

public boolean methodA(String sParam1){

if (A.S_CONSTANT_ABC.equalsIgnoreCase(sParam1)){

return true;

}

return false;

}}

現在每當我們需要文字“ABC”和一些變量作比較,我們可以參考A.S_CONSTANT_ABC而不是回憶實際的代碼是什么。在一個地方不斷的修改要比在所有代碼中尋找要容易得多。

5.不要發明自己的框架結構—有數以千計的框架結構而其大多數都是開放源。許多框架結構是被用在數以千計的應用程序中的優秀的解決方案。至少在表面我們需要用上新的框架結構。其中最好的也是廣發應用的框架結構的例子就是Struts。這個開放源web結果框架是一個非常好的候選者來用于web-based應用程序。請不要用自己版本的Strut,你將會在嘗試中死去。但是你必須記住規則2—別把事情復雜化。如果你的應用程序要開發3個screen-請不要用Struts,目前還沒有像這樣的應用程序的“控制”需求。

6.要對打印線和字符串串聯說“不”—我知道在以調試為目,開發者喜歡到處在我們覺得適合的地方添加System.out.println。又自言自語的說一會兒我們會刪除這些的。但是我們總是忘記刪除這些代碼行或者不想去刪除它們。我們用System.out.println來進行測試,為什么我們在測試完成后才觸及這些代碼呢?我們可能會刪除一行代碼當我們確實要這么做的時候!只要你不要低估System.out.println 的破壞,看以下的代碼:

public class BadCode { 
public static void calculationWithPrint(){

double someValue = 0D;

for (int i = 0; i < 10000; i++) {

System.out.println(someValue = someValue + i);

}}

public static void calculationWithOutPrint(){

double someValue = 0D;

for (int i = 0; i < 10000; i++) {

someValue = someValue + i;}}

public static void main(String [] n) {

BadCode.calculationWithPrint();

BadCode.calculationWithOutPrint();

}}

在上面所顯示的,你能觀察到calculationWithOutPrint()用了0.001204秒運行。相比之下,用了驚人的10.52秒去運行calculationWithPrint() method。

(如果你想要知道如何制作這個的表格,請閱讀我的文章題目是"Java Profiling with WSAD" Java Profiling with WSAD)

最好的像避免CPU浪費的方法是去引用像這樣的包裝方法:

public class BadCode { 
public static final int DEBUG_MODE = 1;

public static final int PRODUCTION_MODE = 2;

public static void calculationWithPrint(int logMode){

double someValue = 0D;

for (int i = 0; i < 10000; i++) {

someValue = someValue + i;

myPrintMethod(logMode, someValue);

}

}

public static void myPrintMethod(int logMode, double value) {

if (logMode > BadCode.DEBUG_MODE) { return; }

System.out.println(value);

}

public static void main(String [] n) {

BadCode.calculationWithPrint(BadCode.PRODUCTION_MODE);

}

}

String concatenation is another CPU waster. Consider example below:

public static void concatenateStrings(String startingString) {

for (int i = 0; i < 20; i++) {

startingString = startingString + startingString;

}

}

public static void concatenateStringsUsingStringBuffer(

String startingString) {

StringBuffer sb = new StringBuffer();

sb.append(startingString);

for (int i = 0; i < 20; i++) {

sb.append(sb.toString());}}

在以下的數據中能看到該方法用StringBuffer花了.01秒去執行而同時用字符串串聯的方法用了.08秒去執行。選擇是很明顯的。

7.關注GUI—無論聽起來有多么荒謬,我要一再指出的是GUI的功能和運行情況和商業客戶是同等重要的。GUI是一個成功的應用程序的重要組成部分。IT管理總是忽略GUI的重要性。許多機構省錢的方式是不雇用設計“user-friendly”應用程序有經驗的網絡設計師。Java開發者不得不依賴于他們自己的HTML技術和在此領域的那點局限性知識。我見過太多的應用程序是 “computer friendly”而不是 “ user friendly”。很少看到有開發者在軟件開發和GUI開發兩者都同樣精通的。如果你是那個不幸的被指定去創建一個應用程序界面的Java開發者,你可以遵循這三個規則:

1. 不要重新發明車輪。尋找現有的有類似接口需求的應用程序。

2. 先創建個雛形。這是非常重要的步驟。客戶想要看到他們能得到些什么。這樣對你來說是有意的,是因為在你全力以赴工作之前可以得到客戶的要求并且可以創建一個應用程序界面,這樣可以讓客戶冷靜下來。

3. 帶上用戶的帽子。換句話說,就是需要從用戶的角度來檢查應用程序的需求。例如,一個總結性的screen可以用標頁的方式來創建。作為一個軟件開發人員,允許從應用程序中忽略標記很讓人惱火,因為它確實有一點復雜。但是,從客戶的角度來看,可能不是很好的解決方案,因為總結的結果可以容納數百個數據行。

8. 時刻準備文件需求— 每一商業需求都要記錄在案。這個在一些童話故事里是正確的,但是遠離了現實世界。無論你的開發有多么的時間緊迫,無論你的最后期限要求的多么嚴格,你必須確保每個商業需求都是被記錄在案的。

9.單元測試。單元測試,單元測試—我就不詳細的說明什么是做你的代碼單元測試的最好方法。我只是想說的是必須要這么做。這是編程中最基本的規則。這是一個首先就不能被忽視的規則。如果你的下一個開發人員可以創建并為你的代碼執行測試計劃,那是在是太棒了。但是如果不可能,那你必須自己來做。建立一個單元測試計劃,遵循以下這些基本規則:

1. 在寫代碼之前為分類測試寫一個單元測試計劃。

2. 在單元測試中獲取代碼注解。

3. 執行一個“有趣的”功能測試所有的公開的方法(也就是說,沒有獲得者和設置者,除非他們用一些獨特方法來進行他們的獲取和設置。)

10. 記住—質量,不是數量—不要呆得太晚(如果你不需要這么做)。我理解有時候產品問題,緊迫的最后期限和不希望發生的一些事情會阻止我們不能按時離開工作崗位。但是,經理們是不會感謝和報答他們的員工因為他們總是呆得時間太長,他們感謝員工是因為他們做了高質量的工作。如果你遵循以上所提到的這些規則,你將會發現你產生很少的bug,獲得更多的可維護的代碼。這是你工作中最重要的部分。

【編輯推薦】

  1. 漫步云端 Java開發者的新選擇
  2. 詳解Java解析XML的四種方法
  3. Java實用開發全集
責任編輯:彭凡 來源: 51CTO論壇
相關推薦

2011-05-16 16:11:21

java

2015-10-08 10:07:29

游戲開發內存使用

2020-11-05 09:17:11

JavaScript開發 技術

2013-08-13 09:44:42

iOS 7開發者

2023-10-31 16:22:31

代碼質量軟件開發Java

2024-05-10 15:44:57

2012-09-28 09:12:39

移動Web

2010-08-17 09:20:45

2023-10-04 00:03:00

SQL數據庫

2010-10-08 13:35:45

2010-06-03 09:56:37

Web 2.0

2012-05-15 01:38:18

編程編程技巧編程觀點

2013-07-30 11:26:30

開發者Android 4.3root

2025-05-21 00:10:00

2021-10-15 10:04:37

云計算安全云服務

2009-05-19 10:14:44

Innodb字段MySQL

2018-02-24 16:32:06

云計算合同數據遷移

2022-04-26 18:33:02

JavaScript技巧代碼

2012-03-06 16:01:04

項目管理

2009-02-17 09:50:25

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色嗨嗨 | www.日本精品 | 国产91网址 | 日韩av在线免费 | 日日骚av | 午夜精品在线观看 | 国产高清久久 | 毛片黄 | 日本在线看片 | 青娱乐一区二区 | 欧美午夜精品久久久久久浪潮 | 亚洲免费观看视频 | 日本精品一区二区三区视频 | 午夜三级网站 | 国产精品99久 | 国产精品久久久久久久久久免费看 | 成人欧美一区二区 | 久久久欧洲 | 亚洲精品电影网在线观看 | av三级在线观看 | 国产日韩一区二区三区 | 91精品欧美久久久久久久 | 亚洲一区二区三区四区在线观看 | 精精国产xxxx视频在线播放 | 欧美亚洲国产一区 | 免费国产网站 | 毛片网站免费观看 | 亚洲一区二区三区在线播放 | 国产成人网 | 精品欧美乱码久久久久久1区2区 | 国产精品亚洲精品日韩已方 | 日韩一区二区三区视频在线播放 | 欧美在线成人影院 | 欧美日韩成人影院 | 欧美国产精品一区二区三区 | 天天综合网天天综合 | 毛色毛片免费看 | 精品一区二区三区av | 一区二区三区高清 | 国产三级大片 | 日韩电影一区 |