Home | Mirror | Search

第 14 章 Framework Design

目錄

1. 開發框架 Framework
1.1. HMVC
1.2. REST
1.3. SNA (Shared Nothing Architecture)
1.4. 其他
2. MVC Framework Design (設計MVC框架)
3. HMVC Framework
4. REST
4.1. RESTful JSON API
5. Dispatcher MVC核心分發器
5.1. URL設計
5.1.1. URL 作為MVC 的Controller
5.1.2. URL 偽靜態化,用於SEO優化
5.2. Dispatcher 的實現方式
6. Plugin & Hook 設計與實現
6.1. 插件管理平台
6.2. 介面定義
6.3. 插件
6.4. 測試
7. Interface
7.1. 介面安全問題
7.2. 訪問介面協議
7.3. 介面性能問題
8. Javascript Framework
8.1. Minify JS
8.1.1. jsmin
8.1.2. yuicompressor
8.1.3. shrinksafe
9. 模板(template)
9.1. HTML 頁面優化
10. Session/Cookie
10.1. Session
10.2. Session 共享
10.3. Cookie
10.4. Cookie 安全
10.5. cookie-free domains
11. 國際化 Locale database。
11.1. Unicode
11.2. 繁簡轉換
12. 資料庫訪問
12.1. CRUD
12.2. Active Record
12.3. OR Mapping
13. Cache
13.1. 頁面緩存
13.2. 局部緩存
14. Single sign-on (SSO) 單點登錄
15. 搜索引擎
16. Synchronous/Asynchronous
17. Message Queuing
18. Hash
19. Sharding 垂直/水平切割
19.1. 面向服務
19.2. 面向資料庫
20. 日誌系統
21. Cache
21.1. CDN (Content Delivery Network) 與反向代理
21.1.1. CDN介面API
21.1.2. 方向代理頁面過期處理
21.1.3. 內容版本化
21.2. HTTP Cache
21.2.1. 在程序中靈活操作 Cache-Control
21.2.2. 非程序檔案緩存處理
21.3. Cache 生存時間
22. i18n 國際化
22.1. 數組方式
22.2. 資料庫方式
22.3. 檔案檔案
22.4. Gettext
22.5. 資料結構
23. RSS / ATom
23.1. Atom
24. Logging
25. Search
25.1. 搜索結果靜態化
25.2. SEO Module
25.2.1. robots.txt
25.2.1.1. Sitemap in robots.txt
25.2.2. sitemaps
26. 性能優化
26.1. 儘量使用單引號
27. 信息安全
27.1. CSRF(Cross-site request forgery)跨站請求偽造
27.2. 用戶註冊與登錄安全
27.3. 目錄檔案與權限
27.3.1. 讀寫權限
27.3.2. 訪問權限
27.4. 密碼安全
27.5. 注入檢查
27.6. 防止惡意刷新與重複提交
27.7. 屏蔽出錯信息
27.7.1. 屏蔽php出錯信息
27.8. 環境安全
27.8.1. 開發環境
27.8.2. 測試環境
27.8.3. 程序
27.8.4. 資料庫
28. debug

1. 開發框架 Framework

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

框架的分類

  • HMVC
  • 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)

1.1. HMVC

  • Python web2py

  • Php CakePHP,Zend,CodeIgniter

  • Perl Catalyst

  • Java Struts,Spring MVC

  • ruby on rails

1.2. REST

  • Python Pylons

  • ruby on rails

1.3. SNA (Shared Nothing Architecture)

1.4. 其他

  • Python Django 是一個MTV框架

  • .Net Framework

comments powered by Disqus