国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Worktile 技術(shù)架構(gòu)概要

史占廣 / 1641人閱讀

摘要:選擇是因?yàn)樗?jiǎn)單,適合高并發(fā)的服務(wù),而且我們的開(kāi)發(fā)人員能夠熟練使用它,關(guān)于的優(yōu)缺點(diǎn)我在知乎上也曾經(jīng)回答過(guò)使用的優(yōu)勢(shì)和劣勢(shì)都有哪些。

其實(shí)早就該寫這篇博客了,一直說(shuō)忙于工作沒(méi)有時(shí)間,其實(shí)時(shí)間擠擠總會(huì)有的,可能就是因?yàn)閼邪桑?013年11月一直拖到現(xiàn)在,其實(shí)我是不怎么擅長(zhǎng)寫技術(shù)博客的,因?yàn)樯蠈W(xué)的時(shí)候語(yǔ)文不是很好,每次寫作文都不知道自己在寫啥,作為一開(kāi)始就參與 Worktile 開(kāi)發(fā)的技術(shù)人員,今天就簡(jiǎn)單談?wù)?Worktile 的技術(shù)架構(gòu)吧 。

Worktile 自上線到現(xiàn)在收到了很多用戶的喜歡,我們倍感欣慰,自己做的產(chǎn)品得到了用戶的認(rèn)可是件幸福的事情,其中有很多來(lái)自IT的用戶,經(jīng)常在官方群或者知乎上問(wèn)一些關(guān)于Worktile的技術(shù)問(wèn)題:

Worktile 采用的是怎么樣的架構(gòu)?
Wortile 前后端采用了哪些技術(shù)?
...
Worktile整體架構(gòu)一覽

Worktile 是企業(yè)協(xié)同辦公軟件,所以一開(kāi)始注定就應(yīng)該是單頁(yè)應(yīng)用(SPA),因?yàn)槭褂肧PA后,用戶在瀏覽器端可以像操作原生客戶端程序一樣的體驗(yàn)(速度和流暢度),對(duì)于開(kāi)發(fā)者來(lái)說(shuō),前后端分離,服務(wù)端只提供RESTful API服務(wù),移動(dòng)端集成也非常的方便,具體可以看下面這張草圖。

前端

Angular.js(客戶端MV*)

Bootstrap (CSS基礎(chǔ)庫(kù)和一些Javascript組件)

UI Bootstrap (Bootstrap 的 Angular.js版本)

jQuery (取代Angular.js中的jqLite,并作為其他第三方j(luò)Query插件的基礎(chǔ)類庫(kù))

Worktile的服務(wù)端基本上只是提供API數(shù)據(jù)服務(wù)的,不會(huì)渲染HTML,前端的代碼在發(fā)布之前會(huì)使用 Grunt 工具打包合并壓縮成一個(gè)js文件。

Angular.js

既然是SPA程序,前端必然要選擇一個(gè)MVC(或者M(jìn)VVM)框架,關(guān)于前端MVC框架有很多,當(dāng)時(shí)面臨選擇的時(shí)候也是比較猶豫,因?yàn)樵诖酥拔覀冎怀趼缘氖褂眠^(guò) Knockoutjs 。
其實(shí)我們當(dāng)時(shí)就是急切的希望一個(gè)框架能做到:

數(shù)據(jù)能夠雙向綁定(或者只單向綁定)

前端路由功能

簡(jiǎn)單易學(xué)的模板語(yǔ)言

最終我們選擇了 Angular.js,具體其中選擇的細(xì)節(jié)就不一一描述了(之前在知乎上也回答過(guò)關(guān)于Angular.js 的問(wèn)題:Angular.js 在實(shí)際應(yīng)用中有哪些優(yōu)缺點(diǎn)?),從開(kāi)始使用到現(xiàn)在已經(jīng)快2年了,事實(shí)證明當(dāng)初的選擇還是沒(méi)有錯(cuò)的, Angular.js的確很適合 Worktile。

Bootstrap 和 jQuery

選擇Bootstrap主要是為了使用它的基礎(chǔ)CSS功能,在它的基礎(chǔ)之上很容寫出規(guī)范的樣式代碼,當(dāng)然我們也需要使用其中的部分Javascrip組件功能,因?yàn)樵?Bootstrap是基于 jQuery的,為了在Angular.js中也能很好的使用它,我們引入了 UI Bootstrap、關(guān)于jQuery大家再熟悉不過(guò)了,我們使用的很多第三方插件是jQuery的,所以也一并引入了。

上面只是列出了 Worktile 主要使用的幾個(gè)Javascript框架和類庫(kù),真正使用的類庫(kù)遠(yuǎn)不止上面列出的這些。比如日歷庫(kù) ui-calendar、underscorejs 等等...

服務(wù)端

Node.js

Redis

MongoDB

Node.js

