跳到主要內容

精選文章

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 會去看網誌內容^^)









留言

熱門文章