學(xué)習(xí)java的同學(xué)注意了!!! 學(xué)習(xí)過(guò)程中遇到什么問(wèn)題或者想獲取學(xué)習(xí)資源的話,歡迎加入Java學(xué)習(xí)交流群,群號(hào)碼:183993990 我們一起學(xué)Java!
當(dāng)涉及到代碼時(shí),有很多熱門(mén)話題,并且與時(shí)俱進(jìn)總是潮流所向。如果你想知道如何分離糟粕和精華,那么我們已經(jīng)準(zhǔn)備就緒,只欠各位閱讀下文的東風(fēng)。
在接下來(lái)的內(nèi)容中,我們將查看2016年的熱點(diǎn),以及今年會(huì)更熱的熱點(diǎn)。當(dāng)然說(shuō)的是Java方面的。好的,那就啟航吧。
Java 9,你真好,你讓我神魂顛倒
首先從Java 6中的一個(gè)bug說(shuō)起,這個(gè)bug在Java 9中將變成一個(gè)功能:sun.misc.Unsafe。此庫(kù)是用于執(zhí)行低級(jí)別、不安全操作的方法的集合。例如,使用allocate Instance方法允許你跳過(guò)對(duì)象初始化階段或繞過(guò)構(gòu)造函數(shù)中的安全檢查。
雖然Oracle考慮過(guò)干脆刪除Unsafe庫(kù),但社區(qū)改變了他們的主意,并最終使Unsafe庫(kù)成為了Java 9的一個(gè)功能。
這不是唯一一次社區(qū)談?wù)揓ava 9或Java未來(lái)版本的可能變化。今年早些時(shí)候,Brian Goetz,Oracle的Java語(yǔ)言架構(gòu)師發(fā)布了JEP 286的調(diào)查結(jié)果。
該提案建議在未來(lái)的Java版本中引入Local Variable Type Inference,以簡(jiǎn)化Java應(yīng)用程序的編寫(xiě)。實(shí)質(zhì)? 74%的開(kāi)發(fā)人員希望不要那么冗長(zhǎng),并且能夠聲明變量而不必指定相關(guān)聯(lián)的類(lèi)型。
過(guò)了200多天,直到Java 9將被發(fā)布(因?yàn)槲覀冴种冈跀?shù)它的發(fā)布日期),我們有足夠的時(shí)間來(lái)挖掘不同的JEPs,并找到新的和改進(jìn)的功能。這就是我們遇到的JEP 266:更多并發(fā)更新,包括CompletableFuture和令人興奮的java.util.concurrent.Flow類(lèi)的更新。
毫無(wú)疑問(wèn),過(guò)去一年中,Java 9已經(jīng)成為了頭條新聞,并且隨著我們進(jìn)入2017年,它將繼續(xù)獲得越來(lái)越多的關(guān)注。現(xiàn)在我們要做的是等待,希望它不會(huì)被再次延遲發(fā)布。
關(guān)于Java EE?
2016年對(duì)于Java EnterPRise Edition,也被稱(chēng)為Java EE來(lái)說(shuō)是有意義的一年。它一直是全球Java社區(qū)的一個(gè)混亂的來(lái)源,因?yàn)樗⒃贘ava SE之上。從官方來(lái)說(shuō),它就“只是”一個(gè)規(guī)范,通過(guò)來(lái)自O(shè)racle(如Glassfish參考實(shí)現(xiàn))和其他廠商如Red Hat和IBM的實(shí)際可用的實(shí)現(xiàn)。
Java EE存在著許多問(wèn)題,主要是這一個(gè)“Oracle是否已經(jīng)放棄了企業(yè)軟件?”。Java EE的致命打擊來(lái)自Gartner的“應(yīng)用程序平臺(tái)市場(chǎng)指南”報(bào)告。在報(bào)告中,Gartner指出,Java EE是為了“已經(jīng)過(guò)時(shí)且不再滿(mǎn)足現(xiàn)代應(yīng)用程序需求的模型”而構(gòu)建的。唉~
Java EE社區(qū)表示Gartner說(shuō)得不太對(duì),并由此引發(fā)了圍繞這個(gè)版本的討論。Java EE 8預(yù)計(jì)將在2017年上半年發(fā)布,我們覺(jué)得現(xiàn)在就贊譽(yù)它還為時(shí)尚早。我們必須等待,看看結(jié)果如何以及Java EE是否會(huì)崩潰。
關(guān)于更多Java
Java不僅僅是Java 9,它還有很多趨勢(shì)是你必須保持在潮流之上的。一個(gè)好的開(kāi)始瀏覽2016年的100個(gè)頂級(jí)Java庫(kù),檢查在過(guò)去一年是否有任何你可能錯(cuò)過(guò)了的東西。
此外,如果庫(kù)并非你所好,那么還有一些有趣的來(lái)自于Google的Java庫(kù)(不是Guava)值得一閱。
遵循教育路線,有一些關(guān)鍵的元素你只能隨著經(jīng)驗(yàn)的增長(zhǎng)而學(xué)到,所以準(zhǔn)備好學(xué)習(xí)吧。
如果你正在尋找挑戰(zhàn),那么有很多項(xiàng)目值得你花時(shí)間。你可以試著去解決這些優(yōu)雅的問(wèn)題,字符串操作,或者甚至Java音樂(lè)播放器,邊玩邊學(xué)習(xí)。當(dāng)然,如果你遇到任何問(wèn)題或有任何疑問(wèn)的話,偉大的Stackoverflow隨時(shí)為你提供服務(wù)。這里有七個(gè)我們發(fā)現(xiàn)的最佳問(wèn)題。
有趣的小軼事:你能猜到GitHub的頂級(jí)Java項(xiàng)目如何使用日志嗎?我們分析了1,313個(gè)GitHub存儲(chǔ)庫(kù)中的779,236個(gè)Java日志記錄語(yǔ)句,以找出答案:ERROR,WARN還是FATAL?
將Java放在容器中
容器在新一年中變得非常有用,并且它們?cè)诠芾韘ervlet的生命周期,將URL映射到特定servlet并確保URL請(qǐng)求者具有正確的訪問(wèn)權(quán)限時(shí)也非常方便。
很多人都對(duì)Java容器感興趣。在我們對(duì)Alpine linux和Docker的結(jié)合激起了興趣的幾個(gè)月后,單OverOps就可以支持聊天,然后我們看到越來(lái)越多的用戶(hù)使用他們的容器嘗試它。
這就是為什么我們決定嘗試Alpine Linux的原因,Alpine Linux是獨(dú)立的,脫離了Linux,基于musl libc(讀作’muscle’)和busybox。除了輕量級(jí)這個(gè)特點(diǎn),它也遵循安全為主的原則,并且使用grsec / Pax,對(duì)于Linux內(nèi)核而言增強(qiáng)了安全。
Docker仍然是業(yè)界最熱門(mén)的工具之一。該公司承擔(dān)了運(yùn)輸代碼的挑戰(zhàn)性任務(wù),并且使它更快更容易地使用容器。但是,如果你想在Docker上使用Java,那么你可能需要重新考慮一下,因?yàn)樗赡軙?huì)導(dǎo)致你打破(Java)戒律。
關(guān)于DevOps?
我們知道你在想什么——下面我們將來(lái)說(shuō)一說(shuō)這個(gè)流行語(yǔ)。我們?cè)?016年遇到的最常見(jiàn)的主題之一是DevOps,它有著各種各樣的含義和工作方法。它的要旨是專(zhuān)注于知道在一個(gè)實(shí)時(shí)應(yīng)用程序中發(fā)生了什么,并能夠控制它。
我們?cè)趺醋龅竭@一點(diǎn)?通過(guò)監(jiān)控我們的生產(chǎn)環(huán)境。性能問(wèn)題,錯(cuò)誤和異常總是在產(chǎn)生,我們必須知道究竟發(fā)生了什么。但是,我們?cè)趺粗朗裁磿r(shí)候以及為什么產(chǎn)生了某些問(wèn)題?這就是Observability的概念所在,幫助我們深入了解系統(tǒng)并知道發(fā)生了什么。
它是DevOps工作流程的一部分,并且在控制理論中,它是通過(guò)其外部輸出的知識(shí)來(lái)推斷系統(tǒng)內(nèi)部狀態(tài)如何的一種度量手段。這里出現(xiàn)了另一個(gè)“流行語(yǔ)”:Instrumentation。正是Instrumentation允許我們?cè)趹?yīng)用程序?qū)ξ覀兒臀覀兊挠脩?hù)發(fā)瘋前獲得洞察。
在我們建立這些基石之后,現(xiàn)在是時(shí)候提供可以幫助我們監(jiān)控應(yīng)用程序性能的工具了。一旦應(yīng)用程序啟動(dòng)并運(yùn)行,我們需要知道是否以及何時(shí)拋出錯(cuò)誤或異常。這就是為什么市場(chǎng)上有許多錯(cuò)誤跟蹤工具,因此,所有你需要做的是選擇正確的。
錯(cuò)誤不是唯一需要我們關(guān)注的問(wèn)題,2016年剩下的最大挑戰(zhàn)是處理日志文件。每個(gè)人都會(huì)使用日志文件來(lái)搜索和理解應(yīng)用程序中的錯(cuò)誤、崩潰和異常。有些人使用直接方法和篩選純文本日志文件,而其他人依靠日志管理工具來(lái)幫助他們?cè)趌og-haystack中找到錯(cuò)誤。
日志文件在2016年依然是個(gè)坑
如果你正在尋找一種新的方式來(lái)調(diào)試生產(chǎn)錯(cuò)誤和異常,那么OverOps(2016年期間進(jìn)行了修改)可以為你提供了整個(gè)調(diào)用堆棧的完整源代碼和變量狀態(tài)。導(dǎo)致失敗的每個(gè)參數(shù)和每個(gè)變量會(huì)被傳遞到事務(wù)或工作流中。
還有很多
我們還不能忽略微服務(wù)的趨勢(shì)。有人會(huì)說(shuō),這就是另一個(gè)令人難以忍受的流行語(yǔ),而另一些人則高歌吟頌其分解龐然大物或采取逆向方法和注重消極方面的優(yōu)勢(shì)。
無(wú)論你用什么方法看,這些日子好像每個(gè)人都搞微服務(wù)。現(xiàn)在你只需要小心在使用微服務(wù)時(shí)不要在生產(chǎn)中涉及它。
無(wú)服務(wù)器計(jì)算架構(gòu)在過(guò)去幾年中也一直受到關(guān)注。無(wú)服務(wù)器計(jì)算的概念涉及部署代碼,而不是服務(wù)器。云提供商不是購(gòu)買(mǎi)、管理和擴(kuò)展服務(wù)器,而是處理對(duì)VM的請(qǐng)求。
所以你仍然需要服務(wù)器,但這個(gè)新模式承擔(dān)了這個(gè)責(zé)任。或者換句話說(shuō),在處理到服務(wù)器或安裝的任何軟件上的部署都沒(méi)有麻煩。基本上,所有你需要的是一個(gè)管理的云服務(wù)和一臺(tái)計(jì)算機(jī)。
以及最后一個(gè),即使人工智能和機(jī)器學(xué)習(xí)已經(jīng)存在一段時(shí)間了,但依然感覺(jué)每個(gè)人還是在談?wù)撍鼈儭K鼈儾辉偈强茖W(xué)家和研究人員的秘密,幾乎在任何新興技術(shù)中都可以看到實(shí)現(xiàn)的影子。
最近這一領(lǐng)域的喧囂塵上和演變進(jìn)步使得非研究人員更容易了解相關(guān)內(nèi)容。現(xiàn)在,你完全可以輕松訪問(wèn)相關(guān)的算法和工具。你必須知道你在做什么,而且通過(guò)機(jī)器學(xué)習(xí)能力來(lái)增強(qiáng)應(yīng)用程序會(huì)容易得多。
進(jìn)軍社區(qū)
你必須熱愛(ài)Java社區(qū)。因?yàn)樗鼈儾粌H影響了語(yǔ)言的未來(lái)版本,而且還通過(guò)聚會(huì)、文章和一切有關(guān)Java的信息豐富了我們所有人。2016年有一些非常令人驚嘆的會(huì)議,如JavaOne,QCon,并且更多偉大的會(huì)談你現(xiàn)在還可以重新觀看。
在軟件開(kāi)發(fā)中學(xué)習(xí)新事物的主要資源之一是觀看在線講座和視頻。這是一個(gè)偉大的平臺(tái),因?yàn)槔锩嬗蠮ava專(zhuān)家與我們分享他們的經(jīng)驗(yàn),而你無(wú)需離開(kāi)舒適的沙發(fā)四處奔波。
或者,如果你不喜歡看視頻,那么瀏覽Java decks也可以讓你保持更新到當(dāng)前的新趨勢(shì)。
同伴支持與我們工作的每個(gè)方面都是相關(guān)的,而且我們可以從我們周?chē)娜四抢飳W(xué)到很多東西。一個(gè)關(guān)鍵的特點(diǎn)是多產(chǎn),因?yàn)榭傆懈倪M(jìn)的余地。我們所要做的就是準(zhǔn)備好接受建議,并傾聽(tīng)任何愿意發(fā)言的人。
不要忘記開(kāi)源
社區(qū)的另一個(gè)關(guān)鍵因素是支持和促進(jìn)開(kāi)源項(xiàng)目。事實(shí)上,我們已經(jīng)正式推出了你一直在等待(也有可能并非如此)的命令行工具——Bullshifier。它用于在大得離譜的代碼基礎(chǔ)上測(cè)試一些監(jiān)控能力,通過(guò)成千上萬(wàn)的調(diào)用深度,成千上萬(wàn)的類(lèi),并結(jié)束了異常的事務(wù)。
最后的想法
在2016年我們邂逅了很多主題和流行語(yǔ)。有一些我們已經(jīng)知曉,有一些嶄新的東西則允許我們以完全不同的方式去看Java。現(xiàn)在我們期待著2017年的Java 9,期待2017年Java會(huì)有一些更新和更驚人的功能,會(huì)談,項(xiàng)目,甚至一兩個(gè)新的流行語(yǔ)。
2016年你最喜歡的Java功能、會(huì)談或話題是什么?我們很樂(lè)意在下面的評(píng)論聆聽(tīng)各位的聲音。
學(xué)習(xí)Java的同學(xué)注意了!!! 學(xué)習(xí)過(guò)程中遇到什么問(wèn)題或者想獲取學(xué)習(xí)資源的話,歡迎加入Java學(xué)習(xí)交流群,群號(hào)碼:183993990 我們一起學(xué)Java!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注