精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

做Java開發這一年,這些事兒

開發 后端
從去年到現在,從.NET轉向Java開發(只是因為項目原因,絕對與平臺好壞沒有關系)差不多有一年的時間了。通過這一年時間也有些感觸,想從幾個面比較一下這兩個平臺。希望能做到客觀公正。

從去年到現在,從.NET轉向Java開發(只是因為項目原因,絕對與平臺好壞沒有關系)差不多有一年的時間了。通過這一年時間也有些感觸,想從幾個面比較一下這兩個平臺。希望能做到客觀公正。

語言

我原來是使用C#語言的,和現在的Java語言相比,現在的Java語言語法就停留在C# 2.0這個年代。語法結構都非常傳統,中規中矩。很突出的一點是,因為缺少對閉包的支持,有些用C#很容易做到的,用Java需要寫很多廢話代碼。

前幾天InfoQ上發表了一篇英國衛報逐步采用Scala替換Java的文章里一句話用的很好:看Java的代碼很容易讓你只見樹木,不見森林。因為為了實現某個功能,你需要太多的支撐代碼,而實現功能的關鍵代碼卻迷失了。

舉個例子:我需要一個排好序的用戶列表,排序的依據是用戶名字。很簡單的需求對不。自然的代碼肯定是這樣的:

  1. IList users = …  
  2. users.OrderBy(user => user.Name); 

而如果用Java實現同樣的功能你可能要這樣寫:

  1. List users = …  
  2. Collections.sort(users,new Comparator() {  
  3. public int compare(User left, User right) {  
  4. return left.getName().compareTo(right.getName());  
  5. }  
  6. }); 

***:沒有擴展方法的支持,只有借助靜態的輔助類

第二:沒有閉包的支持,非要寫個難看的匿名類

其實我們只需要一個OrderBy,一看就明白,但現在多了這么多“無用”的代碼,反而核心的價值(order by)卻顯得不那么重要了。這還是一個很簡單的例子,在實際的項目中你會為此付出更多的代價,你要寫出一堆味同嚼蠟的代碼才能實現你想要的那個功能,而那個功能其實是很顯而易見。

所以在語言層面,Java沒有任何亮點,只覺得羅里羅嗦。

關于語言層面的比較,老趙寫過很多,而且非常精彩,建議去欣賞一下。

不過Java也有那么很少幾個有點意思的小東西:比如靜態導入(腦袋提醒,這東西很早就在VB里出現了)、以及Java對Annotation的特殊支持讓我們可以做一個更有意思的事情。

概念滿天飛

做Java以來,讓我感觸最深的是在Java世界里概念滿天飛。ORM,IOC,AOP,這幾個在.NET的世界里也有,但沒見過這么濃的,但是如果你做Java應用,你不熟悉這幾個你都不好意思出去跟人打招呼,所以除了學習Java本身外還有一大堆開源框架等著你研究。

還有什么View Model,Presentation Model,Validator,BRO(Business Rule Object),BPO(Business Process Object),BDD。關鍵是不僅是概念上存在這樣的名詞,它還大量的出現在代碼里。代碼里將概念描述得***,還規規矩矩。或許我土老帽了,我開發.NET三年有余,從來沒整這些玩意兒。但是我一點也不懷疑我的代碼難以閱讀,難以維護。

配置文件,你能再多一點么

我超級厭惡Spring的配置文件(雖然你說這只是個框架,但貌似Java社區有這個趨向)。雖然Spring現在也增加了注解(Annotation)的支持,但是還有那么一些知道的和不知道的原因,項目中存在大量的配置文件。而且為了“模塊性”,一個小小的配置文件又包含有幾個配置文件。有配置controller的,有配置DAO的,有配置service的。額,還有那該死的Hibernate的hbm文件。我想,系統的復雜性就是這么一點一點的堆積而來的。

ASP.NET的配置文件一度也有變得更臃腫的趨勢,但***還是大大瘦身(.NET 4.0里默認的web.config很小了)。而且Attribute在.NET的***個版本就出現了,很多可配置的東西都提供了Attribute的API和XML的API,所以沒有歷史遺留包袱。

開源,這個我喜歡

