最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

約定優(yōu)于配置_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年08月11日 10:27:08   作者:shan9liang  
以前做項(xiàng)目,總是寫Ant配置文件,滿足于自己更靈活的配置,而沒有去思考,這么做到底值不值得

開始嘗試使用Maven構(gòu)建項(xiàng)目的時(shí)候,驚訝于只需要簡單的幾行xml就可以完成原來ant需要大量xml才能完成的工作。不得不說,人們?cè)诮?jīng)過一定技術(shù)積累后,總能想到辦法簡化自己的工作。以前做項(xiàng)目,總是寫Ant配置文件,滿足于自己更靈活的配置,而沒有去思考,這么做到底值不值得。

想象一下,如果我們每個(gè)人都滿足于自己的私欲,為所欲為,我們的世界會(huì)亂成什么樣子?在軟件世界里,如果每個(gè)程序員都定義一套自己的規(guī)范,那么我們的軟件會(huì)亂成什么樣子?各個(gè)版本的瀏覽器就已經(jīng)讓眾多程序員頭痛不已了,更別提其他的了。想到這,你有沒有感覺,其實(shí)java的成功,xml的成功,maven的成功都有其必然性,他們的設(shè)計(jì)理念都包含一個(gè)很簡單但很深刻的道理,那就是“通用”。

為什么通用?因?yàn)樽裱s定。

通用又會(huì)帶來另一個(gè)好處,那就是學(xué)習(xí)成本低,當(dāng)新人加入的時(shí)候,很容易上手,主要他了解約定,或者說規(guī)范就可以了。對(duì)比一下相同項(xiàng)目的ant腳本和maven腳本,也就是build.xml和pom.xml,你就會(huì)明白,我為什么說學(xué)習(xí)成本低了。如果沒有約定,沒有構(gòu)建標(biāo)準(zhǔn),n個(gè)項(xiàng)目可以能就要有n中項(xiàng)目目錄結(jié)構(gòu),n種構(gòu)建方式。

這種遵循約定寫xml配置的方式就是最優(yōu)的了嗎?只能說是相對(duì)罷了。如果我們嚴(yán)格遵循約定,甚至可以省略掉xml的編寫,因?yàn)閤ml可能會(huì)帶來管理上的混亂。

眾多javaweb的程序員一定都有編寫ssh的xml配置文件的經(jīng)歷,而不知道你是否了解Rails。

Rails 的核心理念也是約定優(yōu)于配置,這意味著在Rails中不會(huì)出現(xiàn)XML配置文件。Rails使用Web應(yīng)用多年來積累的各種常見約定(更具體地說是命名規(guī)則)來代替XML配置文件,而在Rails內(nèi)部的映射與發(fā)現(xiàn)機(jī)制根據(jù)這些約定可以實(shí)現(xiàn)對(duì)象之間的關(guān)聯(lián)。

使用約定來代替XML配置文件說明Rails本身完成了大量的底層工作,這意味著使用更少的代碼來實(shí)現(xiàn)應(yīng)用程序是極有可能的。此外,代碼量的縮減也減小了出現(xiàn)bug的可能性,降低了維護(hù)程序和升級(jí)程序的難度。

如果你有一種“強(qiáng)迫癥”,發(fā)現(xiàn)程序員多少都有點(diǎn)強(qiáng)迫癥,哈哈,就是不愿意遵循約定怎么辦?我只能再寫幾句來試圖說服你。你真的需要那么做嗎?你真的需要那么個(gè)性嗎?個(gè)性意味著什么?沒有通用性。沒有通用性意味著什么?死亡。你可能還會(huì)質(zhì)疑,微軟的很多東西都沒有通用性,只能運(yùn)行于windows平臺(tái),照樣活得好好的。但你有沒有想過全球那么多windows用戶,windows的通用性是不可質(zhì)疑的,間接使運(yùn)行在它之上的軟件擁有了一定的通用性。如果你還要再舉蘋果,好吧,朋友,你極端了。個(gè)性意味著復(fù)雜,沒有人喜歡復(fù)雜的東西。

既然遵循約定那么有優(yōu)勢(shì),是不是我們就該放棄配置,以約定為王?還得用maven和ant來說事。如果你目前的構(gòu)建包含一些高度自定義的過程,或者你的項(xiàng)目結(jié)構(gòu)不能輕易變更為maven規(guī)定的項(xiàng)目結(jié)構(gòu),或者你已經(jīng)寫了一些 Ant 腳本通過一種明確的方法完成一個(gè)明確的過程,而這種過程不適合 Maven 標(biāo)準(zhǔn),你仍然可以使用ANT,或者將ANT腳本作為Maven的一個(gè)插件。從這個(gè)角度來看,約定不能干所有事情,總有一些是需要你自定義完成的。

