Github Copilot 免費版 + 盤點好用新功能
0 |
講到 AI 輔助開發,有一派聲音崇尚 Less Code 甚至 No Code,主張動手寫 Code 這種髒活兒爛事愈少愈好,期望講完需求 AI 便把程式碼生好,最好能十指不沾 use try set。 (謎:啥鬼,不要硬湊諧音好嗎?)
許多標榜更自動化、更省事的 AI 輔助開發工具如雨後春筍陸續問市,像 Cursor、Windsurf... 推出後都吸引眾多目光。而在這個議題上,我這個寫了快四十年程式的老人,再次淪為少數派。
我還是喜歡程式要保有自己特有的風格與味道,即便不完美,但必須真真實實是「我的作品」。所以我不想要太自動化,偏好半自動式的 AI 輔助開發,只想 AI 代勞重複性工作跟煩人細節,至於流程該怎麼跑、模組如何切割、系統該怎麼串,我想保有主導權並全程參與,覺得程式核心仍該依據人的想法設計。
本著這樣的理念,Github Copilot 的副駕駛精神一直很對我的頻率,也就沒啥動機去 Survey 更自動化更省力的 AI 輔助開發工具。使用 Github Copilot 的感覺,比較像有個程式老手坐在旁邊跟你一起 Pair Programming,而非自己升級成主管或 PM,指揮一堆程序員幫你寫程式。而既然是 Pair Programming,一大特點是一定有意見不同的時候,還蠻多時候我會拒絕 Copilot 建議,維持原有想法。而這是個重要指標:代表你知道這段程式在做什麼,有能力評斷不同做法的優缺點,並在程式出錯有辦法修正,即便有朝一日拿掉 AI 也還有能力寫出可用的程式(只是速度慢 N 倍)。這跟標榜全自動化,不用懂程式如何運作也能寫完程式,是完全不同的概念。
Github Copilot 像是 Pair Programming 的角色對我來說剛好。程式該怎麼寫仍由自己主導,全程參與但差在少做許多瑣碎細節及重複手工;我很常從 Copilot 身上學到新語法、見識更輕巧有效率的做法,知識與經驗也持續成長。這樣的合作模式我覺得很自在,沒什麼大問題。
【延伸閱讀】
- 讓會讀心術的 Github Copilot 陪你寫程式
- 介紹 Github 學生大禮包 - Developer Pack 與魔法武器 Github Copilot
- 閒聊 - 老鳥的 Github Copilot 危機?
這幾天有個好消息!
雖然我覺得跟 Github Copilot 帶來的生產力提升相比,每個月只要 10 塊美金真的便宜(註:學生與老師另有免費方案),花兩份大麥克套餐的錢讓寫程式速度至少快三倍,太超值了。Github 11/18 宣佈開放 Github Copilot 免費版訂閱方案,提供每個月 2000 次程式碼自動補完跟 50 次聊天區發問的額度,還沒用過的朋友可以快去體驗一下。
都滑到 Copilot 的官方部落格,我順便盤點 Copilot 新功能(有些推出一陣子了,但對我來說是新的)補充知識:
- Copilot Edits
Copilot 介面開啟鈕現在移到 VSCode 標題列[1],預設是 Chat 視窗,左邊有一個 Edits [2],操作介面跟 Chat 很像,預設會選取你目前編輯的檔案,但也可 Add Files 或拖拉新增更多檔案 [3],接著下方可輸入你希望對這些檔案進行的修改 [4]:
VSCode 會以 Git 修改前照形式呈現對程式碼的異動建議,開發者可微調後決定接受或放棄:
比起自動完成全面性,省去在 Chat 問完自己剪貼程式片段,很好用。
- 客製化指示(Custom Instruction)
概念很像 LLM 的 System Prompt,會在每次 Chat 時送出,可調整 Copilot Chat/Edits 行為。一些實用例子像是:
- 命名習慣:要求私有變數命名時一律加 _ 底線開頭
- 產生自動測試程式時用哪一套測試框架
- Commit 訊息的格式、內容要求
客製化指示可透過 JSON 設定,但簡便做法是在工作區根目錄放一個 .github/copilot-instructions.md 檔案(也方便分享給團隊成員)。我小試了一下,指定 C# 的私有 Field 命名前面要加兩條底線:
Markdown 裡的 ## Csharp
用來指定程式類別,可依語言設定專屬指示。程式名稱可用 Ctrl-P 用 "Preferences: Configure Language Specific Settings..." 查:
設定後,在 Edits 要求新增建構式(add constructor with IWebHostEnvironment),Copilot 果然依我的要求加了兩條底線:
但這個指示只適用 Chat、Inline Chat 及 Edits,自動完成部分仍會依預設行為。Custom Instruction 能把 Copilot 變成你的形狀,不適用自動完成有點美中不足,但還是蠻實用的,詳情可參考官方說明書。
- 全專案感知模式
在 Chat 時加上 @workspace
可針對整個專案發問,採索陌生專案時特別好用,例如:接手專案我最愛的起手式問題:"DB 是用哪一種、連線字串在哪",Copilot 很快奉上我滿意的答案。
- 變數命名小幫手
開發者的千古難題,變數、函式要取什麼名字?Copilot 了解大家的痛苦,按 F2 更名時會主動分析相關程式主動提供建議:
- 在 Terminal 使用 Copilot
如圖,按 Ctrl-I 也可叫出 Copilot 問事,並可選擇 Run 或 Insert,省去在 Chat 或 ChatGPT 問好貼 Code 的麻煩。
- 自動產生 Commit 訊息
Commit 時我習慣認真回想這次修改項目做個總結,寫成簡單易懂的扼要說明,有溫度的 Commit 訊息像是一張張舊照片,日後追 Code 時更容易幫你穿越回到當下時空。
但我知道許多人 Commit 一想到要寫訊息就頭大,大半天也擠不出字來,那可以試試 Commit 訊息欄右上角的小星星,點一下讓 Copilot 幫你彙整總結,雖然遠不及人工整理的品質,至少好過隨便塞一句「修改」充數。
如希望自動產生的 Commit 訊息符合特定規格,可用前面提到的 Custom Instruction 指定。
- 支援多種語言模型
Chat 及 Edits 時可選擇不同的語言模型,包含標榜推理跟程式理解能力的 o1 跟 o1-mini (限付費版本),不過貴森森的 o1 額度不高,每 12 小時只能發 10 則訊息,得用在刀口上,我打算下回遇到刁鑽問題戰再來見識它的威力。
This post discusses the debate between less code/no-code and traditional coding with AI assistance. I prefers a semi-automated approach using Github Copilot for repetitive tasks while maintaining control over the core design. New features of Copilot, such as Copilot Edits, Custom Instructions, and Workspace Awareness, are explored to enhance development productivity.
Comments
Be the first to post a comment