Java里的開源軟件遠遠超過.NET的(這可能跟微軟有一定的關系吧)。如果你想完成一項工作,總會有一個開源軟件適合你。比如我們要做一個定時調度的任務,馬上就有Quartz跑到了你的視野,你只需實現幾個接口,然后在配置文件里配置一下(又是該死的配置文件),又比如你苦于在Java里沒法像C#里那樣用Lambda,馬上有個跟你一樣想法的人開發了一個lambda4j(Java人有個說法是:語言不足類庫來補,不過Java這個語言太不足了,所以有的時候類庫補也補不好)。你可以在琳瑯滿目的開源框架和開源類庫里尋找一個最合適的,然后打開這個潘多拉魔盒。最主要的是她還是開放的,你不僅可以學習其代碼思想,如果你發現有問題你甚至可以提交代碼,那種成就感我倒是在開發.NET時沒有感覺到。比如你要開發高性能服務器,在.NET里還沒見過這類的開源項目,可Java里你可以學習Netty,可以學習Mina,你甚至可以根據自己具體的業務場景,對這些開源軟件進行適當的修改。當然,你可以說思想是一樣的,這倒是不錯。但因為IO模型在Java里和.NET里并不一樣,所以還是有很多不同的(當然我覺得.NET的異步IO更容易使用,Java的NIO那是什么狗屎一樣的API啊)。

IDE

搞開發的肯定離不開IDE。.NET里的IDE當之無愧的是Visual Studio了。不過我卻覺得Visual Studio這幾年已經離開發人員越來越遠了,好像他要搞什么全生命周期的軟件開發工具。所以不但臃腫,而且對開發人員并不是很友好(當然,她的可視化設計器是***的,但我不覺得可視化設計器是什么開發人員的“利器”)。舉兩個例子:VS里大量使用組合快捷鍵。這樣不僅使得快捷鍵過長,難以記憶,而且還好難使用啊,你必須按兩次,而且時間不能間隔太長。還有VS的重構功能,太弱了。

在Java里有各種各樣的IDE,有免費的,有收費的。我很喜歡的一個就是Intellij Idea。Idea給我的印象就是,她真的是在關注開發人員(寫代碼的)這個角色。所有的快捷鍵都很簡單,好用好記。比如,大部分東西在Idea里可以使用Alt+Enter這個***快捷鍵解決(這個快捷鍵是上下文感知的,在不同上下文中它知道要干什么)。

再就是Idea對重構的支持,如果你熟練之后,做一項大的重構你都無需手動的去修改什么代碼,直接依靠IDE的支持就可以完成,這在安全的重構里是很重要的一點,手動的去修改代碼重構如果在測試不完備的情況下風險是非常高的。

當然VS也有很多非常好用的插件,可以提高開發效率。比如大名鼎鼎的Resharper就來自于Intellij Idea同一個公司,由這個插件你可以看到Idea是如何關注寫代碼的人的效率。

JVM vs CLR

一般的,Java跑在JVM上,C#跑在CLR上。從技術實現上他們兩平分秋色,各有各的優點,我們不能評價他們的好壞。只能說可能JVM在XXX上勝過CLR,CLR在XXX上勝過JVM。而且JVM和CLR有居多相似之處,大多數東西都可以在對方找到相應的東西。

那么她們就無法比較了么?不是,經過一年的學習我表示我更喜歡JVM一點。

JVM(在這里只假設是Oracle/Sun Hotspot JVM)暴露了眾多的配置參數給開發人員。你可以通過這些參數間接地控制JVM的運行。就比如GC吧,JVM里有各種參數來控制各個代的大小,還可以通過參數讓JVM采用什么樣的垃圾收集策略。因為不同類型的應用:比如桌面的、服務器端得、內存小的等等不同類型的應用適合不同的垃圾收集策略。而CLR在垃圾收集上只給開發人員提供了Workstation(是否是concurrent GC,.net 4.0是background GC)/Server等很少的控制(不過也幾乎很少用到)。當然,如果你想***化控制CLR你就只有自己Host CLR,然后調用Host API進行控制,但是那樣難度高很多。

