成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

值得嘗試的七大前沿性編程實驗

譯文
開發 項目管理 前端
在本文中,我們將論證與當前“最新最強”技術方案相關的七種實驗流程。請放心,這些技術都已經具備一定發展歷程——事實上,其中一些已經有超過二十年的歷史。但它們仍然能夠為現代企業堆棧提供顯著的領先優勢,也因此受到技術行業的廣泛關注。

Erlang、Node.js、Go:本文將指導大家邁出走向熱門編程語言的第一步。

[[86102]]

“前沿”這個字眼可能太過激烈,甚至會直接嚇跑一些保守的企業技術人員。對于企業IT部門而言,利用前沿性技術打造新產品簡直有幾分癡人說夢的味道。

這種反應不只源自對新方案的恐懼或者現有機制太過陳舊以至于難以更新,畢竟企業團隊需要采納一切可資借鑒的新思路來指導業務流程——甚至包括新思路的階段性成果。但從管理者的角度出發,他們也需要盡可能保持業務體系的穩定性,因此原有堆棧代碼帶來的確定性能帶來理想的使用安全感。

使用前沿性技術的關鍵在于多做實驗而不能粗暴地組織全面升級。在預期效果最明顯的領域嘗試部署新代碼,觀察這些前沿工具能否提供我們所需要的性能及功能,然后權衡業務流程的基礎要素是否受到了影響。單靠實驗并不一定能立即暴露出新技術中的全部潛在弱點。因此逐步增加對應工作量,在審查結果達到全面準確之后再以嚴謹的態度進行實施才是正途。

在本文中,我們將論證與當前“最新最強”技術方案相關的七種實驗流程。請放心,這些技術都已經具備一定發展歷程——事實上,其中一些已經有超過二十年的歷史。但它們仍然能夠為現代企業堆棧提供顯著的領先優勢,也因此受到技術行業的廣泛關注。不要抗拒,請以積極的心態加以嘗試。這些技術是大家從熟悉的世界邁向新紀元的理想起點,更快、更簡單、更純粹——不容錯過。

前沿實驗第一位:利用Erlang實現純粹的并發效果

目前前沿技術的主要訴求在于解決實際問題——換言之就是治標不治本。云計算之所以能夠興起,是因為數據中心的管理工作令IT部門十分頭痛。而像Erlang這樣的新語言之所以不斷涌現,則是因為技術老鳥們無法勝任新時代下的技術要求。

作為一種擁有二十多年歷史的編程語言,Erlang憑借著自身的高效結構將并發線程的執行難度降至最低,從而贏得了越來越多技術人員的青睞。如果利用Erlang進行編程,Web服務器能夠在多用戶并發任務當中帶來更出色的表現——這是由于該語言的設計初衷旨在幫助開發人員通過限制程序的編寫方式來做出正確決策。當然,技術從牛們完全可以利用其它語言實現同樣的功效,但Erlang在設計中采用一系列安全輔助機制,從而避免線程紊亂狀況的發生。Erlang語言為需要被鎖定及解鎖的共享變量中引入了功能性設計及消息傳遞機制,這使得IT部門所開發的企業集群能夠更好地應對多用戶環境。

Erlang語言由Ericcson開發,最初是為了用于內部電信系統,而后逐漸演變為開源項目。在Erlang步入開源道路之后,其大型技術社區如今已經提供大量支持工具,例如在大部分主流操作系統中進行基本運行安裝,以及其它開源項目。很多參與者利用OTP——全稱為開放電信平臺——作為網站數據服務的交付基礎,這也是大部分簡單項目的最佳起點。(大家可以點擊此處下載Erlang。)

不過任何一種語言都存在局限。Erlang的主要瓶頸在于,其新工具的設計目的并不是為了修復那些由失誤或故障引發的問題;它們關注的是提供差異化決策方案。也就是注重“取舍”而非“問題”。

