久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

改變開(kāi)發(fā)者工作方式的15種技術(shù)

 gljin_cn 2014-08-27

以前,開(kāi)發(fā)人員寫的匯編代碼輕巧而且運(yùn)行速度快。運(yùn)氣好的話,,如果預(yù)算充足,,他們可以雇傭一些人來(lái)幫助完成這些代碼的輸入。運(yùn)氣不好的話,,只能靠自己完成復(fù)雜的輸入工作,。

現(xiàn)在,開(kāi)發(fā)人員要和分布在不同大洲的團(tuán)隊(duì)成員一起工作,,這些成員使用不同字符集的語(yǔ)言,,更壞的情況是有的團(tuán)隊(duì)成員可能會(huì)使用不同版本的編譯器。一些代碼是新編的,,一些庫(kù)是從很多年前創(chuàng)建的,,源代碼已經(jīng)無(wú)法獲得。所以,,要想成為一個(gè)程序員,,必須要擁有團(tuán)隊(duì)精神和吃苦耐勞的信念。

下面我們就來(lái)梳理一下正在改變基本開(kāi)發(fā)工作的15種科技技術(shù),。這些技術(shù)改變著我們與其他團(tuán)隊(duì)成員的合作方式,,與客戶的溝通方式以及我們的編程方式。

1,、持續(xù)集成(Continuous integration

當(dāng)把代碼提交到庫(kù)中以后,,你就有足夠的時(shí)間休息一下,喝杯咖啡,,甚至可以去吃個(gè)午飯,。這個(gè)時(shí)候,代碼庫(kù)已經(jīng)與一個(gè)持續(xù)運(yùn)行的編譯系統(tǒng)綁定,,開(kāi)始重新編譯你提交的代碼,,仔細(xì)檢查你的代碼結(jié)構(gòu),初始化多個(gè)測(cè)試程序,,標(biāo)記你代碼中可能的問(wèn)題,。在離你辦公桌5英尺的范圍內(nèi),編譯系統(tǒng)就通過(guò)郵件或短信將需要修復(fù)的問(wèn)題發(fā)到你的手機(jī)上,。重新回到工作崗位,,持續(xù)運(yùn)行的編譯系統(tǒng)又有新的任務(wù)給你了。

2,、架構(gòu)(Frameworks)

通過(guò)復(fù)制別人的工作進(jìn)而站在巨人的肩膀上已經(jīng)不是什么新鮮事了,,但是優(yōu)勢(shì)卻從來(lái)沒(méi)有像現(xiàn)在這么明顯。現(xiàn)在只有很少的編程工作是從頭做起了,。最好也是最有爭(zhēng)議的開(kāi)發(fā)方法是:利用一個(gè)正確的框架,,研究清楚 API,,然后自己寫代碼使用API完成最核心的功能。網(wǎng)頁(yè)不再是由 HTML 或者 CSS 生成的了,;更多的是開(kāi)始使用 Ext JS,,Express JS 或者其它代碼庫(kù)作為編碼的基礎(chǔ)。

當(dāng)然,,你也可以創(chuàng)新并且從頭開(kāi)始構(gòu)建所有的東西,,但那是相當(dāng)痛苦的。你沒(méi)有辦法趕上其他人做的所有工作,。你不是一個(gè)技工,,僅僅是一個(gè)框架修理工。在你打算自己編碼之前,,先了解一下已經(jīng)正在使用的框架,。

3、代碼庫(kù)(Libraries)

和框架類似的是代碼庫(kù),,代碼庫(kù)無(wú)處不在,,程序員已經(jīng)離不開(kāi)它了。寫關(guān)于瀏覽器的代碼可以不用jQuery 嗎,?是否有人記得有一個(gè)內(nèi)置函數(shù) GetElementByID,?像 jQuery 這樣的庫(kù)現(xiàn)在應(yīng)用在各個(gè)層面。人們會(huì)談?wù)撍麄兿矚g的語(yǔ)言,,但是確很少談?wù)撍麄兪窃趺淳幊痰?。如果你想雇傭一些程序員,你應(yīng)該多問(wèn)他們一些關(guān)于代碼庫(kù)的知識(shí),。Java腳本的開(kāi)發(fā)人員是從 jQuery 或 Dojo 發(fā)展來(lái)的嗎,?游戲開(kāi)發(fā)人員可能會(huì)使用 C++,但是實(shí)際的問(wèn)題是這些開(kāi)發(fā)人員是否知道 Allegro,,Unity,,Corona 或者其他更多的選擇,。代碼庫(kù)的知識(shí)和語(yǔ)言本身的來(lái)龍去脈一樣重要,。

