SlideShare a Scribd company logo
1 of 122
Download to read offline
老司機帶你上手 PostgreSQL 關聯式資料庫系統
Kewang, Funliday
Kewang
●
王慕羣 Kewang
●
Java / JavaScript
●
HBase / PostgreSQL / MongoDB / Elasticsearch
●
Git / DevOps
●
熱愛開源
Linkedin
Linkedin kewangtw
kewangtw
SlideShare
SlideShare kewang
kewang
Gmail
Gmail cpckewang
cpckewang
Facebook
Facebook Kewang 的資訊進化論
Kewang 的資訊進化論
devopsday taipei
devopsday taipei '17
'17
hadoopcon
hadoopcon '14 '15
'14 '15
jcconf
jcconf '16 '17 '18
'16 '17 '18
modernweb
modernweb '18 '19 '20
'18 '19 '20
GitHub
GitHub kewang
kewang
Funliday
Funliday kewang
kewang
mopcon
mopcon '14 '20
'14 '20
coscupcoscup '20'21'20'21
coscup
coscup '20 '21
'20 '21
4
本日大綱
5
本日大綱
6
本日大綱
1. Migration 資料庫版本管理
7
本日大綱
1. Migration 資料庫版本管理
2. Node.js 整合
8
本日大綱
1. Migration 資料庫版本管理
2. Node.js 整合
3. PostGIS 實務應用
9
本日大綱
1. Migration 資料庫版本管理
2. Node.js 整合
3. PostGIS 實務應用
4. DB 儲存資料用
10
本日大綱
1. Migration 資料庫版本管理
2. Node.js 整合
3. PostGIS 實務應用
4. DB 儲存資料用
5. Blurhash 顯示
11
開始
12
安裝 PostgreSQL - 主角
13
安裝 PostgreSQL - 主角
14
安裝 pgAdmin 4 - 管理介面
15
安裝 pgAdmin 4 - 管理介面
16
安裝 flyway - 資料庫版本管理
17
安裝 flyway - 資料庫版本管理
18
Migration 資料庫版本管理
19
Flyway
20
Flyway
1.資料庫版本管理
21
Flyway
1.資料庫版本管理
2.慣例優於設定
22
Flyway
1.資料庫版本管理
2.慣例優於設定
3.所有 DDL 都要版本管理
23
Flyway
1.資料庫版本管理
2.慣例優於設定
3.所有 DDL 都要版本管理
4.支援各種 RDBMS
24
conf/flyway.conf
25
conf/flyway.conf
26
flyway migrate
27
flyway migrate
28
flyway_schema_history
29
flyway_schema_history
30
DEMO 一下
31
Node.js 整合
32
node-postgres
33
node-postgres
1. Node.js 的 PostgreSQL client
34
node-postgres
1. Node.js 的 PostgreSQL client
2.支援 Promise (async/await)
35
慣例寫法
36
慣例寫法
37
慣例寫法
所有機密資料記得從 .env 取得
38
慣例寫法
所有機密資料記得從 .env 取得
application_name 方便識別
39
慣例寫法
所有機密資料記得從 .env 取得
操作 DB 都寫成 object 管理
application_name 方便識別
40
一次查詢多筆資料
41
一次查詢多筆資料
42
一次查詢多筆資料
使用 ANY 及 array 處理
43
一次查詢多筆資料
使用 ANY 及 array 處理
使用 array 帶入參數
44
取得 aggregate 內容
45
取得 aggregate 內容
46
取得 aggregate 內容
row 及 array_agg 組成 aggregation 內容
47
取得 aggregate 內容
row 及 array_agg 組成 aggregation 內容
array_to_json 讓 node-postgres 直接轉換 JSON
48
新增多筆資料
49
新增多筆資料
50
新增多筆資料
unnest 將 array 轉換為 row
51
新增多筆資料
unnest 將 array 轉換為 row
使用 array 寫入多筆資料
52
DEMO 一下
53
PostGIS 實務應用
54
PostGIS
55
PostGIS
1.讓 PostgreSQL 變成地理空間資料庫
56
PostGIS
1.讓 PostgreSQL 變成地理空間資料庫
2.可以使用各種 ST 函式操作空間資料
57
找出特定座標最近的 10 個景點
58
找出特定座標最近的 10 個景點
59
找出特定座標最近的 10 個景點
KNN 算法
60
找出特定座標的所在行政區
61
找出特定座標的所在行政區
62
找出特定座標的所在行政區
ST_Contains 算出包含特定座標的 geometry
63
DEMO 一下
64
DB 儲存資料用
65
DB 儲存資料用
66
DB 儲存資料用
1.使用者的行為,看文遠大於發文
67
DB 儲存資料用
1.使用者的行為,看文遠大於發文
2.硬碟便宜,空間換取時間
68
DB 儲存資料用
1.使用者的行為,看文遠大於發文
2.硬碟便宜,空間換取時間
3.單一動作多 table 操作,需加上 transaction
69
當做 cache
70
當做 cache
client AP Redis
DB
71
當做 cache
client AP Redis
DB
run
72
當做 cache
client AP Redis
DB
run get cache
73
當做 cache
client AP Redis
DB
run get cache
return cache
74
當做 cache
client AP Redis
DB
run get cache
return cache
if hits, get cache
75
當做 cache
client AP Redis
DB
run get cache
return cache
if hits, get cache
return cache
76
當做 cache
client AP Redis
DB
run get cache
return cache
if hits, get cache
return cache
if misses, store cache
77
當做 cache
client AP Redis
DB
run get cache
return cache
if hits, get cache
return cache
if misses, store cache
store OK
78
當做 cache
client AP Redis
DB
run get cache
return cache
if hits, get cache
return cache
done
if misses, store cache
store OK
79
不要重複計算 count
80
不要重複計算 count
舊設計
81
不要重複計算 count
舊設計
新設計
82
不要重複計算 count - 語法
83
不要重複計算 count - 語法
84
Blurhash 顯示
85
Blurhash
86
Blurhash
●
別讓你的 designer 笑你笨
87
Blurhash
●
別讓你的 designer 笑你笨
●
用有意義的色塊顯示在畫面上
88
Blurhash
●
別讓你的 designer 笑你笨
●
用有意義的色塊顯示在畫面上
●
別讓你的 DBA 笑你笨
89
Blurhash
●
別讓你的 designer 笑你笨
●
用有意義的色塊顯示在畫面上
●
別讓你的 DBA 笑你笨
●
用極短 (20 bytes) 的字串存入 DB
90
Blurhash
●
別讓你的 designer 笑你笨
●
用有意義的色塊顯示在畫面上
●
別讓你的 DBA 笑你笨
●
用極短 (20 bytes) 的字串存入 DB
91
Blurhash encode diagram
92
Blurhash encode diagram
client
CDN
S3
MQ
origin
DB
93
Blurhash encode diagram
client
CDN
S3
1. get image from CDN
MQ
origin
DB
94
Blurhash encode diagram
client
CDN
S3
1. get image from CDN
MQ
origin
2. get image from origin
DB
95
Blurhash encode diagram
client
CDN
S3
1. get image from CDN
MQ
origin
2. get image from origin
3
.
g
e
t
i
m
a
g
e
f
r
o
m
S
3
DB
96
Blurhash encode diagram
client
CDN
S3
1. get image from CDN
MQ
origin
2. get image from origin
4.push
im
age id
to
M
Q
3
.
g
e
t
i
m
a
g
e
f
r
o
m
S
3
DB
97
Blurhash encode diagram
client
CDN
S3
1. get image from CDN
MQ 5. get image from S3
origin
2. get image from origin
4.push
im
age id
to
M
Q
3
.
g
e
t
i
m
a
g
e
f
r
o
m
S
3
DB
98
Blurhash encode diagram
client
CDN
S3
1. get image from CDN
MQ 5. get image from S3
6. store blurhash to DB
origin
2. get image from origin
4.push
im
age id
to
M
Q
3
.
g
e
t
i
m
a
g
e
f
r
o
m
S
3
DB
99
Blurhash encode package
100
Blurhash encode package
101
Blurhash encode package
High performance Node.js image processing
102
Blurhash encode package
High performance Node.js image processing
A very compact representation of a placeholder for an image
103
Blurhash encode source code
104
Blurhash encode source code
105
Blurhash encode source code
轉成 jpeg 降低檔案大小
106
Blurhash encode source code
轉成 jpeg 降低檔案大小
縮小尺寸降低檔案大小
107
Blurhash encode source code
轉成 jpeg 降低檔案大小
縮小尺寸降低檔案大小
加入透明度確保 encode 不會失敗
108
Blurhash encode source code
轉成 jpeg 降低檔案大小
縮小尺寸降低檔案大小
加入透明度確保 encode 不會失敗
轉成 bitmap
109
Blurhash encode source code
轉成 jpeg 降低檔案大小
縮小尺寸降低檔案大小
加入透明度確保 encode 不會失敗
轉成 bitmap
Blurhash encode
110
Blurhash encode source code
轉成 jpeg 降低檔案大小
縮小尺寸降低檔案大小
加入透明度確保 encode 不會失敗
轉成 bitmap
Blurhash encode
將 blurhash 存入資料庫
111
Blurhash decode diagram
112
Blurhash decode diagram
client
server
CDN
DB
113
Blurhash decode diagram
client
server
1. send API request to server
CDN
DB
114
Blurhash decode diagram
client
server
1. send API request to server
CDN
DB
2. get blurhash & data from DB
115
Blurhash decode diagram
client
server
1. send API request to server
CDN
DB
2. get blurhash & data from DB
3. get image from CDN
116
DEMO 一下
117
講完了
118
想看更多
119
想看更多
●
https://www.facebook.com/kewang.information
●
https://techblog.funliday.com
120
工商時間
121
工商時間
https://hahow.in/cr/kewang-backend https://bit.ly/3AueOxt
122

