2017年1月23日 星期一

[Testing] 測試進程

 

很開心上完91的測試實戰,對我以往的開發觀念完全改觀!!

接下來我會一步一步紀錄學習的心得與練習

---

測試進程

BDD

確保你想的是使用者想要的

TDD

確保你先想清楚才動手寫

Unit Test

確保程式寫的跟你想的一樣

---

說明 :

所有的開始源自於一個需求,為了解決這個需求,我們透過多個實例來瞭解使用者的故事,並確保你的情境是符合使用者的狀況,這就是運用BDD,接著有了一些情境後,我們開始把情境轉化為一個測試案例,這個過程可以確保我們專注於當下並先想清楚才動手寫production code,這就是運用測試來驅動開發。

這是一個開發觀念上的改變,跟自己以往在腦袋想一遍就直接開始寫production code是完全不一樣,而且這種方式能夠清楚的量化程式碼的品質與需求,也是一個容易區分senoir 跟 junior的差異,實在令人感到興奮。

2017年1月17日 星期二

[重構] 重構的簡易流程


整理一下自己練習重構的基礎流程 :
1.靜態程式碼分析 :
尋找循環複雜度高的Code > 10
工具 : ex. CodeMaid Spade
2.錄製測試(Web – testing) :
進藤光有佐維,工程師有測試!
工具 : ex. selenium
3.重構 - 註解 :
先註解比較高層級的思維,瞭解主要功用是啥
4.重構 - 擷取方法 :
算是重構起手勢了,vs有熱鍵可以輕鬆擷取方法
目的是提升閱讀性
5.重構 - 職責分離 :
好記的方式是主動詞分離
主詞(類別),動詞(方法)
6.新增單元測試
幫新產生的類別增加單元測試,只要有測試在就不怕被改壞
7.重構 - 抽象相同性質的物件
利用介面來把相同性質的東西擷取出來,方便進一步簡化跟提升閱讀性
提醒 : 在這過程中,測試自己有沒有改錯的測試熱鍵,就按了數十次有了吧,
如果換成每次都自己按建置輸入資料,所花的成本會更高!!
慢慢把測試當作是開發的一部份,我想是成為更有價值工程師的重要一步呢!!

2017年1月11日 星期三

我跟新人之間的差別~

 

今天我體會到一件事,就是我跟新人之間的差別

我跟新人一樣,沒有比較聰明,也沒有比較有天分,唯一明顯的差別就是經驗

講經驗也太籠統,夠量化的說明就是遇到失敗的次數吧

因為我遇到失敗的次數比較多,所以我解決過的失敗問題也多

累積下來就是我在開發上比新人快,如此而已

 

簡單歸納,要讓自己更有價值,就快點開始累積錯誤的經驗,然後解決它,不二犯!

以上

2017年1月4日 星期三

[C#] 寫入資料至文字檔

string txt_name = "test.txt";
FileStream fileStream = new FileStream(txt_name, FileMode.Create);
fileStream.Close();   //要關!
 
using (StreamWriter sw = new StreamWriter(txt_name))
{
    // write...
    foreach (var item in List)
    {
        sw.WriteLine(item);
    }
}