偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Java程序員的錯(cuò)

開發(fā) 后端
這些年來,在我見過的各種 Java 代碼中,我發(fā)現(xiàn)這最大的問題是,寫代碼的人癡迷于把自己當(dāng)作架構(gòu)師。他們很喜歡這樣,在我閱讀他們的代碼時(shí),經(jīng)常會(huì)發(fā)現(xiàn)這些代碼與其說是去真正的解決一個(gè)問題……

 

Java 程序員是有問題的。我使用 Java 編程已經(jīng)有 10 多年的歷史。同時(shí),我還有過大量的使用其它語言開發(fā)的經(jīng)歷,比如C#, C, C++, Python, Lua, Objective-C 等等,我認(rèn)為這些經(jīng)歷在對(duì)我認(rèn)識(shí) Java 程序員的問題上起到了巨大的幫助。很多人說 Java 是一種很糟糕的編程語言。我不同意。Java 語言有它自己的缺點(diǎn),但我想,很多時(shí)候,當(dāng)你看到 Java 在有些地方讓人很多人不爽時(shí),那本質(zhì)上不是 Java 語言的問題,而是它被錯(cuò)誤的使用。

這些年來,在我見過的各種 Java 代碼中,我發(fā)現(xiàn)這***的問題是,寫代碼的人癡迷于把自己當(dāng)作架構(gòu)師。他們很喜歡這樣,在我閱讀他們的代碼時(shí),經(jīng)常會(huì)發(fā)現(xiàn)這些代碼與其說是去真正的解決一個(gè)問題,事實(shí)上更像是為了解決一個(gè)問題而規(guī)劃的一個(gè)藍(lán)圖模板。這兩者之間并不是細(xì)微的差別。你會(huì)看到繼承很深的抽象層和成堆臃腫的樣板式的代碼。由面向?qū)ο蠖Q生的子類超生現(xiàn)象無以復(fù)加。你根本無法一眼看明白、理解這些代碼是干什么的——你需要一層層深入挖掘,你需要理解它的整套濫用的術(shù)語和折磨人的詞匯(“AbstractAdapterFactory”),你必須要把自己當(dāng)成系統(tǒng)的一部分。我已經(jīng)記不起來上一次看到一個(gè)不是這種情況的 Java 項(xiàng)目是什么時(shí)候了。

導(dǎo)致在 Java 王國(guó)里代碼最終總會(huì)變成這樣的原因有很多。Java 語言自身要承擔(dān)一定責(zé)任。Java 平臺(tái)的 API 就是上面說的這些問題的典范,于是,善良的程序員們沿襲標(biāo)準(zhǔn)類庫里體現(xiàn)出來的編碼規(guī)范和風(fēng)格,將之當(dāng)作通用的好的編程原則,一下子就誤入迷途。Java 語言還會(huì)對(duì)程序員強(qiáng)迫施加一種上層的形式主義和啰嗦,以至于***你不得不習(xí)慣了這樣的風(fēng)格,當(dāng)看到其它語言的簡(jiǎn)潔語法時(shí),反而感覺就像它們都是沒穿衣服的裸體——這就是“斯德哥爾摩綜合癥”(譯注:來源于 1973 年發(fā)生于此地的一次銀行搶劫案中,一個(gè)人質(zhì)浪漫地被她的劫持者吸引住了)。

面向?qū)ο蟮牧餍胁糠衷蛞彩沁@種心理作用造成的。有越來越多的程序員開始退后一步用整體的眼光認(rèn)識(shí) Java,他們發(fā)現(xiàn),作為一種編程模式,面向?qū)ο笳娴氖窍喈?dāng)?shù)脑愀狻H欢?,Java 是***限度的根植于面向?qū)ο竽J?,如果沒有面向?qū)ο?,Java 寸步難行。即使是今天,你仍然能看到大學(xué)里的編程課程嚴(yán)重的偏向面向?qū)ο?,大量的使?Java 授課,相比起 10 年前、5 年前要普遍的多。

雖然 Java 語言非常的流行,在企業(yè)軟件開發(fā)里被普遍的采用,但這一點(diǎn)都無助于 Java 編程質(zhì)量的提高。我坦白的說,你在各種企業(yè)產(chǎn)品里看到的大量的 Java 代碼都是由非常低質(zhì)量的程序員寫出來的。

非常糟糕的是,這些問題并不是只體現(xiàn)在代碼上,而是在整個(gè) Java 生態(tài)系統(tǒng)上也是如此。不論是你使用的 Java 單元測(cè)試工具、依賴關(guān)系管理工具,還是模擬框架,即使是很小的 Java 程序,你也逃離不了它周邊龐大的系統(tǒng)。Java 程序員無能為力——讓他們開發(fā)一個(gè)小功能,你必然會(huì)看到一個(gè)繼承 15 層的類工廠(factory)的出現(xiàn)。

今天,我在學(xué)習(xí) Gradle 框架,很顯然是因?yàn)樽罱?Android 開發(fā)社群里很火。Gradle 來自于 Java 世界,所以它繼承了上面我說的所有的 Java 所具有的問題。正像 Tim Bray 最近抱怨的:

“我的瀏覽器打開的是 Gradle 文檔的一頁:第 50 章.依賴關(guān)系管理。它有 63 個(gè)小章節(jié),劃歸在 10 個(gè)一級(jí)章節(jié)下,這是第 50 章,文檔一共有 65 章(包括五節(jié)附錄)。”

Android——如果說除了那些開發(fā)企業(yè)軟件的人,還有人會(huì)在意 Java,那一定是因?yàn)樗?mdash;—它沿襲 Java 的老路,走的更遠(yuǎn)。你會(huì)習(xí)以為常的發(fā)現(xiàn),在讀一頁 Android API 文檔時(shí),你根本不知道它究竟是在說什么。當(dāng)然,最終你會(huì)弄明白,你需要繞道弄清楚其它 17 個(gè)類才行。什么?這讓你吃不消?你顯然不具備學(xué)習(xí) Java 系統(tǒng) API 的百折不撓的精神。你會(huì)變成一個(gè) Loser。

谷歌公司里開發(fā) Android 的工程師忙于構(gòu)筑偉大的系統(tǒng)框架,沒有時(shí)間解決真正的問題。

我是一個(gè) Android 程序員,我討厭 Java。它讓我很受傷。

英文原文:Java Developers

譯文鏈接:http://www.techug.com/java-developers

責(zé)任編輯:林師授 來源: techug.com
相關(guān)推薦

2015-09-02 08:54:35

程序員項(xiàng)目經(jīng)理

2017-09-04 13:02:00

程序員

2012-11-08 09:49:30

C++Java程序員

2013-08-20 09:33:59

程序員

2012-11-02 13:47:31

Java程序員編程

2020-01-06 09:14:59

Java程序員線程

2011-05-13 14:34:02

程序員

2017-10-14 15:44:29

代碼Python陷阱

2012-11-22 14:00:26

程序員

2017-11-14 21:30:15

2012-03-06 09:22:46

程序員

2017-10-12 10:30:39

Python陷阱與缺陷

2022-04-12 09:28:46

gccJava程序員

2013-04-15 10:55:09

程序員

2009-12-14 09:29:00

程序員

2010-08-27 10:34:51

程序員

2012-02-14 09:13:51

程序員

2012-03-13 10:55:00

程序員

2015-09-24 08:43:13

程序員未來

2012-06-23 17:21:18

程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)