程序员别唬我系列之:脚本
全军更进一杯酒,从此以后莫装逼。
一天,设计把产品拉到一边,悄悄问:听他们程序员经常说,「这个问题是JS脚本运行出错了」,「这个好计算,跑个脚本就行了」,「这个bug需要在云端脚本修复」,有时候测试也在说「现在效率有提升,我们都是用自动化脚本解决问题」,还有数据分析师「这个数据,要重新写个脚本,Hadoop再跑两天」。这个「脚本」到底是啥啊,跟「脚气」是什么关系?
产品答:脚本,是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。
那你懂啥意思吗?设计追问。
不懂啊,我百度查的。本来想问程序员,怕被鄙视。。。
正当二人陷入沉思之时,我一个闪现,从角落里跳出来,带着我那精心准备的出场白「哪里有产品经理需要技术帮助,哪里就有我」,开始了一天的装逼之旅。
「脚本」这个词经常令人懵逼的,很多人包括很多程序员也是每天喊,每天写,但是好像并不知道它的来源与为什么叫这个名字,就好像大家都把「网志」叫成了「博客」,但你好像并不知道博客原本的含义。
脚本的英文是Script,我们看看它的释义,作为名词,就是剧本的意思,作为动词,是写剧本的意思,也是戏剧中底本的意思,翻译成「脚」不好理解,理解成为戏剧或话剧的「剧本」就好。
现实中,第一印象闪现脑中的剧本是一摞A4纸,已经被翻得起黑边儿了,上面密密麻麻的写着字(都是我们能读懂的哦)。剧本描述了这部剧的整个流程,出场,顺序,包袱,台词,旁白,舞台效果均囊括其中,并按它所编排的节奏和顺序执行,一部剧的演出效果,应该等同于剧本描述。
这种按照剧本完成任务充斥着整个生活,公司负责清理卫生间的大爷,是以一个小时为单位清理并签到的。主持人是按照设计好的台词主持节目的。想当网红,也是有剧本的。
这些生活中的场景,经过高度抽象,被「抄袭」计算机中。
- 脚本就是剧本
- 脚本是普通的文本文件(类似txt)
- 脚本是批处理文件
- 脚本导演了一个序列事件的发生
- 脚本让一个例行任务效率大幅提升
Windows系统中常见的扩展名为bat的批处理文件,点开之后,屏幕上会打开一个黑色窗口,若干白字迸发而出,这就是批处理文件,也就是脚本。
我来写个最简单的Windows批处理文件,实现了打印Disk C几个字之后,输出C盘的目录,然后停止在命令行界面,代码如下:
双击这个文件运行,效果如下:
你看到的结果是这个文件执行了两个步骤:1.打印「Disk C」 2.调用dir命令输出C盘目录。所以才叫批处理嘛,你手工操作的话,至少要输入两次,发现没,效率大幅提升(当然不要以这个例子计算收益,脑补下是一个1000步的操作流程,并且每天都要做的哦,亲)。
这是一个最简单的脚本,这个是Windows系统直接支持的。JavaScript脚本是浏览器支持的。并且写JS语法和Windows批处理命令的语法规则也是不一样的,不一样的写法,并且运行环境也是不一样的,脚本的运行环境叫做“解释器”,这个应该也好理解吧,就是如何理解这段纯文本的脚本。如果你到了泰国,脚本是「萨瓦迪卡」,解释器就是泰语。如果你到了韩国,脚本写的是「阿尼阿塞呦」,解释器就是韩语。一种脚本对应着一种解释器,JavaScript最流行的解释器是Chrome V8引擎(应该多多少少听过哦,没听过找度娘问一下,装逼可用)。
如果脚本语言是「锤子」,那在北方和四川不同的解释器里面是不一样的,这个只限于汉语,因为汉语由于地域划分解释器就太多了。
流行的脚本语言有哪些呢?
- JavaScript 浏览器脚本语言,目前也应用于服务端
- PHP 世界上最好的语言
- Perl、Shell、Python、Ruby、Lua,这几个自己找度娘问下,留为家庭作业了哦~~
注意Lua不要读成「撸啊」,标准读音是「撸哇」,好像读起来就感觉上流了一些。
脚本语言有很多种,也有相应配套的解释器。每种有其特殊的使用场景或擅长场景,不同场景要选用不同的工具。
很多程序员经常装逼:「我只用Python」。
其实是因为他只会Python。我就比较踏实,我会告诉产品经理:「我先看看哪种语言更适合这个场景,一会儿告诉你用什么」。产品经理转身那一刻,我就要赶快学习了,哈哈哈~
#专栏作家#
给产品经理讲技术,微信公众号(pm_teacher),人人都是产品经理专栏作家。资深程序猿,专注客户端开发若干年,对前端、后台技术略懂,热衷于对新的科技领域的探索。
本文原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自PEXELS,基于CC0协议