4、應(yīng)用程序編程接口(APIs)

從前,,程序員總需要關(guān)注數(shù)據(jù)結(jié)構(gòu),。他們需要將所有的信息打包成字節(jié)塊,確保將值放在正確的偏移位置?,F(xiàn)在,,編譯程序?yàn)槲覀冏隽诉@些。

現(xiàn)在我們通過(guò)非常嚴(yán)謹(jǐn)?shù)慕涌诠ぷ?,它有一個(gè)發(fā)燒友一樣的名字:應(yīng)用程序編程接口,。它通常在一個(gè)完全不同的機(jī)器上或是運(yùn)行在其他公司的,,每次調(diào)用都需要收費(fèi)。你想將一個(gè)街道地址和一個(gè)郵政編碼變成經(jīng)緯度嗎,?有專門的 API 接口可以調(diào)用,,并且使用的費(fèi)用也相當(dāng)便宜。

很多情況下,,數(shù)據(jù)不需要這么死板的打包,。舊的字節(jié)打包方式已經(jīng)被輕量級(jí)的數(shù)據(jù)交換格式例如JSON 或 XML 取代。你需要確保你的數(shù)據(jù)格式完全正確,,幸運(yùn)的是有現(xiàn)成代碼庫(kù)可以用,。

5、平臺(tái)即服務(wù)(Platform as a service)

誰(shuí)建立了自己的網(wǎng)站,?相反的,,如何在別人的網(wǎng)站上創(chuàng)建一個(gè)用戶賬戶,并做一些定制呢,?所有的這些僅僅需要的是一個(gè)網(wǎng)站,,這樣,你的站點(diǎn)就可以做你想做的所有事情了,,比如往 Youtube 上傳一個(gè)貓的視頻或者在 eBay 上競(jìng)標(biāo)一個(gè)佩斯飲水機(jī),。

當(dāng)然,這個(gè)例子有點(diǎn)夸張,。許多 PaaS 選項(xiàng)目前都要求程序員清楚的知道每個(gè) Web 表單上放什么東西,。以微軟的云服務(wù)為例,你可以將用 Java 腳本語(yǔ)言寫的用于描述網(wǎng)站如何響應(yīng)的函數(shù)放到上面,。然后,,這個(gè)云服務(wù)會(huì)將這些函數(shù)打包成一個(gè)庫(kù)然后放在js節(jié)點(diǎn)上運(yùn)行。

6,、瀏覽器(Browsers)

曾經(jīng)有一段時(shí)間人們分別寫桌面軟件,,服務(wù)器軟件和設(shè)備上運(yùn)行的軟件,這些軟件都是不一樣的,,軟件之間相互傳遞信息的方式也互不相同?,F(xiàn)在,所有的這些都使用瀏覽器了,。當(dāng)我在家里建立一個(gè)本地文件服務(wù)器來(lái)存放音樂(lè),,就可以通過(guò)一個(gè)網(wǎng)站登錄到這個(gè)網(wǎng)址上。蘋果的桌面窗口程序是用 Java腳本和超文本標(biāo)記語(yǔ)言寫的,,已經(jīng)用了很多年,。很多用超文本標(biāo)記語(yǔ)言和Java腳本寫的移動(dòng)客戶端的跨平臺(tái)應(yīng)用都和 Apache Cordova 綁定了。