服務(wù)端是構(gòu)建在Node.js之上的,我們的服務(wù)端MVC框架采用的是 Expressjs,剛開(kāi)始是 Express 3.x版本,現(xiàn)在已經(jīng)升級(jí)到 4.x,Expressjs提供了 Route和模板引擎的功能,由于我們的服務(wù)端基本只提供數(shù)據(jù)服務(wù),所以關(guān)于服務(wù)端模板引擎這塊基本不使用(只有布局和一些配置項(xiàng)輸出到界面時(shí)需要用到)。

選擇 Node.js 是因?yàn)樗?jiǎn)單,適合高并發(fā)的Web服務(wù),而且我們的開(kāi)發(fā)人員能夠熟練使用它,關(guān)于Node.js的優(yōu)缺點(diǎn)我在知乎上也曾經(jīng)回答過(guò):使用 Node.js 的優(yōu)勢(shì)和劣勢(shì)都有哪些?。

Redis

Worktile 用戶的登錄狀態(tài),一些臨時(shí)使用的數(shù)據(jù)、部分業(yè)務(wù)數(shù)據(jù)緩存 都是放在 Redis 里面的,關(guān)于Node.js怎么和 Redis 連接采用 Node Redis 模塊。

MongoDB

Worktile 并不是那種高度事物性的系統(tǒng)或者傳統(tǒng)的商業(yè)智能應(yīng)用,所以MongoDB非常適合,性能非常高,集群方便,而且以BSON結(jié)構(gòu)存儲(chǔ),和Node.js完美集成。
Worktile 的數(shù)據(jù)層和MongoDB之間并不是使用 原生的驅(qū)動(dòng) ,而采用了 mongoosejs,類似Java或者C#上的ORM框架,使用 mongoose 可以很方面的定義數(shù)據(jù) Schema,讀取操作 MongoDB。

推送服務(wù)

前面也說(shuō)了 Worktile 是 SPA程序,用戶登錄到系統(tǒng)之后,基本上所有的操作都不需要刷新瀏覽器,因?yàn)槭且粋€(gè)協(xié)同辦公軟件,其他用戶多數(shù)據(jù)進(jìn)行操作需要實(shí)時(shí)更新,所以客戶端必然要和服務(wù)端保持一種長(zhǎng)連接,方面進(jìn)行數(shù)據(jù)交互,我們的實(shí)時(shí)推送服務(wù)是采用 Erlang 語(yǔ)言編寫的,感興趣的可以查看:https://worktile.com/tech/bas...

采用 Erlang 是因?yàn)槲覀兊拈_(kāi)發(fā)人員有這方面的經(jīng)驗(yàn),并且Erlang非常適合做這個(gè)高并發(fā)實(shí)時(shí)推送服務(wù)。

如果你熟悉 Node.js 肯定知道 Sockiet.IO,我們最初的實(shí)時(shí)推送其實(shí)是采用 Sockiet.IO的,后來(lái)由于訪問(wèn)量的增張,原有的Sockiet.IO 是基于Worktile Web站點(diǎn)的,沒(méi)有獨(dú)立成多帶帶的服務(wù),重構(gòu)的時(shí)候徹底采用Erlang重寫了。

其實(shí)這2種技術(shù)都非常優(yōu)秀,選擇哪種主要取決于你擅長(zhǎng)什么。

文件預(yù)覽服務(wù)

使用過(guò) Worktile 的人肯定都知道,在系統(tǒng)中上傳一些文件,比如:word、excel、txt、pdf、ppt等等,都是可以在線預(yù)覽的,關(guān)于 txt、pdf這些文件的預(yù)覽其實(shí)好辦,txt直接讀取文件內(nèi)容即可,pdf采用瀏覽器自帶的預(yù)覽或者使用一些Js類庫(kù)都很方便的做到,但是對(duì)于 Ofiice 文件,是不可以直接讀取的,所以我們自己搭建了一套 Ofiice的預(yù)覽服務(wù),這個(gè)服務(wù)主要是基于微軟的 Office Web App服務(wù)

Box 文件服務(wù)

Worktile 中所有的文件存儲(chǔ)在阿里云的OSS上,為了做一些權(quán)限的認(rèn)證和安全問(wèn)題,我們通過(guò)一個(gè)Box服務(wù)做中轉(zhuǎn),所有文件的上傳下載都是走 Box 服務(wù)。這要感謝 5樓的Box之父 @Shaun Xu 寫出了這么好的Box 服務(wù)。

以上是Worktile用的所有技術(shù)和架構(gòu)簡(jiǎn)單介紹。

Worktile 自上線以來(lái)用戶的增長(zhǎng)也是非常迅速的,所以 Web服務(wù)器從原先的1臺(tái)變成多臺(tái),數(shù)據(jù)庫(kù)從單實(shí)例到現(xiàn)在的集群,等等,關(guān)于目前Worktile的服務(wù)器結(jié)構(gòu)圖參考如下:

