今天和同事一起領了乙個故事卡來做。看完使用者故事卡中的描述和驗收準則後一頭霧水,不知道從**下手。由於卡中提到了幾個模組都屬於遺留系統中的功能,以前沒有觸及這些模組,對業務、對**都不太了解。而且還要對這些模組進行修改,而這部分**都是陳舊的ejb**,複雜冗長,配置繁瑣,修改點無法確定,影響範圍無法預估。
那麼接下來該怎麼辦那?
可能很多人都選擇深入**內部,從**入手來搞清楚功能。我們剛開始想嘗試這種方式,在ejb的**群裡跳來跳去,還是不明就裡。我想這樣不行啊,看到猴年馬月去了。
這時候我就意識到我的方向錯了。**是業務邏輯的實現,應該先有業務邏輯,再有**。我們這樣反推只能會深陷細節,很難從中了解到整個業務邏輯的來龍去脈。
咋辦那?找ba(需求分析師)唄。我們把ba拉過來,讓她挨個把這張故事卡中的關聯模組講清楚。為什麼我們要做這樣的事情?這樣做對使用者來說能帶來什麼好處?做這樣事情的場景是怎樣的?…..
解答了這些問題以後,我們逐漸明白了這個故事卡的業務邏輯,也有信心來完成這張卡了。
接下來是不是要回到**來看具體實現了那?非也,我們並沒有急著看**,而是消化了業務知識以後,開啟了我們的功能性測試的專案,在裡面查與該模組功能相關的功能性測試。由於這些測試是使用bdd框架寫的,所以可讀性非常強,並且本身就描述了使用場景與案例。看了這些功能性測試我們一可以加深對需求的了解;二知道了當前這張故事卡牽扯到的模組的覆蓋率是個什麼情況,有助於我們修改後不會破壞已有的功能;三是有助於我們為修改後的功能補上功能性測試。並且我們可以順著功能性測試來檢視該功能模組的呼叫情況,根據呼叫情況來深入該功能的**細節,找到潛在的修改點。
通過功能性測試入手,我們閱讀**確實快了不少,很快就找到了潛在修改點。那麼現在要動手修改嗎?答案是否定的。我們又回到了功能性測試的專案,為我們即將要改變的功能加上了自動化測試。這個時候測試應該是跑不過的。然後我們才動手修改**,完成功能修改。然後再次執行針對新功能的測試,一切ok。
完成了這個故事卡給我帶來了成就感。不只是因為我們解決了這個故事卡上的問題,而是讓我們學到了額外的知識。我們不能整天只為寫**而寫**,而是應該真正的以業務需求為核心,把需求吃透。乙個程式設計師能夠保證做正確的事是遠遠不夠的,而是能夠確保他做的事情是正確的。
乙個程式設計師在領到乙個故事卡時,不應當急著寫怎麼實現,而是應該向業務分析師質疑,為什麼我要做這個功能?加了這個功能能給使用者帶來什麼價值?有沒有其他簡單的方式來達到甚至超越這個卡給使用者帶來的價值?只有當這些問題都被解決了以後,才能進行開發。現在你已經是了解需求的專家了,相信在編寫**考慮實現方式時,有足夠的上下文了。
如何製作一張啟動卡
1.在linux下找到sd卡及讀卡器 cat proc partitions一般sd卡的裝置檔案節點是 dev sdb 2.刪除sd卡分割槽 sudo fdisk dev sdb command m for help 輸入 d,刪除所有分割槽,返回 selected partition 1 comm...
多人共用一張SIM卡的技術
通過軟體算號,複製一張與原來號碼一樣的gprs的sim卡,雙方只要不同時上網,就可以達到共用一張sim卡多人上網。原理 簡單的說,比如你平時除了手機裡面有1張sim卡 也就是乙個號.身上有多張卡,那麼老關機換來換去很麻煩的,所以就用讀卡器把原來聯通或移動的卡的ki碼與imsi 識別碼讀取出來 然後手...
用沾福卡去沾一張花花卡的條件
描述一些基本狀況 沾福卡是可以隨便去沾一張福卡的,包括敬業福。你沾多少都無所謂。當然從我了解到的情況來看,五福,只要你願意去玩,誰都會有一套。而花花卡,到我寫文章的這個時候,是8000萬人有。而且花花卡也是可以用沾福卡去沾的。至於怎麼一定能沾到花花卡,讓對方只留花花卡,你去沾這個是基本準備工作。我用...