當(dāng)然,,很多應(yīng)用還在繼續(xù)使用 C/S 結(jié)構(gòu),。最好的游戲仍然使用客戶端模式,,沒(méi)有使用瀏覽器,但是隨著越來(lái)越多的 Java 腳本開(kāi)發(fā)者研究在畫布上繪圖這種情況正在改變,。例如,,憤怒的小鳥(niǎo),就即將運(yùn)行在瀏覽器窗口上,。

7,、應(yīng)用程序容器(Application containers)

專門建立一個(gè)服務(wù)器來(lái)做比較困難的工作。程序員可以從服務(wù)器上獲取代碼然后運(yùn)行,,并且將運(yùn)行日志發(fā)送到服務(wù)端,。有時(shí)候可以得到正確的庫(kù),有時(shí)候得到的庫(kù)是錯(cuò)誤的,,但最終,,都會(huì)找到可用的代碼庫(kù)。

現(xiàn)在,,類似 Docker 這樣的應(yīng)用程序容器允許我們按一個(gè)按鈕就找到正確的庫(kù),。如果 這個(gè)代碼庫(kù)可以運(yùn)行在我們的測(cè)試機(jī)上,它也可以運(yùn)行在服務(wù)器上,。所有的東西都捆綁在一起了,,那些夾在我們桌面和服務(wù)之間不兼容的東西都不存在了。

8,、基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service)

我提到過(guò)服務(wù)器策展人團(tuán)隊(duì)嗎,?這些人喜歡在午餐時(shí)間或下班后出去玩,但是現(xiàn)在他們都被聚集到了云上,,像是在一個(gè)全球的數(shù)據(jù)中心那樣為那些自認(rèn)為是云世界中的領(lǐng)導(dǎo)者的公司工作,。少數(shù)開(kāi)發(fā)人員會(huì)需要服務(wù)團(tuán)隊(duì)為他們的新工程搭建一個(gè)新的服務(wù)。他們只需要登錄一個(gè)站點(diǎn),,按一個(gè)按鈕,,就可以得到一個(gè)為他們服務(wù)的機(jī)器。特別簡(jiǎn)單,,但是這些 IaaS 管理網(wǎng)頁(yè)不會(huì)在工作結(jié)束后為你買一杯咖啡,。當(dāng)然,它能為你節(jié)省很多工作,。

9,、Node.js 和 JavaScript(Node.js and JavaScript)

在你們中的一些人出生以前,,網(wǎng)絡(luò)服務(wù)器送出靜態(tài)的 HTML,。后來(lái),有人就開(kāi)始研究如何構(gòu)建動(dòng)態(tài)的,,可以和數(shù)據(jù)庫(kù)交互的服務(wù)器,。每個(gè)團(tuán)隊(duì)都需要一個(gè)人用 SQL 語(yǔ)言編寫數(shù)據(jù)庫(kù)程序,,一個(gè)人用PHP 或 Java 編寫服務(wù)程序,一個(gè)人設(shè)計(jì) HTML 模板,。一旦每個(gè)人都開(kāi)始喜歡上運(yùn)行在客戶端的AJAX 和 Java 腳本,,這個(gè)網(wǎng)站就需要一個(gè)會(huì)這種語(yǔ)言的人。

現(xiàn)在 Java 腳本做了所有的事情,。當(dāng)然,,瀏覽器用 Java 腳本,服務(wù)端(Node.js)和數(shù)據(jù)庫(kù)(MongoDB 和 CouchDB)也一樣,。即使是 HTML 也通常是用 Ext JS 或者 jQueryMobile 這樣的框架,,使用 Java 腳本在客戶端生成的。

10,、二級(jí)市場(chǎng)(Secondary marketplaces)

