如何選擇 Web Framework
Bo-Yi Wu
2016.01.22
1
About me
• Blog: https://blog.wu-boy.com/
• Github: https://github.com/appleboy
• 台灣 Laravel 推廣
• 台灣 CodeIgniter 推廣
2
選擇 Framework 原因
• 使用情境
• 軟體架構
• 主機部署
• 安裝及開發
• 學習曲線
• 核心功能
• 資料庫 ORM
• 前端開發
• 測試
• 文件
• 社群活動
• 團隊合作
3
4
使用情境
Usage Context
5
您不需要 Framework
• 只是為了讓 URL 更漂亮?
• 只是需要部分功能 (像是 ORM, Validation)
• 為了 Framework 而活 (被 Framework 洗
腦)
6
您需要 Framework
• 您需要的 CRUD 架構 (API)
• 您需要 UI Template 架構 (前端 UI, UX)
• 您需要 Authentication, Session, Cache,
Middleware, ORM, 第三方服務整合
• 您需要短時間打造一個 CMS 或 Blog 平台
7
軟體架構
Software Architecture
8
軟體架構
• 符合 MVC 結構
– Routing
– Middleware
– Controller
– Model
– View
• 制定 Coding Style 規範
9
主機部署
Hosting and Deploy
10
需求
• 主機需求
• 部署方式
– 壓縮 CSS, JavaScript
– 自動變更檔名
– 上傳 AWS
11
安裝及開發
Installation and Development
12
安裝及開發
• 環境安裝
– Windows
– OSX
– Linux
13
學習曲線
Learning Curve
14
學習曲線
• 網路上學習資源是否多
• 國內是否有神人推廣
15
核心功能
Core Library
16
核心功能
• Routing
• Middleware
• Controller, View, Model
• Template Engine
• Authentication
• Cache
• Mail
• i18N
• ORM
• Data Validation
17
資料庫 ORM
Database ORM
18
ORM
• 務必 Dump Query 看 ORM 組出的 SQL 語
法
• 不要太相信 ORM Performance
19
前端開發
Frontend Development
20
前端開發
• Webpack, Coffeescript, Browserify,
Babel
• React, Angular, Backbone
• Sass, Less, PostCSS
• BrowserSync
21
測試
Testing
22
測試
• 前端測試
• 後端測試
23
沒寫測試
別跟我說程式架構有多好
尤其是後端商業邏輯
24
文件
Documentation
25
文件
• 是否淺顯易懂
• 如何快速寫出 Hello World
26
社群活動
Open Source Community
27
社群活動
• 國內外推廣活動
• Github commit history
• Github Star 數量
• 作者是否常常消失 (不處理 Issue)
28
團隊合作
好的 Framework 讓前後端合作無間
29
Q & A
END
30

How to choose web framework