【從學員練習影片觀察到一個關於 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 也不該是目標,目標永遠都是在實務上產生價值、解決問題、滿足需求。
同時也有4部Youtube影片,追蹤數超過3萬的網紅孫在陽,也在其Youtube影片中提到,「孫在陽」直播-數據科學與雲遄運算1.using the data 「孫在陽」直播-數據科學與雲遄運算2.Data cleaning up 大數據分析-統計分析從資料取得,資料清理到視覺化分析。如何做大數據分析? 孫在陽老師主講,[email protected] 範例、講義下載:h...
「test api」的推薦目錄:
- 關於test api 在 91 敏捷開發之路 Facebook 的最讚貼文
- 關於test api 在 BorntoDev Facebook 的精選貼文
- 關於test api 在 91 敏捷開發之路 Facebook 的最讚貼文
- 關於test api 在 孫在陽 Youtube 的精選貼文
- 關於test api 在 Kayczar Official Youtube 的最佳貼文
- 關於test api 在 Nguyễn Hồ Gia Bảo Youtube 的最讚貼文
- 關於test api 在 圖形API 參考v12.0:Test Account 的評價
- 關於test api 在 public-apis/public-apis: A collective list of free APIs - GitHub 的評價
- 關於test api 在 Postman Beginner's Course - API Testing - YouTube 的評價
test api 在 BorntoDev Facebook 的精選貼文
อยากเริ่มเขียนเว็บด้วย React แบบคนอื่นบ้าง แต่ไม่รู้จะเริ่มต้นยังไงดี ? 😖
.
ไม่ต้องกังวลไป...เพราะวันนี้แอดสรุปมาให้แล้วจ้า กับสิ่งที่ต้องรู้ก่อนจะเริ่มต้นใช้ Library ที่ช่วยในการเขียนเว็บแอปพลิเคชันอย่าง React
.
มีอะไรต้องรู้บ้าง ? หากพร้อมแล้วไปดูกันเลย ~
.
🌟 พื้นฐาน HTML CSS JavaScript
.
ก่อนอื่นเราต้องมาสำรวจตัวเองก่อนว่าเราเข้าใจพื้นฐานพวกนี้แล้วหรือยัง ถ้ายังไม่เข้าใจ ควรจะไปศึกษาให้เข้าใจอย่างถ่องแท้ก่อนนะ ส่วนพื้นฐานที่แอดพูดถึงก็มีดังนี้
.
🔸 HTML เช่น HTML Element, Form, Table, และ Div เป็นต้น
🔸 CSS เช่น Styling, CSS Selectors และ Box Model
🔸 JavaScript เช่น variables, Conditional Statements, Loops, Data Types, และ DOM เป็นต้น
.
✨ NPM
.
รู้จักการใช้งาน NPM ซึ่งเป็นเครื่องมือที่ช่วยในการติดตั้ง อัปเดต กำหนดค่าต่าง ๆ และรันคำสั่งบางอย่างผ่าน Terminal เพื่อใช้งานคำสั่ง และ Library บนโปรเจกต์ React ของเรานั่นเอง
.
อ่านวิธีการใช้งานเพิ่มเติมได้ที่นี่ 👇
Link : https://www.npmjs.com/
.
✨ React Concept
.
เมื่อเราเรียนรู้พื้นฐานและฝึกฝนจนเชี่ยวชาญแล้ว ขั้นตอนต่อมาเราก็จะต้องเรียนรู้และทำความเข้าใจโครงสร้างและการทำงานของ React เช่น
.
🔹 Create React App - เป็นการตั้งค่าสภาพแวดล้อมและเครื่องมือต่าง ๆ ให้เหมาะสมกับการพัฒนาโปรเจกต์บน React เพื่อให้เราสามารถใช้คุณสมบัติของ JavaScript ได้อย่างเต็มประสิทธิภาพนั่นเอง !
.
อ่านวิธีการติดตั้งแบบเต็ม ๆ ได้ที่นี่ 👇
📑 https://reactjs.org/docs/create-a-new-react-app.html
.
🔹 JSX - เป็นส่วนเสริมของ JavaScript ที่ทำให้เราสามารถจัดการกับ UI ใน React ได้อย่างง่ายดาย ซึ่งจะมี Syntax คล้าย ๆ กับ HTML
.
สามารถอ่านเรื่อง JSX แบบเต็ม ๆ ได้ที่นี่ 👇
📑 https://reactjs.org/docs/introducing-jsx.html
.
🔹 Virtual DOM - เป็นตัวที่ช่วยจัดการ Object และ Element ต่าง ๆ บน React เปรียบเสมือนพิมพ์เขียวของ DOM ถ้าหากมีการแก้ไขหรือเปลี่ยนแปลง Object บน React มันก็จะไม่กระทบกับ DOM ทั้งหมด เพราะมันจะเปลี่ยนแปลงเฉพาะ Object ที่มีการอัปเดตเท่านั้น ทำให้การแสดงผลมีความรวดเร็วมากขึ้นนั่นเอง
.
สามารถอ่านเรื่อง Virtual DOM แบบเต็ม ๆ ได้ที่นี่ 👇
📑 https://reactjs.org/docs/faq-internals.html
.
🔹 Props & State - Props (Properties) เปรียบเสมือนแท็กใน HTML เช่น src, href, หรือ class แต่ความพิเศษของมันก็คือทำให้ React Component สามารถส่งค่าต่าง ๆ ระหว่างกันได้ ส่วน State จะแตกต่างกับ Props เพราะมันจะเป็นการเก็บค่าเพื่อใช้ใน Component นั้น ๆ เท่านั้น
.
สามารถอ่านเรื่อง Props & State แบบเต็ม ๆ ได้ที่นี่ 👇
📑 https://reactjs.org/docs/faq-state.html
.
🔹 Conditional Rendering - เป็นการแสดงผล Element ต่าง ๆ บน UI แบบมีเงื่อนไขนั่นเอง โดยใช้ตัวดำเนินการใน JavaScript เช่น if...else เป็นต้น
.
สามารถอ่านเรื่อง Conditional Rendering แบบเต็ม ๆ ได้ที่นี่ 👇
📑 https://reactjs.org/docs/conditional-rendering.html
.
🔹 React Hook - เป็น Functions เจ๋ง ๆ ใน React ซึ่งเป็นฟีเจอร์ใหม่ที่มีใน React v16.7.0-alpha -ข้อดีของมันก็คือทำให้เราสามารถเรียกใช้ State ต่าง ๆ ใน React แบบไม่ต้องเขียน Class ให้เมื่อยมือ! เป็นการเพิ่มคุณสมบัติของ Component ไม่ว่าจะ Test หรือ Refactor ก็ทำได้ง่าย ๆ
.
สามารถอ่านเรื่อง React Hook แบบเต็ม ๆ ได้ที่นี่ 👇
📑 https://reactjs.org/docs/hooks-intro.html
.
✨ API
.
เรียนรู้โครงสร้าง และวิธีการดึงข้อมูลจาก API โดยต้องเข้าใจการใช้งานฟังก์ชันใน JavaScript เพื่อช่วยในการดึงข้อมูลและนำมาใช้ภายในโปรเจกต์ หรืออาจจะใช้เครื่องมืออย่าง Axios ซึ่งเป็นอีกหนึ่ง Library ยอดนิยมที่ช่วยให้เราดึงข้อมูลจาก API ได้อย่างง่ายดาย !
.
เพื่อน ๆ สามารถอ่านวิธีการใช้งาน Axios ได้ที่นี่ 👇
Link : https://www.npmjs.com/package/axios
.
✨ Server-side Rendering
.
รู้จักการใช้งานเครื่องมือที่ช่วยในการแสดงผลฝั่ง Server เช่น Next.js, After.js, Rogue ซึ่งเหล่า React Dev ส่วนใหญ่จะนิยมใช้เจ้า Next.js เพราะใช้งานง่าย ไม่ต้อง Config อะไรเพิ่มเติมและช่วยให้เราสามารถเขียนเว็บได้สะดวก รวดเร็วมากขึ้นนั่นเอง !
.
✨ Styling UI
.
ใช้แนวคิด CSS มาช่วยให้เราออกแบบ วาง Layout และจัดองค์ประกอบบนหน้าเว็บไซต์ ซึ่งในปัจจุบันก็มีเครื่องมือต่าง ๆ ที่จะช่วยให้เราเขียน CSS ได้ง่ายมากขึ้น ไม่ว่าจะเป็น Material UI และ TailwindCSS นั่นเอง
.
และเมื่อเราได้เรียนรู้ทุกหัวข้อที่แอดกล่าวมาแล้ว เราก็เริ่มต้นทำโปรเจกต์ React กันได้เลย !! ซึ่งทางทีมแอดเคยทำสรุปการใช้งาน React ไว้ให้แล้ว หากสนใจสามารถกดเข้าไปอ่านกันได้เลย ~
📑 Link : https://www.borntodev.com/2020/07/15/react-101/
.
หวังว่าจะเป็นประโยชน์กับเพื่อน ๆ ที่กำลังเริ่มต้นเขียน React นะ หากชอบเนื้อหานี้ อย่าลืมกดไลก์ กดแชร์ เพื่อเป็นกำลังใจให้พวกเราด้วยล่ะ 😁
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#React #javascript #ฺBorntoDev
test api 在 91 敏捷開發之路 Facebook 的最讚貼文
最近 Agile 台中 #單元測試線上工作坊 連三發。
先由 Max 打頭陣,用 Python 示範,
再由 Kuma 接棒,用 Java 示範,
接著由 Recca 用 PHP 示範。
我可以拍胸脯跟各位保證,他們幾位講單元測試內容都很專業的,因為都來過我的單元測試課一起交流過,他們實務上也都會落實撰寫單元測試,甚至 TDD 去輔助開發他們的產品。
至少我們這個流派,測試都是用來描述需求使用情境的,用來抓 production code API 易用性問題、職責設計的問題,那種 auto-validation(testing) 的回歸測試,只是順便的好處而已。
要聽,就要聽這種專業的陣容啊,大家都是實際在戰場用這種方式在打仗的。
那種只是教教 test framework, 工具, mock framework 的,要聽也是可以啦,只是如果連這樣的簡介你都不想花時間了解,即使聽了,你在實務上還是用不上去,得不到真正的好處的。只會產生一種錯覺:「我也會寫測試,只是 legacy code 太髒,要花我太多時間去寫測試了,我時間不夠,不然我也可以」
No, sorry,你不行,你就是不行。
因為可以的、能寫測試的,從來都不會覺得自己「沒時間寫測試」。
--
偷偷蹭一下大家的光芒,雖 #不要臉,但 #我驕傲
test api 在 孫在陽 Youtube 的精選貼文
「孫在陽」直播-數據科學與雲遄運算1.using the data
「孫在陽」直播-數據科學與雲遄運算2.Data cleaning up
大數據分析-統計分析從資料取得,資料清理到視覺化分析。如何做大數據分析?
孫在陽老師主講,[email protected]
範例、講義下載:https://goo.gl/ytzRxT
時間軸
00:00 簡介
03:40 數據科學
09:30 大數據分析與統計分析的差別
13:35 AI是什麼
14:52 圖靈測試 Turing test
17:35 機器學習
20:47 建模
21:58 用線性迴歸做預測
26:46 用羅吉斯迴歸做分類
28:54 其他機器學習
31:28 研究目的
33:21 數據來源的差別
42:58 取得 Azure API for FHIR 數據
01:10:00 資料清理
01:19:48 如何展開資料
01:37:40 描述性統計:樣本個數
test api 在 Kayczar Official Youtube 的最佳貼文
Audio for "Observe" performed by Kayczar
Written by : Kayczar
Produced by : Kayczar
Operasi Records
LYRICS
[Hook]
I seen a lot, I seen a lot,
I seen some brothers who’s scraping a pot,
I seen some bitches go down for the spot,
I seen some fathers who work on the block,
I seen some mothers with 22 jobs,
I seen some money, but never seen knots,
I seen some hunnids get blown on some rocks,
I seen a lot man, I seen a lot man,
I seen a lot
[Verse 1]
I seen the bottom of bottoms,
I've seen whole families at temples for lottos,
I've seen the blood on the car post a postal that happened outside when they sound and asleep next to the lushest of grottos,
Who's looking out for us?
The nation been spiraling, numbers been down and they drippin all over chanel?
My heart has been hurtin’, can you tell?
I mask the pain in a bottle,
I tell these stories that's makin 'em laugh so they don't see the clouds that I follow,
Times gettin darker,
I want the family to eat so I sleep when I can not when I want to,
Bila lagu aku laku,
My people gon ball till the heavens,
Been living in hell for so long that I cannot be saved,
Not even the sharpest of reverends,
I revel in pressure and my eyes are set on a goal and there’s no turning back I need reparations,
So I’m blowin’ detonation everytime I do a beat or verse,
I used to wanna give up but now gon’ have to put me in a hearse,
Ya heard, cause
[Hook]
I seen a lot, I seen a lot,
I seen some brothers who’s scraping a pot,
I seen some bitches go down for the spot,
I seen some fathers who work on the block,
I seen some mothers with 22 jobs,
I seen some money, but never seen knots,
I seen some hunnids get blown on some rocks,
I seen a lot man, I seen a lot man,
I seen a lot
[Verse 2]
Know your worth homie,
Don’t fuck with these cronies,
Don’t test how I move,
Semuanya ku dah lihat,
Aku ni takut nak kalah,
Cam mana aku nak rehat?
Aku nak tengok ayah bawak tesla,
Duit bertingkat,
Semua adikku bawak tester,
Cuma tunggu ujian,
And you know that I run it cause I seen some nights without no food,
I been through hell like I told you,
Tapi api neraka pun tak sepanas hustleku for my family I’ll fold you,
Make you old news,
Yeah your whole crew,
You got it?
I'll take it, can’t hold you,
Hidup ni satu ticket there’s no two,
You better grab what you want ‘fore it’s over for ya,
Can I live for a second? That’s Hova for ya,
Might end up pushing that contraband,
My brother keep drums like they got a band,
I’m trying to make em see light ‘fore they end up inside of a cell like so many men,
But they see red on a daily,
Tell me they gotta stay strapped cause
A day in their life’s like a lifetime of crazy
My thoughts are startin to hazy
[Verse 3]
Abang long sudah bilang,
Kiblat drill arah JB,
Mana korang semua hilang?
Kata kau ballin cam CP3?
Mana hustle kau sekarang?
Mana kawan kau yang industry?
Aku surrounded by the real ones,
Semua takkan terlipat under pressure,
See the gold on my necklace,
Amma blessed me,
I got the Sulam behind me,
Y'all know this energy crazy,
Step in my home man these demons can't test me,
Most of these haters ain't met me,
They why they got all these assumptions,
Memang tak function,
Real Gs move in silence,
That's why you ain't seen all my homies,
Stop askin round about who all gon know me,
All of your boys on the level below me,
All of my people gon eat man that's on me,
I ain't got it but at least I'm not phony,
Wearin those fake jewels like you own it,
You're not my opponent,
You ain't never been on it to me,
I'll take your career and I'll roll it up,
You ain't got integrity, clout it up,
I'll take my path I swear that's enough,
My brother done taught me man fuck your love,
Do what I want I don't fuck with you standards,
Who set the rules man they should be abondoned,
Ku tak pernah silap langkah,
I am the one man sila pangkah,
81100 the realest, fakta
test api 在 Nguyễn Hồ Gia Bảo Youtube 的最讚貼文
Vario 150i Lên Full Nồi Pô Xăng Lữa ECU Api Tech Lọc Gió K&N Họng Xăng Thái 30mm Pô Móc Êm Test Lên Được 160Km/h tại TBK Racing Team 147 Tân Khai P4 Q11 Bảo Hello 0909774482
test api 在 public-apis/public-apis: A collective list of free APIs - GitHub 的推薦與評價
Postman Echo, Test api server to receive and return value from HTTP method, No, Yes, Unknown. PurgoMalum, Content validator against profanity & obscenity ... ... <看更多>
test api 在 圖形API 參考v12.0:Test Account 的推薦與評價
圖形API 參考v12.0:Test Account. ... 閱讀中. A test user account for a Facebook app ... 如果想瞭解如何使用圖形API,請參閱我們的使用圖形API 指南。 ... <看更多>