如果你想構(gòu)建一個(gè)游戲,,你可以自己雇傭一些設(shè)計(jì)人員,創(chuàng)建一個(gè)非常棒的模型集,。你甚至可以雇傭一些開(kāi)發(fā)人員為你的游戲增加一些視覺(jué)效果,,讓游戲看起來(lái)更酷?;蛘吣憧梢匀ヮ愃平y(tǒng)一資源市場(chǎng)的二級(jí)市場(chǎng)購(gòu)買你需要的所有部分,。當(dāng)我寫這些的時(shí)候,構(gòu)建下水道的場(chǎng)景的工具箱正降價(jià)30%,,可以用來(lái)構(gòu)建小型的或大型的游戲場(chǎng)景,。這個(gè)銷售活動(dòng)在你看見(jiàn)這則新聞的時(shí)候可能已經(jīng)結(jié)束了,價(jià)錢可能已經(jīng)升到45美元了,。開(kāi)發(fā)人員和設(shè)計(jì)人員怎么會(huì)有這么低的價(jià)錢,!

現(xiàn)在有越來(lái)越多的提供插件,庫(kù)和其它附加軟件的市場(chǎng),。有這么多的庫(kù)和框架,,開(kāi)發(fā)人員也越來(lái)越多的去購(gòu)買所需要的部分,編碼工作越來(lái)越少了,。

11,、虛擬機(jī)(Virtual machines)

編寫大段代碼的時(shí)代已經(jīng)慢慢遠(yuǎn)去了。現(xiàn)在大部分寫出來(lái)的運(yùn)行在虛擬機(jī)上的代碼都被翻譯成芯片可以識(shí)別的指令了,。Java 虛擬機(jī),,C#/.Net 虛擬機(jī),現(xiàn)在的 JavaScript 引擎都是代碼的最終運(yùn)行載體,。

虛擬機(jī)的流行,,使得這個(gè)領(lǐng)域吸引了越來(lái)越多的東西。過(guò)去,,如果你想創(chuàng)造一種新的語(yǔ)言,,你需要?jiǎng)?chuàng)建從處理器到寄存器的整個(gè)流程?,F(xiàn)在,新的語(yǔ)言運(yùn)行在舊的虛擬機(jī)上,。Clojure,,Scala,Jython,,JRuby 都參與了虛擬機(jī)開(kāi)發(fā)的工作,,現(xiàn)在這個(gè)虛擬機(jī)業(yè)務(wù)是屬于 Oracle 的。

相似的情況也出現(xiàn)在瀏覽器領(lǐng)域,。使得,,你可以創(chuàng)建你自己的瀏覽器和語(yǔ)言,也可以通過(guò)價(jià)差編譯在Java 中模擬?,F(xiàn)在很多新創(chuàng)建的腳本語(yǔ)言也是這么做的,。谷歌的 Web 工具包也有類似的功能:將Jave 語(yǔ)言轉(zhuǎn)換成 Java 腳本。

12,、社交媒體網(wǎng)站(Social media portals)

在互聯(lián)網(wǎng)的早期,,你可以搭建一個(gè)自己的網(wǎng)站,然后祈禱人們可以找到它,。他們需要記住你的網(wǎng)址,。

越來(lái)越多的網(wǎng)站被吸引到互聯(lián)網(wǎng)世界中,涌現(xiàn)出了非常多的社交網(wǎng)站和營(yíng)銷網(wǎng)站,。如果你建立自己的網(wǎng)站,,很可能門庭冷落,大部分用戶都在社交網(wǎng)站和營(yíng)銷網(wǎng)站上瀏覽,、點(diǎn)擊,。解決這個(gè)問(wèn)題的辦法是搭建一個(gè)社交網(wǎng)站或銷售網(wǎng)站的應(yīng)用,通過(guò)這種方式可以進(jìn)入并集成到這些網(wǎng)站中,。但是最后,,你的應(yīng)用也僅僅是一個(gè)附庸,會(huì)受到很多限制,,還很可能會(huì)被輕易停掉,。你還有別的選擇嗎?沒(méi)有,,你要么選擇做大型網(wǎng)站的附庸,,要門只能接受門庭冷落的現(xiàn)實(shí)。

13,、開(kāi)發(fā)工具(Devops tools)

