新聞中心

松嶺網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
Java 程序員是有問(wèn)題的。我使用 Java 編程已經(jīng)有 10 多年的歷史。同時(shí),我還有過(guò)大量的使用其它語(yǔ)言開(kāi)發(fā)的經(jīng)歷,比如C#, C, C++, Python, Lua, Objective-C 等等,我認(rèn)為這些經(jīng)歷在對(duì)我認(rèn)識(shí) Java 程序員的問(wèn)題上起到了巨大的幫助。很多人說(shuō) Java 是一種很糟糕的編程語(yǔ)言。我不同意。Java 語(yǔ)言有它自己的缺點(diǎn),但我想,很多時(shí)候,當(dāng)你看到 Java 在有些地方讓人很多人不爽時(shí),那本質(zhì)上不是 Java 語(yǔ)言的問(wèn)題,而是它被錯(cuò)誤的使用。
這些年來(lái),在我見(jiàn)過(guò)的各種 Java 代碼中,我發(fā)現(xiàn)這***的問(wèn)題是,寫(xiě)代碼的人癡迷于把自己當(dāng)作架構(gòu)師。他們很喜歡這樣,在我閱讀他們的代碼時(shí),經(jīng)常會(huì)發(fā)現(xiàn)這些代碼與其說(shuō)是去真正的解決一個(gè)問(wèn)題,事實(shí)上更像是為了解決一個(gè)問(wèn)題而規(guī)劃的一個(gè)藍(lán)圖模板。這兩者之間并不是細(xì)微的差別。你會(huì)看到繼承很深的抽象層和成堆臃腫的樣板式的代碼。由面向?qū)ο蠖Q生的子類超生現(xiàn)象無(wú)以復(fù)加。你根本無(wú)法一眼看明白、理解這些代碼是干什么的——你需要一層層深入挖掘,你需要理解它的整套濫用的術(shù)語(yǔ)和折磨人的詞匯(“AbstractAdapterFactory”),你必須要把自己當(dāng)成系統(tǒng)的一部分。我已經(jīng)記不起來(lái)上一次看到一個(gè)不是這種情況的 Java 項(xiàng)目是什么時(shí)候了。
導(dǎo)致在 Java 王國(guó)里代碼最終總會(huì)變成這樣的原因有很多。Java 語(yǔ)言自身要承擔(dān)一定責(zé)任。Java 平臺(tái)的 API 就是上面說(shuō)的這些問(wèn)題的典范,于是,善良的程序員們沿襲標(biāo)準(zhǔn)類庫(kù)里體現(xiàn)出來(lái)的編碼規(guī)范和風(fēng)格,將之當(dāng)作通用的好的編程原則,一下子就誤入迷途。Java 語(yǔ)言還會(huì)對(duì)程序員強(qiáng)迫施加一種上層的形式主義和啰嗦,以至于***你不得不習(xí)慣了這樣的風(fēng)格,當(dāng)看到其它語(yǔ)言的簡(jiǎn)潔語(yǔ)法時(shí),反而感覺(jué)就像它們都是沒(méi)穿衣服的裸體——這就是“斯德哥爾摩綜合癥”(譯注:來(lái)源于 1973 年發(fā)生于此地的一次銀行搶劫案中,一個(gè)人質(zhì)浪漫地被她的劫持者吸引住了)。
面向?qū)ο蟮牧餍胁糠衷蛞彩沁@種心理作用造成的。有越來(lái)越多的程序員開(kāi)始退后一步用整體的眼光認(rèn)識(shí) Java,他們發(fā)現(xiàn),作為一種編程模式,面向?qū)ο笳娴氖窍喈?dāng)?shù)脑愀?。然而,Java 是***限度的根植于面向?qū)ο竽J?,如果沒(méi)有面向?qū)ο?,Java 寸步難行。即使是今天,你仍然能看到大學(xué)里的編程課程嚴(yán)重的偏向面向?qū)ο?,大量的使?Java 授課,相比起 10 年前、5 年前要普遍的多。
雖然 Java 語(yǔ)言非常的流行,在企業(yè)軟件開(kāi)發(fā)里被普遍的采用,但這一點(diǎn)都無(wú)助于 Java 編程質(zhì)量的提高。我坦白的說(shuō),你在各種企業(yè)產(chǎn)品里看到的大量的 Java 代碼都是由非常低質(zhì)量的程序員寫(xiě)出來(lái)的。
非常糟糕的是,這些問(wèn)題并不是只體現(xiàn)在代碼上,而是在整個(gè) Java 生態(tài)系統(tǒng)上也是如此。不論是你使用的 Java 單元測(cè)試工具、依賴關(guān)系管理工具,還是模擬框架,即使是很小的 Java 程序,你也逃離不了它周邊龐大的系統(tǒng)。Java 程序員無(wú)能為力——讓他們開(kāi)發(fā)一個(gè)小功能,你必然會(huì)看到一個(gè)繼承 15 層的類工廠(factory)的出現(xiàn)。
今天,我在學(xué)習(xí) Gradle 框架,很顯然是因?yàn)樽罱?Android 開(kāi)發(fā)社群里很火。Gradle 來(lái)自于 Java 世界,所以它繼承了上面我說(shuō)的所有的 Java 所具有的問(wèn)題。正像 Tim Bray 最近抱怨的:
“我的瀏覽器打開(kāi)的是 Gradle 文檔的一頁(yè):第 50 章.依賴關(guān)系管理。它有 63 個(gè)小章節(jié),劃歸在 10 個(gè)一級(jí)章節(jié)下,這是第 50 章,文檔一共有 65 章(包括五節(jié)附錄)?!?/p>
Android——如果說(shuō)除了那些開(kāi)發(fā)企業(yè)軟件的人,還有人會(huì)在意 Java,那一定是因?yàn)樗匾u Java 的老路,走的更遠(yuǎn)。你會(huì)習(xí)以為常的發(fā)現(xiàn),在讀一頁(yè) Android API 文檔時(shí),你根本不知道它究竟是在說(shuō)什么。當(dāng)然,最終你會(huì)弄明白,你需要繞道弄清楚其它 17 個(gè)類才行。什么?這讓你吃不消?你顯然不具備學(xué)習(xí) Java 系統(tǒng) API 的百折不撓的精神。你會(huì)變成一個(gè) Loser。
谷歌公司里開(kāi)發(fā) Android 的工程師忙于構(gòu)筑偉大的系統(tǒng)框架,沒(méi)有時(shí)間解決真正的問(wèn)題。
我是一個(gè) Android 程序員,我討厭 Java。它讓我很受傷。
英文原文:Java Developers
譯文鏈接:http://www.techug.com/java-developers
新聞標(biāo)題:Java程序員的錯(cuò)
本文來(lái)源:http://www.5511xx.com/article/dhpdepp.html


咨詢
建站咨詢
