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

資訊專欄INFORMATION COLUMN

Worktile 技術架構概要

史占廣 / 1643人閱讀

摘要:選擇是因為它簡單,適合高并發的服務,而且我們的開發人員能夠熟練使用它,關于的優缺點我在知乎上也曾經回答過使用的優勢和劣勢都有哪些。

其實早就該寫這篇博客了,一直說忙于工作沒有時間,其實時間擠擠總會有的,可能就是因為懶吧!從2013年11月一直拖到現在,其實我是不怎么擅長寫技術博客的,因為上學的時候語文不是很好,每次寫作文都不知道自己在寫啥,作為一開始就參與 Worktile 開發的技術人員,今天就簡單談談 Worktile 的技術架構吧 。

Worktile 自上線到現在收到了很多用戶的喜歡,我們倍感欣慰,自己做的產品得到了用戶的認可是件幸福的事情,其中有很多來自IT的用戶,經常在官方群或者知乎上問一些關于Worktile的技術問題:

Worktile 采用的是怎么樣的架構?
Wortile 前后端采用了哪些技術?
...
Worktile整體架構一覽

Worktile 是企業協同辦公軟件,所以一開始注定就應該是單頁應用(SPA),因為使用SPA后,用戶在瀏覽器端可以像操作原生客戶端程序一樣的體驗(速度和流暢度),對于開發者來說,前后端分離,服務端只提供RESTful API服務,移動端集成也非常的方便,具體可以看下面這張草圖。

前端

Angular.js(客戶端MV*)

Bootstrap (CSS基礎庫和一些Javascript組件)

UI Bootstrap (Bootstrap 的 Angular.js版本)

jQuery (取代Angular.js中的jqLite,并作為其他第三方jQuery插件的基礎類庫)

Worktile的服務端基本上只是提供API數據服務的,不會渲染HTML,前端的代碼在發布之前會使用 Grunt 工具打包合并壓縮成一個js文件。

Angular.js

既然是SPA程序,前端必然要選擇一個MVC(或者MVVM)框架,關于前端MVC框架有很多,當時面臨選擇的時候也是比較猶豫,因為在此之前我們只初略的使用過 Knockoutjs 。
其實我們當時就是急切的希望一個框架能做到:

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

前端路由功能

簡單易學的模板語言

最終我們選擇了 Angular.js,具體其中選擇的細節就不一一描述了(之前在知乎上也回答過關于Angular.js 的問題:Angular.js 在實際應用中有哪些優缺點?),從開始使用到現在已經快2年了,事實證明當初的選擇還是沒有錯的, Angular.js的確很適合 Worktile。

Bootstrap 和 jQuery

選擇Bootstrap主要是為了使用它的基礎CSS功能,在它的基礎之上很容寫出規范的樣式代碼,當然我們也需要使用其中的部分Javascrip組件功能,因為原生的 Bootstrap是基于 jQuery的,為了在Angular.js中也能很好的使用它,我們引入了 UI Bootstrap、關于jQuery大家再熟悉不過了,我們使用的很多第三方插件是jQuery的,所以也一并引入了。

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

服務端

Node.js

Redis

MongoDB

Node.js

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

選擇 Node.js 是因為它簡單,適合高并發的Web服務,而且我們的開發人員能夠熟練使用它,關于Node.js的優缺點我在知乎上也曾經回答過:使用 Node.js 的優勢和劣勢都有哪些?。

Redis

Worktile 用戶的登錄狀態,一些臨時使用的數據、部分業務數據緩存 都是放在 Redis 里面的,關于Node.js怎么和 Redis 連接采用 Node Redis 模塊。

MongoDB

Worktile 并不是那種高度事物性的系統或者傳統的商業智能應用,所以MongoDB非常適合,性能非常高,集群方便,而且以BSON結構存儲,和Node.js完美集成。
Worktile 的數據層和MongoDB之間并不是使用 原生的驅動 ,而采用了 mongoosejs,類似Java或者C#上的ORM框架,使用 mongoose 可以很方面的定義數據 Schema,讀取操作 MongoDB。

推送服務

