精選文章
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
2026 和 AI 一起寫程式 - 1 macbook 視窗版 Hello World
前篇:2026 和 AI 一起寫程式 - 0: 環境設置 IntelliJ IDEA / Github / Gradle / Kotlin - JDK 25
( 圖為 ChatGPT 所做 )
終於可以體會馬斯克和黃仁勳為何說不用再自己寫程式了!
也難怪甲骨文這個原本是純軟體公司, 要借債搞AI數據中心, 還打算蓋小型核電站 ^^
如果好好搭配 AI 來寫程式, 和以往相比, 應該可以省下百倍的時間;
這回用 ChatGPT 5.2 + Thinking 來寫程式, 令人驚艷; (相信其他家的 AI 也不差)
和先前 ChatGPT 4 比較:
1. 我會的 AI 都會
- 這次提完需求, AI 立刻能做出來, 而且直接 copy & paste 可以編譯執行沒有錯誤; 一發入魂完成, 不會像以前一個錯誤修改後產生新的錯誤...
- 甚至在設計 MyLog 物件時, 原本我只想 println 訊息, AI 還會主動建議要不要加上 timestamp 和 訊息 level 等級的參數擴增
- 有時做出不是我要的, 但應該是需求定義不明確, 再描述需求就做對了
- 執行時有個執行結果有問題, 和 AI 說, AI 也能立刻找出原因修正完成
2. 我不會的 AI 也會
- 看到 IDEA 的 About 會顯示編譯日期, 也想要這樣做, 但不會做; 以往可能是 Google 搜尋, 還不見得找得到, 找到也不見得就是能用的; Try & Error 花好長時間, 美其名為自己忙活半天好像有學到^^ 現在 AI 幫忙很快地去搜尋, 提供最可能的解法, 節省了不少這些嘗試的時間;
繼續開發複雜一點的程式實驗看看^^
底下是這次實驗紀錄:
--
程式:https://github.com/neojou/Hello2026/tree/main/src/main/kotlin
續上篇:
1. 模組化
將原本 main() 的模組化,
(1) println()
MyLog 物件 - github
這個改成 MyLog.add()
另外設計 開關 console 列印功能: turnOnConsole() / turnOffConsole()
為將來存在 Log 檔做準備
AI 還增加了 LogLevel 和 timestamp, 並用了多型和參數不帶時的設定方式
fun add(message: String, level: LogLevel = LogLevel.INFO, timestamp: Instant = Instant.now())
可以發現 MyLog 物件是用 object 而非 class, AI 解釋這是因為覺得 MyLog 在這系統應是單一 skeleton 的關係
(2) Java 和 Gradle 版本
MySystemInfo 物件 - Github
執行結果:
2. 視窗化
MyAppWindow - Github
AI 選擇用 swing 來做;
有趣的是, 想顯示 Hello World 2026, AI 是用 JLabel + HTML 語法 的方式來做
3. About
這個要怎麼做一開始我沒有頭緒, 看了AI 的才知道還可以借助 Gradle
(1) AppBuildInfo.kt - Github
編譯資訊可以透過這個來獲取
(2) build.gradle.kts - Github
一開始的沒有 Local.ENGLISH, 在月份那邊顯示變亂碼
(3) 視窗名稱
可以設定 apple.awt.application.name , 目前程式寫在 Main.kt - Github
之後再繼續模組化搬移
(4) About
系統原本自己有一個, 要置換掉這個 About Handler
MyMacOSIntegration.kt - Github
視窗顯示 About 寫在 MyAbout.kt - Github
這樣就大功告成了!
寫這篇網誌比用 AI 寫程式還花時間^^
==
Grok AI 對這篇網誌的評論:
(現在可以直接提供網址, AI 會去看網誌內容^^)














留言
張貼留言