我很愿意承認CLR是自適應的,她能自動的智能的識別出你的需求,然后自動的進行調整。不過我在這里主要想到的是,微軟在這里扮演著保姆的角色。在你很小的時候,保姆能夠在一定程度上保護你,免你受到傷害。但是你不能永遠生活在保姆的懷抱里,如果你想變得更強大你需要自己獨自一人出去看看。

注:這一節不是比較JVM和CLR,因為我沒有那個能力。只是想從JVM和CLR所表現出來的差異來看看一些“看不見的東西”。

開發人員

上面主要談了技術層面的東西。現在說說軟件開發中的人。

我現在所在的公司面試有個特點:會讓面試者做一份家庭作業,然后讓公司同事Code Review。在這一年里我看了很多Java的代碼,也看了很多C#代碼。但是我傷心的發現:

1、雖然Java的也有爛代碼,但是Java代碼大多更注意代碼的美感。大家都非常注意選擇方法名,變量名,類名等。也非常愿意寫一些小的,容易理解的方法,小的目的明確的類。可我親愛的.NET同行們,大多在這方面很隨意。一個方法200行不算長,甚至一個功能就放到一個方法里實現了。我看呀看呀,都看不到盡頭。更別說類職責單一了。

2、測試 Java同學的代碼大多有測試,雖然有的測試不怎么好,但最起碼有那么幾個測測核心功能。但是.NET代碼呢?很難見到幾個有測試的(難道這是因為VS很晚才加入對Unit Test的支持有關?)。我不是說一定要有測試,我只是描述一下這么個現象。

3、你也太隨意了。我見到有那么幾份.NET代碼,我知道你創建了一個WinForm的項目,然后你卻不把VS自動生成的那幾個Form1.cs,Form1.resx給刪掉。

4、構建 從構建這個層面就更顯出問題了,Java同學提交的代碼大多有構建的腳本,無論是Ant還是Maven,所以你只需要敲一個命令行,馬上可以看見人家的結果。而.NET同學的基本上都是sln文件。這一點不是說誰好誰壞的,因為我之前做.NET也從來沒有自動構建腳本,我只想說兩個社區有些不同。

后記

我在這里并不是貶低某個社區的開發人員,也不想扯進任何平臺的紛爭。因為這只是我看到的現象,還有很多是我沒看到的,而且這也嚴重的受到我周圍同事的影響,所以難免以偏概全。

如果有不足地方請不吝指教。

原文鏈接:http://www.cnblogs.com/yuyijq/archive/2011/06/28/2091803.html

【編輯推薦】

  1. Spring整合DWR comet 實現無刷新 多人聊天室
  2. JavaEE中一些非常有價值的東東
  3. Java 7(JSR 336)通過了公開評審投票
責任編輯:艾婧 來源: 橫刀天笑的技術空間
相關推薦

2021-01-14 11:39:05

云計算

2015-01-04 10:19:16

systemdLinux

2021-01-11 13:58:32

云計算云原生AI算力

2021-01-11 10:02:21

云計算云原生AI

2013-01-04 10:58:21

JavaScriptWebJS

2009-12-31 16:07:00

微軟MVP

2020-01-02 09:38:53

5G商用運營商

2012-12-31 10:10:48

云存儲115賴霖楓

2015-03-09 17:49:40

SDN

2022-02-21 11:14:05

JavaScript報告技術

2021-01-05 15:34:45

微信表情騰訊

2012-12-28 11:17:29

2015-02-13 13:27:48

微信

2013-03-19 10:19:58

平板電腦智能手機調查分析

2012-12-18 13:20:23

2015-12-15 10:38:52

云計算過去一年

2013-01-04 13:48:22

2012移動游戲手機游戲

2014-09-05 10:02:55

微軟

2012-12-28 10:16:51

91無線移動游戲

2018-12-24 09:47:06

點贊
收藏

51CTO技術棧公眾號

