【從學員練習影片觀察到一個關於 TDD 的有趣現象】
極速開發的課後練習作業,雖說重點是放在極速開發要學習的技巧與刻意練習的模型,但開發的方式、順序也是刻意安排成類似 TDD 的進行方式,來讓生產力最大化(TDD 本來就是幫助開發的,不是幫助測試的)
我從2位第一次上我課的學員(當然就是 #極速開發,代表他們沒上過#單元測試 跟 #TDD與持續重構),雖然他們是照著示範影片、上課教學用 TDD 在寫整個 tennis 的過程,但從他們執行測試的時間點就可以發現:
「他是用測試來驗證 production code 的正確性」,即使他先寫了測試,也不先執行,沒有看到紅燈,每次都等到 production code 寫完了,應該要綠燈時,才執行測試。
而其他上過 TDD 課的同學 ,或是上過單元測試的同學,知道測試是用來描述情境,如果現在「加入的這個情境是新的需求或需求異動,代表目前 production code 還不支援這個情境,執行測試跑出的紅燈,就是等等 production code 要完成的 #目標」
test-frist 從來都只是 TDD 其中一個小小的衍生產物,而不是全貌。TDD, 測試驅動開發 從來都是一種開發方法,而不是測試方法。
總有些人老愛把 TDD 拿來跟測試相提並論,就總是喜歡把 test-first 當作靶子打,覺得違反人性跟直覺,覺得先寫測試在很多情況下是浪費時間或是不 work,可能拿來跟一堆測試的方法論相提並論,或總是只拿回歸測試的效益來當作 TDD 的整體。抑或是陷入 isolation unit test 與 integration test (其實就是非 isolation 等級、有實際依賴的自動測試)之爭。
```
註:TDD 事實上是可以不是單元測試等級的。
```
要比較正確看待 TDD 的角度,首先要知道它是幫助開發的、它是一種開發方式(當然不是唯一一種,甚至也不會是最好的一種,因為根本沒有最好,只有剛好)
接著要了解 TDD 可能用 IPO 模型還比較貼切,input-process-output,在你開發任何功能之前,你總要先想過這件事。而先想這件事,才是 TDD 的最基本精神。
接著是怎麼把你想好的東西,變成可執行的 spec,我們只是用測試程式來「描述」你腦袋中的「IPO模型」,把 process 的過程當作一個黑箱子。
而這個 IPO 模型在結合成「使用情境」,就會帶來「高易用性 API 的好處」,只有在一開始就先想好怎麼給別人用,最後才會好用。所謂的一開始想好,指的不是預先設計一堆 class,而是 input/output 想清楚期待(一般會結合實例化需求,搭配 Given/When/Then 的 gherkin style 來把前置條件、資料、前提想好,當發生什麼事,應該是怎樣的結果),然後描述它。在紅燈定義清楚目標,綠燈完成 input/output 關係且沒弄壞前面的所有情境後,來針對 process 進行重構(事實上 Kent Beck 的 TDD by Example 更多是用 refactor 來 #完成 process。
```
註:所謂的 output 不一定只有回傳值,包含外部依賴狀態、資料的改變,甚至顆粒度小一點,針對物件導向設計的話,物件內部狀態的改變也算,只是物件內部狀態改變,驗證點要嘛是拿得到內部狀態,要嘛就是要驗證物件哪個行為會因這個內部狀態而有所不同。
```
## 戰 TDD 之前該先做好的功課
要戰 TDD,是不是至少要把 Kent Beck 的 TDD by Example 看完?
要戰 TDD,請不要拿它跟測試方法論來比,那只是一下就被人看破手腳。因為它是個開發方法論。
要戰 TDD,請不要把它的好處只限縮在跟回歸測試、自動測試的比較,因為那只是它的衍生好處,當你試過在白海報紙上 TDD 就懂,TDD 是在釐清你的思緒的同時,又可以以終為始,確保你在 production code 的每一個動作都是為了滿足某個期待的情境。
要戰 TDD,請不要去把 單元測試、整合測試捲進來,那是測試的顆粒度,那是測試的分類,TDD 從來都不是只能限於單元測試。
要戰 TDD,請不要在那邊戰他是 bottom-up ,是直接從程式/class 的角度出發,事實上 TDD 既不是 bottom-up, 也不是 top-down, (書裡面就有講這件事咩),實務上的 TDD 結合倫敦派(GOOS)跟芝加哥派(Classic TDD),會更像 Outside-In 的進行方式,先定義好驗收情境,接著從最外部(也就是使用者看得到的部份)一路把依賴往另一邊的系統邊界推,直到推到系統以外的依賴資源(persistence 或 external API/service)
```
註: ATDD by Example 中 ATDD by Example, Kent Beck 寫的序最後的一段話。
Kent Beck:
「就像我曾說過的,TDD的一個缺點是,它可能會退化為一種用來滿足開發人員需求的編程技能。某些開發人員從更廣泛的角度來看待TDD,輕易在他們測試的不同抽象級別間跳躍。然而在ATDD中不存在歧義,這是一種加強與非編程人員溝通的技術。我們之間良好的協作關係,以及作為這種關係基礎的溝通,能夠使軟件開發更有效率。採用ATDD是向著溝通更清晰這個目標邁進的重要一步,而此書是一本全面又平易近人的入門讀物。」
```
要戰 TDD,請不要只關注在 test-frist,因為他只是用 test 來幫助你 think-first,不要邊寫邊想。然後不要過份依賴或相信你腦袋的能力,把你想好的東西具體化出來,最好可以被直接執行,最好除了你以外每個人執行出來的結果都會一樣(不管是對的,還是錯的)
要戰 TDD, 請不要把論點放在見樹不見林,如果你有看 TDD by Example 的 Part 1, Part 2 那兩個加起來共 24 個章節,就知道一開始就得把當下想到的全貌紀錄在一個「紙本」的 backlog (所謂的紙本,只是要講這並不依賴於任何工具)
而這個需求輪廓的全貌,會隨著你逐漸完成一部分一部分的情境,設計逐漸浮現後,而隨時跟著增減調整。
但不代表 TDD 就是先想到一個測試案例,就直接先幹下去了,那根本是亂搞。
以上這些,都還不是在列 TDD 的好處,而是針對那些從來沒搞懂 TDD 但又愛戰 TDD 的人一點提醒,你戰的很可能是「你誤解的 TDD」。
TDD 還有許多實務上的用途,列上我在譯者序中的一小段:
>> 測試驅動開發(Test-Driven Development, TDD)!一種以測試為開發輔助、以測試來描述需求情境、以測試來當作目標、以測試來表達期望、以測試來驗證疑問、以測試來實驗學習、以測試來溝通協作、以測試來協助設計高易用性 API 的「開發方法」。
譯者序有開放給大家看,請見:https://tdd.best/book/tdd-by-example/
拜託,要戰之前去看一下祖師爺 Kent Beck 對 TDD 的原始見解:https://www.tenlong.com.tw/products/9789864345618?list_name=srh
如果你想正確的使用 TDD 來幫助你在實務上產生許多的價值,帶來許多的好處,尤其是需求釐清、持續重構、小步快跑的部份,最好理解的培訓課就在這:https://tdd.best/courses/classic-tdd-by-example-video-training/
最後我想講一段話:
TDD 從來都不該被導入到團隊中,但它是一種很好的自我鍛鍊與學習的方式,也是一種能用很低的成本來帶來很多好處的開發方法(見下方註腳),然而它也不是適用所有的情況,但它可以讓『完美』變成一個動詞,而非不變的形容詞。
```
註:
Kent Beck 在 DHH 靠腰:《TDD is Dead》 之後寫的一篇反串文:《RIP TDD》
https://www.facebook.com/notes/1063422864115918/
我幾年前的簡易翻譯,通常也是 TDD 可以幫助你解決的問題,如下:
- Over-engineering (過度設計)
- API feedback (改善API的設計與可用性)
- Logic errors (想的跟寫的不一樣,寫的跟需求不一樣)
- Documentation (寫跟維護文件是痛苦的)
- Feeling overwhelmed (找不到切入點)
- Separate interface from implementation thinking (抽象設計)
- Agreement (確保已修正問題的證據)
- Anxiety (改東壞西的擔心受怕)
```
很久沒對 TDD 發表這種長篇大論了,因為不理解、不想理解、不同角度理解的人居多,能真的到各自的塔上用不同角度來看原義,以及實務上用它來幫助解決的問題有哪些的人,真的太少。
大部分人只想針對這個詞彙來攻訐以博得流量跟吸引目光,而不是想著「我可以用它來幫助我什麼」
問題跟需求是中性的,解決問題跟滿足需求的手段與方式有千萬種,不會只有一種,也不會有所謂的對錯,多點角度去了解不同的方法、方式,然後融會貫通,發揮綜效,在實務上用最少的成本與風險來產生最大的價值,這才是真正的目標。
導入敏捷不該是目標,導入 TDD 也不該是目標,目標永遠都是在實務上產生價值、解決問題、滿足需求。
同時也有5部Youtube影片,追蹤數超過55萬的網紅新聞挖挖哇!,也在其Youtube影片中提到,因應疫情延燒,指揮中心陳時中今日宣布,全國第三級警戒延長至6月14日。 教育部也宣布,因應全國三級警戒延長,全國停課日期也延到6月14日。 根據指揮中心規定,疫情警戒標準第三級期間,民眾外出時全程佩戴口罩,停止室內5人以上、室外10人以上聚會,僅保留維生、秩序維持、必要性服務、醫療及公務所需之外,其...
「反串文」的推薦目錄:
- 關於反串文 在 91 敏捷開發之路 Facebook 的最佳解答
- 關於反串文 在 手寫澀群平台上線啦 Facebook 的精選貼文
- 關於反串文 在 TVBS 新聞 Facebook 的最讚貼文
- 關於反串文 在 新聞挖挖哇! Youtube 的最佳貼文
- 關於反串文 在 新聞挖挖哇! Youtube 的最讚貼文
- 關於反串文 在 Fei Fain飛帆 Youtube 的最佳貼文
- 關於反串文 在 [閒聊] 反串文- 看板BaseballXXXX - 批踢踢實業坊 的評價
- 關於反串文 在 反串文| PTT鄉民百科 - Fandom 的評價
- 關於反串文 在 釣魚文跟反串文? - 廢文板 - Dcard 的評價
- 關於反串文 在 反串文 - ptt鄉民百科 的評價
- 關於反串文 在 反串文? 男大生撞車發文問"如何逃避賠償" - YouTube 的評價
- 關於反串文 在 打了反串文結果老闆以為是批評XD 是傲嬌的稱讚啊! (雞塊妹) 的評價
- 關於反串文 在 揭PTT反串文化!16年鄉民曝「業配金額7位數」 - ETtoday 的評價
- 關於反串文 在 認知戰掀對立?立委:利用PTT反串事件掩蓋真實攻擊 的評價
- 關於反串文 在 抓到了,六代勁戰“反串文,勿當真” (第2頁) - Mobile01 的評價
- 關於反串文 在 親綠寫手PTT反串帶風向被抓包指揮中心:交刑事局調查 的評價
- 關於反串文 在 [閒聊] 關於女孩版的反串文越來越多- 看板WomenTalk - APTT 的評價
- 關於反串文 在 [問卦] 反串文被當認真文怎麼辦- 看板Gossiping - PTT網頁版 的評價
- 關於反串文 在 綠轟PTT助陸打認知戰?林瑋豐反串遭起底郭正亮嗆「蟑螂窩」? 的評價
- 關於反串文 在 引戰文」容易上癮】醫師提醒:不要讓自己成為思想怠惰的人! 的評價
- 關於反串文 在 [新聞] 沒事別去日本玩!台男列「7大罪狀」:真 的評價
反串文 在 手寫澀群平台上線啦 Facebook 的精選貼文
【在中秋節發跟中秋節沒關係的內容,然後再祝你們中秋節快樂】
筆:#筆yourself
跟抄:@shhh_writsing
—————————————————————
有時候看一下自己上一篇發文的時間
就會驚訝時間怎麼過那麼快
一直覺得最近都有好好的更新
但是距離上一篇其實已經快要兩週前了
厚顏無恥如我
心中也還是有一絲一毫的愧疚
最近在看JoJo的外傳動畫
《岸邊露伴一動也不動》
不管是戲還是動畫
這種有點偏執狂的角色
真的很合我胃口
熱愛自己做的事情
全心全意的投入
那個身影真的會發光
反觀連花半小時更新手寫帳
都常常「下次一定更」的我
真的有點小慚愧
提到動畫
最近的肥宅對話產生器
真的好笑到靠北
雖然我到現在還是覺得源頭是反串文
但是看到相關文章還是會笑到發抖
但是還是要稍微回歸理智一下
噁男的標籤跟阿宅的標籤
真的是被不當聯結了啦
源頭的對話
就算把那些油到滑倒的用語拿掉
說自己長得像某個帥哥
然後趁亂告白
抑或是鼓吹甩掉原男友接受告白
也還是個噁男
討論串一出
或多或少會連結到身邊的某個人
如果相識相熟那到還好
如果是三分熟
那就容易把他跟對話的主角做連結
無數阿宅慘遭背鍋
稍微認真一點點來看待
還是要提醒自己在吞哏跟風的時候
稍微謹慎些啦
語言影響思考
思考又會影響語言
反串到最後會變真的
哏最後會被留下來
但是反串的痕跡會被忘記
不過認真歸認真
但是就真的很好笑啊wwwww(歪頭
—————————————————————
#dancingdancingsheep #handwriting
#手書 #手書き #美文字 #練字
#手寫 #手寫字 #手寫的溫度
#繁體字 #感情 #感情語錄
#跟抄 #語錄 #跟抄語錄 #笑話
#幹話 #鋼筆 #鋼筆字 #萬年筆
反串文 在 新聞挖挖哇! Youtube 的最佳貼文
因應疫情延燒,指揮中心陳時中今日宣布,全國第三級警戒延長至6月14日。
教育部也宣布,因應全國三級警戒延長,全國停課日期也延到6月14日。
根據指揮中心規定,疫情警戒標準第三級期間,民眾外出時全程佩戴口罩,停止室內5人以上、室外10人以上聚會,僅保留維生、秩序維持、必要性服務、醫療及公務所需之外,其餘營業及公共場域關閉,營業及公共場域落實戴口罩並保持社交距離。
⭐林瑋豐造謠攻擊反串文重罰?網傳一天燒百具屍?
► ►https://youtu.be/Q0D2wYa5Iek
⭐黃宥嘉轟防疫破口!女醫師三招完美杜絕病毒感染!
► ►https://youtu.be/y_mm36xS8JA
⭐新冠確診者心聲:人生沒有什麼意義了
► ►https://youtu.be/uHRDX-pFJfk
#全國第三級警戒 #延長 #各級學校同步停課 #疫情 #指揮中心 #陳時中 #潘文忠
每周二到周六凌晨12點半準時上傳最新節目!
支持正版,尊重版權請訂閱【新聞挖挖哇】
官方 Youtube 頻道喲!
臉書請搜尋【新聞挖挖哇粉絲團】
http://www.facebook.com/newswawawa
#新聞挖挖哇#鄭弘儀#新聞挖挖哇2021
反串文 在 新聞挖挖哇! Youtube 的最讚貼文
近期網路上開始流傳各種假訊息謠言來影響防疫,如今卻爆發綠營寫手林瑋豐,因反串自導自演掀起風波,不僅讓外界傻眼,指揮中心是否會開罰呢?
⭐確診爆增不用怕?洪素卿坦言台灣防疫真
► ►https://youtu.be/zS30v387I8I
⭐黃宥嘉轟防疫破口!女醫師三招完美杜絕病毒感染!
► ►https://youtu.be/y_mm36xS8JA
⭐新冠確診者心聲:人生沒有什麼意義了
► ►https://youtu.be/uHRDX-pFJfk
#綠營寫手林瑋豐 #AZ疫苗 #假訊息 #山寨教育部網站 #全國防疫會議
每周二到周六凌晨12點半準時上傳最新節目!
支持正版,尊重版權請訂閱【新聞挖挖哇】
官方 Youtube 頻道喲!
臉書請搜尋【新聞挖挖哇粉絲團】
http://www.facebook.com/newswawawa
#新聞挖挖哇#鄭弘儀#新聞挖挖哇2021
反串文 在 Fei Fain飛帆 Youtube 的最佳貼文
【以下文字,節錄自售票網站之節目介紹】
2020年,白雪25年,松田丸子也25歲了
白雪綜藝‧劇團」成立於1995年4月,由團長簡志澄帶著一群國立藝術學院(現為國立台北藝術大學)戲劇系學生組成。成軍初期打著「最美麗的反串表演」口號,一反往常劇團純藝術路線,主打反串演出形式,以新生代的創意歌舞綜藝秀場路線打響其知名度。近年來持續強化戲劇形式的演出,以『表演藝術是超越感官、跨越想像巔峰的娛樂事業。』為使命。以「表演無框架,藝術無極限」的創團理念,用熱情、年輕、創意、活力向表演藝術的各種可能性挑戰。
不斷推陳出新的「白雪綜藝‧劇團」,嘗試透過各種型式舞台表演,包含了2002年自創性戲劇的大型公演「青白嫦娥鬥年獸」;2003年傳統戲劇呈現的膾炙人口大戲「梁祝」;2005年一反傳統框架,劇團成立10年的反串大秀「十破天驚 天后降臨」;2008年全新製作「胡BB風月救風塵」;2009年應各界加演要求聲浪,再度加演『風月救風塵絕對風騷加演版』;2011年力邀小禎、佩甄參與演出的「雙婢怨」及劇團成立15年動員近百人的大型扮裝歌舞秀「雪后狂風」;2012年再度加演的「雙婢怨」。
2013年1月更突破舞台演出模式,以電影紀錄片「當家花旦」在各大院線上映,運用直接且正面的傳達方式,讓觀眾由支持轉而肯定反串文化存在的價值,更贏得學術藝文界、影視娛樂業的全力支持,包含國寶級老師汪其楣、師範大學教授夏學理、作家劉軒、藝人高山峰、李佩甄與胡盈禎等人,皆將個人第一次的舞台劇經驗,獻給白雪綜藝.劇團,成功地開發劇場新客群,並創立台灣劇場新風貌,確立「反串與扮裝」可以是被認同公開呈現的高尚藝術位置。
2012年5月、2013年11月白雪綜藝.劇團作品「雙婢怨」、「風月救風塵三度加演華麗升級版」二劇,以專案採購,全額補助方式在高雄衛武營藝術文化中心281劇場演出六場,場場爆滿,座無虛席一票難求,成功的將劇團獨特表演及扮裝藝術帶向南台灣。
劇團認為優秀經典的劇碼應該讓更多人看見,2013年11月於台北市水源劇場以長銷式的型態演出「風月救風塵三度加演華麗升級版」13場,早鳥預購即破千張,平均票房高達9成。除獲文化部贊助指導之外、更獲得台北市文化局長銷式的專案高額補助,亟力推動此劇的演出。2015年劇團20週年更推出大型公演「慾望門徒」,在台北城市舞台三場滿座,再受高雄春天藝術節邀請,再次將扮裝藝術帶向南台灣。
2019年,劇團靈魂人物松田丸子推出新曲「POSA POSA」引發傳唱,2020年起將以POSA為名及演唱會形式,結合新生代扮裝演員及團體,欲將扮裝文化帶入另一高峰。
********************
😍加入社群媒體一起玩吧!😍:
FB ‣ https://www.facebook.com/feifain/
IG ‣ https://www.instagram.com/feifain/
作品 ‣ https://www.instagram.com/fei_fain/
********************
更多有趣的影片:
😎台北同志酒吧導覽(英文)►https://youtu.be/wTZHxD6dTsM
🦄金馬奇幻影展「洛基恐怖秀」狂歡場►https://youtu.be/pkQHPTm-xlI
👑變裝巨星Kim Chi派對 後台直擊►https://youtu.be/rbLTfmQAtxw
💃台灣同志遊行 演出篇►https://youtu.be/1au8vkT_xzI
😎利米星音樂會 百老匯音樂選粹►https://youtu.be/o8rrO1gqAzs
🦄跟著變裝皇后去跨年!►https://youtu.be/aHJXMOuycp4
👑Netflix優質作品推薦,新年來追劇►https://youtu.be/hW898jLlL9Y
💃2019十大美妝產品回顧►https://youtu.be/DvsRaIALXLw
💃受邀上麗星郵輪演出!►https://youtu.be/GDp2bY-iwjw
********************
本影片未受任何提及的品牌贊助,所有內容與心得僅為個人經驗分享。
反串文 在 反串文| PTT鄉民百科 - Fandom 的推薦與評價
反串文 是ptt中常會出現的po文和推文。是指本身並非具有某種身分或立場,但卻假裝自己是該身分立場的人來發言,以達到某種目的。常見的反串包括各種常成為爭吵(戰文) ... ... <看更多>
反串文 在 釣魚文跟反串文? - 廢文板 - Dcard 的推薦與評價
有人可以跟我解釋他們的意思嗎. ... <看更多>
反串文 在 [閒聊] 反串文- 看板BaseballXXXX - 批踢踢實業坊 的推薦與評價