前面也說了 Worktile 是 SPA程序,用戶登錄到系統之后,基本上所有的操作都不需要刷新瀏覽器,因為是一個協同辦公軟件,其他用戶多數據進行操作需要實時更新,所以客戶端必然要和服務端保持一種長連接,方面進行數據交互,我們的實時推送服務是采用 Erlang 語言編寫的,感興趣的可以查看:https://worktile.com/tech/bas...

采用 Erlang 是因為我們的開發人員有這方面的經驗,并且Erlang非常適合做這個高并發實時推送服務。

如果你熟悉 Node.js 肯定知道 Sockiet.IO,我們最初的實時推送其實是采用 Sockiet.IO的,后來由于訪問量的增張,原有的Sockiet.IO 是基于Worktile Web站點的,沒有獨立成多帶帶的服務,重構的時候徹底采用Erlang重寫了。

其實這2種技術都非常優秀,選擇哪種主要取決于你擅長什么。

文件預覽服務

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

Box 文件服務

Worktile 中所有的文件存儲在阿里云的OSS上,為了做一些權限的認證和安全問題,我們通過一個Box服務做中轉,所有文件的上傳下載都是走 Box 服務。這要感謝 5樓的Box之父 @Shaun Xu 寫出了這么好的Box 服務。

以上是Worktile用的所有技術和架構簡單介紹。

Worktile 自上線以來用戶的增長也是非常迅速的,所以 Web服務器從原先的1臺變成多臺,數據庫從單實例到現在的集群,等等,關于目前Worktile的服務器結構圖參考如下:

您可以點擊Worktile技術博客查看更多干貨內容,歡迎訪問交流技術問題。

文章轉載請注明出處。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/18740.html

相關文章

  • 團隊協作工具 Worktile 技術架構揭秘

    摘要:現在已經成為的官方標準,如,以及的擴展協議。作者簡介李會軍,聯合創始人,關注團隊協作領域,致力于用工具解決中小團隊的協作問題。 Worktile自上線兩年多以來,以良好的用戶體驗和穩定的服務,獲得了用戶的認可和喜愛。截止筆者寫這篇文章的時候,已經有超過10萬家團隊在使用Worktile。作為團隊協作工具,從技術上分析首先要解決如下幾個問題: 基于Web的跨平臺設計,讓用戶在任何地方都...

    heartFollower 評論0 收藏0
  • Worktile 移動團隊如何使用 C++ 完成 Worktile Pro 跨平臺應用開發<2

    摘要:請求下來數據之后,我們使用了提供的進行解析,類化。示例代碼本篇我們將提供以及示例代碼來闡述我們上文中提到的用法。下一節下一節中我們將針對初創公司端技術團隊構建的一些問題來闡述我們的團隊如何構建以及運作的。 設計 網絡請求 - 解析數據 - 寫入緩存 - 讀取緩存 在上篇的文章中我們說明了我們在是在 MVC 層面的 M 層共享了代碼,不過對于只是有可能需要 OpenSDK 的團隊來說,更...

    seanHai 評論0 收藏0
  • 練習項目備選清單

    摘要:練習項目備選清單文件下載器功能概要設計實現新建下載功能以為基礎給出下載鏈接可以啟動下載任務實現局域網內下載傳輸文件以單線程下載方式實現附加功能支持斷點續傳實現多線程下載實現下載參考技術套接字編程多線程編程音視頻播放器功能概要設計實現播放常見 練習項目備選清單 Utilities 1. 文件下載器 功能概要設計: 實現新建下載功能(以ftp為基礎) 給出下載鏈接可以啟動下載任務 實現局...

    guyan0319 評論0 收藏0
  • 練習項目備選清單

    摘要:練習項目備選清單文件下載器功能概要設計實現新建下載功能以為基礎給出下載鏈接可以啟動下載任務實現局域網內下載傳輸文件以單線程下載方式實現附加功能支持斷點續傳實現多線程下載實現下載參考技術套接字編程多線程編程音視頻播放器功能概要設計實現播放常見 練習項目備選清單 Utilities 1. 文件下載器 功能概要設計: 實現新建下載功能(以ftp為基礎) 給出下載鏈接可以啟動下載任務 實現局...

    peixn 評論0 收藏0

發表評論

0條評論

史占廣

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<