538任你躁精品视频网免费| 色综合视频二区偷拍在线| 国产毛片久久久久久国产毛片| 大黑人交xxx极品hd| 欧美成人三区| 久久av电影| 精品久久久香蕉免费精品视频| 国产在线拍偷自揄拍精品| 播金莲一级淫片aaaaaaa| 俺来也官网欧美久久精品| 久久精品免费看| 国产一区二区三区免费视频| 99在线精品免费视频| 亚洲国产精彩视频| 综合激情视频| 日韩女优av电影在线观看| 午夜啪啪免费视频| 一级特黄aaaaaa大片| 久久av影视| 日韩欧美激情四射| 九九热精品在线播放| 成人综合影院| 蜜桃视频一区二区| 在线中文字幕日韩| 亚洲精品视频导航| 日本在线播放| 国内精品在线播放| 欧美日韩爱爱视频| 国模私拍在线观看| 热色播在线视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 久久久成人精品一区二区三区| 亚洲天堂视频在线播放| 精品国产a一区二区三区v免费| 欧美日韩亚洲系列| 日本一区二区久久精品| 怡春院在线视频| 亚洲欧洲中文字幕| 夜夜嗨av一区二区三区四区 | 麻豆一区二区在线| 热re99久久精品国产66热| 88久久精品无码一区二区毛片| 伊人久久视频| 国产精品亲子伦对白| 成人久久久久久久| 国产无码精品久久久| 人人精品亚洲| 欧美探花视频资源| 亚洲 欧洲 日韩| 1024国产在线| 国产成人精品一区二区三区四区| 久久久欧美一区二区| 中文幕无线码中文字蜜桃| 欧美电影在线观看完整版| 日韩欧美123| 免费不卡av网站| 精精国产xxxx视频在线野外| 国产人成亚洲第一网站在线播放| 91精品啪在线观看麻豆免费| 国产精品第72页| 在线欧美一区| 日韩中文有码在线视频| 毛茸茸free性熟hd| 懂色aⅴ精品一区二区三区| 亚洲一区视频在线| 偷拍视频一区二区| 成人影院免费观看| 亚洲国产精品ⅴa在线观看| 国产精品10p综合二区| 亚洲av中文无码乱人伦在线视色| 97视频精品| 亚洲美女精品成人在线视频| 99热这里只有精品2| 成人性教育av免费网址| 色94色欧美sute亚洲13| 99久久免费观看| www.8ⅹ8ⅹ羞羞漫画在线看| 欧美激情自拍偷拍| 国产精品99久久久久久大便| 91网址在线观看| 国产精品视频你懂的| 亚洲一区二区精品在线观看| 外国精品视频在线观看 | a√中文在线观看| 日韩欧美国产骚| 无码人妻精品一区二区三区99v| 国产精品久久久久久福利| 国产精品一区二区免费不卡 | 怡红院av久久久久久久| 影音先锋一区| 国产精品18久久久久久首页狼| 免费网站看av| 婷婷亚洲综合| 在线观看91久久久久久| 国产又粗又硬又长又爽| 欧美日韩国产一区二区三区不卡| 日韩中文在线不卡| 日韩精品手机在线| 亚洲高清电影| 国产精品久久不能| 无码人妻熟妇av又粗又大| 另类小说综合欧美亚洲| 国产精品自拍首页| 国模无码一区二区三区| 国产精品亚洲午夜一区二区三区| 精品视频在线观看| 色网站免费观看| 丁香亚洲综合激情啪啪综合| aa日韩免费精品视频一| 99热这里只有精品3| 黑人巨大精品欧美一区| 狠狠色狠狠色综合人人| 韩国av网站在线| 欧美丝袜一区二区| 无码人妻丰满熟妇区毛片蜜桃精品| 91麻豆精品| 欧美一区二区三区免费观看视频| 天堂在线中文在线| 精品三级久久久| 欧美成人精品1314www| 无码人妻aⅴ一区二区三区玉蒲团| 一本久久青青| 中文字幕久热精品在线视频| 亚洲一区 视频| 久久亚洲色图| 国产一区深夜福利| 国产资源在线看| 亚洲欧洲韩国日本视频| 中文字幕一区二区三区四区五区人 | 欧美黄色一级片视频| 裤袜国产欧美精品一区| 亚洲成**性毛茸茸| 毛茸茸多毛bbb毛多视频| 欧美日本久久| 日韩av电影中文字幕| 国产精品51麻豆cm传媒| 91理论电影在线观看| 免费看欧美黑人毛片| 成人片免费看| 亚洲老头老太hd| 国产成人精品片| 国产91精品免费| 鲁丝一区鲁丝二区鲁丝三区| 成人av毛片| 欧美在线免费观看视频| 亚洲精品乱码久久久久久动漫| 高清一区二区三区| 国产小视频国产精品| 国产精品一区二区三区四| 久久97超碰色| 麻豆成人在线播放| 欧美极品videos大乳护士| 日韩av中文字幕在线| 国产福利在线导航| 1024成人| 91精品久久久久久久久久另类| 日韩子在线观看| 日本乱人伦aⅴ精品| 亚洲最大成人网站| 日本欧美一区二区三区| 国产精品免费看一区二区三区| 色综合999| 欧美熟乱第一页| 国产精品久久久免费看| 国产毛片久久| 亚洲va久久久噜噜噜久久天堂| 四虎影视2018在线播放alocalhost| 午夜私人影院久久久久| 15—17女人毛片| 精品久久97| 中文字幕精品在线视频| 亚洲综合精品在线| 久久久欧美精品sm网站| www.99riav| 国产亚洲欧美日韩精品一区二区三区| 精品久久人人做人人爽| 日韩av电影网址| 久久色成人在线| 黄色一级片在线看| 亚洲动漫在线观看| 国产女人18毛片水18精品| 婷婷久久久久久| 91九色02白丝porn| caoporn91| 久久精品国产网站| 国产美女永久无遮挡| 激情亚洲综合在线| 亚洲精品美女在线| 日本精品入口免费视频| 日本不卡一区二区| 可以免费看的黄色网址| 欧亚精品一区| 成人免费视频97| 精精国产xxxx视频在线播放| 在线免费观看羞羞视频一区二区| www.国产欧美| 亚洲欧美在线观看| youjizz.com国产| 蜜臀va亚洲va欧美va天堂| 国产黄色激情视频| 精品久久久久中文字幕小说| 成人区精品一区二区| 影音成人av| 亚洲视频在线观看网站| 国产www在线| 亚洲图片欧美激情| 天天操精品视频| 久久亚洲精选| 被灌满精子的波多野结衣| 日韩精品欧美激情一区二区| 国产精品大陆在线观看| 欧美videosex性极品hd| 欧美岛国在线观看| 中文字幕 国产| 婷婷综合另类小说色区| 91日韩中文字幕| 中文字幕不卡在线播放| 星空大象在线观看免费播放| 韩国理伦片一区二区三区在线播放| 成人羞羞国产免费网站| 日韩午夜精品| 日韩福利视频| 91久久久久久白丝白浆欲热蜜臀| 欧美极品欧美精品欧美视频| 嫩草影院一区二区| 欧美性猛交xxxx富婆| 欧美成人手机视频| 99国产精品一区| 男女视频一区二区三区| 成人3d动漫在线观看| 国产精品永久免费观看| 国产丝袜在线观看视频| 欧美成人免费在线观看| 天天干天天干天天干| 日韩一区二区在线看片| 久久免费视频99| 91美女福利视频| 国产一级伦理片| 大白屁股一区二区视频| 国产chinesehd精品露脸| 国产一区二区视频在线播放| 欧美一级爱爱视频| 国产剧情在线观看一区| 成人乱色短篇合集| 希岛爱理一区二区三区av高清| 精品国偷自产在线| 欧美一区二区三区黄片| 日韩午夜av一区| 国产chinasex对白videos麻豆| 欧美精品第一页| 国产精品男女视频| 欧美性xxxx极品hd欧美风情| 日韩精品在线免费视频| 国产精品麻豆久久久| 欧美日韩生活片| 中文字幕一区二区在线观看| 久久久久无码国产精品一区李宗瑞| 久久久蜜桃一区二区人| 欧美少妇一区二区三区| 香蕉精品视频在线观看| 久久精品国产精品国产精品污| 祥仔av免费一区二区三区四区| 97精品国产97久久久久久春色| av在线免费观看网站| 中文字幕欧美视频在线| 网友自拍视频在线| 久久天天躁狠狠躁老女人| 日本一区二区三区在线观看视频| 91精品国产入口| 亚洲免费不卡视频| 日韩精品一二三四区| www.五月天激情| 亚洲成成品网站| 国产情侣av在线| 欧美网站大全在线观看| 91黄色在线视频| 精品区一区二区| 飘雪影院手机免费高清版在线观看| 国产一区二区三区在线播放免费观看| 欧美精品日韩少妇| 国a精品视频大全| 亚洲成人人体| 97超碰人人看人人 | 污免费在线观看| 成+人+亚洲+综合天堂| 久久6免费视频| 美女视频网站黄色亚洲| 伊人五月天婷婷| 97成人超碰视| 在线免费看av网站| 欧美色视频日本版| 国产精品视频在线观看免费| 在线观看日韩电影| 精品人妻一区二区三区换脸明星| 亚洲精品电影在线| 色婷婷激情五月| www欧美日韩| 巨大荫蒂视频欧美大片| 91精品国产成人www| 国产精品电影| 91精品久久久久久久久久入口| 久久精品亚洲成在人线av网址| 亚洲激情一区二区| 日韩电影免费网址| 高清欧美精品xxxxx| 蜜臀va亚洲va欧美va天堂| 好吊色视频一区二区三区| 国产原创一区二区| 一级黄色片大全| 亚洲mv在线观看| 国产精品一级视频| 亚洲新中文字幕| 精品人人视频| 91福利视频导航| 色综合咪咪久久网| 爱福利视频一区二区| 玖玖精品视频| 精品少妇人妻av一区二区三区| 中文字幕日韩一区二区| 成人a v视频| 亚洲黄在线观看| tube8在线hd| 丁香五月网久久综合| 亚洲91视频| 亚洲成人福利在线| 国产亚洲成av人在线观看导航| 精品国产aaa| 18涩涩午夜精品.www| 人妻 日韩精品 中文字幕| 亚洲国产精品yw在线观看| 在线黄色网页| 91视频在线免费观看| 天天久久综合| 黄色手机在线视频| 欧美激情自拍偷拍| 亚洲精品一区二三区| 亚洲欧美激情精品一区二区| 嗯~啊~轻一点视频日本在线观看| 444亚洲人体| 欧美日韩精选| 扒开伸进免费视频| 午夜精品久久一牛影视| 欧美特级特黄aaaaaa在线看| 精品少妇一区二区30p| 嫩呦国产一区二区三区av| 中文字幕日韩一区二区三区| 亚洲福利国产| 精品一区二区视频在线观看| 性做久久久久久久免费看| 日韩一区免费视频| 97在线视频免费观看| 日本在线中文字幕一区| 国产二区视频在线播放| 国产一区二区三区在线观看免费视频| 日韩一区二区三区四区视频| 欧美日韩精品电影| 亚洲色图21p| 欧美成人免费网| 一区二区三区视频播放| 性一交一乱一伧国产女士spa| 成人中文字幕在线| 在线观看亚洲欧美| 一个人www欧美| 久久国产三级| 日本一道在线观看| 成人免费毛片嘿嘿连载视频| 国产一级18片视频| 日韩在线免费高清视频| 色播一区二区| 亚洲在线不卡| 国产精品66部| 亚洲免费激情视频| 亚洲色图激情小说| 亚洲国产91视频| 日本一本中文字幕| 国产日韩影视精品| av网站免费播放| 欧美亚洲激情视频| av男人一区| 视频一区二区视频| 成人免费高清在线| 亚洲高清视频免费观看| 久久成人免费视频| 日本欧美三级| 亚洲精品手机在线观看| 亚洲成a天堂v人片| 精品国产亚洲av麻豆| 97精品视频在线播放| 国产一区日韩| 无码人妻丰满熟妇区毛片蜜桃精品| 欧美特级www| a视频在线免费看| 欧美亚洲免费高清在线观看| 在线播放精品| 亚洲精品色午夜无码专区日韩| 天天色天天爱天天射综合| av在线免费观看网站| 国产在线精品一区| 亚洲免费精品| 国产成人免费在线观看视频|