自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

致Play Framework開發(fā)者們的一封信

開發(fā) 后端
3月中旬,Play Framework 2.0 正式版發(fā)布了。2.0 版本的主要新特性:內置對 Java 和 Scala 的支持、完全異步編程模型、側重于類型安全、強大的構建系統(tǒng)、數(shù)據(jù)存儲和模型的集成等。本文是 Roman Bykovskiy 發(fā)布在 Play Framework 的?Google 群組的一篇文章。

親愛的朋友們!

一個小事實:

Scala遜斃了。好吧,我承認這個語言或許被捧上了天,但是編譯它而產(chǎn)生的昂貴的時間花費也是不爭的事實。整整13秒!這還是在做了微調將其變成模板以后!我自己為了優(yōu)化編譯而專門分配一個分離式服務器,最終將編譯速度提高到了5秒——但是這仍然是很大的時間花銷!我們已經(jīng)嘗試使用別的平臺了!

一個大謊言:

“Play框架讓網(wǎng)絡應用開發(fā)更簡單!無論是Java還是Scala”

事實是:“Play框架讓網(wǎng)絡應用開發(fā)更簡單——僅僅對于Scala,如果你使用Java……那么,好吧,讓神明賜予你力量吧!”我一會兒再討論這個問題。

play framework
伯樂在線配圖

我的故事

當我剛聽說Play框架的時候,我打開了官方網(wǎng)站,并觀看了1.x版本的介紹視頻!額滴個神??!就是它!我當時就認準了!我安裝了Play框架,在我的電腦上實現(xiàn)了所有教學視頻里的例子,并根據(jù)我當時正在做的項目,迅速地寫出了一份開發(fā)文檔。

整整一個月的時間,我都在嘗試說服老板,在新的項目中使用Play框架,因為它比我們在使用的所有框架都更優(yōu)秀!最后我做到了!像變戲法一樣,迅速地改變了一切。

但是現(xiàn)在,當我們已是到新的項目將使用Play 2框架時,我的同事們臉都變綠了,并且我無法找到任何借口——來解釋Play 2跟Play 1完全不是一碼事。如果我自己都不理解Play 2是如何工作的,那我怎么去幫助我的同事呢?

快速細化

我之所以喜歡Play 1.x版本,是因為它的速度。這里不是指它的運行速度快(隨著電腦速度的更新,人人都能做到速度快),而是它的細化速度。框架的一切都是如此的敏捷和簡單。而在2.0版本里,這一點簡直就是煎熬。2.0版本丟棄了1.0的結構和成果,反而去尋找另一種方法,實現(xiàn)那些本來在1.0中可以輕松搞定的事情,而且還是以好幾種模式去做。

Scala

我是一個Java開發(fā)者。那么我為什么要去學習用Scala語言來制作一個基礎模板呢?我僅僅就是需要一個模板而已!只不過是一種格式化輸出信息的方法。它能編譯當然很好!但是如果為此我就需要花費大量的時間去處理細化,而且絕大多數(shù)時間還是在干等,那我編譯它有個鬼用?

也許在美國,你們編譯Scala代碼,但是在我們俄羅斯,Scala是在編譯你!

這感覺真是相當不好!

為了說明一些最簡單的事情,我不得不在Google groups上發(fā)帖,因為這里沒有任何的相關信息。

我無法再模板中設定一個變量,這個變量我會在后面的循環(huán)中用到。