舉例來說,云計算能夠帶來出色的簡便性與靈活性,但卻會同時造成控制與安全方面的難題。使用Erlang語言的程序員需要犧牲一部分自由度來換取新的開發模式。如果大家的代碼需要面對的是多位彼此互不相關且無需溝通的用戶,那么使用Erlang模式來編寫代碼是最便捷的方式。不過如果大家需要讓自己的線程彼此溝通——前提是各位有能力攻克這項難關——使用Erlang反而會讓事情變得更加復雜。

從小處著手,了解Erlang是否能夠與自己的實際需求相吻合,而后通過取舍獲得最佳代碼表現,這就是我們進行實驗的意義所在。

前沿實驗第二位:Node.js Web堆棧

很多企業在評判服務的實際效果時,都會觀察其是否能夠快速交付數據。沒人愿意讓一位潛在客戶面對著空白的瀏覽器窗口破口大罵。此外,在向頂頭上司進行工作匯報時,大家也肯定不希望把時間浪費在等待關鍵性業務分析報告生成身上。

不少前沿性工具都專門為速度而生。以Node.js為例,它的流行主要是因為其出色的運行速度。它在與新型NoSQL數據庫協作時的速度表現甚至更快,這是由于新型NoSQL數據庫在數據保存方面速度拔群。總之,我們可以在這套小型平臺上建立起高速Web基礎設施,并且同時降低對電力資源的消耗。速度與能效之間往往存在著緊密聯系。

這樣的速度表現對于將快速響應視為首要目標的企業用戶來說極具吸引力。更短的網站響應時間能夠大大提高客戶的第一印象,從而將潛在客戶轉化為實實在在的買家。不過銀行等擁有大量固定客戶的企業對于這方面特性可能并不關注。

Node.js是一套以Chrome V8 JavaScript引擎為基礎創建的開源堆棧,但大多數技術人員會在nodejs.org網站上為各類主流平臺尋找預先開發好的可執行方案。作為主要贊助商,Joyent公司還提供配備鏡像的云設備,其中包含所有必要庫及工具。

很多開發人員習慣于直接向Web框架求助,例如Tower、Geddy或者Railway,它們能夠切實簡化數據驅動的基礎網站的開發流程。

Node.js的局限與性能無關,最大的問題在于它給開發人員帶來沉重的技術負擔。即使是最為睿智的程序員也需要加倍小心,因為這意味著所有數據包都運行在同一進程當中。如果某位用戶的無意操作偶然觸發了代碼中的bug,整個Web服務器都將陷入崩潰。優秀的程序員以及嚴格的測試流程能夠避免問題的發生,但沒人能保證永遠不出紕漏。在這方面,Erlang的做法正好相反——它利用多項限制幫助程序遠離嚴重錯誤。

Node.js與NoSQL相結合完全能夠成為當下前沿實驗的理想方向之一:專注于為爆炸式發展中的社交網絡提供支持。如果大家打算親自進行實驗,請務必選擇對速度要求較高、但對穩定性不太關注的領域。如果您的數據需要精心打理,請告別Node.js、遠離風險。

前沿實驗第三位:HTML 5 Web與移動應用

古語有云“新官上任三把火”,剛剛誕生的新工具也值得我們體驗一下其旺盛火力。從零開始剛剛建立完成的最新語言及軟件堆棧很可能尚未經過新版本帶來的細微調整并舍棄不合用的API,但其語法及格式也因此比較純粹、簡潔。

這往往能為大家帶來更簡單、更純粹的代碼。盡管程序員們能夠利用任何語言編寫出復雜的代碼,但新型堆棧往往不需要經過太多代碼修復及版本測試流程。智能手機上的某些應用需要經過幾十個版本的嚴格測試,從而確保其能夠以正確版本發揮正確效果。新型堆棧就不至于帶來這樣的額外復雜性。