綜上,遵循約定雖然損失了一定的靈活性,但可以減少配置,降低復(fù)雜性,降低學(xué)習(xí)成本呢,使程序更優(yōu)美。所以,我更傾向于約定優(yōu)于配置。

相關(guān)文章

  • Springboot+AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換

    Springboot+AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換

    前端傳過來的時(shí)間參數(shù),后端可以自定義時(shí)間格式轉(zhuǎn)化使用,這樣想轉(zhuǎn)成什么就轉(zhuǎn)成什么。本文將利用自定義注解AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換,感興趣的可以了解一下
    2022-04-04
  • JavaWeb之Ajax的基本使用與實(shí)戰(zhàn)案例

    JavaWeb之Ajax的基本使用與實(shí)戰(zhàn)案例

    ajax技術(shù)是使頁面能局部刷新的一種技術(shù),下面這篇文章主要給大家介紹了關(guān)于JavaWeb之Ajax的基本使用與實(shí)戰(zhàn)案例的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Kafka?Producer中的消息緩存模型圖解詳解

    Kafka?Producer中的消息緩存模型圖解詳解

    Kafka中消息是以Topic進(jìn)行分類的,生產(chǎn)者生產(chǎn)消息,消費(fèi)者消費(fèi)消息,都是面向Topic的,下面這篇文章主要給大家介紹了關(guān)于Kafka?Producer中消息緩存模型的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • java中synchronized關(guān)鍵字的3種寫法實(shí)例

    java中synchronized關(guān)鍵字的3種寫法實(shí)例

    synchronized是Java中的關(guān)鍵字,是一種同步鎖,下面這篇文章主要給大家介紹了關(guān)于java中synchronized關(guān)鍵字的3種寫法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • Java中json使用方法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java中json使用方法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式, json是個(gè)非常重要的數(shù)據(jù)結(jié)構(gòu),在web開發(fā)中應(yīng)用十分廣泛。下面通過本文給大家講解Java中json使用方法,感興趣的朋友一起看看吧
    2017-07-07
  • JavaWeb導(dǎo)出Excel文件并彈出下載框

    JavaWeb導(dǎo)出Excel文件并彈出下載框

    這篇文章主要為大家詳細(xì)介紹了JavaWeb導(dǎo)出Excel文件并彈出下載框的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • SpringMVC攔截器實(shí)現(xiàn)單點(diǎn)登錄

    SpringMVC攔截器實(shí)現(xiàn)單點(diǎn)登錄

    這篇文章主要介紹了SpringMVC攔截器實(shí)現(xiàn)單點(diǎn)登錄,簡單介紹了springmvc攔截器,單點(diǎn)登錄實(shí)現(xiàn)原理等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 用java生成html文件實(shí)現(xiàn)原理及代碼

    用java生成html文件實(shí)現(xiàn)原理及代碼

    用printStream來向html文件里輸出數(shù)據(jù),先創(chuàng)建一個(gè)StringBuilder對(duì)象,通過append方法來為其添加html語句,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-08-08
  • Java中instanceof 關(guān)鍵字的使用

    Java中instanceof 關(guān)鍵字的使用

    instanceof通過返回一個(gè)布爾值來指出,某個(gè)對(duì)象是否是某個(gè)特定類或者是該特定類的子類的一個(gè)實(shí)例,本文就來詳細(xì)的介紹一下instanceof 關(guān)鍵字的使用,感興趣的可以了解一下
    2023-10-10
  • Java使用itextpdf實(shí)現(xiàn)生成PDF并添加圖片,水印和文字

    Java使用itextpdf實(shí)現(xiàn)生成PDF并添加圖片,水印和文字

    這篇文章主要為大家詳細(xì)介紹了Java在使用itextpdf實(shí)現(xiàn)生成PDF時(shí)如何實(shí)現(xiàn)添加圖片,水印和文字等效果,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02

最新評(píng)論

乐亭县| 筠连县| 平定县| 石渠县| 綦江县| 渭源县| 深圳市| 西平县| 屯昌县| 金乡县| 九寨沟县| 抚顺市| 辉南县| 托里县| 彭山县| 修武县| 淮南市| 阳谷县| 江安县| 游戏| 延安市| 滨海县| 贵州省| 丰县| 南京市| 子洲县| 呼玛县| 昌邑市| 囊谦县| 呈贡县| 宝清县| 太湖县| 瑞昌市| 大姚县| 云南省| 孝感市| 达孜县| 登封市| 苏州市| 从江县| 祁门县|