程序員別唬我系列之:腳本

勸君更進(jìn)一杯酒,從此以后莫裝逼。
一天,設(shè)計(jì)把產(chǎn)品拉到一邊,悄悄問(wèn):聽(tīng)他們程序員經(jīng)常說(shuō),「這個(gè)問(wèn)題是JS腳本運(yùn)行出錯(cuò)了」,「這個(gè)好計(jì)算,跑個(gè)腳本就行了」,「這個(gè)bug需要在云端腳本修復(fù)」,有時(shí)候測(cè)試也在說(shuō)「現(xiàn)在效率有提升,我們都是用自動(dòng)化腳本解決問(wèn)題」,還有數(shù)據(jù)分析師「這個(gè)數(shù)據(jù),要重新寫(xiě)個(gè)腳本,Hadoop再跑兩天」。這個(gè)「腳本」到底是啥啊,跟「腳氣」是什么關(guān)系?
產(chǎn)品答:腳本,是使用一種特定的描述性語(yǔ)言,依據(jù)一定的格式編寫(xiě)的可執(zhí)行文件。
那你懂啥意思嗎?設(shè)計(jì)追問(wèn)。
不懂啊,我百度查的。本來(lái)想問(wèn)程序員,怕被鄙視。。。
正當(dāng)二人陷入沉思之時(shí),我一個(gè)閃現(xiàn),從角落里跳出來(lái),帶著我那精心準(zhǔn)備的出場(chǎng)白「哪里有產(chǎn)品經(jīng)理需要技術(shù)幫助,哪里就有我」,開(kāi)始了一天的裝逼之旅。
「腳本」這個(gè)詞經(jīng)常令人懵逼的,很多人包括很多程序員也是每天喊,每天寫(xiě),但是好像并不知道它的來(lái)源與為什么叫這個(gè)名字,就好像大家都把「網(wǎng)志」叫成了「博客」,但你好像并不知道博客原本的含義。
腳本的英文是Script,我們看看它的釋義,作為名詞,就是劇本的意思,作為動(dòng)詞,是寫(xiě)劇本的意思,也是戲劇中底本的意思,翻譯成「腳」不好理解,理解成為戲劇或話劇的「劇本」就好。
現(xiàn)實(shí)中,第一印象閃現(xiàn)腦中的劇本是一摞A4紙,已經(jīng)被翻得起黑邊兒了,上面密密麻麻的寫(xiě)著字(都是我們能讀懂的哦)。劇本描述了這部劇的整個(gè)流程,出場(chǎng),順序,包袱,臺(tái)詞,旁白,舞臺(tái)效果均囊括其中,并按它所編排的節(jié)奏和順序執(zhí)行,一部劇的演出效果,應(yīng)該等同于劇本描述。
這種按照劇本完成任務(wù)充斥著整個(gè)生活,公司負(fù)責(zé)清理衛(wèi)生間的大爺,是以一個(gè)小時(shí)為單位清理并簽到的。主持人是按照設(shè)計(jì)好的臺(tái)詞主持節(jié)目的。想當(dāng)網(wǎng)紅,也是有劇本的。
這些生活中的場(chǎng)景,經(jīng)過(guò)高度抽象,被「抄襲」計(jì)算機(jī)中。
- 腳本就是劇本
- 腳本是普通的文本文件(類似txt)
- 腳本是批處理文件
- 腳本導(dǎo)演了一個(gè)序列事件的發(fā)生
- 腳本讓一個(gè)例行任務(wù)效率大幅提升
Windows系統(tǒng)中常見(jiàn)的擴(kuò)展名為bat的批處理文件,點(diǎn)開(kāi)之后,屏幕上會(huì)打開(kāi)一個(gè)黑色窗口,若干白字迸發(fā)而出,這就是批處理文件,也就是腳本。
我來(lái)寫(xiě)個(gè)最簡(jiǎn)單的Windows批處理文件,實(shí)現(xiàn)了打印Disk C幾個(gè)字之后,輸出C盤(pán)的目錄,然后停止在命令行界面,代碼如下:
雙擊這個(gè)文件運(yùn)行,效果如下:
你看到的結(jié)果是這個(gè)文件執(zhí)行了兩個(gè)步驟:1.打印「Disk C」 2.調(diào)用dir命令輸出C盤(pán)目錄。所以才叫批處理嘛,你手工操作的話,至少要輸入兩次,發(fā)現(xiàn)沒(méi),效率大幅提升(當(dāng)然不要以這個(gè)例子計(jì)算收益,腦補(bǔ)下是一個(gè)1000步的操作流程,并且每天都要做的哦,親)。
這是一個(gè)最簡(jiǎn)單的腳本,這個(gè)是Windows系統(tǒng)直接支持的。JavaScript腳本是瀏覽器支持的。并且寫(xiě)JS語(yǔ)法和Windows批處理命令的語(yǔ)法規(guī)則也是不一樣的,不一樣的寫(xiě)法,并且運(yùn)行環(huán)境也是不一樣的,腳本的運(yùn)行環(huán)境叫做“解釋器”,這個(gè)應(yīng)該也好理解吧,就是如何理解這段純文本的腳本。如果你到了泰國(guó),腳本是「薩瓦迪卡」,解釋器就是泰語(yǔ)。如果你到了韓國(guó),腳本寫(xiě)的是「阿尼阿塞呦」,解釋器就是韓語(yǔ)。一種腳本對(duì)應(yīng)著一種解釋器,JavaScript最流行的解釋器是Chrome V8引擎(應(yīng)該多多少少聽(tīng)過(guò)哦,沒(méi)聽(tīng)過(guò)找度娘問(wèn)一下,裝逼可用)。
如果腳本語(yǔ)言是「錘子」,那在北方和四川不同的解釋器里面是不一樣的,這個(gè)只限于漢語(yǔ),因?yàn)闈h語(yǔ)由于地域劃分解釋器就太多了。
流行的腳本語(yǔ)言有哪些呢?
- JavaScript 瀏覽器腳本語(yǔ)言,目前也應(yīng)用于服務(wù)端
- PHP 世界上最好的語(yǔ)言
- Perl、Shell、Python、Ruby、Lua,這幾個(gè)自己找度娘問(wèn)下,留為家庭作業(yè)了哦~~
注意Lua不要讀成「擼啊」,標(biāo)準(zhǔn)讀音是「擼哇」,好像讀起來(lái)就感覺(jué)上流了一些。
腳本語(yǔ)言有很多種,也有相應(yīng)配套的解釋器。每種有其特殊的使用場(chǎng)景或擅長(zhǎng)場(chǎng)景,不同場(chǎng)景要選用不同的工具。
很多程序員經(jīng)常裝逼:「我只用Python」。
其實(shí)是因?yàn)樗粫?huì)Python。我就比較踏實(shí),我會(huì)告訴產(chǎn)品經(jīng)理:「我先看看哪種語(yǔ)言更適合這個(gè)場(chǎng)景,一會(huì)兒告訴你用什么」。產(chǎn)品經(jīng)理轉(zhuǎn)身那一刻,我就要趕快學(xué)習(xí)了,哈哈哈~
#專欄作家#
給產(chǎn)品經(jīng)理講技術(shù),微信公眾號(hào)(pm_teacher),人人都是產(chǎn)品經(jīng)理專欄作家。資深程序猿,專注客戶端開(kāi)發(fā)若干年,對(duì)前端、后臺(tái)技術(shù)略懂,熱衷于對(duì)新的科技領(lǐng)域的探索。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自PEXELS,基于CC0協(xié)議
我只會(huì)python又怎么了
還在因?yàn)椤安欢夹g(shù)”被開(kāi)發(fā)忽悠?15天系統(tǒng)化解鎖產(chǎn)品經(jīng)理必懂的程序/代碼、前端、后端、數(shù)據(jù)庫(kù)4大模塊基礎(chǔ)技術(shù)知識(shí)。助你日常溝通更順暢,產(chǎn)品設(shè)計(jì)不挖坑!
詳情戳>http://996.pm/7daXE 或咨詢起點(diǎn)學(xué)院蘑菇(wx:qdxymg)
~~成了你的粉絲了~~大愛(ài)
很生動(dòng)形象,贊
一下午看了好多篇 成果巨巨鐵粉了
果果微信公眾號(hào)好久不更新了,原來(lái)你在這里
我喜歡這樣的文章,學(xué)習(xí)中,犀利而不失柔軟,get
腳本定義:是使用一種特定的描述性語(yǔ)言,一句一定的格式編寫(xiě)可執(zhí)行文件
腳本作用:可批處理,提高效率
腳本語(yǔ)法規(guī)則和運(yùn)行環(huán)境:不同語(yǔ)言,不同寫(xiě)法,所以有不同的語(yǔ)法規(guī)則和運(yùn)行環(huán)境(又稱解釋器),舉例:JavaScript最流行的解釋器是ChromeV8引擎
流行的腳本語(yǔ)言:JavaScript、PHP、Perl、Shell、Python、Ruby、Lua
很棒的文章,從前端轉(zhuǎn)做產(chǎn)品經(jīng)理,雖說(shuō)寫(xiě)了很久的js,也知道js叫腳本語(yǔ)言,但你要讓我單獨(dú)解釋腳本,我還真不知道怎么說(shuō),聽(tīng)君一席話,勝讀十年書(shū)! ??
讀起來(lái)很有意思~~你副業(yè)應(yīng)該是段子手吧(斜眼笑.jpg)