恭喜大家跟著我一起成長到了第 30 天!短時間內寫 30 篇技術文章真的是...夭壽累:)
最後還是帶大家回顧一下,並且把過去 29 篇稍微分成了幾大類,
大家可以依自己需求找到對應的文章:
GAS 有很多優點:
但相對來說,也是有他的限制在:(以個人用戶限制來說明)
下面是 chatGPT 幫大家把限制們整理成的表格🤪:
功能/產品 | 個人帳戶限制 | Google Workspace 帳戶限制 |
---|---|---|
URL Fetch | 每日 20,000 次 | 每日 100,000 次 |
電子郵件發送 | 每日 100 封 | 每日 1,500 封 |
Google Sheets | 每日 500,000 次 | 每日 2,000,000 次 |
表單觸發器 | 每日 1,440 次 | 每日 1,440 次 |
讀取/寫入單元格 | 每日 1,000,000 次 | 每日 1,000,000 次 |
限制類型 | 描述 |
---|---|
執行時間限制 | 個人帳戶 6 分鐘;Google Workspace 帳戶 30 分鐘。 |
每日配額限制 | 依據功能而異,如 URL Fetch、電子郵件發送等,有不同的每日上限。可參見上表或是官方文件 |
同時執行限制 | 每個用戶同時執行的腳本實例最多 30 個。 |
文件大小限制 | Google Sheets 最大 10 萬單元格,Google Docs 最多 1,020 萬字元。 |
觸發器限制 | 每個帳戶最多設置 20 個觸發器,時間觸發器每日最多執行 1,440 次。 |
官方可能會隨時間改變限制,更多具體的詳細限制可以參考 Google Apps Script 的官方文件。
官方文件當然是最重要的,任何資源都有可能會錯,官方文件是唯一正解(通常啦)
寫出這三十天的文章當然不是單看官方文件就能刻出來的,還要感謝許多前人的分享
其實先前就有邦主在發 GAS 系列的文章,不得不說真的是寫得比我好太多了,真的大推!
感謝邦主們讓我詳細了解各種 Google 產品 GAS 的架構!
前兩天還發現本屆鐵人賽有人跟我寫類似的題目!就是 Henry Yang 亨利羊 大大的
另外還有在網路上找到整理超詳細的來自 鄭郁翰 講師 的 GAS Hackmd 公開筆記
其實也有公開專門討論 GAS 的 FB 社團,如果大家真的遇到解不開的問題也可到下方兩個社團尋求協助
看這個標題就知道小妹有年紀了嗚(不是重點
首先感謝你耐心追完這三十篇 GAS 的系列文章
講了不少但還是無法涵蓋全部的應用,像是還有 Gmail, Google Meet, Google Keep, Google Map 等產品都是可透過 GAS 來控制
再更進階的話,你也可以試試把程式部署成 Google Workspace Marketplace 應用程式
還有太多技巧可能來不及講完或是忘了說(?),其實更多會需要你從實作的過程中去發覺
「啊程式怎麼停下來了?」
「要怎麼樣再去串另一個服務?」
「有沒有辦法再把介面弄的更好看,讓使用者更直覺?」
「能不能再讓程式更聰明,讓我更省點力?」
今天已經是最後一天,最後想給大家繼續學習的撇步~
兩年多前開始用 GAS 的時候,每次遇到問題都要去 google 找答案
那時 GAS 討論風氣還相對沒那麼興盛,很多都要慢慢查、慢慢試出來~
這兩年生成式 AI 快速發展,現在不論什麼問題問 AI 就可以獲得答案(但也不保證是正確的哈哈,記得慢慢偵錯求證)
除了常見的 chatGPT, claude.ai, Perplexity 以外,最近發現 GAS 官方文件也做出類似的服務
他們在官方文件提供類似專門給開發人員的 chatGPT 來使用(在右邊的側欄)
大家也可以使用這個來試試看,也許會找到更準確的答案(?)
前幾天看到蔡炎龍老師在臉書上分享,看到有一篇賓州大學的論文提出「生成式 AI 可能損害學習」
問 chatGPT 問題真的不利我們的學習嗎?
Mitchel Resnick 寫的 "Generative AI and Creative Learning: Concerns, Opportunities, and Choices"。 他在《學習就像終身幼兒園》提到了創意學習的 4P, 可以用他自己的一句話來說明:
「基於自己的「熱情」(Passion), 與「同伴」(Peers) 合作, 帶著「好玩」(Play) 的心態參與「專案」(Projects) 時, 他們最有可能發展成為具有創造力、好奇心和協作精神的學習者。」
chatGPT 是為了讓我們去完成目標的一項工具,而這個過程也不太可能是一路順遂的
我們可以在問答的過程中汲取相對應的知識,當這個去完成目標的閾值降低後
能提高自身的成就感及好奇心,去實現更多更有趣的專案!
畢竟持續學習就是靠著不斷被激發出的好奇心前進 😉😉😉
這句話是引用自 Mosky 多年前的專訪:Make it run, make it right, make it fast.
我們可以很徒法煉鋼的讓程式先跑起來,我們再看看怎麼把程式寫好、寫的漂亮
最後就是來最佳化跑程式的效率,讓整體執行效率更好!
以我自己的經驗來說,我曾在實作一個 Google Sheet 的 projects 時
試圖讓兩個 sheet 資料同步,原本是一列一列去 getValue 再去一格一格去 setValue
隨著資料越來越多,難以在限制時間內完成同步
後來 Google 後發現,一列一列讀寫跟一次把整張表讀起來寫進去的 IO 時間,差得有~夠~多~
因此就改用 getValues()
來取代原本的 getValue()
,效率提升了 10 倍之多!
沒有永遠完美的程式,我們需想辦法不斷的進化再進化
很高興是因為跑了 PyCon TW,知道內部溝通及文件管理其實消耗了大家很多時間
才發現有 GAS 這個工具能夠去解決這些文件相關的管理問題,也讓我稍微重拾 javascript 的技能 XD
我們寫程式最重要的目的就是為了 解決問題
可以試著在你生活、工作、組織中找到有沒有事情是重複發生的瑣事、或需大量產出的作業
有沒有辦法用程式來解決這個問題,不一定要用 GAS (只是因為我們社群協作都在 google 的平台上,因此 GAS 成為剛好最方便的工具 XD)
在 PyCon TW 中我們有許多自動化工具們,不過下面都是用 Python 寫的 😉:
希望大家都能「發現」日常任務中的不方便、困難,並試圖來「解決」或「自動化」這些瑣事,
讓自己能夠有更多時間,處理更有價值的事!
感謝你耐心看完了這三十天的文章,讓我們一起學會用程式解決問題、改善生活!🫶
最後感謝揪我一起報名鐵人賽的夥伴們小楊跟鯉魚~有興趣的朋友們也一起來看看他們的系列文吧!
感謝!
你這篇我深有共鳴!
蔡炎龍老師與Mosky,也是我一直也在關注的對象!
另外你的各種梗圖,也都讓我覺得非常親切熟悉XDDD
恭喜完賽!
嗚嗚感謝亨利羊的關注~~
看來我們是同個年代的(笑
你也是!大大今年還攻兩個鐵人賽太強大了!恭喜完賽!