[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-go-turns-team-chaos-into-boring-builds-zh":3,"article-related-go-turns-team-chaos-into-boring-builds-zh":30,"series-tools-1210fbca-7d00-4a0d-9be2-39163079dbb0":75},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"1210fbca-7d00-4a0d-9be2-39163079dbb0","go-turns-team-chaos-into-boring-builds-zh","Go 把團隊混亂變成穩定建置","\u003Cp data-speakable=\"summary\">Go 用流程優先的設計，把建置、並發和測試做成團隊能穩定交付的日常。\u003C\u002Fp>\u003Cp>我用 Go 一陣子了，越用越有一種怪感：它根本不想討好我。這句話聽起來有點欠揍，但你如果待過那種語法很會演、流程很會鬧的語言，就知道我在講什麼。Go 不是那種一打開就讓你覺得自己很聰明的東西；它比較像把桌子先鋸平，再叫大家坐好。建置、測試、打包、\u003Ca href=\"\u002Fnews\u002Fsalesforce-fin-buy-proves-deployment-speed-wins-zh\">部署\u003C\u002Fa>，這些原本最容易被拖爛的事，在 Go 裡面反而變成最不需要想太多的部分。這件事剛開始我很不爽，後來才發現，團隊真的需要的是這種無聊。\u003C\u002Fp>\u003Cp>我原本也想要更華麗的抽象、更漂亮的型別系統、還有少一點錯誤處理的樣板。結果一進團隊專案就被打臉：那些看起來很爽的語言特性，常常只是把成本往後延。Go 的做法很直接，語言縮小，工具補上，並發當成正事，不是附帶功能。這種設計我以前嫌土，現在反而覺得很誠實。\u003C\u002Fp>\u003Cp>真正讓我重新看 Go 的，是官方網站 \u003Ca href=\"https:\u002F\u002Fgo.dev\u002F\">go.dev\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgo.dev\u002Fref\u002Fspec\">語言規格\u003C\u002Fa>，還有 Rob Pike、Ken Thompson、Robert Griesemer 這條線的設計脈絡。它不是在賣語法花招，而是在講「怎麼讓一群人比較不痛苦地把東西交出去」。我這篇不是要叫你全家桶改寫 Go，而是拆它的套路，順手給你一份可以抄的版本。\u003C\u002Fp>\u003Ch2>Go 先管流程，不先管炫技\u003C\u002Fh2>\u003Cblockquote>Go is focused on the software development process itself.\u003C\u002Fblockquote>\u003Cp>這句話我看第一次沒什麼感覺，後來才懂它有多狠。翻譯一下就是：Go 不把重點放在語法表演，而是放在整個開發流程能不能順順跑完。你 clone 專案、裝依賴、跑測試、產出 binary、交給別人接手，這整條路是不是乾淨，才是它在意的事。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781971401098-zdl4.png\" alt=\"Go 把團隊混亂變成穩定建置\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我以前在別的堆疊裡最常遇到的鬼故事，就是某個服務「理論上」很好跑，實際上卻有一堆隱藏前提：本機要裝特定版本、某個 script 不能少、某個環境變數要先設、某個測試要跳過。Go 很像是從這些爛事反推回去設計的。它把工具鏈、套件管理、編譯、測試都綁在一起，目的不是讓你覺得高級，是讓你少踩雷。\u003C\u002Fp>\u003Cp>我之前帶過一個後端小組，大家各自習慣不同，結果每個 repo 的 build 方式都不一樣。有的靠 shell script，有的靠手動指令組合，有的還要先去翻 README 找「正確姿勢」。那種環境下，團隊不是在寫程式，是在背咒語。Go 的思路剛好相反：把常見路徑固定住，讓新人不需要先學會一整套部落知識。\u003C\u002Fp>\u003Cul>\u003Cli>先看 clone 後 5 分鐘內能不能跑起來。\u003C\u002Fli>\u003Cli>先看測試是不是一條標準指令就能過。\u003C\u002Fli>\u003Cli>先看 deploy 是不是不用靠某個老鳥口述。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>實操寫法很簡單：你在設計自己的框架、內部平台或專案模板時，先不要問「語法酷不酷」，先問「新同事進來會不會卡死」。如果這條路不順，後面再華麗都沒用。\u003C\u002Fp>\u003Ch2>語法越少，團隊越少吵架\u003C\u002Fh2>\u003Cp>Go 的語法很克制，這點我以前嫌它不夠爽，現在覺得它是在幫團隊省命。像是簡短宣告 \u003Ccode>:=\u003C\u002Fcode>、\u003Ccode>if\u003C\u002Fcode> 不用括號、\u003Ccode>range\u003C\u002Fcode> 迴圈、multiple return values，這些都不是在秀肌肉，而是在減少大家對同一件事寫出五種版本的機會。\u003C\u002Fp>\u003Cp>白話一點說，Go 不想讓程式碼變成個人風格展覽。很多語言自由度高到最後會變成「每個人都能寫出自己的一套」，然後 \u003Ca href=\"\u002Fnews\u002Fnpm-codex-command-not-found-fixes-zh\">code\u003C\u002Fa> review 的一半時間都在吵命名、縮排、抽象層次。Go 的語法選擇很像是在逼你把注意力放回事情本身：資料怎麼流、錯誤怎麼傳、流程怎麼收斂。\u003C\u002Fp>\u003Cp>我自己最有感的是 review。某些技術棧的 review 會被 syntax 牽著走，大家一直在修飾，最後真正重要的商業邏輯反而被擠到角落。Go 不是沒有風格問題，但它把可爭論的空間壓小很多。你比較常在討論行為，而不是討論誰的寫法比較像藝術品。\u003C\u002Fp>\u003Cp>Go 官方規格也很明白地把語法和語言特性控制在一個可理解範圍內。這不是保守，這是刻意。語言越小，團隊越容易形成共同語感；共同語感越強，交接就越少出事。\u003C\u002Fp>\u003Cul>\u003Cli>統一 local value 宣告方式，不要讓團隊自己發明變體。\u003C\u002Fli>\u003Cli>讓錯誤處理維持一致，不要每個人都寫不同套路。\u003C\u002Fli>\u003Cli>把「看起來很聰明」的寫法當成預設禁用項。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>實操寫法：如果你在做內部 SDK 或框架，請先定義一套最小寫法，並且把其他寫法當成例外。你要的是可維護，不是可炫耀。\u003C\u002Fp>\u003Ch2>並發不是附錄，是 Go 的主菜\u003C\u002Fh2>\u003Cp>Go 最有名的地方，其實不是語法，而是它把並發當\u003Ca href=\"\u002Fnews\u002Ffde-sales-engineering-playbook-zh\">成一\u003C\u002Fa>等公民。goroutine、channel、\u003Ccode>select\u003C\u002Fcode>，這三個東西不是拿來裝飾簡報的，是拿來讓多工工作變得可操作。畢竟現在不是單核心年代了，服務端每天都在跟網路、IO、timeout、取消、背景任務打交道。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781971402386-k2qf.png\" alt=\"Go 把團隊混亂變成穩定建置\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>翻譯一下就是：Go 不把並發當成高手專屬技能，它把並發變成預設問題。你不用先搭一個巨大框架才敢開平行工作，也不用每次都自己手搓 thread 管理器。goroutine 很輕，channel 很直接，\u003Ccode>select\u003C\u002Fcode> 讓你可以同時等多個事件，這些東西合起來，會逼你用比較清楚的方式描述流程。\u003C\u002Fp>\u003Cp>我以前最怕的是那種「理論上可以並發，實際上誰都不敢碰」的系統。不是不能跑，是一碰就可能出 race condition、deadlock、資源洩漏。Go 沒有魔法保證你不寫壞，但它至少把正確路徑做得夠明顯。這差很多。工具不是替你保證正確，而是讓你比較不容易走歪。\u003C\u002Fp>\u003Cp>Go 官方文件也一直提醒一件事：並發不是免費午餐，資料競爭還是要自己管。這點我反而欣賞，因為它沒有假裝自己能解決所有問題。它只是把最常見的並發模式做得夠順，讓你少靠運氣。\u003C\u002Fp>\u003Cp>實操寫法：你在設計 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> 或內部 library 時，務必把取消、超時、資源所有權寫清楚。不要把背景工作藏在黑盒裡，然後期待大家都不會在壓力下把它弄炸。\u003C\u002Fp>\u003Ch2>型別系統不靠祖宗十八代，靠介面就夠了\u003C\u002Fh2>\u003Cp>Go 的型別哲學也很有意思。它不是那種要你先建一棵超大繼承樹，再從樹上挑一片葉子來用的語言。它偏向結構型別與介面，意思是只要你符合那個行為契約，你就能用。這件事很土，但很實用。\u003C\u002Fp>\u003Cp>也就是說，Go 不太鼓勵你把抽象做得像宗教。你不需要先發明一堆 base class 才能分享行為，很多時候在使用點定義一個小介面就夠了。這種做法的好處很現實：依賴邊界比較清楚，mock 比較容易，測試也比較不會被大物件模型綁死。\u003C\u002Fp>\u003Cp>我在一些大型後端系統裡最受不了的，就是抽象層比業務邏輯還肥。大家嘴上說要可擴展，結果實際上是把每個功能都塞進一個超大框架，最後誰都不敢改。Go 的介面設計剛好相反，它鼓勵你把契約縮小，讓依賴留在局部，不要把整個系統拖進一個巨大的型別迷宮。\u003C\u002Fp>\u003Cp>後來 Go 在 1.18 加了 generics，很多人終於閉嘴一點，但它的核心態度沒變：能用簡單方式解決就不要搞得太玄。Generics 是補洞，不是叫你開始玩型別魔術。\u003C\u002Fp>\u003Cul>\u003Cli>介面定義放在消費端，不要放在幻想中的架構中心。\u003C\u002Fli>\u003Cli>介面保持小，最好小到能一眼看懂要 mock 什麼。\u003C\u002Fli>\u003Cli>泛型只拿來去重，不拿來炫技。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>實操寫法：如果你在設計 library，請把 extension point 做得像工具，而不是像考試題。越容易理解，越容易被別人真的拿去用。\u003C\u002Fp>\u003Ch2>工具鏈不是配角，是整套體驗\u003C\u002Fh2>\u003Cp>Go 讓我最服氣的地方之一，是它把工具鏈當成產品的一部分，而不是外掛。建置、套件、測試、格式化、部署，這些東西不是「順便有」，而是語言體驗的一部分。這也是為什麼很多人第一次接觸 Go 時，會覺得它很無聊，但一旦進入團隊交付場景，就會開始回頭感謝它。\u003C\u002Fp>\u003Cp>Go 的預設流程很乾脆：編譯快、產出單一 binary、依賴管理相對清楚、測試是日常動作，不是每週例行公事。這些看起來都不性感，但對團隊來說超值。因為你最怕的不是語法難，而是每次 release 都像祭天。\u003C\u002Fp>\u003Cp>我待過那種「能跑就好」的環境，最後每次上線都像拆炸彈。Go 的思路是反過來：把可重現性做足，把版本和相容性管住，讓你不需要靠祈禱過日子。官方也很重視 Go 1 compatibility，這代表它對升級破壞的容忍度比很多語言低得多。這種保守很煩，但對團隊很有用。\u003C\u002Fp>\u003Cp>如果你看 \u003Ca href=\"https:\u002F\u002Fgo.dev\u002Fdoc\u002F\">Go 文檔\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgo.dev\u002Fblog\u002F\">官方部落格\u003C\u002Fa>，會一直看到同一個訊號：工具不是附屬品，是工作流本身。這種設計很適合多人的 production 團隊，因為它把「大家都知道怎麼做」變成系統預設，而不是口耳相傳。\u003C\u002Fp>\u003Cp>實操寫法：你的專案模板至少要回答三件事：怎麼跑、怎麼測、怎麼出包。能用一套標準指令解決，就不要讓新人去猜。\u003C\u002Fp>\u003Ch2>少功能，不等於少能力\u003C\u002Fh2>\u003Cp>Go 很常被嫌說少東少西，像原本沒有 generics、語法也不花俏、抽象能力看起來沒那麼誇張。可我現在反而覺得，這些缺口是它設計的一部分。它刻意不把自己做成萬能工具，因為萬能通常也代表萬亂。\u003C\u002Fp>\u003Cp>翻譯一下就是：Go 不是在追求「什麼都能做」，而是在追求「大多數團隊能穩穩做完」。這兩件事差很多。前者讓高手很爽，後者讓公司比較少出事。你如果是做 production 服務，後者通常比較值錢。\u003C\u002Fp>\u003Cp>我以前很愛那種功能超多的語言，覺得選擇多就是自由。後來才發現，選擇多常常等於團隊共識更難建立。Go 的限制不是缺陷，而是把爭議提前收斂。你會少掉一些自由，也會少掉很多不必要的事故。\u003C\u002Fp>\u003Cp>這也是我現在看架構設計時最在意的指標：新同事要花多久才能安全改第一個檔案？如果答案太長，代表你的系統不是太複雜，就是太愛表演。Go 的價值就在於它把這個問題壓低了。\u003C\u002Fp>\u003Cp>實操寫法：你在評估語言、框架或內部平台時，別只問功能清單。請問 onboarding、測試、部署、回滾、除錯這五件事，哪一件被你偷偷外包給人腦了。\u003C\u002Fp>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># Process-first engineering playbook 模板（可直接改成你們團隊規範）\n\n## 1. 我們先定義要解的問題\n- 不是先追求語法漂亮\n- 不是先追求抽象很多\n- 先確保團隊能 clone、build、test、deploy\n\n## 2. 我們只保留最小可用表面積\n- 常見任務只保留一條標準路徑\n- 同一件事不要提供三種寫法\n- 任何新抽象都要證明自己真的省事\n\n## 3. 並發要顯性化\n- 背景工作要有明確啟動點\n- 一定要有 timeout \u002F cancellation\n- 資源所有權要寫清楚，不能靠默契\n\n## 4. 工具鏈就是產品的一部分\n- 預設 formatter\n- 預設 test command\n- 預設 build \u002F package \u002F release flow\n- 新人不用先問老鳥才知道怎麼跑\n\n## 5. 介面只定義在使用點\n- 小介面優先\n- 不要做超大 base class\n- 測試替身要容易做\n\n## 6. 相容性優先\n- 升級不能讓老功能突然死掉\n- 破壞性修改要非常節制\n- migration path 要簡單到像常識\n\n## 7. 用新人視角驗證\n- 新人第一次看得懂嗎\n- 新人第一次測得過嗎\n- 新人第一次改得動嗎\n\n## 8. 交付標準\n- 一條指令能跑測試\n- 一條指令能做 build\n- 一條指令能產出可部署成果\n- 文件只補缺口，不拿來掩蓋流程爛\n\n## 9. 原則句\n\"我們優先設計可預測的開發流程，再談功能擴充。\"\n\n## 10. 決策規則\n如果一個新功能讓系統更強，但也讓 onboarding、測試或部署更難，我們預設不加。\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>這段就是我從 Go 拆出來的核心：把團隊流程當產品本身，而不是把它當附屬品。你如果要改成自己的技術規範，直接從 checklist 開始最實際，因為那裡最容易看出你們到底是在交付，還是在背設定。\u003C\u002Fp>\u003Cp>原始來源我主要看的是 \u003Ca href=\"https:\u002F\u002Fgo.dev\u002F\">Go 官方網站\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgo.dev\u002Fref\u002Fspec\">Go 語言規格\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgo.dev\u002Fdoc\u002F\">Go 文件\u003C\u002Fa>，以及 \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGo_(programming_language)\">Wikipedia 的 Go 條目\u003C\u002Fa>。我上面這篇是原創拆解，但觀點和脈絡是從這些來源延伸出來的。\u003C\u002Fp>","我拆 Go 怎麼用流程優先設計，把建置、並發、測試變成團隊能穩定交付的日常。","en.wikipedia.org","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGo_(programming_language)",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781971401098-zdl4.png","tools","zh","16db1c34-d629-49ac-987b-297bb1b90a41",[17,18,19,20,21],"Go","concurrency","toolchain","testing","team workflow",[23,24,25],"Go 把流程、工具鏈和交付當成語言設計的一部分，不是附屬品。","它用小語法、明確並發與簡單介面，降低團隊在協作時的摩擦。","最值得抄的不是 Go 語法，而是它把 clone-to-deploy 這條路做短的思路。",0,"2026-06-20T16:02:53.571588+00:00","2026-06-20T16:02:53.557+00:00","6706c5ce-71b1-4bef-b28a-28e17a9b0d77",{"tags":31,"relatedLang":34,"relatedPosts":38},[32],{"name":17,"slug":33},"go",{"id":15,"slug":35,"title":36,"language":37},"go-turns-team-chaos-into-boring-builds-en","Go turns team chaos into boring builds","en",[39,45,51,57,63,69],{"id":40,"slug":41,"title":42,"cover_image":43,"image_url":43,"created_at":44,"category":13},"44069991-6152-4495-879f-c4e727541300","fde-sales-engineering-playbook-zh","FDE把售前和工程拧成一股绳","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781965996042-v9rb.png","2026-06-20T14:32:50.484812+00:00",{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":13},"7beaabe3-5421-4e2b-a42a-d1a7b669be12","deploy-minimax-m3-with-vllm-openai-api-zh","用 vLLM 部署 MiniMax M3 並開啟 OpenAI API","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781954276176-k5fw.png","2026-06-20T11:17:30.019598+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"fe9fecba-d6ae-4293-af38-e68e6c2c111b","namastack-turns-outbox-pain-into-reliable-events-zh","Namastack 把 outbox 變穩定事件流","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781949794069-sfg2.png","2026-06-20T10:02:49.479466+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"b8a08645-4041-4124-a44d-c5b3336bbd65","claude-design-assets-to-design-system-zh","Claude Design 把素材變成系統","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781946199259-wjwr.png","2026-06-20T09:02:46.505161+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"f2fadb5a-41e2-4095-9467-d120f9acee99","vs-code-turns-folder-into-workspace-zh","VS Code 把資料夾變工作區","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781938995715-bygi.png","2026-06-20T07:02:52.407399+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"95d2b100-b1b0-43ae-af46-7f9c85d93d00","midjourney-medical-turns-scans-into-spa-zh","Midjourney Medical把掃描變成Spa","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781909284807-n67y.png","2026-06-19T22:47:40.551779+00:00",[76,81,86,91,96,101,106,111,116,121],{"id":77,"slug":78,"title":79,"created_at":80},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":82,"slug":83,"title":84,"created_at":85},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":87,"slug":88,"title":89,"created_at":90},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]