跟讀練習: Build a Real-Time Leaderboard on AWS with DynamoDB - 通過影片學習英語口語

選擇練習模式

每種模式都會開啟全屏練習室。

96 句
如果句子過短或過長,請點選 Edit 進行調整。
1
Did you know that every match weekend, millions of people playing fantasy soccer get re-ranked within minutes of the final whistle?
2
Your striker scores twice, and before the highlights even air, your rank has jumped thousands of places.
3
Think about what that takes.
4
Millions of scores, reshuffled again and again, always in perfect order.
5
Ask any engineer how, and you'll get one word back.
6
Redis.
7
A cash to babysit A cluster to pay for One more thing that can fall over at 2 in the morning
8
We're skipping all of it Today, we build a real-time leaderboard on AWS where the database does the ranking itself Live boards,
9
daily and weekly rankings percentiles,
10
history and the entire ranking engine is one clever sort key We'll walk the diagram piece by piece and at the end,
11
there's a free, hands-on lab where you build every bit of it yourself.
12
Let's start with the hard part.
13
A leaderboard has one job that's harder than it looks, keeping thousands of scores in order all the time.
14
Sort them on every page load, and you're resorting the same data thousands of times a second, slow and expensive.
15
The trick is to never sort at read time at all.
16
So we store every score in Amazon DynamoDB, a serverless database that keeps rows physically ordered by their sort key.
17
Ordered ascending, smallest first.
18
Which is exactly the wrong direction for a leaderboard.
19
So we flip the scores upside down.
20
When a player scores 4,000, we subtract it from a fixed ceiling, 6 nines, and store the result as a sort key.
21
Now, the best player has the smallest key, and ascending order becomes highest score first.
22
Two small details make it bulletproof.
23
We pad the number with zeros so it sorts correctly as text.
24
And we glue the player's ID onto the end, so two identical scores can never collide.
25
The table itself is keyed by player.
26
One row per player, per board.
27
So updating your score is a single write.
28
Then we add a global secondary index.
29
A second, automatically maintained view of the same data, grouped by board and sorted by that inverted score.
30
That index is the leaderboard Read it top-down, and the ranking is already done The live board never stops moving, though The moment scores change,
31
yesterday's top 10 is gone forever So we add a second,
32
smaller table for history A snapshot table that freezes the top 50 Who ranked where,
33
at what moment Before a single line of code touches these tables, we decide who's allowed to That's IAM,
34
one execution role, shared by every function we're about to build With exactly two abilities Access to our tables,
35
and permission to write logs Five functions, same job description One role covers them all
36
Now the backend Five AWS Lambda functions Small pieces of Python that only run when called, and cost nothing in between
37
Each one does a single job The first takes score submissions
38
It writes your score to three boards at once The all-time board, today's daily board, and this week's weekly board
39
And it plays fair It only overwrites your old score if the new one is higher The second reads the board
40
One query against that inverted index, the top 25 rows, stamped rank 1 through 25
41
A few milliseconds and no sorting anywhere The third answers the question every player actually cares about Where do you rank?
42
It counts how many players sit above you in the index Adds one, and that's your rank
43
Turn that into a percentile against the whole board Because top 8% sounds a lot better than rank 200.
44
The fourth is the historian.
45
On request, it copies the current top 50 into the snapshot table, stamped with the moment it was taken.
46
And the fifth works for us.
47
A simulator that invents dozens of players, names, countries, scores, so we can test the system under load without recruiting real gamers.
48
It batch writes up to 90 rows in one shot More than Lambda's default 3 second timeout can survive
49
So we raise its timeout to 10 Five functions, but a browser can't call a Lambda directly So we put Amazon API Gateway in front
50
A REST API with five routes Submit a score, read the board, check a player,
51
take a snapshot, run the simulator Each route uses proxy integration The whole HTTP request goes straight to the function,
52
and the function shapes the whole response.
53
And every route allows cores, cross-origin requests, because our dashboard will live at a different address than the API,
54
and browsers block that unless the API explicitly allows it.
55
Deploy it to a production stage, and the whole backend sits behind one public URL.
56
Last piece, something for humans One small EC2 instance running Ubuntu With two doors open Web traffic for visitors,
57
SSH for us On it,
58
Nginx A web server built to hand out static files fast Serving a one-page dashboard A tiny config file tells
59
that page the backend's URL No framework,
60
no build step One HTML file and Nginx And quietly watching all of it CloudWatch.
61
Every one of the five functions streams its logs there.
62
That's the second half of the role we created.
63
When a score doesn't show up, that's the first place we look.
64
Now the payoff.
65
Open the instances public IP in a browser.
66
The dashboard loads.
67
Empty.
68
Click Seed Data, and the simulator floods the table.
69
Refresh.
70
There's the board.
71
Sorted top to bottom, avatars, country flags, the query time on screen reading just milliseconds.
72
Flip to daily.
73
Weekly.
74
Click a player.
75
Rank, percentile, games played.
76
No cache to warm, no cluster to babysit The database never sorted anything The scores were born sorted
77
Step back and count the pieces
78
Two DynamoDB tables A live board that sorts itself And one for history One shared IAM role Five Lambda functions Submit,
79
query, stats, snapshot, simulate One API gateway front door with five routes One EC2 instance serving the dashboard,
80
and CloudWatch logging every run.
81
And when nobody's playing, the serverless half costs nothing.
82
Functions and tables bill by use, not by the hour.
83
You've watched it come together on a diagram, but this design really sticks the moment the board lights up in your own browser, running on your own build.
84
So we made that free.
85
Two kinds of hands-on labs.
86
First, five mini labs.
87
IAM, DynamoDB, Lambda, API Gateway, and EC2.
88
Each a short, focused rep on one service from this video.
89
Then the capstone, a real AWS account where you build this exact system, the role, the two tables with the inverted index,
90
all five functions, the five API routes, the dashboard.
91
Then seed it and watch your own leaderboard sort itself.
92
The links are below.
93
If this one clicked, subscribe.
94
This video is part of a free AWS Crash Course, and more builds like it are on the way.
95
Tell us in the comments which system you want us to design next.
96
See you in the next one.

