【go】腦補架構 Express beego tornado Flux reFlux React jsx jpg-ios出品

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

http://goexpresstravel.com/

 

今天 Express 的作者 TJ Holowaychuk 發了一篇文章,正式宣告和 Node.js 拜拜了,轉向 Go 語言。

Go verses Node

如果你在做分布式工作,你會發現 Go 語言豐富的並發原語非常有協助。雖然我們用 Node 的 generator 也可以做類似的事,但在我看來,generator 永遠只能做一半。沒有獨立的棧錯誤處理和報告,充其量是中等。我也不想再等(Node)社區花3 年去整理(改善),尤其是我們已經有了可用並不錯的解決方案。

在我看來,Go 語言的錯誤處理非常出色。必須考慮每個錯誤,決定該怎麼做,Node 在這方面挺好的。不過 Node 在下面這些方面,就……

  • you may get duplicate callbacks

  • ou may not get a callback at all

  • you may get out-of-bound errors

  • emitters may get multiple “error” events

  • missing “error” events sends everything to hell

  • often unsure what requires “error” handlers

  • “error” handlers are very verbose

  • callbacks suck

當然了,作者也說了,NodeJS 也挺好,但他在目前項目中是沒興趣再用了。他轉向 Go 語言,也並不意味著 Go 就完美無缺。

另外,因為放棄 NodeJS,作者在找人維護。

 

beego是一個用Go開發的應用程式框架,思路來自於tornado,路由設計來源於sinatra,支援如下特性

  1. MVC

  2. REST

  3. 智能路由

  4. 日誌調試

  5. 組態管理

  6. 模板自動渲染

  7. layout設計

  8. 中介軟體插入邏輯

  9. 方便的JSON/XML服務

官網 http://beego.me

快速入門代碼如下所示:

package main import (    "github.com/astaxie/beego") type MainController struct {    beego.Controller} func (this *MainController) Get() {    this.Ctx.WriteString("hello world")} func main() {    beego.Router("/", &MainController{})    beego.Run()}

 

 

補腦:

Tornado 是 FriendFeed 使用的可擴充的非阻塞式 網頁伺服器及其相關工具的開源版本。這個 Web 架構看起來有些像web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式伺服器環境,這個 Web 架構還包含了一些相關的有用工具 和最佳化。

Tornado 和現在的主流 Web 服務器架構(包括大多數 Python 的架構)有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。得利於其 非阻塞的方式和對 epoll 的運用,Tornado 每秒可以處理數以千計的串連,這意味著對於即時 Web 服務來說,Tornado 是一個理想的 Web 架構。我們開發這個 Web 服務器的主要目的就是為了處理 FriendFeed 的即時功能 ——在 FriendFeed 的應用裡每一個活動使用者都會保持著一個伺服器串連。(關於如何擴容 伺服器,以處理數以千計的用戶端的串連的問題,請參閱 C10K problem。)

請參見 Tornado 文檔 或 Tornado 原文文檔(鏡像)以詳細瞭解該 Web 架構。

 

 

 

Flux 是一個Facebook開發的、利用單向資料流實現的應用架構,用於 React。Flux應用有三個主要的部分組成:發送器、儲存和視圖(React 組件)。

Facebook工程經理Tom Occhino說,由於他們“非常巨大”的程式碼程式庫和龐大的組織,因而需要“以某種方式使代碼結構化,使其更加可預測”。這已經通過 Flux 和 React 完成。Flux是一個系統架構,用於推進應用中的資料單向流動。React是一個JavaScript架構,用於構建“可預期的”和“聲明式的”Web使用者介面,它已經使Facebook更快地開發Web應用。 

Flux 應用樣本:

  • 簡單的例子:TodoMVC

  • 複雜一點的例子:聊天用戶端 

Flux 一個資料流周期:

Views ---> (actions) ----> Dispatcher ---> (registered callback) ---> Stores -------+Ʌ                                                                                   ||                                                                                   V+-- (Controller-Views "change" event handlers) ---- (Stores emit "change" events) --+

Flux 相關文檔:

  • 一個用於React的應用架構

  • Flux 架構

  • TodoMVC 指南

 

還有reflux

 

 

 

 

 

 

 

 

React入門:關於JSX文法

發表於 2015年04月29日 by 愚人碼頭 被瀏覽 1,985 次

JSX文法,像是在Javascript代碼裡直接寫XML的文法,實質上這隻是一個文法糖,每一個XML標籤都會被JSX轉換工具轉換成純Javascript代碼,React 官方推薦使用JSX, 當然你想直接使用純Javascript代碼寫也是可以的,只是使用JSX,組件的結構和組件之間的關係看上去更加清晰。

看代碼:

  1. //使用JSX
  2. React.render(
  3. <div>
  4. <div>
  5. <div>content</div>
  6. </div>
  7. </div>,
  8. document.getElementById('example')
  9. );
  10.  
  11. //不使用JSX
  12. React.render(
  13. React.createElement('div', null,
  14. React.createElement('div', null,
  15. React.createElement('div', null, 'content')
  16. )
  17. ),
  18. document.getElementById('example')
  19. );

那麼也就是說,我們寫一個XML標籤,實質上就是在調用React.createElement這個方法,並返回一個ReactElement對象。

查看API:http://www.css88.com/react/docs/top-level-api.html#react.createelement

  1. ReactElement createElement(
  2. string/ReactClass type,
  3. [object props],
  4. [children ...]
  5. )

這個方法的第一個參數可以是一個字串,表示是一個HTML標準內的元素,或者是一個ReactClass類型的對象,表示我們之前封裝好的自訂群組件。第二個參數是一個對象,或者說是字典也可以,它儲存了這個元素的所有固有屬性(即傳入後基本不會改變的值)。從第三個參數開始,之後的參數都被認作是元素的子項目。

轉化

React JSX將類似XML的文法轉化到原生的JavaScript,元素的標籤、屬性和子項目都會被當作參數傳給React.createElement方法: Continue reading →

 

 

---Koa -- 基於 Node.js 平台的下一代 web 開發架構

 

koa 是由 Express 原班人馬打造的,致力於成為一個更小、更富有表現力、更健壯的 Web 架構。使用 koa 編寫 web 應用,通過組合不同的 generator,可以免除重複繁瑣的回呼函數嵌套,並極大地提升錯誤處理的效率。koa 不在核心方法中綁定任何中介軟體,它僅僅提供了一個輕量優雅的函數庫,使得編寫 Web 應用程式變得得心應手。

 

 

JPEG (Joint Photographic Experts GROUP)是由國際標準組織(ISO:International Standardization Organization)和國際電話電報諮詢委員會(CCITT:Consultation Commitee of the International Telephone and Telegraph)為靜態映像所建立的第一個國際數位影像壓縮標準,也是至今一直在使用的、應用最廣的映像壓縮標準。JPEG由於可以提供有損壓縮,因此壓縮比可以達到其他傳統壓縮演算法無法比擬的程度。

 

 

opc

  • 工業標準OLE for Process Control
  • 有機光導體OrganicPhotoconductor
  • 原花青素OPC
  • 超速保護控制
  • 光學鄰近效應校正
  • 普通矽酸鹽水泥
  • 源信令點編碼
  • DNA純化手段
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.