第一次使用Java編程——feature總結

聲明:

    這裏主要是自己在Java編程中碰到的一些問題,以及一些工作的經驗,希望可以對大家有所幫助。

介紹:

    前段時間由於工作的需求,我們需要使用Java開發一個小的功能,而具體實現的功能就是將從底層獲得的特殊信息上報到apk。而關於feature的細節這裏就不細說了。我想總結的是以後在拿到一個feature的時候我們應該如何去更好的完成。

1. 目標需要明確:

    在開發的過程中,我們需要明確自己的開發目標,這個就需要及時跟各個方面來了解目標需求,也就是將自己的開發的功能想象爲一個黑盒子,而我們需要詳細的知道我們的入口條件以及輸出的參數。

2.具體的方式:

    列清單,將各個可能的條件以及可能的問題儘可能多的想出來。並使用一個表格或者圖的方式展現出來,這樣既方便我們梳理代碼的邏輯,同時也可以幫忙其他需要了解這部分代碼的人更好的理解代碼。我的一個同事曾經使用兩週的時間來統計各個可能的情況,使用一個Excel表詳盡的列出來。

3. 代碼實現:

    使用模塊化的方式同時運用各種設計模式來完成這個功能的開發,當我們清楚前面的各個需求之後,我們就要設計一個好的框架來儘可能的實現上面的功能,而這個設計的框架有要求,他要儘可能的實現模塊化,儘可能的減少與其他模塊之間的耦合。同時需要在框架中設計好各個小的功能模塊來完成不同的任務,而各個小的功能模塊要求,每個功能模塊只做一件事情,分工明確。儘量減少全局變量的使用。同時需要有一定的可擴展性。以及對於一些可能會發生的錯誤的容錯能力。

4. 第三人查看代碼:

    如果可以的話請同事或者同組的人幫忙檢測一下代碼中的邏輯是很有幫助的,有時候當局者迷,而旁觀的人卻可以清楚的知道問題的所在。

5. 遇到問題及時溝通:

    在開發的過程中碰到問題要及時跟自己的同事或者領導溝通。而他們的建議是很有幫助的。同時及時溝通也可以幫忙我們及時更正代碼中存在的錯誤。在我們組裏,如果你碰到一個問題,而在半天的時間內還不能想到一個很好的解決方式的時候,你就需要向同事或者領導求助了。

Java總結:

1. 方便的api接口

    雖然之前看過一些Java的代碼,但是真正要編寫的時候還是兩碼事。看的時候只要瞭解代碼的邏輯就可以了,而真正寫的時候就需要使用各個api來實現自己的邏輯。不過Java好的一點就是擁有強大的api,在c/c++中很多需要自己實現的變量和函數功能,在Java中都可以使用已有的api來完成。所以建議大家在對某個功能有需求的時候可以先Google一下Java中是不是已經有了這個api的實現。

2. 成熟的報錯方式:

    在Java中如果在哪裏出現了錯誤,我們在log中是可以很方便的定位到具體出問題的地方的。而當定位到出問題的地方後我們就可以很容易的找到出問題的語句。所以Java在這方面做得也是非常的好的。但是我們有的時候也不能完全的相信Java報錯時定位的地方。

3. 根據時間順序查找錯誤:

    我們需要找到Java報錯的行,之後按着時間的順序回溯log,因爲有時候可能Java的代碼會crash在某一行, 而真正引起錯誤的行卻是在這之前的一個錯誤,只是那個錯誤沒有引起crash而已。例如一個小的錯誤可能引起當前線程的退出,但是並不能引起crash,但是後面的代碼如果繼續操作這個線程就會引起crash。而這種錯誤通常在抓log的時候錯誤的行定位不是固定的位置。這樣就有可能是之前的問題引起之後的crash了。

4. 傳值傳址:

    在Java代碼中,傳值和傳址操作是我碰到的一個很有意思的問題。在Java中參數的傳遞不會向c和c++那樣使用指針來實現傳值和傳址的功能。那麼我們在Java中是如何實現這個功能的那。這裏就要使用類了,在Java中類可以表示很多的東西,而如果我們將類使用new初始化了,那麼就是爲他分配了一塊內存,而如果我們沒有爲他初始化,那麼這個參數將沒有內存,而這樣我們就可以實現地址的傳遞了,在對Java函數傳參過程中,我們可以將類傳入,而如果這個時候我們想要操作原有的類,也就是傳址操作,這個時候我們在函數中就不使用new來申請空間,而是直接操作傳入的參數就可以。同樣如果我們想要傳值操作,只需要在函數中爲這個類new一個空間這個時候對這個類的操作就是新的空間上的操作,所以上面的操作就實現了傳值操作。

5. 多Google一下:

    在開發的過程中一定會遇到各種各樣的問題,這個時候我們及時的搜索一下是很有幫助的。而且網上的資源那麼豐富我們爲什麼不爲己所用那?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章