站長阿川

站長阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

站長精心設計,帶你實作 63 個小專案,得到作品集!

立即開始免費試讀!

引言

最近我感覺到,「使用 AI 進行編程」不再只是簡單的概念,而是變成了「編程 = 與 AI 一起工作的過程」(已經不算新鮮事了)。

在市場上,我們會時不時看到一些文章,例如「只要對 AI 發出一句指令,它就自動完成了!」似乎 AI 可以解決所有問題,實際上,AI 確實能以驚人的速度生成代碼。

但是,當真正使用 AI 時,經常會遇到以下情況:

  • 有時候請求 AI 給出代碼,但發現與我想要的結果有所偏差,於是不得不重新請求。
  • → 重複幾次之後還是不如預期,最終還是選擇從頭自己來。
  • 結果,生產力的提升確實令人懷疑。

或許有些人也有過類似的體驗,我就是其中之一。哈哈。

因此,我將在「與 AI 編程的心態」這個角度總結一些可以讓我們稍微更好相處的方法。
至於具體的技術部分,我會另寫。
可能這些只是平常的事情,但既然如此,不如我們一起看看吧!

與 AI 妥善相處的心態

① AI 不是靈丹妙藥!

系統開發並沒有靈丹妙藥。「更好的編碼技術和原則」雖然存在,但並沒有「這是最完美的解決方案!」「這能解決所有問題!」的手法或框架。即使目標一致,方法也往往有所不同。

AI 也一樣,AI 並不能理解一切,也不會隨便根據某些指示就解決問題
我認為,指令發出方對於任務和系統的理解程度,將直接影響 AI 產出的代碼內容。

AI 確實能提高工作效率,但如果錯誤地認為它能解決所有問題,可能會導致產生一些奇怪的東西,或者是我想要的東西的反面。

② 拋棄 AI 正確無誤的幻想

AI 擁有遠超過我們的知識,並可能提出我們所不知道的方法或技術。
在此過程中,我們可能會不自覺地認為「因為 AI 說的對,而且它能運行,所以應該是正確的」。

然而,這往往會導致失敗。AI 並不完全掌握項目的整體內容,因此可能會產生和我們想要的結果不同的結果,當在某個特定地方出現問題時,只能依賴 AI,最終造成一種無法明確了解自己在做什麼的情況。

當然,AI的建議有時候是有效的,並且能增加我們的知識面。
並不是所有 AI 提出的內容都是正確的
在這方面,我們應該要有負責任的態度。

③ 鑑別哪些地方能輕鬆

如前所述,目前 AI 還並不能自動化所有的過程。
那麼,AI 能發揮力量的地方到底在哪裡呢?
就我個人而言,我認為以下兩點特別擅長。

1. 實際編寫代碼的過程
系統開發中,除了編寫代碼,還有系統設計、代碼設計和目錄設計等其他過程,而真正的代碼創建是基於這些設計的。
(原型和技術驗證可能會另有所需,但這邊就不深入了。哈哈)

而 AI 擅長的是將想法轉化為代碼
要清楚你想要做什麼,以及每個功能的具體類別等等,解像度越高越好。
在這個前提下,與其讓 AI 處理所有事情,不如清楚表達你的需求和方向,再請 AI 幫你寫代碼。

2. 在設計中深化理解的過程
「設計」這個詞包含了很多內容,因此我會稍微具體化一下。
例如,有一個需求是希望用戶列表畫面能選擇排序方式。
在這種情況下,可以將其分解為以下的步驟。

  • frontend
    • 在 formValue 中新增屬性
    • 在表單區域中新增針對新屬性的組件
    • → 下拉選單?如果排序類型少的話,使用單選按鈕?
    • (如果有測試)確認新增的值是否包含在 formValue 中
  • api
    • 增加用戶列表的端點接收參數
    • 如果有排序參數,則在數據獲取的條件中添加
    • 如果沒有則使用默認條件
    • 設計針對不同排序的返回值測試 等等

在這裡,可能會出現「api 端目前是如何處理參數的呢?」或「frontend 的 formValue 是怎麼管理的?」這樣的疑問。
這時候,可以不斷向 AI 提問。

AI 非常優秀,即使是大型檔案也能夠整體把握,並能提取出來哪些地方做了什麼。※不過,建議不要做得太大啊!

這樣的方式可以提高你要實現的內容和想做的事的理解度。
基於這份理解和設計向 AI 發起請求,可以減少預期與結果之間的差距,從而更容易得到可以利用的代碼。

④ 不要過於求省事

AI 確實很方便。過去,自己必須面對電腦的時間,現在只要請求,它就能自動繼續推進。

但是,正如之前所言,AI 仍未能完全理解和解決所有問題。
因此,在編寫代碼前的階段,如果因為覺得理解或設計過程繁瑣而掉以輕心,就會產生「這樣不對……」「我沒有要求這麼多……」的矛盾。

對於人來說,許多任務的內容提交時會比較詳細,但面對 AI 時,簡潔的提示也能讓它進行工作,所以難免會想依賴這一點。

但如果一開始不努力設計或理解,就會一直產生些許不理想的代碼。
目前的 AI 問題仍然是基於具體實裝的前提,這樣的現狀或許是剛好合適的選擇。
(而且,思考這些問題本身並不是工程師的樂趣嗎?雖然我不太確定,但應該是……)

最後

這次分享的內容重點是如何與 AI 編程妥善相處的心態。
AI 確實很便利,但如果有些東西運行不順利,或許改變一下對 AI 的理解與思考會有改善。
特別是在個人開發中,基本上完全依賴 AI 進行編寫的情況不算在內,決定「那個系統想做什麼」和「該怎麼修改」的,現階段不是 AI 而是你自己

如果你期待 AI 自動解決一切,那麼當代碼不如人意的時候,可能會抱怨「這不是我所想要的……」的情況會出現得更頻繁。

但無可否認,AI 確實是一個非常強大的工具。如果能正確利用,將能提升日常工作的效率和樂趣!
(不過如果完全取代工作就糟糕了……)

希望這些內容能對你有所幫助!祝你擁有美好的 VibeCoding 生活!

株式会社 Sincere

在有限公司 Sincere,我們正在招募實務經驗不足的工程師和學生實習生一起工作。
※ 這裡展示了在 Sincere 的工作方式

在 Sincere,每年大約有 100 位實務經驗不足的候選人申請並接受技術面試。
在這些經驗中,我們希望能讓實務經驗不足的人獲得必備的技術能力(文法)。


原文出處:https://qiita.com/ikeyaH/items/f6aa4dbbcba3f1a8cc3f


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
站長阿川

站長阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

站長精心設計,帶你實作 63 個小專案,得到作品集!

立即開始免費試讀!