很久以前,,我們僅僅需要在一個(gè)服務(wù)器上安裝軟件就能滿足應(yīng)用需要。但是現(xiàn)在,我們要租用大量的服務(wù)器,,需要幾十,成百,,甚至上千臺(tái)機(jī)器,,其中很多機(jī)器都需要按照需求配置,已經(jīng)不是一個(gè)能用手工完成的工作了,。

進(jìn)入運(yùn)維模式,,就會(huì)有一些類似 Chef 和 Puppet 這樣的工具幫助你完成這些復(fù)雜的工作。將軟件推送到云端,,在這些工具的控制下,,可以保證所有的機(jī)器上運(yùn)行的是相同的代碼。這些工具替自動(dòng)完成了我們以前在一臺(tái)機(jī)器上的工作,。

有一些服務(wù),,例如谷歌應(yīng)用程序引擎已經(jīng)在內(nèi)部處理了這些,你需要做的僅僅是將你的應(yīng)用程序告知引擎,,并授權(quán)它開(kāi)始工作,。你甚至不知道后臺(tái)到底發(fā)上了什么,你能看見(jiàn)的僅僅是 CPU 的占用量,。

14,、GitHub,SourceForge和代碼共享(GitHub, SourceForge, and social code sharing)

代碼共享網(wǎng)站可能是開(kāi)源世界的最大貢獻(xiàn),。在 SourceForge 出現(xiàn)之前,,軟件僅僅是在你的機(jī)器上創(chuàng)建并且代碼也只屬于你。如果另一些人想獲得源碼,,他們需要找你來(lái)獲得源碼,,當(dāng)然必須要得到你的統(tǒng)一。

現(xiàn)在代碼共享已經(jīng)變成了一種共識(shí),。類似 SourceForge 和 GitHub 這樣的網(wǎng)站發(fā)布了所有的代碼,,供所有人閱讀和更新。他們?yōu)榇a的維護(hù),、共享,、評(píng)論提供了一個(gè)易于訪問(wèn)的地方。你可以通過(guò)一個(gè)入口閱讀這些代碼,,并提出修改意見(jiàn),。很多項(xiàng)目每個(gè)星期可能有幾十甚至幾百萬(wàn)的下載量,這在以前是不可能的,。

這種模式非常有優(yōu)勢(shì),,很多自營(yíng)項(xiàng)目都使用這種模式。GitHub 和 BitBucket 這些網(wǎng)站還在一定程度上支持他們售賣自己開(kāi)發(fā)的代碼庫(kù)。

15,、性能監(jiān)控(Performance monitoring)

早期,,跟蹤代碼性能是一件非常容易的事。在代碼執(zhí)行的初始位置打印一個(gè)時(shí)間,,然后在執(zhí)行結(jié)束的位置打印一個(gè)時(shí)間,。如果你想,你還可以把這兩個(gè)時(shí)間做一個(gè)差,,然后打印出來(lái),。很多問(wèn)題在一臺(tái)機(jī)器上是無(wú)法暴露出來(lái)。在代碼上附加一個(gè)分析器可能無(wú)法暴露出真正的瓶頸,,導(dǎo)致這種瓶頸的的原因可能是內(nèi)部的一些復(fù)雜問(wèn)題或者是數(shù)據(jù)庫(kù)延遲?,F(xiàn)在測(cè)試網(wǎng)絡(luò)性能的工具不僅要測(cè)試軟件本身,還需要測(cè)試軟件中的每個(gè)模塊,。這是了解內(nèi)部運(yùn)行是否正常的唯一方式,。當(dāng)程序從在一個(gè)機(jī)器上運(yùn)行演變成通過(guò)網(wǎng)絡(luò)互相連接運(yùn)行后,這是一種判斷程序運(yùn)行是否正常的非常重要的方式,。

來(lái)源: CSDN CODE
譯文: http://code.csdn.net/news/2821358     譯者: AlinaLv1985
轉(zhuǎn)載本文請(qǐng)遵循原文要求

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多