雖然這篇技術文件定義鄉民發文沒有被收入到精華區:在技術文件定義這個話題中,我們另外找到其它相關的精選爆讚文章
在 技術文件定義產品中有123篇Facebook貼文,粉絲數超過8萬的網紅邱顯智,也在其Facebook貼文中提到, 「建立公正文化,鼓勵提出問題,而非解決提出問題的人——談談公司化以外的台鐵改革」 昨天在交通委員會備詢時,王國財交通部長不斷強調「普悠瑪是車子的問題、太魯閣是工區管理的問題」。但是,這些只是個案問題嗎? — 2018年的普悠瑪事故,撞出了台鐵驗收管理和車輛維護的問題,也讓台鐵進行了總體檢...
同時也有9部Youtube影片,追蹤數超過1,790的網紅李基銘漢聲廣播電台-節目主持人-影音頻道,也在其Youtube影片中提到,本集主題:動映画製造所 – 動畫聯展 專訪: 野口(策展人)、周予婷(助理策展人) 談論影像與影像共存,面對資訊影像洪流,如何能分辨影像背後所隱藏的含義,冷靜不被吞噬,又該以何樣的態度看待這個我們身處的圖像爆炸時代。 動畫影像的獨特性 近年影像的發展與樣貌隨著科技技術的進...
「技術文件定義」的推薦目錄
- 關於技術文件定義 在 Judy Chou Instagram 的最佳貼文
- 關於技術文件定義 在 BusinessFocus | 商業、投資、創科平台 Instagram 的精選貼文
- 關於技術文件定義 在 腦洞大開|商業時事X 議題分析 Instagram 的最佳貼文
- 關於技術文件定義 在 邱顯智 Facebook 的最佳貼文
- 關於技術文件定義 在 知史 Facebook 的最讚貼文
- 關於技術文件定義 在 91 敏捷開發之路 Facebook 的最佳解答
- 關於技術文件定義 在 李基銘漢聲廣播電台-節目主持人-影音頻道 Youtube 的最佳貼文
- 關於技術文件定義 在 吳老師教學部落格 Youtube 的最佳貼文
- 關於技術文件定義 在 吳老師教學部落格 Youtube 的最佳解答
技術文件定義 在 Judy Chou Instagram 的最佳貼文
2021-09-24 02:28:44
「生活就像打開一道道大門般,不斷創造新的夢,那些你甚至從來不知道它們存在的夢。」 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ #元宇宙 世代的來臨你準備好了嗎?你在現實生活中無法實現的夢,虛擬世界都可以幫你實現! 2021年的我第一次穿上虛擬服裝秀的衣服(左),感覺超新奇的!右邊是我提供的照片,以後連試穿都不...
技術文件定義 在 BusinessFocus | 商業、投資、創科平台 Instagram 的精選貼文
2021-09-03 14:27:35
【@businessfocus.io】中國人社部、最高法列超時加班案例 明確「996」工作制屬違法 . 中國最高人民法院、人力資源和社會保障部於26日聯合發佈10宗有關「勞動人事」爭議的典型案例,其中明確規定「996」工作條款嚴重違反法律關於延長工作時間上限的規定,相關公司規章制度屬違法行為。此舉...
技術文件定義 在 腦洞大開|商業時事X 議題分析 Instagram 的最佳貼文
2021-08-02 18:58:03
【05/03-05/09 腦洞一週商業大事】#腦洞商業時事 #5月⠀ ❶ 蓋茲夫婦宣布離婚⠀ ⠀ ▍人家家務事乾我什麼事?⠀ ⠀ 5/3日,比爾蓋茲透(Bill Gates)過網站宣布和妻子梅琳達(Melinda French)離婚,消息一出,對於正好最近在閱讀蓋茲《如何避免氣候災難》的腦編來說,...
-
技術文件定義 在 李基銘漢聲廣播電台-節目主持人-影音頻道 Youtube 的最佳貼文
2017-09-02 15:45:45本集主題:動映画製造所 – 動畫聯展
專訪: 野口(策展人)、周予婷(助理策展人)
談論影像與影像共存,面對資訊影像洪流,如何能分辨影像背後所隱藏的含義,冷靜不被吞噬,又該以何樣的態度看待這個我們身處的圖像爆炸時代。
動畫影像的獨特性
近年影像的發展與樣貌隨著科技技術的進步變化了許多,同時不單只是創作的手法或是技術的提升,也間接影響著觀著的閱讀模式與習性。
影像比起過去更為頻繁的出現在我們的周圍,過去能夠接收影像的媒體從電視到現在人手一支的智慧型手機,觀者(現在的我們)更習慣動態影像傳遞與訊息的接收,再加上網路的普及,每分每秒都以倍速產生文字、聲音或是圖像訊息,所追求的視覺刺激強度已與以往不同,這些龐大的資訊不論是直接或是間接都在無形中的傳遞給我們,影像對於人們來說已經不再陌生,不單單是熟悉反而過度充斥,隨著我們對於這些影像的麻痺,加上畫素的提升已看不慣低畫質的品質,觀看習慣的改變使得創作者在創作時在速度、節奏上以及內容複雜度為觀者放入更多考量。
視覺習慣並非以單向線性的方式面對給觀眾或是創作者,而是雙向互動的形式,彼此交錯影響。創作者本身置身於環境之中,兼具觀看與被觀看的身分生活著,差異只在創作者觀看影像時會有著更多的敏感度。因此創作者選擇動畫作為一種用來表達自己的敘事形式,不單是因為動畫的特性能建構出高自由度的動態畫面,劇情也能隨心所與的發展,其特別之處在於,作品的呈現與創作者的經歷環環扣者,綜合過去的體驗、生活喜好及細節觀察,作品會伴隨著創作者經歷的不同而有著幾乎無法複製的面貌,這也是為什麼,即使動畫不像是攝影或是電影能給我們真實又直接的感受,卻依然能夠勾起我們的生活經驗而引起共鳴,動畫利用氛圍的處理,營造出實際拍攝無法達到的效果,讓作品在視覺上有著更強烈的震撼力與刺激感。
這樣層層的關係,動畫可視為一個綜合不同美學的集合體來討論,平面的角度會導出繪畫或是攝影來做比較,若是接成連續影像並組合配音,則會和電影、錄像作品來討論,其高度的實驗特質使得動畫可以被觀看的面相很多,很自由卻也因為可以操作的太多,是一門很考驗創作者的美學及敘事能力的創作方式。
簡單來說動畫就好比夢境,創作者即為做夢者也是操夢者,透過獨特的手法和敘事方式,觀者似乎面對著作品就能窺看作者內心的故事與經歷,然而,人人都能作夢也能動畫,一件好的作品又該如何去定義。
媒介普及,展示放映形式的改變
生活中同時身兼創作者與觀者的多重身份並不稀有,作為本次策展人的我也不一例外,過去對於影像、動畫、電影關注著,同時也思考著這些與我們的生活有什麼關聯性或是影響力。以我為例,小的時候,當時並非智慧型手機盛行的時代,對於觸碰到螢幕的想法是連想都沒有想過,綠色螢幕的翻蓋是按鍵手機是那時最前端的流行,電視稍有價位但也已經算是很普及,而家裡的人也熱愛電影,那時的我最期待的時刻就是做完作業用卡帶看卡通,也會在課本書角化手翻動畫,這些就是我最初理解對動畫的樣貌,很貼近生活並且很容易接觸,所以對於動起來的圖像並不覺得稀奇。
大家或多或少有類似的經驗及回憶,動畫以各種姿態出現在身邊,尤其是近幾年也更為顯著,路上也隨處可見動態大螢幕,智慧型手機、平板的出現,擁有這些產品的年齡層逐漸年輕化。簡而言之,對影像熟悉度提升的原因是因為放映媒介的普及,而這樣生活化的放映特性拉近了我們和影像的距離,進階影響到展示的放映形式,單純播映的方式也成了最底線的呈現裝置條件之一,而伴隨著科技技術改變VR、AR、MR的出現,觀看時身體不再再是靜止,除了思考是不是在未來裡動畫的面貌也會有所不同? 動畫展覽本身的是否也有形式上的再挑戰?值得思考的除了再現的手法或是文件事的展覽是否也有其他可能,不單影片的放映,其製作過程的手稿、分鏡,動畫在創作時的能量是否在展覽裡也能呈現更直覺的被帶出。
最後要談談,扣著創作者和觀眾的角色——展覽,前面提到過去和現在的科技變化到視覺習慣上的改變,並影響到創作的作品表現,由此了解展覽可以談論的動畫主題面向廣泛。以美學為出發做討論,動畫的繪畫性討論、作為實驗的性質存在討論,或是動畫還有哪些不單就畫面可能,延伸到其外部裝置放映、到整個展出展覽的發展性;又或者通過展覽,使得觀眾有更進步的對動畫的認識,並且讓創作者獲得更多交流,甚至促進各個不同學校的動畫系所能有更密切的交集。
由此理解展覽在觀眾及創作者間作為橋樑亦可觸發到的影響有多少,不過將前面所提及的都放進主題討論方向會過於龐大,況且展覽本身每一個環節都該被仔細安排過,為了使其夠完整,需要花上一段或是好幾次分批的抽絲剝繭才能逐一去探討。也因此,今年的展覽不局限於單一方向的主題,透過展出多元類型的作品,以及展出珍貴的手稿,展場另外安排一區可以讓觀眾互動的區域,讓大家可以動手畫,能更貼近作者製作時的歷程。
此外本展直接取用主辦單位「動映画製造所」作為展覽名稱,「動映画製造所」本身即為產出影像場所的意思,很純粹不迂迴,「動」是取用「動畫」一詞,「映画」則是日本漢字為「電影」的意思,將動畫與電影兩個詞彙組合在一起,創造一個並非絕對的詞,也是因為動畫在近年來的改變,沿用原有最早的連續影像切片定義下,依然能將動畫、電影、動態影像、錄像藝術等等區隔開,然而現今的分界已不再清晰,「動映画」也是伴著這些分項微妙的模糊關係而誕生,並且與展覽的主題也存在著相互呼應的關係。
此次動畫聯展作為往後展覽的序幕!希望大家能帶著好奇與期待的心情來參觀這次的展覽,我們也在未來裡繼續討論動畫各方面像的可能!(文:野口)
策展單位: 動映画製造所
策展單位: 金車文藝中心(承德館)
展出日期:2017/07/08-2017/09/03
開放時間:每日11:00-18:00(周一休館)
金車承德館地址:台北市承德路三段131號4樓 -
技術文件定義 在 吳老師教學部落格 Youtube 的最佳貼文
2010-09-30 00:09:4399年元智中語系網站設計理論與實務第3週上課
今天談的是延續上週的GOOGLE文件與YOUTUBE上,
並進一步提到一個重要的觀念:WEB 2.0。
什麼是 WEB 2.0 ?
今天上課的重點都圍繞在這個議題上,大綱:
從Web 2.0的應用談Web 2.0的特性
Web 2.0 的定義
Web 2.0的成功範例
從Web 2.0到中國文學創作與學術研究
Web 2.0與文學設計概念
結語
並在將GOOGLE文件中的重要概念分享權限進一步說明清楚,
若能好好善用GOOGLE文件的功能,將使工作的效率與便利性大大提升,
也就是以往需要程式撰寫的部份,都可以用GOOGLE文件來取代,
這樣就可以讓一般人,不寫程式也可以達到寫程式一樣的結果,
這也就是 Web 2.0 概念下的產物。
此外,YOUTUEB影音的下載也是大家都非常關心的議題,
並進一步分享多年來經營YOUTUEB的心得,上載超過 2600個影片後,
超過280000關看人次,大家最喜歡看什麼影音,什麼人在看,
透過 YOUTUEB所提供的 WEB 2.0 工具,讓所有資料一目了然,
對創作者來說,無疑是多了一項神兵利器。
最後,所要提出的還是會歸數位內容的運用,亦即 WEB 2.0與中國文學能擦出什麼樣的火花?
這是這次課程所最想討論出的結果,也是大家值得去思考的問題,
畢竟懂技術多半不懂文學,懂文學的對技術多半沒興趣,
所以這兩個領域若能融合的巧妙,就如同咖啡加了適量的牛奶,就變成拿鐵或卡布奇諾了。
待續......
吳老師 99/09/28
上課影片:
01說明GOOGLE部落格的統計分析功能
02用GOOGLE文件建立問卷的流程
03如何設定GOOGLE文件問卷結果可以跟別人分享
04WEB2.0與網站建置問卷調查結果與分析
05WEB2.0簡報開頭
06同學問卷調查結果分享
07WEB2.0簡報說明
08分享YOUTUBE的統計分析結果
09下載YOUTUBE影片並上傳到論壇中
吳老師教學網:
http://3cc.cc/10g
部落格:
http://terry55wu.blogspot.com/
論壇:
http://groups.google.com/group/yzu_net?hl=zh-TW
YOUTUBE:
http://www.youtube.com/terry28853669
元智大學,中語系,中文系,網站設計理論與實務,吳老師,GOOGLE服務,GOOGL文件,YOUTUBE,線上問卷,線上教學,資訊科技融入教學,吳清輝老師,e化創新,優質化,雲端計算,虛擬電腦 -
技術文件定義 在 吳老師教學部落格 Youtube 的最佳解答
2010-09-30 00:05:5299年元智中語系網站設計理論與實務第3週上課
今天談的是延續上週的GOOGLE文件與YOUTUBE上,
並進一步提到一個重要的觀念:WEB 2.0。
什麼是 WEB 2.0 ?
今天上課的重點都圍繞在這個議題上,大綱:
從Web 2.0的應用談Web 2.0的特性
Web 2.0 的定義
Web 2.0的成功範例
從Web 2.0到中國文學創作與學術研究
Web 2.0與文學設計概念
結語
並在將GOOGLE文件中的重要概念分享權限進一步說明清楚,
若能好好善用GOOGLE文件的功能,將使工作的效率與便利性大大提升,
也就是以往需要程式撰寫的部份,都可以用GOOGLE文件來取代,
這樣就可以讓一般人,不寫程式也可以達到寫程式一樣的結果,
這也就是 Web 2.0 概念下的產物。
此外,YOUTUEB影音的下載也是大家都非常關心的議題,
並進一步分享多年來經營YOUTUEB的心得,上載超過 2600個影片後,
超過280000關看人次,大家最喜歡看什麼影音,什麼人在看,
透過 YOUTUEB所提供的 WEB 2.0 工具,讓所有資料一目了然,
對創作者來說,無疑是多了一項神兵利器。
最後,所要提出的還是會歸數位內容的運用,亦即 WEB 2.0與中國文學能擦出什麼樣的火花?
這是這次課程所最想討論出的結果,也是大家值得去思考的問題,
畢竟懂技術多半不懂文學,懂文學的對技術多半沒興趣,
所以這兩個領域若能融合的巧妙,就如同咖啡加了適量的牛奶,就變成拿鐵或卡布奇諾了。
待續......
吳老師 99/09/28
上課影片:
01說明GOOGLE部落格的統計分析功能
02用GOOGLE文件建立問卷的流程
03如何設定GOOGLE文件問卷結果可以跟別人分享
04WEB2.0與網站建置問卷調查結果與分析
05WEB2.0簡報開頭
06同學問卷調查結果分享
07WEB2.0簡報說明
08分享YOUTUBE的統計分析結果
09下載YOUTUBE影片並上傳到論壇中
吳老師教學網:
http://3cc.cc/10g
部落格:
http://terry55wu.blogspot.com/
論壇:
http://groups.google.com/group/yzu_net?hl=zh-TW
YOUTUBE:
http://www.youtube.com/terry28853669
元智大學,中語系,中文系,網站設計理論與實務,吳老師,GOOGLE服務,GOOGL文件,YOUTUBE,線上問卷,線上教學,資訊科技融入教學,吳清輝老師,e化創新,優質化,雲端計算,虛擬電腦
技術文件定義 在 邱顯智 Facebook 的最佳貼文
「建立公正文化,鼓勵提出問題,而非解決提出問題的人——談談公司化以外的台鐵改革」
昨天在交通委員會備詢時,王國財交通部長不斷強調「普悠瑪是車子的問題、太魯閣是工區管理的問題」。但是,這些只是個案問題嗎?
—
2018年的普悠瑪事故,撞出了台鐵驗收管理和車輛維護的問題,也讓台鐵進行了總體檢。
體檢報告要求台鐵建置安全管理系統(SMS),台鐵因此在2018年設立「營運安全處」,推動建置及落實安全管理系統。
然而,今年4月的太魯閣事故,又撞出了台鐵對於工區管理的問題。
重大事故後的「總體檢」完成後,又再次發生重大事故,凸顯台鐵的問題不是個別問題,而在整體的組織與文化。
可惜的是,王部長的台鐵改革,「總路線就是公司化」,彷彿只要公司化,所有問題都會跟著解決。
事實上根本不是如此。
首先是組織的問題。
台鐵是三級機關中,具有超高密度組織法規範的特殊機關。包括「交通部台灣鐵路管理局組織條例」、「交通部台灣鐵路管理局所屬分支機構組織通則」、「交通部台灣鐵路管理局餐旅服務總所組織條例」和「交通部台灣鐵路管理局貨運服務總所組織條例」。
連餐旅服務單位都要組織條例,就可以知道機關組織的僵化和龐雜。而運務、工務、機務及電務四大分支,看似各司其職的組織分工,實則各自為政,讓人力到資訊都難以統合。
這個問題,王國材部長非常清楚。因此在上任之後,就表示將設立「分區營運中心」,整合運務、工務、機務及電務的運作。
但是,「分區營運中心」並沒有組織法上的定位(事實上,連營運安全處都是黑機關!)。這些仰賴部長授權而存在的單位,到底能多大程度「整合」台鐵,讓台鐵更安全,甚至建立「合作文化」?
可惜的是,從行政院到交通部,並不認為制度上的組織改造,應該優先於台鐵的公司化。
其次,則是文化問題。
特別是從公務機關的究責文化,走向公正文化(Just Culture)的決心。
什麼是公正文化?
國際民航組織(ICAO)第9859號文件第1版有非常清楚的定義:「一個良好報告文化之根基乃為不處罰環境,員工須了解並認可何謂可接受行為和不可接受行為。雖在一個不處罰環境下,但管理者絕不容許明知故犯或是刻意違反之行為。在特定環境下,公正文化認可需有處罰行動,並試圖去定義可接受和不可接受行動或活動之界線。」
簡單講,在承認人會犯錯的前提下,可以欣然接受小孩指出國王沒穿衣服,員工指出台鐵螺絲掉滿地。
只有在互信文化下,才能鼓勵員工主動提出重要的安全資訊。
可惜的是,過去台鐵家醜一旦外揚,台鐵最先想到的都不是「怎麼解決問題」,而是「趕快解決提出問題的人」。
於是,從下班後主動巡查通報斷軌的道班領班、指出列車習慣性超速趕點的司機,到普悠瑪事件後具名接受媒體採訪點出問題的技術人員,都被一一懲處。
這樣的組織文化,如何鼓勵員工主動反映問題、解決問題?
最後,在制度上,鐵路法也沒有和「民用航空法」一樣,有對主動提出問題者減輕或免除處罰的保障。
民用航空法第112-1條:「對於前二條未發覺之違規,主動向民航局提出者,民航局得視其情節輕重,減輕或免除其處罰。」這就是希望藉由制度性的保障,建立起「公正文化」,讓員工更容易主動表達疑慮以獲得資訊,防微杜漸。
人命關天,高度強調風險管理以確保安全的航空業,對吹哨者有相關保障,同樣涉及高度風險還常常出狀況的鐵路,又怎麼能不重視?
可惜的是,部長在今天的質詢上面表示,應該只需要內部規定做就好。只是,內部規定,難以成為阻卻法律責任的事由。
台鐵近年來,建置和落實安全管理系統的嘗試,我認為要予以肯定。
不過,如果不能直面沉痾已久的組織與文化,那麼,再多SOP的建立,只怕就像軍隊中的「喝水小卡」或保15-002表格(裝備檢查及缺失改正表),除了增加行政成本和偽造了更多文書之外,也難以阻止下一個普悠瑪,下一個太魯閣事故的發生。
技術文件定義 在 知史 Facebook 的最讚貼文
#鴉片戰爭日誌 林維喜案事件簿
·日期:1839年9月27日
#知史討論
「就在以中國為中心的區域性宗藩國際關係體制最終形成之際,以歐洲為中心的 近代外交理念和外交體制也得到了確立。
在近代的外交理念中,『外交』一詞的 涵義發生了根本的變化。1796年,愛德 蒙·伯克使用『displomacy』一詞,意思 是指處理國際交往和談判的技巧。從此, 近現代意義上的『外交』概念才流行開來。 牛津字典中對外交的定義是『外交就是用 談判的方式來處理國際關係是大使和使節用來調整和處理國際關係的方法;是外交官的業務或技術。』在辭海中為:『國家 為實行其對外政策,有國家元首,政府首 腦、外交部、外交代表、機關等進行的諸 如訪問、談判、交涉發出外文件、締結條 約、參加國際會議和國際組織等對外活動。』……
很顯然,在近代外交理念中,外交變成了一門交涉的科學,更加強調交涉的技術,其目的如日本外交學者信夫淳平 所指出的那樣,『在於維持並增進外國的親 善;保護在外僑民;發展國外的工商業; 考交外國的情勢;披瀝國民的能力、實力、同情及誠意;迅速交涉各種案件,善求妥協;擁護國民利益,防受侵害,而伸張國力。』
-----------------------------------------------------------
如果喜歡我們分享的歷史知識故事,歡迎進入「知史網」→「知史專題」→「鴉片戰爭日誌」閱讀全文,謝謝!
https://www.mychistory.com/a001-2/a0011/y0270
-----------------------------------------------------------
(《鴉片戰爭日誌》取材自林則徐親撰的銷煙日記,每天帶你瞭解當年今日的歷史事件。本文由「國史教育中心(香港)」授權「知史」發佈,知史討論的資料來源:《從『郭劉互訐』事件看晚清外交近代化的艱難》,作者:李慶龍,特此鳴謝。)
#知史 #長知史 #近代 #近代史 #中國近代史 #歷史 #中國歷史 #鴉片戰爭 #林維喜案 #林維喜 #香港 #澳門 #廣東 #虎門 #虎門銷煙 #林則徐 #晚清 #外交 #禁煙 #日誌 #知史討論
技術文件定義 在 91 敏捷開發之路 Facebook 的最佳解答
【從學員練習影片觀察到一個關於 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 也不該是目標,目標永遠都是在實務上產生價值、解決問題、滿足需求。