【從學員練習影片觀察到一個關於 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 也不該是目標,目標永遠都是在實務上產生價值、解決問題、滿足需求。
同時也有1部Youtube影片,追蹤數超過8萬的網紅與芬尼學英語 Finnie's Language Arts,也在其Youtube影片中提到,?【成人英語再起步】網上課程 ► http://bit.ly/2We1n2Q YouTube 觀眾十二月特備優惠:購買【成人英語再起步網上課程】,用信用卡結賬時,可用優惠碼「YOUTUBEDEC20」,以 $1,299 優惠價購買第一期(原價 $1,499);更可以以 $2,499 優惠價購買第一期...
output翻譯 在 Facebook 的最佳貼文
最近,我在「TIME時代」雜志的專欄文章裡,向全球的讀者介紹了大陸「世界工廠」的+AI自動化升級。隨著勞動力成本的上漲,工業自動化、智慧化勢必是大陸製造業的一劑特效藥。自動化能讓運營成本下降,但仍能讓中國大陸保持生產品質、流程、供應鏈維度的優勢。AI賦能產業升級的願景或許還需多年才能實現,但當下的大陸已經讓未來可期。
以下是專欄文章全文,經TIME授權翻譯轉載:
「中國世界工廠 + AI 的未來」
多年來,中國大陸一直被喻為「世界工廠」,即便在全球其他經濟體紛紛遭遇新冠疫情重擊的2020年,大陸製造產業仍然維持穩健的增長范式,全年產值高達3.854萬億美元,占到全球市場近三分之一。
但如果你腦中的大陸工廠是傳統的「血汗工廠」,是時候修正你的刻板印象了。大陸經濟已經迅速地從疫情衝擊下復蘇,疫情同時催化了各種各樣人工智慧(AI)的應用場景加速實現。自2014年以來,中國大陸的AI專利申請量已經超越美國,至今維持全球領先。在學術領域,中國大陸的AI研究論文發表數量、AI期刊的引用量,也雙雙在近年超過了美國。在產業方面,AI應用在大陸的落地速度超越世界其他國家和地區,具有商業價值的AI應用如今開始百花齊放,整合了軟體、硬體和機器人技術的新一代自動化揭開序曲,AI賦能傳統行業的能量,正在蓄勢待發地重塑各行各業。
人類社會至今經歷了三次不同的工業革命:蒸汽革命、電力革命和資訊革命。我相信,AI將會是推動全球第四次工業革命的核心引擎,在世界各地點燃數位化和自動化的變革,而這波前所未有的硬科技浪潮,將由中國來引領實踐。
由於勞動人口減少和新增人口放緩,中國大陸的傳統產業正面臨著勞動力成本上升的巨大壓力,AI正是解決這個難題的技術解答。人工智慧不僅能夠降低運營成本,提高生產效率,擴大整體產能,還有望能帶來收入的增長。
例如,創新工場投資的廣州極飛科技是一家致力於未來農業的AI科技公司,極飛將無人機、機器人和感測器部署在稻田、麥田和棉花田裡,用技術賦能農業中的播種、農藥噴灑、栽種管理、甚至天氣監測環節。用於作物噴灑的極飛科技R150農業無人車已經被推廣到了英國,應用在蘋果、草莓、黑莓等多種經濟作物的種植流程中。
一些大陸的創新公司正積極把機器人拓展到意想不到的場景。總部位於北京的鎂伽是創新工場投資的生命科學智慧自動化公司,他們和實驗室、製藥公司、高校合作,憑藉AI+機器人技術的積累,用自動化解決方案執行實驗室中勞動密集、重複性高、但需要高度精確的任務和流程,同時機器人作業也將盡最大可能保護實驗室人員降低實驗過程中的感染風險。
除了創業公司,我們看到幾家成熟的龍頭企業也開始積極擁抱AI。創新工場參與了有28年歷史的中力電動叉車,這家頭部的鋰電叉車製造商已經推出了能夠在工廠、倉庫自主運行的無人叉車,並且無需對運行環境進行改造,能快速實現從手動到電動到自動駕駛的搬運賦能創新。此外,擁有50多年歷史的領先客車製造商-宇通集團,與自動駕駛獨角獸企業-文遠知行戰略合作,已在大陸三個城市的馬路上運行全無人駕駛小巴。
接著會發生什麼?我大膽預見,在更長遠的未來,機器人和AI將接管大多數產品的製造、設計、交付甚至營銷——很可能將生產成本降低到和原物料成本相差無幾。未來的機器人有能力自我複製和自我修復,甚至做到部分自我反覆運算設計。房屋和公寓將交由AI主導設計,使用預製建築模塊,交由機器人像搭積木似地築樓蓋房。無人公交、無人摩托等隨傳隨到的自動化未來交通系統,能將我們安全無虞地送達想去的地方。
這些願景成為現實或許還需要多年,但此時的大陸正在積極鋪墊引領新一代自動化革命的基石。可期的是,中國工廠的實力將不僅僅體現在產能上,而將逐步彰顯在智慧上。
本文經「TIME時代」授權進行中文編譯,原文如下:
China Is Still the World's Factory — And It's Designing the Future With AI
BY KAI-FU LEE
For many years now, China has been the world’s factory. Even in 2020, as other economies struggled with the effects of the pandemic, China’s manufacturing output was $3.854 trillion, up from the previous year, accounting for nearly a third of the global market.
But if you are still thinking of China’s factories as sweatshops, it’s probably time to change your perception. The Chinese economic recovery from its short-lived pandemic blip has been boosted by its world-beating adoption of artificial intelligence (AI). After overtaking the U.S. in 2014, China now has a significant lead over the rest of the world in AI patent applications. In academia, China recently surpassed the U.S. in the number of both AI research publications and journal citations. Commercial applications are flourishing: a new wave of automation and AI infusion is crashing across a swath of sectors, combining software, hardware and robotics.
As a society, we have experienced three distinct industrial revolutions: steam power, electricity and information technology. I believe AI is the engine fueling the fourth industrial revolution globally, digitizing and automating everywhere. China is at the forefront in manifesting this unprecedented change.
Chinese traditional industries are confronting rising labor costs thanks to a declining working population and slowing population growth. The answer is AI, which reduces operational costs, enhances efficiency and productivity, and generates revenue growth.
For example, Guangzhou-based agricultural-technology company XAG, a Sinovation Ventures portfolio company, is sending drones, robots and sensors to rice, wheat and cotton fields, automating seeding, pesticide spraying, crop development and weather monitoring. XAG’s R150 autonomous vehicle, which sprays crops, has recently been deployed in the U.K. to be used on apples, strawberries and blackberries.
Some companies are rolling out robots in new and unexpected sectors. MegaRobo, a Beijing-based life-science automation company also backed by Sinovation Ventures, designs AI and robots to safely perform repetitive and precise laboratory work in universities, pharmaceutical companies and more, reducing to zero the infection risk to lab workers.
It’s not just startups; established market leaders are also leaning into AI. EP Equipment, a manufacturer of lithium-powered warehouse forklifts founded in Hangzhou 28 years ago, has with Sinovation Ventures’ backing launched autonomous models that are able to maneuver themselves in factories and on warehouse floors. Additionally Yutong Group, a leading bus manufacturer with over 50 years’ history, already has a driverless Mini Robobus on the streets of three cities in partnership with autonomous vehicle unicorn WeRide.
Where is all this headed? I can foresee a time when robots and AI will take over the manufacturing, design, delivery and even marketing of most goods—potentially reducing costs to a small increment over the cost of materials. Robots will become self-replicating, self-repairing and even partially self-designing. Houses and apartment buildings will be designed by AI and use prefabricated modules that robots put together like toy blocks. And just-in-time autonomous public transportation, from robo-buses to robo-scooters, will take us anywhere we want to go.
It will be years before these visions of the future enter the mainstream. But China is laying the groundwork right now, setting itself up to be a leader not only in how much it manufactures, but also in how intelligently it does it.
Source:https://time.com/6084158/china-ai-factory-future/
output翻譯 在 Facebook 的最佳解答
【奧林匹克式舉重動作不能捨棄的理由】
分享《The System: Soviet Periodization Adapted for the American Strength Coach》書中對奧林匹克式舉重的看法。該書的作者們並沒有否定專項訓練的重要性,但強調現階段(美國許多力量教練)用其他動作「取代」奧林匹克式舉重是不智的作法,主要的理由是上膊和抓舉能訓練到「大範圍動作」與「全身性」的「爆發力」與「速度」。下面附上原文、我的譯文和懸垂式上膊的訓練側拍影片:
--
#以下為譯文,最後附上原文,若有發現翻譯不到位或有問題的地方,非常歡迎也希望各界指正!
--
近年來,隨著人們越來越重視力量訓練中的安全性,以及所謂的「專項力量」訓練,奧林匹克式舉重動作已不再受到許多力量教練的青睞。主要的理由是,如果運動員不是要參加奧林匹克舉重比賽,有更好的爆發力訓練動作可以選,它們更容易轉化為運動賽場上的成績,而且這些動作不用移動那麼大的重量,所以對身體的壓力與風險會低很多。
為了甩開風險,有許多擲藥球或更有創意的動作已經在許多運動團隊的力量課表中取代上膊、抓舉、挺舉。在我們看來,這個鐘擺甩得太遠了,這些動作一直都能培養出世界上最強、最具爆發力運動員,現在卻要完全捨棄,實在太過極端。
我們要瞭解奧林匹克式舉重動作的主要目的是:通過「大範圍的動作」(特別是下肢)在全身產生最大的爆發力。
專攻奧林匹克式舉重選手和特別注重專項力量訓練的選手,這兩者的訓練課表,你最常發現的區別是:舉重選手是透過大範圍且快速的動作來訓練下肢;換言之,後者的動作幅度大都比較小。很多教練出於善意,使用了許多替代舉重的練習動作,但這些練習並沒有辦法達到舉重動作所需的柔韌性、協調性與力量輸出。
使用奧林匹克式舉重動作可以訓練到關節在較大彎屈幅度時的爆發力和穩定度,那也是身體在賽場上可能會碰到的幅度。(譯者註:當然對純跑者和泳者來說就並非如此了,不過自行車選手和大部分的球類運動相當符合)
一位運動員在進行完整的抓舉、挺舉時,如果進步太快或是沒有經過正確的指導再加上大重量,的確會導致受傷。但所有的訓練動作都是這樣,只要進階太快、操作不當或重量太重都會受傷,所以問題不在動作,而在於教練沒讓運動員準備好。
像美式足球或籃球這種運動的動作幅度很大,執行動作時需要高度的柔軟度與力量;在提升這些能力上,奧林匹克式舉重動作會比擲藥球的訓練更有效率。這些動作並不危險,只要你能先評估他們的身體是否有能力安全完成這些動作,事先對舉重動作進行規劃與指導,以及循序漸近地增加重量和動作難度,那麼很多顧慮都會消失。
當你能有效且適當地進行奧林匹克式舉重訓練,你會發現它的好處遠遠大於缺點。
(但作者也強調並不是每個人一開始都適合練奧林匹克式舉重動作)
一開始先別進行大量且高強度的奧林匹克式舉重訓練,最好先等到運動員們至少已經練了幾年之後才能大量的練。如果他們在早期要發展爆發力,可在運動員學習和改善舉重動作時先進行「跳躍」與「增強式訓練」。
無論什麼動作,練熟了動作的技術之後,接下來「速度」是第一位。雖然體育界很重視力量和肌肥大,但力量所表現出來的速度才是真正分出運動員實力差異的關鍵所在。
在健力(powerlifting)比賽中,動作的速度並不重要,目標是舉得更重,不管花多長時間,比賽結果只看重量。但在美式足球場上,最強壯的線鋒球員若不能迅速將力量轉化為控制對手防守球員的能力,他們就不能算是成功的進攻組球員。同理,一位能肩推數百磅重的鉛球選手,如果他不能用全身的力量來加速擲出鉛球,他也將無法把獎牌帶回家。
--
#原文如下
THE OLYMPIC LIFTING CONTROVERSY
In recent years with the increasing emphasis on safety in strength training and what is termed “sport specific” training, the Olympic lifts have fallen out of favor with many strength coaches. The argument is that if you are not competing in Olympic lifting, there are better options for training explosive strength that translate more readily to sports performance, without the risks and strain inherent in rapidly moving heavy weights.
Variations of medicine ball throws or more creative exercises have taken the place of cleans, snatches, and jerks in the strength programming of many teams as coaches try to reduce those risks. In our opinion, the pendulum has swung too far away from using the movements that have consistently produced the strongest and most explosive athletes in the world.
The main goal of the Olympic lifts is to generate maximal power and explosive strength in the entire body through large ranges of motion, particularly for the lower extremities.
The differences you will most often find between the training regimen of an Olympic weightlifter and of athletes performing more “sport specific” training are that weightlifters consistently take the lower extremities through high-speed, large range-of-motion exercises. Many of the substituted movements and exercises used by a well-intentioned strength coach do not come close to demanding and developing the flexibility, coordination, and force output demanded by the weightlifting exercises.
It is true that subjecting an athlete to a full snatch or jerk with a substantial amount of weight without the proper instruction or progression will often result in injury. However, that holds true for any exercise. It is not the fault of the exercise, but rather the coach’s fault for failing to prepare the athlete to succeed.
Dynamic sports like football or basketball require suppleness and strength expressed through large ranges of motion; the Olympic lifts are more effective at facilitating those qualities than a medicine ball toss. If you assess an athlete to be physically capable of performing the movements safely and if the lifts are programmed and coached effectively and progressed in both weight and complexity, many concerns diminish.
You will discover that when implemented effectively and appropriately, the benefits of the Olympic lifts far outweigh the drawbacks.
A significantly high volume of Olympic lifting is best left to the athletes with at least a few years of training under their belts. For developing athletes such as these, the power and explosive qualities can be addressed through jumping or plyometric training as the Olympic lifts are coached and refined over time.
After mastering technical efficiency and form, no matter what the movement, speed should always be the priority. Although strength and muscle hypertrophy are important in the world of sports, the rapid expression of that strength is what separates athletes on the field of play.
In the sport of powerlifting, the speed of the movement is not critical. The goal is to lift the maximum weight, however long it takes. On the football field, the strongest linemen will rarely succeed if they cannot rapidly translate that strength to control an oncoming defender. A shot putter who can military press hundreds of pounds will not take home a medal without the ability to explosively accelerate the entire body to throw the shot.
(extracted from page 101~102)
--
若有發現翻譯不到位或有問題的地方,非常歡迎也希望各界指正!
output翻譯 在 與芬尼學英語 Finnie's Language Arts Youtube 的精選貼文
?【成人英語再起步】網上課程 ► http://bit.ly/2We1n2Q
YouTube 觀眾十二月特備優惠:購買【成人英語再起步網上課程】,用信用卡結賬時,可用優惠碼「YOUTUBEDEC20」,以 $1,299 優惠價購買第一期(原價 $1,499);更可以以 $2,499 優惠價購買第一期+第二期!
? Patreon 月費學習計劃 ► https://bit.ly/3fZcjID
0:00 簡介
1:17 Tip 1: 不斷精進你對文法和讀音的認識
3:54 Tip 2: 和不同老師學習,因為每個老師的強項有不同,你也會得到不同啟發
5:45 Tip 3: 把英語學習融入生活中
8:29 Tip 4: 把學英文變成一種 lifestyle
8:48 4a: 看電影
9:33 4b: 聽英語音樂
9:55 4c: 用英語追星
12:21 4d: 不要只集中 input(輸入),忽略 output(輸出)
13:56 Tip 5: 學英文不是純粹翻譯
15:43 Bonus tip: 避免過份依賴字典
16:35 課程優惠
17:02 Instagram時事英語
17:36 下載懶人包
? 訂閱電郵通訊,收取學習資源、心得和課程最新消息 ► http://bit.ly/fla-nl
? 收聽 Learning English with Tiffany Podcast
► https://apple.co/2OwMPpK (Apple Podcasts) / https://spoti.fi/3g2KChF (Spotify) / https://bit.ly/3j0uSyd (Google Podcasts)
▶️ SUBSCRIBE 訂閱 ► http://bit.ly/flayt-sub
記住要按訂閱按鈕旁邊的小鈴鐺,那麼我們每次推出新片,你就會收到通知了!
It would mean the world to me if you could hit that bell ? beside the SUBSCRIBE button because that way, you get notified EVERY SINGLE TIME a new video goes live.
?我的相機和其它拍攝器材 ► https://kit.co/finnieslanguagearts/canon-800d-rebel-t7i-youtube-kit
✏️ 歡迎提供字幕 :) ► https://www.youtube.com/timedtext_cs_panel?tab=2&c=UCHkPJ7O9LLjEntwbsgn5TOg
??英文 channel ► http://bit.ly/tiffanysuen-youtube
?芬尼創業日記 channel ► http://bit.ly/fmkt-yt
? MeWe 學英文群組 ► https://bit.ly/fla-mewe-group
▍WATCH MORE 收看更多:
名人英語 ► http://bit.ly/2EUc8QO
時事英語 ► http://bit.ly/2RqrMok
文法懶人包 ► http://bit.ly/2UPUzI4
品牌名學英語 ► http://bit.ly/2qd3mUq
語文知識 ► http://bit.ly/2GzuW8b
今天只學一個字 ► http://bit.ly/2DRQPgE
Word Pairs 怎樣分 ► http://bit.ly/2hS1MCF
▍FOLLOW ME:
Instagram ► http://bit.ly/fla-ig
Facebook ► http://bit.ly/fla-fb
MeWe ► https://bit.ly/fla-mewe
Blog ► http://bit.ly/fla-medium
Twitter ► http://bit.ly/fla-twitter
Telegram ► https://bit.ly/fla-tg
Pinterest ► http://bit.ly/fla-pinterest
Free stuff!!! :)
► Use my iHerb Discount Code: ASC7218
► Sign up at AirBnb and get HKD$290 in travel credit: https://www.airbnb.com/c/tiffanys213
► Get a FREE first Uber ride (up to HK$50): https://www.uber.com/invite/tiffanys2213ue
► Get TWO months of free SkillShare premium: https://skl.sh/2IIHhr8
► Get HKD$100 of credit to spend across your next 4 orders at Deliveroo: https://roo.it/tiffanyccs
► Get HKD$100 off your order at NOSH: TIFH437
output翻譯 在 【Apex翻譯】Hal指出APEX開發者都沒在做事!? 亂改一下就當 ... 的推薦與評價
這裡是Highlight twitch頻道,本頻道剪輯APEX,傳說對決,激鬥峽谷等等遊戲的精華,不定時也會有一些選手的精華剪輯,亦會以快速的剪輯風格讓各位在短時間 ... ... <看更多>