目前市場上已經存在多種HTML 5項目,旨在為開發者提供創建網站或者移動手機應用所必需的基本要素。代碼,或者被稱為框架或者支架,能夠在頁面中組織內容并提供由菜單為主導的過渡機制。其中最具人氣的項目包括jQuery Mobile、Sencha Touch以及Titanium,但近來還興起了更多其它工具。很多人氣極高的CMS堆棧,例如WordPress或者Drupal,已經開始將關注重點轉移到移動環境當中,而且往往能夠使用大量原始代碼。

雖然這些新的代碼堆棧足夠簡潔,但它們需要將原有平臺徹底淘汰之后才能實現效果。新工具能夠輕松幫助開發者編寫出簡單而精致的代碼。它們往往直接忽略掉陳舊硬件以及操作系統版本。當然,它們的簡潔性與高速性源自對現有預發布代碼的高度依賴。

HTML 5框架往往會在大家使用舊版本或者不符合標準的瀏覽器時發生故障。突然之間,菜單顯示的位置出現嚴重偏移,而且文字內容也開始只顯示一半——這說明CSS指令無法正常工作。有時候新需求需要與舊方案和諧相處,但新代碼卻堅持以同一種方式實現某一種功能,這也是最令人頭痛的問題。

在邁入實驗階段之前,請認真考慮自己是否有能力為技術的特定子集提供必要支持。

#p#

前沿實驗第四位:利用R語言進行數據處理

從簡潔Web設計到更為復雜的大數據分析,R語言已經成為目前大部分熱門新工具的開發核心——這些成果往往被用于通過數據解決問題或者掌握客戶情況。在眾多成果工具集的支持下,R不僅是一種能夠為通用統計公式提供預定義功能的語言,更是一種思考問題并找尋解決方案的全新方式。

舉例來說,大數據分析軟件包中的統計模型能夠識別并標記復雜的模式并充分發揮現代計算機集群所提供的全部性能資源。統計模型取代了原本只能排序或者尋找最大值的簡陋機制。與前沿統計軟件協作意味著大家能夠實現深層次分析,并在舊有代碼無能為力的狀況下找到有價值的蛛絲馬跡。

這些新型視角的出現幫助企業節約了數十億美元的常規支出。他們幫助店鋪確定所在地域的口味喜好,根據人們的審美習慣以顏色、圖案、大小等標準安排貨架擺放方式。它們匯總出的結論幫助營銷人員精準確定廣告投放量。總之,只要有數據的地方,我們就有機會從中找到有利于自身的發展機遇。

作為開源項目,R語言專注于通過培養機制建立核心用戶群體。很多開發人員會以R Studio等更為完整的IDE作為起點,因為這些IDE捆綁有編輯器以及具備執行引擎的輸出窗口。在生產堆棧領域,R Studio IDE已經成為最理想的開發機制。

不過像R語言這樣的統計工具也有缺陷,其結果并非永遠直觀,實驗所獲得的效用也常常不夠明顯。這是因為盡管思路足夠前衛,但其執行流程還不夠科學。大數據分析是一套極為出色的理論,甚至堪稱偉大的靈感,但幾乎沒人能準確說出這項技術到底有多出色——特別是在背景條件的影響之下。統計分析真能幫助大家改善自己的產品嗎?收集到的數據能否帶來理想的精確度以指導工作?沒人說得清,但如果能花上幾個月組織實驗,大家沒準會得到自己的結論。

考慮到R語言等統計工具令人激動的特性,我們不禁急于利用它對磁盤陣列中保存的數據進行一番全面分析。也許大家運氣很好,巨大的機遇正在磁盤中靜靜等著你來發現。不過很多技術人員已經發現,單靠大數據分析機制還不足以徹底實現“去其糟粕、取其精華”的目標,人力的介入不可避免。單靠分析結果中那一串串數字只會讓人找不著北。

前沿實驗第五位:體驗NoSQL的極致速度

讓我們面對現實:我們程序員其實是個相當懶散的群體。我們不愿意從零開始創建項目——除非不得不做。新工具的出現往往是由于對新型功能的強烈需求。有時候情況甚至更為嚴重。

