SlideShare a Scribd company logo
1 of 33
K.NET - 版控實務
Robin 2016-09-03
約耳測試 – 高品質軟體團隊評分
1. 你有使用原始碼控制系統嗎?
2. 你能用一個步驟建出所有結
果嗎?
3. 你有沒有每天都重新編譯建
立(daily builds)嗎?
4. 你有沒有問題追蹤資料庫
(bug database)?
5. 你會先把問題都修好之後才
寫新的程式嗎?
6. 你有一份最新的時程表嗎?
7. 你有規格嗎?
8. 程式人員有沒有安靜的工作
環境?
9. 你有沒有用市面上最好的工
具?
10.你有沒有測試人員?
11.有沒有在面試時要求面試者
寫程式?
12.有沒有做走廊使用性測試?
(hallway usability)
綱要
案例
發行
流程
資料庫設計
的版控
原始碼與
工作整合
Code
Review
分支
策略
版控
範圍
版控平台
選擇
團隊
默契
Q & A
agenda
發行流程
▪ 程式發行流程
DEV  QAS  BS-Line  Production
▪ 版控分支
–DEV
–Main
–(其他)
agenda
發行流程需考量
▪ BUG 可立即修正後發佈
▪ 分支主從關係設計,降低衝突處理
▪ 開發者接獲工作時,知道從哪個分支下手
agenda
資料庫設計的版控
▪ 資料庫設計流程
–資料表、檢視  PowerDesigner
–預存程序、觸發  SSMS+VS 資料庫專案
–資料內容
▪ 資料庫版控作法
▪ 如何程式碼版本同步
agenda
資料庫設計步驟
1.PowerDesigner 設計資料表
2.SSMS 在開發環境資料庫上執行
3.使用預存建立關聯與觸發
4.從DEV資料庫比對更新到專案
5.VS 專案簽入
agenda
原始碼與工作整合
▪ 開發流程
–需求/Bug  工作原始碼
▪ 日後檢閱
–原始碼工作需求/Bug
agenda
原始碼與工作整合的好處
▪ 程式碼中不需註解商業流程
▪ 增強搜尋關聯性
–工作 與 程式碼
agenda
Code Review
▪ VSTS 作法
▪ 簽入後擇日檢閱
agenda
Code Review in Visual Studio
▪ 開發者發出要求
▪ 審核者在原始碼上註解/修改建議
▪ 開發者取得修改建議
agenda
團隊默契
▪ SOP 目的
▪ 內部術語: 簽入、合併
▪ 節少浪費(時間)
▪ 取代重複性作業
agenda
簽入三步驟
▪ 從 Server 取得最新版到本機
▪ 在本機端建置與測試
▪ 簽入
agenda
版控平台選擇
▪ 自建
–佈建實體伺服器
▪ 雲端服務
–VSTS
–Git Hub
下班後辦公室燒毀了,會擔心失去了甚麼?
agenda
版控範圍
▪ 除程式碼外,那些需要納入版控 ?
–需求文件
–HTML 設計稿
–資料庫設計
–資料庫的資料
agenda
文件版控平台選擇
▪ 文管系統
▪ 雲端服務
▪ 與程式碼平台共用
agenda
非程式碼版控需要:
▪ 做衝突處理 ?
▪ 版本還原 ?
▪ 簽出修改,再簽入 ?
▪ 與發行版本有關 ?
agenda
分支策略
▪ 需求與 Bug 分支
▪ 區分模組
▪ 區分專案/客戶別
▪ 核心模組 與 引用專案
agenda
子專案參考內部Library/Framework
▪ Visual Studio 專案DLL參考
▪ NuGet 更新
▪ 發行時合併 (尚未嘗試)
結語
所有掌握最新科技、工
具的人,
會將看不懂、看不起這
些工具的人,
撂下一大截。
/ 逻辑思维
agenda
Q & A
▪ 已簽入錯誤程式,如何處置 ?
▪ 已發行錯誤軟體,如何處置 ?

More Related Content

Similar to 版控實務

歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列Chris Wang
 
2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生appuniverz
 
敏捷测试中的工具实现
敏捷测试中的工具实现敏捷测试中的工具实现
敏捷测试中的工具实现drewz lin
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)Rick Hwang
 
2017-refactoring-01-簡介
2017-refactoring-01-簡介2017-refactoring-01-簡介
2017-refactoring-01-簡介Shang-Pin Ma
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章浒 刘
 
