一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

zerojs! 造出最好的 CMS 輪子

 icecity1306 2014-08-18

zerojs是一個基于nodejs、angularjs、git的CMS。在它之上可以繼續(xù)開發(fā)出博客、論壇、wiki等類似的內(nèi)容管理型系統(tǒng)。

  • 擁抱開發(fā)者和社區(qū)
    • 層次清晰,高度解耦。前后端即使分開也都是完全可獨立運行的系統(tǒng)。
    • 每一個層次都是用當前業(yè)界最流行的工具和方法作為底層,對開發(fā)者來說幾乎無學習成本。
    • 模塊、主題、套件體系簡單成熟,二次開發(fā)沒有坑。

后端架構(gòu)

zerojs 底層基于 sails。繼承了 sails 三大優(yōu)勢:

  • 強大的 Model 層。sails實現(xiàn)了自己的ORM,接口幾乎和 mongoose 完全一致,簡單易用。配合上社區(qū)統(tǒng)一的數(shù)據(jù)庫驅(qū)動,可完美支持mongo、mysql、redis、postgreSQL等等數(shù)據(jù)庫。ORM封裝完善,設(shè)置可以對單個model指定使用的數(shù)據(jù)庫。
  • 為model提供全自動的RESTful接口。實現(xiàn)聲明即可用。
  • controller 和 view 完全基于express實現(xiàn),無附加學習成本。

zerojs 的核心層包含了CMS最通用的功能,特點有三:

  • 內(nèi)容管理功能強大。zerojs為"內(nèi)容節(jié)點","分類與標簽"等核心概念建立了統(tǒng)一的抽象,為繼承者統(tǒng)一提供索引、摘要等功能。同時系統(tǒng)仍然非常開放,允許開發(fā)者聲明普通的model,然后通過mixin的方式使用部分功能。
  • 系統(tǒng)可擴展性高。幾乎在每個流程的關(guān)鍵動作處都使用了hook來支持擴展。例如“增、刪、改、查”的前前后后。同時在系統(tǒng)操作(例如記錄統(tǒng)計數(shù)據(jù))處都采用了選擇driver的方式來支持適合開發(fā)者的需求。
  • 對前端前無古人的友好。原生支持傳統(tǒng)模板渲染、前端MVVM框架渲染及混合渲染等多種方式。系統(tǒng)默認提供一整套angular模塊(包括登陸、注冊、節(jié)點增刪改查等)給開發(fā)者隨意組合使用,可實現(xiàn)幾乎 0 代碼的情況下將前端變成單頁應用。工程化問題(如靜態(tài)資源的壓縮打包)由系統(tǒng)自動根據(jù)當前環(huán)境完成。

zerojs 的擴展層基于git實現(xiàn),優(yōu)勢:

  • 代碼安全有保障,不會搞掛系統(tǒng)。
  • 一鍵即可在當前開發(fā)環(huán)境打包自己開發(fā)的新功能。無需手動整理。

 

以下是一個基于zerojs打造的博客系統(tǒng)基礎(chǔ)模塊示意圖:

 

前端架構(gòu)

前面已經(jīng)提到 zerojs 對前端提供的全部都是標準的 REST 接口,并且在 view 的渲染上支持多種方式。意味著前端完全可以自主開發(fā),甚至完全拋棄掉服務器端的view層,不在同一環(huán)境也可以。這里講的前端架構(gòu),主要是指zerojs默認提供的angular的前端架構(gòu)。下面分三個前端最關(guān)心的問題來講:

一、如何使用默認前模塊?

zerojs 為"用戶、節(jié)點、標簽、統(tǒng)計"等每一個主要功能都提供了一整套完善的angular模塊,并且都有默認的controller。很多時候,例如新增一種節(jié)點類型如“日記”,開發(fā)者需要做的僅僅是非常簡單的三步:

  1. 在后端聲明一下這個類型。
  2. 前端引入文件,
  3. 然后寫前端的模板文件就夠了。

即使要增加字段,都只要寫模板就夠了。默認模塊已經(jīng)經(jīng)過了各種場景的錘煉,功能非常完善。如果你真是遇到非常特別,一定要自己手動處理的地方,那你仍然可以大量復用默認模塊的service、filter等等。幾乎所有功能都被封裝到了service里。 非常值得注意的時,這些默認模塊和zerojs的后端沒有任何耦合!這意味著即使你要完全換成自己的后端,只要接口標準,那么這些模塊也都是可用的。

二、如何處理預加載的數(shù)據(jù)?

在做單頁應用的時候,常常為了節(jié)省請求、加速第一屏顯示速度而把讓服務器端提前把一些數(shù)據(jù)直接渲染在頁面上,例如"當前用戶的基本信息","第一屏數(shù)據(jù)"等。zerojs在處理view的時候,遇到"渲染單個節(jié)點"、"渲染節(jié)點列表"都會默認將節(jié)點內(nèi)容直接渲染到頁面上,在angular中,引入系統(tǒng)默認提供的preload模塊即可獲取到這些數(shù)據(jù)。不過仍然不用太操心,系統(tǒng)提供的節(jié)點增刪改查、列表渲染、單個節(jié)點渲染等默認angular模塊都已經(jīng)自動支持使用preload數(shù)據(jù)了。開發(fā)者還是只要正常寫模板就好。

三、前端腳本的模塊依賴、打包壓縮等如何處理?

這些問題都是工程問題,zerojs在生產(chǎn)環(huán)境會分析模板然后統(tǒng)一打包再注入到模板中。未來在view層可能會推出CDN模塊,對前端更友好!

 

 下面是一個基于zerojs打造的博客系統(tǒng),當然,毫不客氣地說要成為博客中的王者。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美日韩国产另类一区二区| 国产精品欧美在线观看| 日韩成人动作片在线观看| 午夜免费精品视频在线看| 日本精品最新字幕视频播放| 日韩免费国产91在线| 欧洲自拍偷拍一区二区| 自拍偷拍福利视频在线观看| av中文字幕一区二区三区在线| 色婷婷视频免费在线观看| 精品欧美国产一二三区| 都市激情小说在线一区二区三区| 亚洲视频在线观看免费中文字幕 | 亚洲品质一区二区三区| 中文久久乱码一区二区| 精品少妇人妻一区二区三区| 噜噜中文字幕一区二区| 日韩免费成人福利在线| 国产又粗又深又猛又爽又黄| 亚洲国产av国产av| 麻豆欧美精品国产综合久久| 激情国产白嫩美女在线观看| 欧美中文字幕日韩精品| 免费特黄一级一区二区三区| 欧美激情一区二区亚洲专区| 免费黄色一区二区三区| 亚洲一区二区三区四区性色av | 日韩夫妻午夜性生活视频| 日本一本不卡免费视频| 欧美在线观看视频免费不卡| 樱井知香黑人一区二区| 亚洲国产成人爱av在线播放下载| 九九九热视频免费观看| 日韩欧美国产精品中文字幕| 成年男女午夜久久久精品| 护士又紧又深又湿又爽的视频| 久久精品蜜桃一区二区av| 日韩精品中文字幕亚洲| 精产国品一二三区麻豆| 日本高清不卡一二三区| 一级欧美一级欧美在线播|