跟讀練習: Spec-Driven Development: AI Assisted Coding Explained - 通過影片學習英語口語
選擇練習模式
每種模式都會開啟全屏練習室。
111 句
如果句子過短或過長,請點選 Edit 進行調整。
1
Right now, the way apps are getting built is completely changing because before writing and reviewing code was the hardest part,
2
but now it's knowing how to effectively convey what you want to build with an LLM.
3
And that, my friends, is what's known as spec-driven development.
4
Thank you very much.
5
Nah, I'm just kidding because the thing is spectrum
6
and development has become one of the most important skills to learn
7
if you're looking to be an AI engineer Or to use AI to help build your applications,
8
but let me explain why it's different from a common technique that you might also know Which is a vibe coding, right?
9
And this is typically what people think of when they think of AI assisted coding or coding agents
10
So I want to give you a quick example of what vibe coding typically looks like
11
And we'll kind of compare how this is different than spec coding here in a second But as a user, as a developer,
12
as a builder What you're going to start from is typically your AI coding agent Whether it's in a browser
13
or it's on your machine itself You're going to start from
14
that initial prompt So you're going to write that initial prompt to the LLM and say hey,
15
I want a specific application that does this functionality in this specific language like Java or Python.
16
And that prompt is then sent to the model.
17
And that model is then going to start generating code based on what it thinks
18
that you want from that project and that it's been trained on as well.
19
So at this point, we've got some boilerplate code.
20
And this is great for testing.
21
That's why I love Vibe Coding 4.
22
And we're going to go from here.
23
But the thing is, we might not have the exact desired implementation that we want.
24
So we're going to go ahead and edit that prompt.
25
So we're going to say, actually, I wanted something different or to use a different type of library or something like that.
26
So we'll go from the prompt editing over to the AI still continuing to code.
27
And we'll go back and forth until we reach that desired implementation after a few tries, right?
28
So we are at the desired state of implementation.
29
So that's typically what we see when we're doing vibe coding.
30
But the thing is like, how did, for example,
31
the AI model decide to make that specific decision that it did based on the prompt that we gave?
32
Because we could do a hundred different tries of this implementation of the app we want to create.
33
We might get a different result every time, and that frustrates a lot of people.
34
And the thing is, Vibe Coding kind of skips the traditional software delivery lifecycle also known as the SDLC
35
that we're used to in software engineering.
36
The software development lifecycle takes a little bit of a different approach
37
because we start our project by planning and designing using specific project requirements
38
or the PRD as it's typically called and then we take what we need
39
and require for our project and begin to implement those features.
40
Once we have those features we test to see if if they work.
41
We do a little bit of quality assurance
42
and then it goes into the deployment phase from dev to staging to production and finally the maintenance of that project.
43
And so while vibe coding is fantastic and I know it feels like magic, spec coding takes a little bit of a different approach
44
and adds in some of these software development lifecycle components to AI generated software development.
45
So let's take a look at what spec coding looks like in a hypothetical scenarios.
46
So spec coding or spec driven development, again, is going to take into consideration some of those software development lifecycle aspects, right?
47
But also use the LLM just like Vibe coding in order to, as an AI agent, write code or run these tests.
48
But it all starts with the prompt, of course, at first.
49
But the thing is, we're not prompting a specific implementation.
50
We're prompting what we want our system to do.
51
So the behavior, the constraints that we want and
52
that specific specification is then used like a contract to create a requirements
53
and this requirements is going to be kind of the main hierarchy of how this project is going to work
54
so how we want the model
55
and the agent to write code to do tests documentation verification
56
and much much more is all going to be focused from around the requirements itself the thing is
57
If we're happy with those requirements, so if we're happy, we can approve, and we can say, yes,
58
I want to turn this requirement specification into a design document that will then have to-dos for each specific implementation.
59
Or I can say, hey, I want to edit how I want this project to be implemented.
60
Because at this point, nothing has been implemented, and AI models are all about proper instructions.
61
So having a spec like this is much better than having
62
the LNM guess what solution is going to hopefully best fit the user's request.
63
So we go from the design here and if we're happy with
64
that design and how we actually want it to be implemented in code, well then we can have the model if we're happy go off and implement this.
65
So we can go and use that AI agent
66
or we can continue to do more requests on the specific implementation features
67
that we want to get back to and that's how spec coding works.
68
But Really quickly, I want to explain how it's different than other development cycles.
69
So in traditional development, so the way that, you know, most folks kind of started by writing code, it was first code, right?
70
And then afterwards, it was documentation, right?
71
So we would kind of start with our intuition and we would kind of go from there.
72
The thing is, we also started to work with test-driven development.
73
So test-driven development, as you can probably assume in the name, is where we start from the test and what the functionality we want for this,
74
you know, applications behavior to be, and then go into writing the code afterwards.
75
So that was also another popular way to approach development.
76
And the thing with spec coding, so spec-driven development, is it kind of turns it on its head.
77
So we kind of go from specifications these specs
78
that we have here to the design document requirements and actually implementing
79
that And then we go to code and so it's kind of test driven development and behavior Driven development on steroids, which is really cool
80
So let me give you a quick example of how this works in practice So we'll start off with vibe coding.
81
So with vibe coding again, we're just talking to the model We're doing quick edits on the fly.
82
I think that's that's what it's best for, right?
83
We're gonna say, hey, we need, let's see, what do we need?
84
Maybe a slash login page for our users to authenticate.
85
So, okay, that's a great request to the model, but how do we know what it's gonna do?
86
It might have 30 different ways to implement this, and we might have to go back and forth with the model, and that can take sometimes longer than just writing the code ourselves.
87
So vibe coding is one way to approach that problem.
88
The spec-driven development approach is a little bit different,
89
but of course still using the LLM to create this requirement that we have for this feature, right?
90
So in this case with spec-driven development, we're going to have a new feature and this feature is going to be user authentication, right?
91
So this is a new feature that we want to the LLM to build out.
92
Of course, we haven't started implementing yet.
93
This is just the kind of planning phase.
94
And we're going to say, hey, this is going to be an endpoint at slash login to do post requests to.
95
Okay, awesome.
96
And then what variables are we going to take for the username and password?
97
Well, we can say, hey, we're going to accept two different variables.
98
So they're going to be user and then pass.
99
Awesome.
100
So that is in there.
101
And we know when the implementation starts why it got to this conclusion.
102
Let's say for some reason if it doesn't work, we're going to have a fallback, a failure code.
103
If missing, I don't know, let's say username, right?
104
And then we can also generate test cases from here.
105
So let's go on to test and we're going to say,
106
hey, valid credentials will give a 200 code.
107
And this is really cool because when we're doing AI-assisted coding, we now have less ambiguity for our coding agents,
108
and we can use spec-driven coding to kind of flip the traditional development model, right?
109
So that we have this spec, and that becomes the primary artifact that drives all this downstream work like implementation and test and much more.
110
If you learned something today, I'd love if you could hit the like button and hack the algorithm, and make sure you subscribe for more content around AI and application development.
111
Have a good one.
同頻道
FOR YOU
推薦影片
本課的詞彙與口語要點
這段影片共有 111 個句子、1586 個單詞可供跟讀。 講話部分時長為 8:56。 說話人語速自然,每分鐘約 177 個詞,接近日常對話。 85% 的單詞屬於英語最常用的 3,000 詞,其餘的詞建議在練習前先學一下。
影片中的重點詞彙
影片中 15 個值得學習的單詞,附發音和釋義:
| 單詞 | 發音 | 釋義 |
|---|---|---|
| vibe 名詞 | /vaɪb/ | 氛圍 /氛圍 |
| implementation 名詞 | /ˌɪmplɪmənˈteɪʃən/ | 履行 |
| requirement 名詞 | /ɹɪˈkwaɪɹmənt/ | 要求, 需求 |
| implement 動詞 | /ˈɪmpləmənt/ | 實施 /實施, 執行 /執行 |
| edit 動詞 | /ˈɛdɪt/ | 編輯 /編輯 |
| specification 名詞 | 規格 /規格, 規範 /規範 | |
| afterwards 副詞 | /ˈæf.tɚ.wɚdz/ | 然後 /然後 |
| assist 動詞 | /əˈsɪst/ | 幫 /幫, 幫助 /幫助 |
| username 名詞 | 使用者名稱 /使用者名稱, 使用者名稱 /使用者名稱 | |
| functionality 名詞 | 功能, 功能性 | |
| technique 名詞 | /tɛkˈniːk/ | 技術 /技術, 技巧 |
| compare 動詞 | /kəmˈpɛɚ/ | 比, 比較 /比較 |
| skill 名詞 | /skɪl/ | 技巧, 技能 |
| aspect 名詞 | /ˈæspɛkt/ | 方面 |
| conclusion 名詞 | /kənˈkluːʒən/ | 結束 /結束 |
影片中出現的短語動詞
| 單詞 | 發音 | 釋義 |
|---|---|---|
| go back 動詞 | 回去, 返回 | |
| go ahead 動詞 | /ˌɡoʊ əˈhɛd/ | 請便 /請便 |
影片中的語法
說話人最常用的結構,並附上影片中的原話:
| 結構 | 影片中的用法 |
|---|---|
| 被動語態 be + 過去分詞 — 強調發生了什麼,而不是誰做的 | is then sent · been trained · be implemented |
| 現在完成時 have/has + 過去分詞 — 過去發生但與現在仍有關聯的事 | has become · it's been trained · has been implemented |
需要注意的發音
說話人用了 37 次縮略和弱讀形式,例如 we're, we'll, you're。請按聽到的簡短形式來說。
- “th” 音: algorithm /ˈælɡəɹɪðm̩/, hypothetical /ˌhaɪpəˈθɛtɪkəl/, authenticate /ɔˈθɛn.tɪ.keɪt/, authentication /ɔːˌθɛntɪˈkeɪʃn̩/
- “sh” 和 “zh” 音: speculation /ˌspɛk.jəˈleɪ.ʃən/, implementation /ˌɪmplɪmənˈteɪʃən/, documentation /ˌdɑkjəmɛnˈteɪʃən/, conclusion /kənˈkluːʒən/, consideration /kənˌsɪd.əˈɹeɪ.ʃən/
- 長單詞——注意重音位置: speculation /ˌspɛk.jəˈleɪ.ʃən/, implementation /ˌɪmplɪmənˈteɪʃən/, documentation /ˌdɑkjəmɛnˈteɪʃən/, consideration /kənˌsɪd.əˈɹeɪ.ʃən/, developer /dɪˈvɛləpɚ/
如何用這段影片練習
- 先完整聽一遍影片,不要開口,記下不認識的單詞。
- 先用 0.75 倍速逐句跟讀,熟練之後再回到正常速度。
- 錄下自己的聲音並與原聲對比,特別注意 vibe, implementation, requirement 這類單詞。
什麼是跟讀法?
跟讀法 (Shadowing) 是一種有科學依據的語言學習技巧,最初開發用於專業口譯員的培訓,並由多語言者Alexander Arguelles博士普及。這個方法簡單而強大:您在聽英語母語原聲的同時立即大聲重複——就像是一個延遲1-2秒緊跟說話者的影子。與被動聽力或語法練習不同,跟讀法強迫您的大腦和口腔肌肉同時處理並模模擬實的講話模式。研究表明它能顯著提高發音準確性,語調,節奏,連讀,聽力理解和口語流利度——使其成為雅思口語備考和真實英語交流最有效的方法之一。



























