2010年10月7日

[心得]Techdays2010 - Day3 Note (感想與筆記)

第三天選課 ... zzz

本來早上是選資料庫的課程的,但是經過保哥的課堂教室就不小心掉進去了 ...
啊啊啊啊!!老闆,我不是故意的啦!!(抱頭)



[DEV303] - 利用 ASP.NET MVC 專案特性實現 TDD 測試導向開發 - 黃保翕

選這堂課,主要是想要對於測試驅動程式設計以及 MVC 有多一層的了解
況且又是資深前輩保哥的課程,所以不加思索的就跑進去聽了 XD

* Unit Test (單元測試)
- 確保程式的邏輯符合預期
- 確保軟體的品質
- 對軟體的信任! Trust !

* 3A
- Arrage (TestData, TestContainer, Mock)
- Act (Run Test Unit)
- Assert (Test Result)

* 測試用的標籤語法 : [TestClass] 與 [TestMethod]

* 建議要達到的目標:
- Loose Coupled (鬆耦合)
- High Cohesion (高內聚)

* Mock 是一種行為的模擬

* Stub 是一種狀態的模擬

* TDD (測試驅動開發)
- 先有測試 code 才產生正式 code
- 先有需求才有架構
是一種需求導向的程式設計概念

* 保持元件的可測試性是很重要的

* Session 視為外部物件, 要用特別方法測試它
(詳細內容課堂上有 Demo)

* 要先完成 Model 骨架,再從 Controller 設計骨架

* Intellisense Suggestion Mode 使用 Ctrl + Alt + Space 切換

另外還有一個很好用的 Code Snippet Manager
看保哥用得很熟,測試用的程式碼片段根本瞬間就完成了 O_o
更詳細的東西都在保哥的書以及 blog 上了 ^_^

遊戲製作一般的情況都是資料驅動程式設計
然後完成到一定程度後,由測試人員,用人力去做測試與調整
原本我是想說,在遊戲開發上,是否可以應用到測試驅動的程式設計?

不過聽完課之後,發現在遊戲製作上,底層元件的高度可用性與低變動性
似乎讓測試驅動的開發比較沒有發揮的空間 ...
而表層則是高變動性,需求變更的頻繁度,
以及大量的外部 Lua Script 語法更是難以引用測試驅動

我想,應該還是有地方可以適用測試驅動的,雖然不太可能是全範圍
有機會得話我還是會嘗試看看的 ^_^

另外兩堂想聽的課:
[DAT404] - 資料庫基礎: 深度了解 T-SQL :
SQL Server 2008 R2 T-SQL 技術及建議 - 楊志強
[COS302] - SQL Azure 開發實務 -
談雲端資料庫的可擴展性(Scalability) 與壓力測試 - 趙翌川

===== 我是分隔線 =====

[WUX306] - Designer & Developer 的完美結合 – 企業應用開發分享 - 趙偉如/廖千翬

原本我是選這堂課的 ... 但是進去不到五分鐘我就受不了了 orz
我可沒耐性聽那些什麼故宮博物院的東西,講師們抱歉了,我從課堂中途離開了
有了昨天的地雷經驗,即使後面有什麼重要的東西,我也不想等下去了

於是我臨時跑去小朱的的課堂上了,中途闖入真是不好意思

[COS308] - 漫談微軟 Windows Azure Platform 的安全性 - 朱明中

雲端的安全,這會是個重要的議題,我如此認為 ...

* CSA (Cloud Security Alliance) - 提出 11 項安全準則

* Cloud Security Issues - 有七項 (投影片上有詳細)

* 資料庫中的 master DB 很重要, 要保護好不要隨便人讓人能夠看到內容.

還有很多東西都不知道應該怎樣抄筆記了,只好買書回去 K ... orz

同時段的 Excel Data Mining 似乎也很有趣?沒機會去聽XD

===== 我是分隔線 =====

[DAT402] - 資料庫可用性: SQL Server 高可用性(High Availability)
及異地備援(Disaster Recovery): 全覽、考量及實例說明 - 許致學


這堂課對我來說意外的受用,看來我當年學到的 SQL 2000 相關知識已經過時很久了
或許應該要找時間來補一下 SQL 2008 的新東西了 ...

* RTO (Recovery time objective)

* RBO (Recovery point objective)