More Related Content

What's hot

你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事Mu Chun Wang
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops琛琳 饶
 
DNS协议与应用简介
DNS协议与应用简介DNS协议与应用简介
DNS协议与应用简介琛琳 饶
 
Yet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upYet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upWen-Tien Chang
 
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南Shengyou Fan
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践rewinx
 
JCConf2015: groovy to gradle
 JCConf2015: groovy to gradle JCConf2015: groovy to gradle
JCConf2015: groovy to gradleChing Yi Chan
 
高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用redhat9
 
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 GradleJustin Lin
 
Git basis - usage
Git basis - usageGit basis - usage
Git basis - usageEason Cao
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战rfyiamcool
 
独爽不如众乐
独爽不如众乐独爽不如众乐
独爽不如众乐Zheng Biao
 
Golang advance
Golang advanceGolang advance
Golang advancerfyiamcool
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)振揚 陳
 
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CIContinuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CIChu-Siang Lai
 
gRPC - 打造輕量、高效能的後端服務
gRPC - 打造輕量、高效能的後端服務gRPC - 打造輕量、高效能的後端服務
gRPC - 打造輕量、高效能的後端服務升煌 黃
 
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)Chu-Siang Lai
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡cachowu
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用謝 宗穎
 
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIContinuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIChu-Siang Lai
 

What's hot (20)

你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops
 
DNS协议与应用简介
DNS协议与应用简介DNS协议与应用简介
DNS协议与应用简介
 
Yet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom upYet another introduction to Git - from the bottom up
Yet another introduction to Git - from the bottom up
 
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
JCConf2015: groovy to gradle
 JCConf2015: groovy to gradle JCConf2015: groovy to gradle
JCConf2015: groovy to gradle
 
高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用
 
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
 
Git basis - usage
Git basis - usageGit basis - usage
Git basis - usage
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战
 
独爽不如众乐
独爽不如众乐独爽不如众乐
独爽不如众乐
 
Golang advance
Golang advanceGolang advance
Golang advance
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)
 
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CIContinuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
 
gRPC - 打造輕量、高效能的後端服務
gRPC - 打造輕量、高效能的後端服務gRPC - 打造輕量、高效能的後端服務
gRPC - 打造輕量、高效能的後端服務
 
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
Continuous Delivery Workshop with Ansible x GitLab CI (2nd)
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用
 
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIContinuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CI
 

Similar to 老司機帶你上手 PostgreSQL 關聯式資料庫系統

如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進Mu Chun Wang
 
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Chu-Siang Lai
 
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践Jackson Tian
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)Chu-Siang Lai
 
手机腾讯网Js资源版本增量更新方案w3ctech
手机腾讯网Js资源版本增量更新方案w3ctech 手机腾讯网Js资源版本增量更新方案w3ctech
手机腾讯网Js资源版本增量更新方案w3ctech luyongfugx
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發Fred Chien
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocompleteMu Chun Wang
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocitykumawu
 
使用Big pipe提升浏览速度v2
使用Big pipe提升浏览速度v2使用Big pipe提升浏览速度v2
使用Big pipe提升浏览速度v2kumawu
 
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代scott liao
 
Go for web
Go for webGo for web
Go for webWeng Wei
 
GIT實務操作與理論
GIT實務操作與理論GIT實務操作與理論
GIT實務操作與理論鵬 大
 
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器jay li
 
關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版Kirk Chen
 
twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解twMVC
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术团队
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境Will Huang
 
「設計」在工程師職涯中 扮演的角色
「設計」在工程師職涯中 扮演的角色「設計」在工程師職涯中 扮演的角色
「設計」在工程師職涯中 扮演的角色Chris Wang
 
.Net网络编程入门
.Net网络编程入门.Net网络编程入门
.Net网络编程入门magicshui
 

Similar to 老司機帶你上手 PostgreSQL 關聯式資料庫系統 (20)

如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進
 
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
 
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 
手机腾讯网Js资源版本增量更新方案w3ctech
手机腾讯网Js资源版本增量更新方案w3ctech 手机腾讯网Js资源版本增量更新方案w3ctech
手机腾讯网Js资源版本增量更新方案w3ctech
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocomplete
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity
 
