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