Hello World
,今天我们来拆解一下我们到底写了什麽东西。昨天我们直接开始写程序,还没有机会好好认识一下 GAS 提供的程序设计平台,现在就让我们看一下整个 IDE 的结构:
第一排包含了你写的专案名称、进行专案部署以及可以分享给其他人共同编辑。
左侧栏位,当滑鼠在上面停留久一点後,他会出现项目名称,可以看到有很多选项,之後会再介绍到!
左二侧栏,则是可以看到你所有的档案、连结 GCP 的资料库以及进阶的 Google 服务。
跟一般的 IDE 差不多,都具备着上下步、存挡、执行程序、侦错模式及 Console 介面,但是比较特别的是他有着可以选择你要特定执行哪一个函式的特点。
为什麽他要这样设计呢?原因是他的程序执行概念核心是 Functional Programming (注一
)的模式,这也是现代在写 JS 很推荐的一种程序撰写模式,例如 React Hooks 就是这种设计模式。
基本介绍完,就来说说昨天提到的问题吧!
console.log()
放在 myFunction()
外面?其实这边可以让你想个 3 秒钟,回想一下我刚刚讲的 Functional Programming,你就会知道答案了?
Photo by Juan Rumimpunu on Unsplash
好罗!公布解答罗:
有多少人被骗呢?(恶魔笑)
基本上,放在函式外面的会被 GAS 「不管选择哪一个 function
做测试执行,都一定会执行」。
在撰写 GAS 中时,本质上你还是在写 Javascript 的程序码,所以其实概念是共通的!
光说不练没有用,作为程序猿,直接实作才是真理!
今天我写了两个函式: myFunction1()
以及 myFunction2()
,另外在外部会执行
console.log("我在函式外面RRR")
。让我们来看看程序码:
接着我们在上方选定 myFunction1
作为我们要测试执行的函式:
然後按下执行:
console.log(“我在函式外面RRR“)
被执行了
你会注意到,他就会特别去呼叫 myFunction1
来执行。
换成 myFunction2
也是一样:
毫无意外
所以,当你在撰写 GAS 时,很容易的就可以执行「单元测试」的功能,可以测试执行「没有参数输入」的函式。
这个功能非常重要,会让你在开发 GAS 的应用时可以用最快速度进行 debug,或是出现错误时方便你进行测试修正。
如果有使用其他 IDE 在开发软件的人就会知道,其实他也是在方便开发者进行快速找出错误的好方法,就跟我们在程序码中塞满了 console.log()
印出目前进程一样。
例如下图的程序码:
"Google Document ID" 後面会告诉你在哪?
在执行侦错的时候必须要先决定在哪些断点 (break point) 停下进行侦错讯息输出,所以我们的滑鼠移到旁边的行号处:
你会发现多了一个紫色圈圈让你可以点击。点下紫色圈圈让他变成是实心的之後,就去按下侦错:
在最右边的地方就会多一个侦错工具,可以让你看到目前的程序运作、区域变数或全域变数的状态!
当然你也可以有多个断点让他进行侦错:
藉由多个断点,你可以让他逐步执行你的程序,看他到底是怎麽回事!
之後在撰写程序的过程中,可以多多利用!
今天大致的讲解完了整个 Google Apps Script 提供的一些功能以及撰写概念,明天我们就要正式的藉由撰写专案来体会 GAS的强大!
下周会要收这三天的作业喔~请大家务必记得做一下!
另外如果对於 Javascript 不熟的同学,可以去 Codecademy 找到免费的 Javascript 学习资源喔~(这还是官方推荐选项呢!)
学生:老师,你不是说接下来都是实作,今天怎麽拉哩拉匝讲这麽多的概念性东西啊?
我:阿我不这样教,你们到时候又来跟我哭说不会用。
学生:可是我们之前说不会用你也只会叫我们去 Google 啊…?
我:…所以我下次不教,让你们直接 Google 罗?
学生:(感受到同学们的杀气)恩!老师您还是讲得越详细越好!
注一:
https://totoroliu.medium.com/javascript-functional-programming-%E5%87%BD%E5%BC%8F%E7%B7%A8%E7%A8%8B%E6%A6%82%E5%BF%B5-e8f4e778fc08
<<: Day04 - Amazon ECS Anywhere 基础说明与建置(下)
>>: 成为工具人应有的工具包-03 CredentialsFileView
昨天非常粗浅的介绍过 istio 後,今天我们要来实际将 Istio mesh 注入我们的 clus...
Future介面定义有get()方法以及isDone()方法,其目的就是在呼叫get()时看看能不能...
大家好,我是长风青云。今天是铁人赛的第二十五天。 突然发现我有些东西没说,而Hash这个我也忘记说,...
个人主要是看金鱼都能懂的Bootstrap影片学习BootStrap的, 比起看文件的方式学习,金鱼...
阿嬷都看得懂的替 HTML 标签穿上 CSS 样式 今天我们要来介绍排版的核心标签--div。 di...