Cocoa on Rails 4th
Cocoa on Rails 4thCocoa on Rails 4th
Cocoa on Rails 4th
 
使用Big pipe提升浏览速度v2
使用Big pipe提升浏览速度v2使用Big pipe提升浏览速度v2
使用Big pipe提升浏览速度v2
 
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
 
Go for web
Go for webGo for web
Go for web
 
GIT實務操作與理論
GIT實務操作與理論GIT實務操作與理論
GIT實務操作與理論
 
深入剖析浏览器
深入剖析浏览器深入剖析浏览器
深入剖析浏览器
 
關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版關於 Javascript 非同步的那些事兒 公開版
關於 Javascript 非同步的那些事兒 公開版
 
twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
 
「設計」在工程師職涯中 扮演的角色
「設計」在工程師職涯中 扮演的角色「設計」在工程師職涯中 扮演的角色
「設計」在工程師職涯中 扮演的角色
 
.Net网络编程入门
.Net网络编程入门.Net网络编程入门
.Net网络编程入门
 

More from Mu Chun Wang

大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度Mu Chun Wang
 
如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件Mu Chun Wang
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題Mu Chun Wang
 
Git 可以做到的事
Git 可以做到的事Git 可以做到的事
Git 可以做到的事Mu Chun Wang
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌Mu Chun Wang
 
API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一Mu Chun Wang
 
團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作Mu Chun Wang
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務Mu Chun Wang
 
你有想過畢業九年後的你會變什麼樣子嗎?
你有想過畢業九年後的你會變什麼樣子嗎?你有想過畢業九年後的你會變什麼樣子嗎?
你有想過畢業九年後的你會變什麼樣子嗎?Mu Chun Wang
 
HR Search - 輕鬆管理面試者
HR Search - 輕鬆管理面試者HR Search - 輕鬆管理面試者
HR Search - 輕鬆管理面試者Mu Chun Wang
 
Hedis - GET HBase via Redis
Hedis - GET HBase via RedisHedis - GET HBase via Redis
Hedis - GET HBase via RedisMu Chun Wang
 
104學年度行動裝置程式設計課程說明
104學年度行動裝置程式設計課程說明104學年度行動裝置程式設計課程說明
104學年度行動裝置程式設計課程說明Mu Chun Wang
 
Webduino introduction
Webduino introductionWebduino introduction
Webduino introductionMu Chun Wang
 
Firebase introduction
Firebase introductionFirebase introduction
Firebase introductionMu Chun Wang
 
How to build a scalable SNS via Polling & Push
How to build a scalable SNS via Polling & PushHow to build a scalable SNS via Polling & Push
How to build a scalable SNS via Polling & PushMu Chun Wang
 
How to build a scalable SNS using HBase
How to build a scalable SNS using HBaseHow to build a scalable SNS using HBase
How to build a scalable SNS using HBaseMu Chun Wang
 

More from Mu Chun Wang (19)

大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
 
如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
 
Git 可以做到的事
Git 可以做到的事Git 可以做到的事
Git 可以做到的事
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
 
API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一
 
團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作
 
Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
 
你有想過畢業九年後的你會變什麼樣子嗎?
你有想過畢業九年後的你會變什麼樣子嗎?你有想過畢業九年後的你會變什麼樣子嗎?
你有想過畢業九年後的你會變什麼樣子嗎?
 
HR Search - 輕鬆管理面試者
HR Search - 輕鬆管理面試者HR Search - 輕鬆管理面試者
HR Search - 輕鬆管理面試者
 
Hedis - GET HBase via Redis
Hedis - GET HBase via RedisHedis - GET HBase via Redis
Hedis - GET HBase via Redis
 
104學年度行動裝置程式設計課程說明
104學年度行動裝置程式設計課程說明104學年度行動裝置程式設計課程說明
104學年度行動裝置程式設計課程說明
 
Webduino introduction
Webduino introductionWebduino introduction
Webduino introduction
 
Lightning Hedis
Lightning HedisLightning Hedis
Lightning Hedis
 
職涯之路
職涯之路職涯之路
職涯之路
 
Firebase introduction
Firebase introductionFirebase introduction
Firebase introduction
 
How to build a scalable SNS via Polling & Push
How to build a scalable SNS via Polling & PushHow to build a scalable SNS via Polling & Push
How to build a scalable SNS via Polling & Push
 
How to build a scalable SNS using HBase
How to build a scalable SNS using HBaseHow to build a scalable SNS using HBase
How to build a scalable SNS using HBase
 

老司機帶你上手 PostgreSQL 關聯式資料庫系統