1. 程式人生 > >第一次開發Java web專案的總結心得

第一次開發Java web專案的總結心得

從學校走出來,轉眼間就過去三四個月了,在公司的這幾個月來,終於在最近幾個星期迎來了第一個正式的開發專案,確切的說,是專案迭代。

截止到今天,這一輪迭代已能算是基本完成,雖然分到自己的任務並不是很多,甚至可以說非常少,但是從中得到的收穫依舊是巨大的,這大概就是所謂的實踐出真知吧!

在培訓學校學了四個月,感覺學了很多東西,但是一直迷迷糊糊的,連書本上的許多習題都不能獨立搞定。每每看到一個小程式的程式碼的時候,總感覺非常的簡單,但是當只是給自己一個需求讓自己找思路的時候,卻又總是感覺無從下手。


 而來到公司之後,或許是因為不一樣的氣氛的緣故,在不斷的學習的過程中,當我再回過頭去找一些以前沒有做過的小習題時,居然很是驚訝的發現並不是之前看到的那麼難,解決思路也都像是原本就有一樣水到渠成。


或許這就是積累的力量吧,堅持走下去,就會有很多事在不知不覺間發生了改變!


在這一輪的迭代中,我只負責一個查詢功能的實現,整體比較簡單,只是對查詢出的結果進行處理的過程看似有一點點複雜。因為是第一次獨立的開發,所以在這個過程中犯了一大堆的錯,思路變了又變,程式碼改了又改,也正是因為這樣,讓自己才獲得了很大的收穫。

這個小小的功能,程式碼被我重寫了好幾遍。剛開始的時候,因為對mongodb資料庫的完全陌生,所以只是簡單的套用別人的查詢語句得到一個自己看不太懂的結果,然後進行了一系列的變換,最終把結果變成了我所熟悉的字串和list集合,再在這個基礎上進行處理,最終得到我想要的結果。


結果最終是被我弄出來了,很是興奮,但是經過高手的檢查之後,告訴我的卻是這樣的寫法太不可取了,原本應該很簡單的實現不該被弄的這麼複雜。於是乎,在高手的指點下重新設計思路,完全摒棄了用字串來處理的想法,於是幾乎整個的程式碼就都成為了廢品,只能重頭再來!


 不斷的查資料,不斷的詢問,不斷的嘗試,一兩天的煎熬後,終於又成功使用第二種思路得到了我想要的結果。然後反反覆覆的檢查了很多遍,再次確定似乎是很符合要求了之後,我便又找來了高手給我檢查。


滿心期待,但結果還是不符合要求,原因是我們的web專案使用的是springmvc結構,而我的程式碼處理邏輯幾乎是全部都在dao的實現類中一氣呵成了!


對於高手的點評,我是心服口服,因為對於mvc三層結構,以及controller、service、dao這三層,我在培訓學校的時候一直都沒有弄明白,一直到現在開發的時候我都分不清該怎麼用。


高手告訴我說,dao中只需和資料庫打交道,得到了資料庫中的結果就ok,然後主要的處理邏輯在service中,service中返回的結果要能夠供別人呼叫,最後返回的結果的最終處理放在controller。


於是,再次整理思路,把dao中的程式碼進行分解,然後適當的放到另外兩層中,再進行數次的除錯,最終又成功迎來了我想要的結果。


我想,這下應該是可以了吧!我在本機上測試了無數次了都沒有任何問題,應該算是完工了吧!但是當最後和前臺一聯調才發現完全不是那麼回事,前臺無論傳送什麼樣的請求給我,我給他返回的竟然都是“message:沒有資料;result:success”!


這是一個多麼令人沮喪的結果,尚差一步,但就是尚差一步!於是只能再次拼命的分析,絞盡腦汁的測試。


但是結果卻是不盡人意的,我怎麼想,怎麼測都覺得應該是沒有問題,可是他結果偏偏就是有問題,於是我只能是不停的抓耳撈腮!


這裡是公司,不同於在學校,結果出不來不能就這樣了,再沒辦法也要想辦法!於是在最終感覺真的是黔驢技窮的時候,我便只能又找來了高手。

結果,高手隨便瞄了一眼就找到了問題所在,這讓我長久的折騰更顯得徒勞!原來問題只是我在接收前臺引數的時候多加了一個@requestbody的註解,我以為接收引數就要這個註解,而實際上這個註解並不能這樣亂用!


在高手的再次指點下,我刪除了那個註解,結果tomcat一啟動,頁面一重新整理,想要的畫面就那樣神奇的出現在了介面上,這時候真是感覺頗為無語,說不出感覺的無語。


和前臺聯調成功,這個任務算是基本完成了,這個過程中,初步清楚了mvc,初步懂了mongodb資料庫,初步明白了公司專案開發的整個流程,也初步掌握了debug除錯。

綜上等等,在這一次專案中,最大的收穫應該主要有兩個,第一個就是了解了公司正式專案的基本開發流程,使自己剛進公司時的忐忑心理變得略微踏實了一些。

總結一下,大概的流程應該就是這樣的:

首先由需求人員向專案組提出需求,然後給專案組的所有人進行需求講解,大家一起探討需求中各項細節的可行性。

當開發人員和需求人員一起確定需求沒有問題的時候,如果有時間,可以讓開發人員進行一次需求反講,在需求和開發都確認沒有問題的時候,需求便算是正式定下來了。

需求確定以後,開發人員進行分工協調,然後訂製開發設計概要和API,後端API中一般包括一些介面,需要的引數,還要和前端一起確定好訪問路徑,需要傳遞的引數以及返回給前端的資料格式。

在設計api的過程中,前後端各自設計好以後,要召開專門的會議互相講解,在講解討論的過程中達到相關意見的一致,此過程中測試人員也要參加。

當api也都確定好以後,開發人員正式開始開發,測試人員也開始寫測試用例。

在開發人員寫程式碼的過程中,要針對自己的程式碼進行單元測試,同時需要寫好單元測試文件,在測試的過程中不斷的修改和優化自己的程式碼,以保證邏輯更嚴謹,執行效率更高,程式碼更整潔。

然後,在前後端各自都測試並完善好自己的功能點後,前後端人員一起進行聯調,進一步確保功能沒有問題。

如果上一步驟也都沒有問題以後,程式碼就打包部署到測試伺服器交由測試人員來專業的測試,進一步尋找問題,以求最終的程式更加完善。

這一次的開發基本步驟大概就是這樣了,那麼第二個收穫就是學會了比較正確的開發態度。

之前培訓的時候,可能是因為環境不一樣吧,那時候遇到一個習題或者是一個需求的時候,都會一開始想一陣子辦法,當一段時間的努力還是無法解決問題的時候,通常就會忍不住去看看參考答案,然後在參考答案的幫助下,自以為找到了自己的思路,然後會看似成功的完成程式碼,而這樣的後果是,其實並沒有真的得到該有的收穫。

而這次真正的開發中,沒有參考答案,也沒有做不出來就不管了的說法,無論怎樣都必須想辦法得出想要的結果,正是因為這樣,才使自己在開發中得到了與之前完全不同的收穫和感悟。

人生有許多的第一次,第一次總是讓人記憶尤深!第一次之後還會有無數次的其他經歷,許多事只有走下去才知道結果如何;許多事,只要不斷的走下去,就會有意想不到的收穫!實踐出真知,行動得結果,空談會誤國,實幹才興邦!在理論中實踐,在錯誤中成長,在失敗中總結,在跌倒中爬起,堅持不斷的走下去,學下去,這世間終究會有一片屬於自己的天空!