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