您可以點(diǎn)擊Worktile技術(shù)博客查看更多干貨內(nèi)容,歡迎訪問(wèn)交流技術(shù)問(wèn)題。

文章轉(zhuǎn)載請(qǐng)注明出處。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/18740.html

相關(guān)文章

  • 團(tuán)隊(duì)協(xié)作工具 Worktile 技術(shù)架構(gòu)揭秘

    摘要:現(xiàn)在已經(jīng)成為的官方標(biāo)準(zhǔn),如,以及的擴(kuò)展協(xié)議。作者簡(jiǎn)介李會(huì)軍,聯(lián)合創(chuàng)始人,關(guān)注團(tuán)隊(duì)協(xié)作領(lǐng)域,致力于用工具解決中小團(tuán)隊(duì)的協(xié)作問(wèn)題。 Worktile自上線兩年多以來(lái),以良好的用戶體驗(yàn)和穩(wěn)定的服務(wù),獲得了用戶的認(rèn)可和喜愛(ài)。截止筆者寫這篇文章的時(shí)候,已經(jīng)有超過(guò)10萬(wàn)家團(tuán)隊(duì)在使用Worktile。作為團(tuán)隊(duì)協(xié)作工具,從技術(shù)上分析首先要解決如下幾個(gè)問(wèn)題: 基于Web的跨平臺(tái)設(shè)計(jì),讓用戶在任何地方都...

    heartFollower 評(píng)論0 收藏0
  • Worktile 移動(dòng)團(tuán)隊(duì)如何使用 C++ 完成 Worktile Pro 跨平臺(tái)應(yīng)用開(kāi)發(fā)<2

    摘要:請(qǐng)求下來(lái)數(shù)據(jù)之后,我們使用了提供的進(jìn)行解析,類化。示例代碼本篇我們將提供以及示例代碼來(lái)闡述我們上文中提到的用法。下一節(jié)下一節(jié)中我們將針對(duì)初創(chuàng)公司端技術(shù)團(tuán)隊(duì)構(gòu)建的一些問(wèn)題來(lái)闡述我們的團(tuán)隊(duì)如何構(gòu)建以及運(yùn)作的。 設(shè)計(jì) 網(wǎng)絡(luò)請(qǐng)求 - 解析數(shù)據(jù) - 寫入緩存 - 讀取緩存 在上篇的文章中我們說(shuō)明了我們?cè)谑窃?MVC 層面的 M 層共享了代碼,不過(guò)對(duì)于只是有可能需要 OpenSDK 的團(tuán)隊(duì)來(lái)說(shuō),更...

    seanHai 評(píng)論0 收藏0
  • 練習(xí)項(xiàng)目備選清單

    摘要:練習(xí)項(xiàng)目備選清單文件下載器功能概要設(shè)計(jì)實(shí)現(xiàn)新建下載功能以為基礎(chǔ)給出下載鏈接可以啟動(dòng)下載任務(wù)實(shí)現(xiàn)局域網(wǎng)內(nèi)下載傳輸文件以單線程下載方式實(shí)現(xiàn)附加功能支持?jǐn)帱c(diǎn)續(xù)傳實(shí)現(xiàn)多線程下載實(shí)現(xiàn)下載參考技術(shù)套接字編程多線程編程音視頻播放器功能概要設(shè)計(jì)實(shí)現(xiàn)播放常見(jiàn) 練習(xí)項(xiàng)目備選清單 Utilities 1. 文件下載器 功能概要設(shè)計(jì): 實(shí)現(xiàn)新建下載功能(以ftp為基礎(chǔ)) 給出下載鏈接可以啟動(dòng)下載任務(wù) 實(shí)現(xiàn)局...

    guyan0319 評(píng)論0 收藏0
  • 練習(xí)項(xiàng)目備選清單

    摘要:練習(xí)項(xiàng)目備選清單文件下載器功能概要設(shè)計(jì)實(shí)現(xiàn)新建下載功能以為基礎(chǔ)給出下載鏈接可以啟動(dòng)下載任務(wù)實(shí)現(xiàn)局域網(wǎng)內(nèi)下載傳輸文件以單線程下載方式實(shí)現(xiàn)附加功能支持?jǐn)帱c(diǎn)續(xù)傳實(shí)現(xiàn)多線程下載實(shí)現(xiàn)下載參考技術(shù)套接字編程多線程編程音視頻播放器功能概要設(shè)計(jì)實(shí)現(xiàn)播放常見(jiàn) 練習(xí)項(xiàng)目備選清單 Utilities 1. 文件下載器 功能概要設(shè)計(jì): 實(shí)現(xiàn)新建下載功能(以ftp為基礎(chǔ)) 給出下載鏈接可以啟動(dòng)下載任務(wù) 實(shí)現(xiàn)局...

    peixn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

史占廣

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<