關(guān)于Java企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)思想
什么是企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)
"企業(yè)級(jí)項(xiàng)目"、企業(yè)級(jí)項(xiàng)目開(kāi)發(fā),Java 也是企業(yè)級(jí)項(xiàng)目開(kāi)發(fā),這個(gè)我們到處說(shuō)、聽(tīng),每天被我們掛在嘴邊,可是到底什么項(xiàng)目才算是"企業(yè)級(jí)"?自己一直做的小項(xiàng)目或者大項(xiàng)目到底算得上企業(yè)級(jí)嗎?也就GXPT算是企業(yè)級(jí)項(xiàng)目吧,接下來(lái)和大家交流學(xué)習(xí)!
1 . 項(xiàng)目開(kāi)發(fā)的現(xiàn)狀
一直以來(lái),大小項(xiàng)目在咱們提高班做了算是不少的了,我們都在不停得做項(xiàng)目,趕項(xiàng)目。相信從大家開(kāi)始做項(xiàng)目到現(xiàn)在,做過(guò)了很多大大小小的項(xiàng)目,或多或少也有讓自己很引以為豪的成功了的項(xiàng)目?,F(xiàn)在大家回頭想想,我們的項(xiàng)目一般是怎么做出來(lái)的!即便是每個(gè)開(kāi)發(fā)小組是不同的,但是在項(xiàng)目的期限、客戶需求變更中、各個(gè)督促下,我們的起碼的實(shí)現(xiàn)、整體的設(shè)計(jì)還是差不多的,大同小異吧,拓展性、靈活性差了些。
每次項(xiàng)目到來(lái),幾次會(huì)議之后,項(xiàng)目就開(kāi)始了,開(kāi)始分配人員,開(kāi)始分析一些從客戶那里拿來(lái)的需求,然后一些骨干的開(kāi)發(fā)人員就開(kāi)始為項(xiàng)目搭架子。于是一個(gè)項(xiàng)目就算是進(jìn)行起來(lái)了。談到了為項(xiàng)目搭架子,專業(yè)點(diǎn)說(shuō)就是做架構(gòu)了,說(shuō)是做架構(gòu),其實(shí)就是把項(xiàng)目按照慣例分割為幾個(gè)邏輯層,至于說(shuō)這個(gè)架構(gòu)好不好,有什么風(fēng)險(xiǎn),是否可以適應(yīng)以后的變化,采用的技術(shù)的風(fēng)險(xiǎn)和可行性分析,這些很少考慮,原因很簡(jiǎn)單:一般的都是這么開(kāi)發(fā)的,應(yīng)該沒(méi)有什么大的問(wèn)題。確實(shí),很多的項(xiàng)目也確實(shí)是這樣的開(kāi)發(fā)的,而且很多也成功了。這些無(wú)可厚非,至于說(shuō)什么標(biāo)準(zhǔn)不標(biāo)準(zhǔn),是否遵循了什么開(kāi)發(fā)的原則,沒(méi)有多少人在乎,不管怎樣,項(xiàng)目是成功了。
項(xiàng)目開(kāi)發(fā)中,很多的原則我們是很清楚:什么單一職責(zé),依賴反轉(zhuǎn),什么可測(cè)試性,維護(hù)性.....很多時(shí)候,在coding的時(shí)候,這些原創(chuàng)反倒成了多余,項(xiàng)目最后成為了功能代碼的堆積,特別是在趕項(xiàng)目的過(guò)程中,代碼堆積的效果就更加明顯了:只要把功能搞定,其他的以后再說(shuō)。可以往往這個(gè)"以后再說(shuō)"就成為了"永不再說(shuō)"、湊合著能實(shí)現(xiàn)就行了,這個(gè)也無(wú)可厚非。
就這樣,一年又一年,開(kāi)發(fā)項(xiàng)目,做項(xiàng)目,趕項(xiàng)目。主鍵的很多人隨著項(xiàng)目的進(jìn)行對(duì)做軟件開(kāi)發(fā)后期會(huì)變得沒(méi)有那么多興趣:原本以為軟件開(kāi)發(fā)是一種高智商的活動(dòng),現(xiàn)在發(fā)覺(jué)有點(diǎn)像是體力活。一年一年,一月月的,我們?yōu)橐粋€(gè)個(gè)不同的客戶開(kāi)發(fā)出一個(gè)個(gè)不同的系統(tǒng)。
通過(guò)資料表明:公司中……
相信很多公司也常常提出很多很"誘人"的口號(hào):通過(guò)做大量的項(xiàng)目,積累和開(kāi)發(fā)通用組件,組件越多,以后開(kāi)發(fā)就是僅僅只是堆積木了....但是真正的項(xiàng)目中,客戶不停在催,上頭也在催,最后就沒(méi)有人顧及什么通用不通用了。項(xiàng)目開(kāi)發(fā)是越做越累,相信這也是很多開(kāi)發(fā)人員轉(zhuǎn)行和轉(zhuǎn)型的原因之一吧?! ?br />
2. 什么是企業(yè)級(jí)項(xiàng)目
學(xué)Java這個(gè)接觸的越來(lái)越近了,時(shí)常思考這個(gè)問(wèn)題?企業(yè)級(jí)項(xiàng)目是什么? 為一個(gè)企業(yè),機(jī)構(gòu),客戶公司開(kāi)發(fā)的項(xiàng)目就算得上是企業(yè)級(jí)項(xiàng)目了嗎?一個(gè)很大的項(xiàng)目就是企業(yè)級(jí)項(xiàng)目嗎?一個(gè)小的項(xiàng)目就算不上是企業(yè)級(jí)項(xiàng)目?一個(gè)代碼成千上萬(wàn)上十萬(wàn)的代碼是企業(yè)級(jí)項(xiàng)目嗎?茫然!
其實(shí),一直以來(lái),我個(gè)人也對(duì)什么是"企業(yè)級(jí)"的概念不是很清晰。只是天天是在這么說(shuō),米老師也給我灌輸這樣企業(yè)級(jí)開(kāi)發(fā)的思想,剛開(kāi)始還是真有點(diǎn)滿然,聽(tīng)著挺高深哈。
說(shuō)到企業(yè)級(jí)項(xiàng)目,隨著而來(lái)的有很多概念:企業(yè)級(jí)架構(gòu),企業(yè)級(jí)開(kāi)發(fā)。
但是不管怎么說(shuō):企業(yè)級(jí)這個(gè)概念和項(xiàng)目的大小是沒(méi)有什么很大的關(guān)系的,甚至可以說(shuō)是幾乎沒(méi)有什么關(guān)系。
其實(shí)企業(yè)級(jí)項(xiàng)目其實(shí)就是一帶著一種"企業(yè)級(jí)"的思想來(lái)做項(xiàng)目。
在文章中的第一部分,我們到了現(xiàn)在我們做項(xiàng)目的方式:代碼的功能"堆積"。通過(guò)這種堆積出來(lái)的代碼就僅僅只是用于這一個(gè)項(xiàng)目,對(duì)于以后其他的項(xiàng)目幾乎是沒(méi)有什么用處的,也就說(shuō)代碼的重用行不夠,而且往往在一個(gè)項(xiàng)目中,很多的代碼都是雜七雜八的,很多相似的功能都是各自搞出一套代碼。諸如之類的問(wèn)題,導(dǎo)致項(xiàng)目越做越類,很多美麗的口號(hào)化為泡沫。
企業(yè)級(jí)的項(xiàng)目起碼有以下幾個(gè)特征:
穩(wěn)定性
靈活性
隔離性
重用性
維護(hù)性
相信這些特性大家都不陌生,這些特性我就不具體的解析,大家都清楚。說(shuō)了這些多,可能大家認(rèn)為我說(shuō)的是廢話,但是有一點(diǎn)可以說(shuō)的:現(xiàn)在我們開(kāi)發(fā)項(xiàng)目確實(shí)很多的時(shí)候忽略了這些東西,因?yàn)檫@個(gè)忽略,確實(shí)使得項(xiàng)目項(xiàng)目的開(kāi)發(fā)加快,但是從長(zhǎng)期的來(lái)看,項(xiàng)目開(kāi)發(fā)還是越來(lái)越累的。如果在開(kāi)發(fā)的時(shí)候,每次帶著一點(diǎn)點(diǎn)這樣的思考,盡量寫出符合那些特性的代碼,慢慢的,一種"企業(yè)級(jí)的心智"就慢慢出來(lái)了,一個(gè)很類似的比喻:在項(xiàng)目中,遇到了一個(gè)很難的技術(shù)問(wèn)題,我們往往花很多的時(shí)間來(lái)攻克,最后終于搞定。確實(shí)這個(gè)攻克的過(guò)程我們從思維上可以這樣分析:我們思維和問(wèn)題的答案之間隔了一道墻,我們一次次的嘗試各種解決方案去攻克問(wèn)題的時(shí)候,我們的思維一次次的在撞擊這道墻,最后墻被撞破,我們也得到了問(wèn)題的解決方案。
同理,我們?cè)陧?xiàng)目中帶著"企業(yè)級(jí)"思維,我們就在一點(diǎn)點(diǎn)的撞擊那道"墻",最后的結(jié)果就是:通用的功能被封裝為了通用的組件,為以后的項(xiàng)目的留下積累。
總結(jié)
這里我自己的感觸,本人的"企業(yè)級(jí)的心智"也沒(méi)有,逐步的積累吧,但是因?yàn)閹е@個(gè)思想作項(xiàng)目,在人事的維護(hù)、永和的維護(hù)、善良公社的開(kāi)發(fā)、考試系統(tǒng)中出現(xiàn)問(wèn)題的修復(fù)都深刻體會(huì)到了,企業(yè)級(jí)的思想可以很好地解決實(shí)際中遇到的代碼重復(fù)修改、網(wǎng)站重新發(fā)布、功能的靈活、組件的靈活添加,通過(guò)通用性網(wǎng)站網(wǎng)站米老師也是一遍一遍耐心的給我深化這種開(kāi)發(fā)的理念,個(gè)人認(rèn)為思想有了提升,而且還真的得到了不少通用的組件,雖然說(shuō)組件善待完善,但是已經(jīng)有了些甜頭。對(duì)系統(tǒng)后期的維護(hù)的成本也是大大的降低,企業(yè)級(jí)開(kāi)發(fā)思想在Java學(xué)習(xí)中面面俱到啊,GXPT中師哥們也利用這種企業(yè)級(jí)開(kāi)發(fā)的理念在大顯身手啊。
本文關(guān)于Java企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)思想的內(nèi)容就到這里,希望對(duì)大家有所幫助。歡迎大家參閱本站其他相關(guān)專題。
相關(guān)文章
maven關(guān)于pom文件中的relativePath標(biāo)簽使用
在Maven項(xiàng)目中,子工程通過(guò)<relativePath>標(biāo)簽指定父工程的pom.xml位置,以確保正確繼承父工程的配置,這個(gè)標(biāo)簽可以配置為默認(rèn)值、空值或自定義值,默認(rèn)情況下,Maven會(huì)向上一級(jí)目錄尋找父pom;若配置為空值2024-09-09淺析Java如何優(yōu)雅的避免那無(wú)處不在的空指針異常
在Java編程語(yǔ)言中,NullPointerException(簡(jiǎn)稱NPE)是一種常見(jiàn)的運(yùn)行時(shí)異常,本文主要來(lái)和大家講講如何優(yōu)雅的避免這些空指針異常,需要的可以參考下2024-03-03Java8中的LocalDateTime你會(huì)使用了嗎
LocalDateTime?是?Java?8?中日期時(shí)間?API?提供的一個(gè)類,在日期和時(shí)間的表示上提供了更加豐富和靈活的支持,本文就來(lái)講講LocalDateTime的一些具體使用方法吧2023-05-05利用Java實(shí)現(xiàn)動(dòng)態(tài)加載數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了一個(gè)java小案例,即動(dòng)態(tài)加載數(shù)據(jù)庫(kù)信息,文中的示例代碼簡(jiǎn)潔易懂,具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-10-10java開(kāi)源調(diào)度如何給xxljob加k8s執(zhí)行器
這篇文章主要介紹了java開(kāi)源調(diào)度如何給xxljob加一個(gè)k8s執(zhí)行器,?xxljob?在設(shè)計(jì)上,抽象出了執(zhí)行器的接口,所以實(shí)現(xiàn)一個(gè)語(yǔ)言的執(zhí)行器并不復(fù)雜,這里主要探索下,如何利用k8s的pod?的能力,使用?xxljob?調(diào)度?pod?運(yùn)行,實(shí)現(xiàn)一個(gè)通用的和語(yǔ)言無(wú)關(guān)的執(zhí)行器2022-02-02java中應(yīng)用Stack進(jìn)行算術(shù)運(yùn)算的操作
這篇文章主要介紹了java中應(yīng)用Stack進(jìn)行算術(shù)運(yùn)算的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03java基于OpenGL ES實(shí)現(xiàn)渲染實(shí)例
這篇文章主要介紹了java基于OpenGL ES實(shí)現(xiàn)渲染,實(shí)例分析了OpenGL渲染操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06Java實(shí)現(xiàn)小程序簡(jiǎn)單五子棋
這篇文章主要介紹了利用Java實(shí)現(xiàn)小程序簡(jiǎn)單五子棋,本程序適用于java初學(xué)者鞏固類與對(duì)象、事件響應(yīng)、awt包中各種工具的相關(guān)概念以及對(duì)邏輯能力的鍛煉,下面來(lái)看具體實(shí)現(xiàn)吧2021-12-12