【念念不忘,必有迴響】
怎麼勾起大家心裡面那把快熄掉的火,怎麼讓火旺起來在四處蔓燒,怎麼讓培訓的效果不只是培訓的那兩三天,而是大家有動機、想在實務上用來解決問題並改善痛點、想趕快練習、想趕快分享好東西給其他人,這股衝動、堅持、行動,才是 #專業點火師 的價值。
#有用就有用_沒用就沒用
#雖然我覺得上課順序應該反過來
※ 參加我培訓的學員還有個特色,通常 #自費 跟 #老鳥 的比例非常高,至少都是 1/3 起跳,#這就是口碑
① 演化式設計:測試驅動開發與持續重構:https://dotblogs.com.tw/…/201907-evolutionary-development-t…
② 單元測試實戰營(針對遺留代碼):https://dotblogs.com.tw/…/unit-testing-effectively-with-leg…
③ 極速開發:https://dotblogs.com.tw/…/2019/02/18/extreme-developing-tra…
201811 重構與TDD實戰營
×
201901 單元測試實戰營
×
201905 極速開發
【 91 敏捷開發之路 三堂課心得集大成之文超長慎入】
一切是從某次和Scar Su的IDP開始,建議去看91的TDD 30天文章來學習,雖然之後TDD並沒有太實質的學習成果,卻間接認識了91這位大師以及開啟往後圍繞其周圍一切知識的大門。
半年多來上了三堂課,前後花了一個月左右的薪水、數不盡的白天與黑夜,收穫,真的很多。
▎重構與TDD實戰營
當時一股腦想學習TDD的我,上班時不經意看見此課程資訊,心跳加速、一股熱血湧上心頭,毫不猶豫的揪了 蔡孟哲 學長衝一發,學長的爽快答應,或許才是促成一切學習的開始。
「本來看到這個課程就有想上了,你揪我就覺得該衝一發。」
學習的路上有時候大概就是需要一點衝動以及一個添燃油的朋友,才能脫離猶豫往前衝吧。
回到課程,「TDD」這件事情並不只是單純測試先行,測試案例的產生乃是在明確的需求底下所產生,而追求明確的需求這件事本身是值得花時間進行的。而當需求討論出現瓶頸時,透過錯誤的舉例,來逼出需求方正確的回答,讓雙方的認知達到一致。當然這個需求不只是驗收情境,透過TDD不斷的由上而下的進行,在定義程式內物件職責時的需求方就是developer自己了。
比起TDD的紅燈→綠燈→重構的循環、一次只做一件事情的準則、測試或產品代碼都必須能說話、各種重構技巧讓程式碼乾淨且降低耦合等等的基本要求,在TDD上最重要的莫過於還是要不惜一切的榨出明確需求,不要害怕問蠢問題,更不要像在課堂時和學長pair時被91糾正「不要放棄溝通」的我們一樣,最終產出就是一堆廢code😂。
▎單元測試實戰營
上課前靠著自學研究,大概知道怎麼去寫單元測試,知道怎麼使用隔離框架,也在專案上嘗試過,但這個領域絕不可能僅有自己知道的那樣,也因此前堂課結束後不久便決定接著報名此課程。
雖然在課堂中一些基本知識相對已較熟悉,但有些知識或許要對的人講一遍,才能深入腦海中吧XD。例如替legacy code加測試的大絕之一--將耦合之處抽成protected,並在子物件下override此部分來達成隔離,95%以上案例皆可如此進行的這個方法,在「單元測試的藝術」一書中便已看過,當時卻沒有特別的感覺更不曾套用過,課後回去在工作上使用才發現這 太 猛 了,我想這概念就跟一個男生不聽媽媽的話但卻很聽女朋友的話的概念一樣吧😅。
不過這堂課最有價值的還是最後在工作實務上的各種探討及經驗分享,例如0測試的專案如何開始、code coverage之於團隊的意義、與第三方界接的各種眉眉角角、CI的最高準則性、團隊/個人如何看待單元測試等等,即便當時下課時間已經delay超多(不小心忘記91的課後面不能輕易安排行程RRR),但仍然捨不得走,每一項議題都是大家工作上的切身之痛,多聽一些就是多賺一些,也是對未來多一些幫助。
▎極速開發
在前兩堂課pair寫code時,就好幾次被91碎念我們的開發方式不太行,又慢又沒效率(之類的),開始只覺得寫得快又有什麼用,還是要等腦子能跟上才有意義,但隨著一次又一次91三刀流demo的洗禮下,漸漸覺得牙癢癢手癢癢。這次在學長的鼓吹下,也決定一起來學學這樣的開發方式。
這堂課程終於是個有類似講義的課程😂。隨著91的教學,vim來到了我的visual studio中,也獲得了91個人常用的自訂指令,滑鼠的地位逐漸母湯。但這堂課不僅於此,透過ReSharper的輔助,各式template的設定、自訂Quick Fix等等,把所有許多重複的、麻煩的事情,透過IDE的協助來簡化開發,讓developer關注在所需關注的事情即可。
Developer把每一個開發時的小動作(甚至是右手在滑鼠和鍵盤間移動)做簡化,每多擠出的一點點的時間,都可以用在需求的關注、架構設計等等其他本就要花時間的事情上,用最快的速度把腦裡出現的code投射到editor上,更有效率的提升工作效率以及價值。我想這才是這門課的精隨所在吧。
▎總結
上過91的課程都知道,能獲得的東西遠比課程名稱還多很多,沒有什麼值不值得,只有願不願意給自己打開門、試著站在巨人的肩上而已。
而不論是TDD、重構、UT、極速開發,練習、大量刻意的練習,才是精進的唯一之道。
▎影片 - Tennis Kata
以TDD方式完成tennis的計分功能。
從起初的一小時,透過不斷的練習、91的review、和學長的討論調整下,進入30分、27分、23分、20分、19分、17分到近期版本的14分,雖然仍有些失誤,但我想不完美的完美,更能驅使一個人繼續努力吧!
鍵盤驅動程式錯誤 在 如何修复Windows 11 中的键盘不工作问题[教程] - YouTube 的必吃
如何修复Windows 11 中的 键盘 不工作问题(简单)您的笔记本电脑 键盘 停止工作了吗?这些修复可以帮助您缩小问题范围、确定修复并返回到之前预定的输入 ... ... <看更多>
鍵盤驅動程式錯誤 在 Logic Pro 討論區by 指北針音樂 的必吃
midi上的滑輪在電腦上是可以接受到訊號控制參數的但鍵盤本身一直沒有辦法發出聲音的原因是什麼? ... 搭配時發現官網驅動程式只有支援到12,想說裝看看, ... <看更多>
鍵盤驅動程式錯誤 在 [請益] 鍵盤驅動程式安裝失敗- 看板hardware 的必吃
小弟我鍵盤(usb)插電腦 偵測不到… 不然就是顯示驅動程式安裝失敗… 我全部的孔
都插過了 我滑鼠也都試過全部的孔都有反應(所以不是USB孔的問題)換別的鍵盤一樣驅
動程式安裝裝不成功…在裝置管理員USB Keyboard 解除安裝 也沒用 自動更新驅動程式
軟體 顯示找到裝置驅動程式軟體 但是在嘗試安裝時發生錯誤 USB Composite Device
存取被拒 請問該怎辦? 是中毒嗎?
--
Sent from my Android
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.79.156.98
※ 文章網址: https://www.ptt.cc/bbs/hardware/M.1403369060.A.CEA.html
... <看更多>