對于這樣一個需要我去“征服”的模板引擎,要它何用?

  1. [error] /home/romka/projects/ponominalu/target/scala-2.9.1/src_managed/main/views/html/event.template.scala:156'(' expected but ')' found.  
  2.    
  3. [error]                                                                                                 """),_display_(Seq(/*123.14*/for)),format.raw/*123.17*/(""" ((sector,i) <-subevent.sectors.zipWithIndex) """),format.raw("""{"""),format.raw/*123.64*/(""" 
  4.    
  5. [error]                                                                                                                                 ^  
  6.    
  7. [error] /home/romka/projects/ponominalu/target/scala-2.9.1/src_managed/main/views/html/event.template.scala:421: illegal start of simple expression  
  8.    
  9. [error] """)))})),format.raw/*388.2*/(""" 
  10.    
  11. [error]       ^  
  12.    
  13. [error] two errors found 
呃,我應該如何根據(jù)這些輸出查找錯誤?別告訴我說錯誤在156行。這些破信息怎么能幫助我理解發(fā)生了什么?他們就是一大堆額外的空白字符!

模板中的數(shù)據(jù)轉換又怎么樣呢?

在我把所有數(shù)據(jù)轉換成模板形式之前,我應當使用@Before標注。比如我要在每個頁面顯示菜單,現(xiàn)在我必須把所有的菜單數(shù)組在每個模板調用中轉換一下,然后在每個調用里面再通過原始類型傳參,這么做不是多此一舉么?

語言轉換

你可以說Scala語言是未來發(fā)展的方向(但是我懷疑在短期內可能無法提升其編譯的速度,不過這些都OK)。那么嘗試創(chuàng)新,但是不要企圖替代!你認為Eban比Hibernate更好?——只有熟悉Ebean的人才會這么認為吧!

假設在日本開一家餐廳,你嘗試著用叉子代替筷子(因為有廣泛的觀點認為,叉子比筷子更有利于進食),然后看看這會不會成功吧。
向后兼容性永遠是Java語言的根基,這也就是Java版本為什么演進緩慢的原因,舊的程序在新版本中運行不會出現(xiàn)問題。

你取消了的War包的創(chuàng)建,那我怎么把程序部署到Tomcat里?你通過修改 org.apache.commons.lang.StringEscapeUtils.escapeHtml(text)包來增加輸出文字處理功能。很好! 但是這樣就會把文字搞得亂七八糟,比如像:

  1. &#1057;&#1099;&#1085;&#1086;&#1074;&#1100;&#1103 
這樣。

為了關掉額外的文字處理,我必須編輯Templates.scala并可能產(chǎn)生重新編譯(說實話我還真不會手動編譯)。如果Play框架的版本更新了,我又得重來一次。

結  論

現(xiàn)在,Play已經(jīng)成為了我脖中之刺!如果剛一開始它是一個又簡單又快速的開發(fā)框架,那么如今它已經(jīng)發(fā)展到和其他許多框架一樣臃腫和笨重。也許它能吸引大量Scala的粉絲,但是必將遭到Java開發(fā)者的厭惡。因為使用Play開發(fā)產(chǎn)品,你無法回避使用Scala語言。

也許Scala不是那么糟,但是我是一個Java程序員。我只在我有足夠閑心的時候才會去學習一門新的語言。但是我現(xiàn)在不得不去學,才能將我所知道的方法,和Play框架開發(fā)者們所宣稱的那些知識融合起來。

PS1:還記得蘋果公司的格言“簡潔至上”么?如果框架不給用戶提供那些不需要的東西。那么用戶也許會少一些花招,但是這會迫使用戶使用真正有價值的方法。他們同樣也可以完成一切需要完成工作,與此同時,那些普通用戶則被華而不實的東西攪得心煩意亂。

PS2:返回 ok狀態(tài) (…) 你不是開玩笑的吧? 如果我已經(jīng)做好了準備返回,那我肯定是已經(jīng)達到ok的狀態(tài)了,否則我就拋出異常了。

PS3:如果使用Scala的主意是來自某個做酸綠網(wǎng)站的家伙,那么他就是萬惡之源,消滅他!

英文原文:Open Letter to Play Framework Developers

原文來自:http://blog.jobbole.com/16631/

【編輯推薦】

  1. Play 2.0的完整演示過程記錄
  2. Play Framework 2.0 新特性介紹
  3. Play framework 2.0 Final發(fā)布
  4. 拯救Java程序猿的神器:Play Framework
  5. Play可以做的5件很酷的事

 

 

責任編輯:林師授 來源: 伯樂在線
相關推薦

2014-02-13 15:40:03

CIO

2016-11-02 11:58:11

Linux北漂運維

2017-09-22 13:29:42

氚云

2015-03-09 15:45:29

Linux經(jīng)驗一封信

2012-02-08 10:25:39

360

2014-06-09 15:43:50

Hadoop

2016-09-12 14:21:11

戴爾

2019-03-05 12:16:00

容災備份

2011-02-28 16:57:03

Google云服務微軟

2017-07-01 20:58:06

2017-11-20 09:55:56

程序員油膩中年

2010-11-06 18:29:16

2010-10-01 16:07:18

2018-02-01 16:50:52

企業(yè) 網(wǎng)盤

2015-08-14 13:51:22

程序員

2013-09-23 09:35:17

2015-06-11 13:12:56

2011-11-14 13:58:43

應用

2015-05-07 14:08:26

初學前端工程師

2020-02-10 11:06:12

華為
點贊
收藏

51CTO技術棧公眾號