現在開發J2EE越來越有一種感覺,就是開發效率很低,進展緩慢,依賴度很高(指開發人員之間,可能也和交流不夠有關)。而在我的印象中,j2ee開發本來就不是應該屬于這樣一種開發的。我在開發中,感覺以下的一些方面是造成這種現象的原因,分別是,技術上:界面,框架,測試等;非技術上:需求,部署,規范,變更等。下面說說我的想法。
第一,技術上
1,界面
? 需要怎么樣的界面?這實際和需求有很大的關系。暫且拋棄它與需求的關系,只講其本身的開發。在MVC開發過程中,通常使用標簽庫與html構造界面,這種開發是沒有什么大問題的,可是現在,ajax來了,該死的js也就來了。而且每個人(團隊,包括我)都對一些開源的ajax框架不了解也沒有時間了解,這樣一來,就只能自己寫一些簡單封裝代碼,應用代碼來滿足界面的要求。當工作開展了一段時間以后,大量的js也就沒有辦法很好的維護,先期設計不好所帶來的不能重復使用也顯而易見了,最重要的事,往往一個項目的進度都是很緊的,在進度的面前,花精力來修改這些js又是不可能的事情,最后的結果是付出很多勞動,卻得不到應有的回報。
2,框架
不要亂用框架,不要不用框架。我是這么覺得的。團隊在開發的任何一個方面,都應該使用該領域的一個成熟框架。實際上,雖然現在有N多的開源框架,可是一個項目真正要用到的又有幾個呢?struts好像誰都在用了,hibernate用的人也很多,這些框架可以讓開發變得簡單而且不易出錯。
3,測試
至今從沒見過好的測試。暫且不去談測試的粒度這種問題了,因為我所見的測試幾乎都是手工測試,而且就算要求測試也是不重視的,好像測試只是為了現在的正確。
第二,非技術上
1,需求
這個問題好像有點弱智,沒有需求能夠做什么?誰都知道的道理,可是偏偏在開發的時候就會出現連需求都沒有(或者沒確定)卻已經開始開發的情況。這時的需求就是想當然,你想這樣,他想那樣,到頭來都錯了,都要改。時間浪費了很多,卻做了一批無用的東西。這是最最失敗的。
2,部署
問:“項目開始了,要寫構建腳本么?”答:“不用。”呵呵,并不是教條到一定要在項目開始時就啟動構建腳本。我只是想說它的重要性,它應該在項目開始時,或者一小段時間過后就有。它不僅可以讓你隨時部署你的應用,而且甚至我覺得還有一點規范結構的作用。經歷過沒有腳本,最后4-5個人發布時忙的只知道拷貝了(實際上再最后最亂的時候寫還是可以避免一下最后部署的混亂的,可是那么關鍵的時候,幾乎沒人想到寫那東西,自己的bug都來不及呢,還管它?)
3,規范
沒規范不好做事情,每個人都可以定規范更不好做事情。每個人都有自己的主張,或這或那,寫一些規范(也算內部協議吧)的時候自以為就再設計了,其實我很反感,沒有一個老大(也許有一個,但不是真正的,因為他不控制),這項目就難做了,別說大的規范了,就連一個函數成功執行的返回值都可以讓你郁悶半個小時。當然了,做單元測試也就想也別想了。
4,變更
總是會有變更,不可以避免,當然也就不會對它說三道四。只是我希望把變更要當作是現在的工作,而不是從前的工作。如果一個程序員做好了一個用例,而現在這個用例的需求變了,那么就不應該認為該程序員沒有完成他的工作。只是希望有一個公平一點的評價。
哎~~,火氣大的