* 本地 or 異地, 容錯 or 備援, 災難復原
不同的需求有不同的設計方法,以及配套措施
即使是同一間公司,三個不同部門也有可能採用三種完全不同的解決方案

* BCP (Business continuity planning)

* 主伺服器,鏡像伺服器,見證伺服器

* 資料庫快照, Log Shipping

* 叢集式資料庫

* 資料庫的高可用度

唔 ... 筆記抄得不是很完整,許多圖片解說都是在投影片上
對於 SQL 2008 R2 的功能相當欣賞
遊戲用的 DB 也經常會遇到備份與備援等問題
以前難以解決的問題,似乎都已經有新的解法了(雖然可能價格不斐)

資料庫真是有趣的東西,每次挑戰它都會很有成就感 XD
追求極致的同時,也要注重平衡,不斷地要做取捨與最佳化,相當有趣
(當然,也相當累人就是了...)

另外想聽的兩堂課:
[WPH302] - 使用 Expression 製作 Windows Phone 7 應用程式雛形與成品 - 章立民
[OSP402] - 整合 SharePoint 2010, Silverlight 及 Azure
開發新一代 RIA (Rich Internet Applications) - 李智樺

===== 我是分隔線 =====

[DEV304] - 軟體架構及模型設計 - 活用 Visual Studio 2010 降低系統維護成本 - 彭靖灝

* 能見度
- 進度
- 關聯性

* 設計
- 相依性
- 文件

* 功能正確 不等於 架構正確

* 使用 Architecture Explorer 觀察程式碼
(這 blog 有相關情報: Visual Studio 2010分析工具之Architecture Explorer)

* 要做好 Dayly Build

* 使用 TFS 將 Work Item 銜接

另外課堂上還有 demo 一些 UML Diagram 的工具
不過這似乎要 Premium 跟 Ultimate 版本才有支援 ... orz

雖然堂上展示了很多不錯的東西,可是要用在工作上似乎有點難度
身邊的人不一定能接受習慣以及環境的改變 ...

有機會的話還是會想要試試看整套的 : VS2010 Ultimate + TFS 2010 這樣 XD
老闆老闆!!你有聽到嗎?(笑)

同時段的
[WUX302] - HTML5 於 Internet Explorer 9 上的網路遊戲開發 - 黃富鴻
似乎也滿實用的?可惜沒機會去聽

===== 我是分隔線 =====

[WUX307] - Designer & Developer 的完美合作 – 遊戲開發經驗分享 - 陳承佑/郭育琦

這是最後一堂課了,沒想到意外地有趣 ^_^

* 設計師 不等於 美工 - 請不要再叫我們美術工人了,我們也懂什麼是設計

* 簡單的設計 不等於 可以很快完成 - 請不要再說"這很簡單所以馬上給我"這樣

* 常見 不等於 常用

* 工具各有特色,不一定要限制在同一種,混合使用發揮各自最強的特長才好

* 效果 不等於 價值 - 用了過多的效果反而會有反效果 (好饒舌)

* 中斷程式一分鐘 相當於 中斷了十五分鐘的產能 (美術亦然)
這句話實在是太重要了,所以標上顏色 ......

* "共識"是為了讓開發順利

* Mail idea(s) to self - 可以將零碎的創意留下

* Idea task list - 條列整理出需要製作的明確項目

* Prototype image - 繪製雛形草圖, 這對於溝通上相當有幫助.

* 讀書會 - 有助於大家培養默契

* 設定討論主題

這堂課分享的很多東西,對我來說都滿深刻的
在遊戲製作上確實很有幫助,很實用的一些觀念跟想法,值得推廣
感謝講師們無私地分享 ^_^

同時段想要聽的另外兩堂課:
[DEV306] - 軟體開發流程的改善 - 應用 Visual Studio 2010 Ultimate
及 Team Foundation Server 2010 - 徐鈞安
[WSV304] Windows Server 2008 R2:自動化及對數量龐大的伺服器進行管理 - 蘇建榮

===== 我是分隔線 =====

這次 TechDays 2010 讓我感覺相當充實,卻也有點美中不足(因為很多課程聽不到)
很高興能在會場見到 MVP 的幾位前輩
希望明年的 TechDays 也能有機會參加 ^_^

主辦單位的各位辛苦了,講師們也辛苦了!!感謝!!

沒有留言: