Home | 簡體中文 | 繁體中文 | 雜文 | Search | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Email

第 14 章 Framework Design

目錄

14.1. 開發框架 Framework
14.1.1. HMVC
14.1.2. REST
14.1.3. SNA (Shared Nothing Architecture)
14.1.4. 其他
14.2. MVC Framework Design (設計MVC框架)
14.2.1. HMVC Framework
14.3. REST
14.3.1. RESTful JSON API
14.3.2. Ajax 與 RESTful 跨域
14.4. Service-oriented architecture (SOA)
14.4.1. SOAP實現
14.4.2. MQ 實現
14.5. Dispatcher MVC核心分發器
14.5.1. URL設計
14.5.1.1. URL 作為MVC 的Controller
14.5.1.2. URL 偽靜態化,用於SEO優化
14.5.2. Dispatcher 的實現方式
14.6. Plugin & Hook 設計與實現
14.6.1. 插件管理平台
14.6.2. 介面定義
14.6.3. 插件
14.6.4. 測試
14.7. Interface
14.7.1. 訪問介面協議
14.7.2. 介面性能問題
14.7.3. 介面安全問題
14.7.3.1. 訪問權限
14.8. Javascript Framework
14.8.1. Minify JS
14.8.1.1. jsmin
14.8.1.2. yuicompressor
14.8.1.3. shrinksafe
14.9. 模板(template)
14.9.1. HTML 頁面優化
14.10. Session/Cookie
14.10.1. Session
14.10.2. Session 共享
14.10.3. Cookie
14.10.3.1. Cookie 安全
14.10.3.2. cookie-free domains
14.10.3.3. P3P
14.11. 國際化 Locale database。
14.11.1. Unicode
14.11.2. 繁簡轉換
14.12. 資料庫訪問
14.12.1. CRUD
14.12.2. Active Record
14.12.3. OR Mapping
14.13. Cache
14.13.1. 頁面緩存
14.13.2. 局部緩存
14.14. Single sign-on (SSO) 單點登錄
14.15. 搜索引擎
14.16. Synchronous/Asynchronous
14.17. Message Queuing
14.18. Hash
14.19. Sharding 垂直/水平切割
14.19.1. 面向服務
14.19.2. 面向資料庫
14.20. 日誌系統
14.21. Cache
14.21.1. CDN (Content Delivery Network) 與反向代理
14.21.1.1. CDN介面API
14.21.1.2. 方向代理頁面過期處理
14.21.1.3. 內容版本化
14.21.2. HTTP Cache
14.21.2.1. 在程序中靈活操作 Cache-Control
14.21.2.2. 非程序檔案緩存處理
14.21.3. Cache 生存時間
14.22. i18n 國際化
14.22.1. 數組方式
14.22.2. 資料庫方式
14.22.3. 檔案檔案
14.22.4. Gettext
14.22.5. 資料結構
14.23. RSS / ATom
14.23.1. Atom
14.24. Logging 日誌
14.24.1. 日誌的格式
14.24.2. 日誌存貯
14.24.2.1. 本地存儲
14.24.2.2. 遠程存儲
14.24.3. Log4cpp/Log4j/Log2PHP
14.24.4. Remote Syslog
14.25. Search
14.25.1. 搜索結果靜態化
14.25.2. SEO Module
14.25.2.1. robots.txt
14.25.2.2. sitemaps
14.26. debug
14.27. 性能優化
14.27.1. 儘量使用單引號

14.1. 開發框架 Framework

選擇一個好的開發框架,很重要。不過大部分框架都針對於軟件開發,而我們要的是輕量級,適合高負載,靈活的框架。

框架的分類

  • 本地框架HMVC,MTV
  • 遠程框架SOA/REST
  • 混合框架

上面框架可以滿足我們絶大多數需求,如URL定義,Session/Cookie管理,多語言國際化,資料庫訪問等等。

Java和.Net我沒有太多的經驗,php我有10+年經驗,我在各種框架之間做比較發現CodeIgniter框架比較適合我們的需求。

框架是沒有100%完美的,你仍需要對它進行二次開發。如果你有充足的時間,針對自身繫統系統的特點設計一個更適合您網站的框架,這是最好的選擇。

設計一個框架需要用到很多知識,需要有豐富的經驗。目前主流框架都是基于MVC設計思想,要設計一個框架你必須瞭解MVC (Model-View-Controller) 參考:http://www.itisedu.com/phrase/200604231324325.html

開發一個框架包括那些重點呢,下面我把一些要點一一列出,然後一個個地突破,我這裡使用php為例子,上面我已經說過語言只是工具,所以學習是設計思想,不要拘泥于語言:

  • JS封裝(javascript)

  • 模板(template)

  • url

  • session/cookie

  • 語言包(language package)

  • 編碼(unicode)

  • 資料庫訪問(database OR Mapping)

  • 權限(Permission)

如果重新開發一個框架,我認為太現實,我的建議使用現有pear庫,搭建一個MVC框架。例如:

  • Model(pear db)

  • View(smarty template)

  • Controller (pathinfo)

14.1.1. HMVC

  • Python web2py

  • Php CakePHP,Zend,CodeIgniter

  • Perl Catalyst

  • Java Struts,Spring MVC

  • ruby on rails

14.1.2. REST

  • Python Pylons

  • ruby on rails

14.1.3. SNA (Shared Nothing Architecture)

14.1.4. 其他

  • Python Django 是一個MTV框架

  • .Net Framework