獲得這些新功能的惟一途徑就是接受新型工具。許多新型NoSQL數據庫能夠毫不費力地遷移到云環境當中。弄一堆設備,在它們之間順利運作,這正是技術人員的專長與構建基礎設施的出發點。總之,如果沒必要,IT部門根本不會有熱情引進新機制。

目前可供選擇的NoSQL數據庫可謂層出不窮,其中大部分項目在功能方面存在廣泛交集。對這些交集進行一一列舉并詳加解釋是項巨大的工程,受篇幅所限,我在這里就不再贅述了。總之,目前比較熱門的工具有Cassandra、MongoDB、CouchDB以及Riak。某些企業還會提供工具即服務方案。MongoLab以及MongHQ就是兩套利用MongoDB實現數據存儲的方案,只要版本版本相近即可實現兼容。

以閃電般的速度以及靈活的擴展性實現響應非常重要,為了充分享受新工具在這兩方面帶來的提升,大家值得對手中的全部現有代碼進行重寫。不過此類前沿方案的核心吸引力還在于,我們找不出它們在發展過程中誤入歧途的端倪。通常情況下,技術方案往往存在陰暗面,我們需要通過艱辛的探索——甚至錯誤——才能全面地對其加以認識。

NoSQL數據庫也面臨著同樣的問題。它的速度確實夠快,但這主要是因為它并不提供任何堅實的一致性承諾。這類數據庫項目單純接納大量數據并在確定全部數據都已經寫入磁盤之前就顯示“全部完成”信息。對于社交網站這類內容不太重要的企業來說,個人用戶狀態信息的丟失不至于惹出什么大麻煩,但其它企業的心態可就沒這么輕松了。

尋找合適的區域,確保其中不涉及任何關鍵性數據,接下來就可以放心大膽地鼓搗這些鍵-值數據存儲方案了。

前沿實驗第六位:利用圖形數據庫尋找連接

數據庫概念確立于上個世紀。簡單來說,我們首先定義包含著特定數據列的列表,然后向其中插入行,全部填滿后就形成了一套數據庫。數列中可以包含整數、十進制數字或者字符串,傳統數據庫的靈活性也就僅限于此了。

但Neo4j等圖形數據庫的出現給數據庫概念引入了新思路。我們仍然可以在數列中添加數字及字母,但現在大家還可以在不同單元行之間創建指針以形成網絡結構。如果存儲的內容是社區網絡,那么數據庫就能夠記錄下每位用戶以及與之相關的好友。

在規則數據庫中,我們一直可以為每個單元行賦予一個鍵,并將所有指針以鍵的形式保存在同一個列當中。圖形數據庫的強大實力體現在用戶運行查詢之時。圖形數據庫能夠對網絡進行解壓,并利用經過精密調整的搜索算法組織網絡查詢。它不需要像關系數據庫那樣處理復雜的鏈接與加入關系。如果大家希望查詢某位用戶的朋友的朋友的朋友一共有多少位,查詢引擎能夠直接給出結果。如果大家希望測試兩位用戶之間需要經過多少次朋友關系跳轉才能彼此聯系,引擎則需要搜索網絡并找出答案。

Neo4J由Neo技術公司所打造,提供三種版本并遵循多種許可模式。社區版以GPL 3.0許可為基礎并提供所有搜索能力。高級版及企業版則增加了多種工具,用于監控數據吞吐量、實現集群同步并對數據庫進行備份。二者都遵循針對實驗及開源項目的Affero GPL許可,能夠支持且無需公開大家自己的代碼。

在功能集方面,我們同樣需要做出取舍。圖形數據庫與其它數據庫家族成員相比,在開發水平及調整精度上有所欠缺。它們在圖形算法領域可算當之無愧的專家,但在傳統功能方面則既不夠淵、也不夠博。選擇圖形數據庫就意味著放棄其它功能取向。

前沿實驗第七位:利用Go簡化結構