Qa engineer training
Qa engineer trainingQa engineer training
Qa engineer trainingychw365
 
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗ryan4task
 
柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试Trinea Trinea
 
這些年,我寫 Angular 時所使用的小技巧
這些年,我寫 Angular 時所使用的小技巧這些年,我寫 Angular 時所使用的小技巧
這些年,我寫 Angular 時所使用的小技巧志龍 陳
 
Recycle Open Source Projects
Recycle Open Source ProjectsRecycle Open Source Projects
Recycle Open Source ProjectsGeorge Ang
 
2006 recycle opensourceprojects
2006 recycle opensourceprojects2006 recycle opensourceprojects
2006 recycle opensourceprojectsGeorge Ang
 
React-Native share
React-Native shareReact-Native share
React-Native shareEddie Hsu
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressAppzhoujg
 
应用开发一般工作流程和注意
应用开发一般工作流程和注意应用开发一般工作流程和注意
应用开发一般工作流程和注意cucued
 
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)Chen Cheng-Wei
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous deliveryQiao Liang
 
DevOps Days Taipei 2018
DevOps Days Taipei 2018DevOps Days Taipei 2018
DevOps Days Taipei 2018Cobra Chen
 
面試心得
面試心得面試心得
面試心得澐 向
 

Similar to 版控實務 (20)

歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列
 
Xpp
XppXpp
Xpp
 
2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生
 
敏捷测试中的工具实现
敏捷测试中的工具实现敏捷测试中的工具实现
敏捷测试中的工具实现
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
 
2017-refactoring-01-簡介
2017-refactoring-01-簡介2017-refactoring-01-簡介
2017-refactoring-01-簡介
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章
 
Qa engineer training
Qa engineer trainingQa engineer training
Qa engineer training
 
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
 
柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试
 
這些年,我寫 Angular 時所使用的小技巧
這些年,我寫 Angular 時所使用的小技巧這些年,我寫 Angular 時所使用的小技巧
這些年,我寫 Angular 時所使用的小技巧
 
Recycle Open Source Projects
Recycle Open Source ProjectsRecycle Open Source Projects
Recycle Open Source Projects
 
2006 recycle opensourceprojects
2006 recycle opensourceprojects2006 recycle opensourceprojects
2006 recycle opensourceprojects
 
React-Native share
React-Native shareReact-Native share
React-Native share
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
 
应用开发一般工作流程和注意
应用开发一般工作流程和注意应用开发一般工作流程和注意
应用开发一般工作流程和注意
 
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
Ansible & GitLab CI / CD Workshop 101 ( @Agile Tour Taipei 2017)
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
DevOps Days Taipei 2018
DevOps Days Taipei 2018DevOps Days Taipei 2018
DevOps Days Taipei 2018
 
面試心得
面試心得面試心得
面試心得
 

版控實務

Editor's Notes

  1. https://ruddyblog.wordpress.com/2016/08/22/%E8%B2%B4%E5%85%AC%E5%8F%B8%E7%9A%84%E5%93%81%E8%B3%AA%E5%A6%82%E4%BD%95%EF%BC%9F/ http://chinesetrad.joelonsoftware.com/Articles/TheJoelTest.html 得12分是完美, 11分勉強可接受, 不過10分以下(含10分)就表示問題大了. 事實上大部份軟體組織都只拿到2或3分, 這些組織都岌岌可危, 因為微軟隨時都是以12分的水準運作.
  2. 說在前面 今天講的是我們團隊近一年半一來陸續調整的樣子,持續改進中。 理論不懂就實作,實作不會學理論。
  3. 一鍵發行
  4. 發行後透過 Slack 通報
  5. 部落格 SQL Server 資料庫版本控管 (Part 1) http://jasper-it.blogspot.tw/2016/01/sql-server-part-1.html
  6. 資料庫設計的版控 說明開發步驟 PowerDesigner 設計資料表 SSMS 在開發環境資料庫上執行 使用預存建立關聯與觸發 VS 資料庫專案,從DEV資料庫比對更新到專案 VS 專案簽入
  7. 每個資料表均有固定的欄位,例如: ID, ACTIVETN, COMP_NO, MOD_USER…  這是 PowerDesigner 資料塑模採用繼承的好處 Foreign Key, Index, Trigger 透過預存程序產生 Code Generator
  8. 資料庫與專案進行比對 更新至專案 將專案異動檔案簽入版控
  9. 簽入、簽出、合併 每一個指令在團隊內部都應該有 SOP
  10. Git hub 作法 與 VSTS 作法大不同