下載應用

流利口語所需的一切

AI 發音評分逐句打分
音標練習掌握每個音
詞彙學習建立你的詞庫
詞彙遊戲邊玩邊學

同頻道

FOR YOU

推薦影片

真實場景:即時排行榜背後的技術對話

這段影片對話圍繞如何在AWS上構建即時排行榜展開,涉及技術原理、資料庫設計和雲服務應用。對話中不僅有專業術語,還包含邏輯清晰的步驟說明,適合練習理解複雜資訊的表達。通過模仿這樣的對話,你能提升在工作場景中清晰闡述技術方案的能力,同時熟悉科技領域的常用表達。

實用短語與搭配

  • inverted score 倒排分數:影片中用於描述將分數反轉以實現正確排序的技術手段,是構建排行榜的核心概念。
  • global secondary index 全域性二級索引:資料庫中的關鍵技術術語,指自動維護的資料集檢視,常用於快速查詢。
  • serverless database 無伺服器資料庫:雲服務中的熱門概念,強調無需管理伺服器即可執行資料庫。
  • execution role 執行角色:IAM中的重要概念,用於定義函式的訪問許可權,體現了雲服務的安全設計。
  • batch writes 批次寫入:指一次性寫入多條資料的操作,可提高效率,常見於資料處理場景。

影子跟讀挑戰

開啟影片,找到“Five functions, same job description”這段內容(約在對話中間部分)。先完整聽一遍,注意說話人的語調和節奏。然後進行影子跟讀:播放一句,暫停,立即重複,儘量模仿發音、重音和停頓。重點練習“One role covers them all”和“Small pieces of Python that only run when called”這兩句,感受英語在技術說明中的簡潔表達。完成後,用自己的話總結這五個函式的作用,錄音並對比原影片,檢查是否清晰傳達了關鍵資訊。通過這樣的shadow speech練習,你能快速提高英語發音和口語流暢度,利用看YouTube學英語的機會,讓影子跟讀成為日常學習的有效工具。

影片中的語法

說話人最常用的結構,並附上影片中的原話:

結構影片中的用法
被動語態 be + 過去分詞 — 強調發生了什麼,而不是誰做的is keyed · was taken · were born
現在完成時 have/has + 過去分詞 — 過去發生但與現在仍有關聯的事has jumped · You've watched

什麼是跟讀法?

跟讀法 (Shadowing) 是一種有科學依據的語言學習技巧,最初開發用於專業口譯員的培訓,並由多語言者Alexander Arguelles博士普及。這個方法簡單而強大:您在聽英語母語原聲的同時立即大聲重複——就像是一個延遲1-2秒緊跟說話者的影子。與被動聽力或語法練習不同,跟讀法強迫您的大腦和口腔肌肉同時處理並模模擬實的講話模式。研究表明它能顯著提高發音準確性,語調,節奏,連讀,聽力理解和口語流利度——使其成為雅思口語備考和真實英語交流最有效的方法之一。

影子跟讀法: 閱讀完整分步指南 →