多年以來,各類編程語言就像雨后春筍一般爭相涌現。由于每個人都希望把自己喜愛的功能及思路添加進來,因此很多原本單純的想法最終變成了一大坨重量級負擔。現在是時候創建一套嶄新而又經過修剪的王牌語言了。

Go就是這樣一款由谷歌公司的眾多技術專家創建出的語言。其語法機制對于熟悉C及Java的程序員來說并不陌生,而且其本身難度也絕對親民。我們不僅可以通過定義類型對代碼進行編譯,甚至還能在代碼運行過程中對其加以修改。無用存儲單元收集程序負責所有內存分配任務。Go還提供一套輕量級機制用于組織并發方法,這樣大家就能輕松編寫出支持并行運行的代碼了。

谷歌以自由度極高的開源許可為基礎,為Unix、Linux、Mac OS X以及Windows等系統平臺提供了編譯器與運行堆棧。目前已經有多家企業開始以實驗方式測試Go語言,而谷歌也表示嘗試將其代碼引入某些生產環境。大家可以訪問tour.golang.org網站以交互方式了解這款新語言。

Go這樣的語言最適合幫助企業用戶在重新組織或者設計辦公環境時清理原有負擔。對結構加以精簡能夠簡化員工之間的協作難度,因為大家的溝通將變得更順暢、也能夠更輕松地向預定目標共同努力。Go的支持者們對其特性大加贊美,認為它能夠幫助自己與他人協作開發出簡潔而極具功能性的產品。簡潔性將協作過程中經常出現的溝通與同步障礙一掃而空,這也正是Go語言的核心價值所在。

原文鏈接:http://www.infoworld.com/d/application-development/7-cutting-edge-programming-experiments-worth-trying-226648?page=0,0


 

責任編輯:陳四芳 來源: 51CTO
相關推薦

2021-05-24 09:00:00

ETL工具數據

2020-12-22 08:00:00

開發分析工具

2012-11-26 10:02:25

云計算

2022-05-06 16:14:21

物聯網工具設備

2021-04-28 14:43:35

物聯網趨勢物聯網IOT

2018-08-09 16:13:38

GNTC

2021-02-26 09:00:00

開發Web技術

2022-01-03 15:56:43

加密貨幣數字貨幣貨幣

2010-12-23 15:45:31

程序員編程

2023-06-27 07:31:02

動畫庫React參數

2015-03-02 10:21:28

沿編程語言編程語言

2024-04-16 08:00:00

大型機器學習MLOps

2017-07-24 09:37:07

2018-02-28 10:11:22

UPS電源預防

2013-04-22 11:13:06

程序員編程誤區

2011-06-09 13:26:27

編程程序員

2020-12-22 09:55:55

IT首席信息官CIO

2020-12-18 10:35:27

IT技術領導者

2015-07-08 08:51:11

SDN

2022-05-23 08:09:42

物聯網IOT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产不卡一区在线观看 | 日本人麻豆 | 一区二区在线 | 在线播放第一页 | 日日摸天天添天天添破 | 午夜精品久久久久久久久久久久久 | 国产精品三级久久久久久电影 | 国产在线精品免费 | 高清免费av | 欧美日韩成人网 | 一区二区三区在线 | 国产精品久久久久久久久免费软件 | 欧美视频在线播放 | 国产精品一区二区在线观看 | 艹逼网| 成人av一区 | 祝你幸福电影在线观看 | www国产成人 | 亚洲一区二区视频 | 国产成人综合在线 | 999视频在线播放 | 日韩免费av网站 | 中文在线一区二区 | 精品一区二区三区四区五区 | 国产高清毛片 | 午夜精品久久久久久久星辰影院 | www.99热.com| 超黄毛片| 久久午夜国产精品www忘忧草 | 久久久久久久国产 | 精品国产欧美 | 精品一区久久 | 国产精品一区在线 | 一级a性色生活片久久毛片波多野 | 成在线人视频免费视频 | 婷婷狠狠 | 九九精品网 | 亚洲美女天堂网 | 蜜桃色网| 91国自视频 | 一区二区三区四区不卡 |