文/靜絢
看見孩子玩電動高架橋模型饮六,把小汽車放到入口處其垄,會自動升上去,繞著軌道跑一圈卤橄,回到起點绿满,再來另一圈】咂耍看了一會兒喇颁,突然發(fā)現(xiàn),這款玩具與編程有蠻多的相似性嚎货。
有人曾調(diào)侃說程序員搭建好流程橘霎,實現(xiàn)自動化以后,就可以閑下來了殖属。所謂花兩小時完成兩個月的工作量姐叁。這款玩具便形象地展示了這個過程。
玩具組裝好洗显,將小汽車放置到入口處外潜,可以自動升至高處,沿著軌道向下運行挠唆。如果沒有bug处窥,理論上可以一路順暢跑到底。這就是程序的運行玄组。每一輛小汽車都是一個新的輸入文件滔驾,共用相同的運行過程。
如果中間存在bug巧勤,比如說玩具放置不平整嵌灰,或者組裝不好,汽車運行到半程就會停滯颅悉,需要有人給它一個助推力沽瞭。這種情況就代表程序需要修訂,因為自動化程度不夠剩瓶。
一輛小汽車運行完全程重回起點再來第二輪驹溃,在游戲中沒有任何問題城丧,但是在編程上就是一個嚴重問題。因為這意味著程序沒有一個運行結(jié)果豌鹤,它會無限循環(huán)亡哄,占內(nèi)存耗時間還無效。所以需要給高架橋設(shè)置一個出口布疙,跑完全程的汽車從出口離開蚊惯,相當于一個輸出文件。
如果只有一條運行途徑灵临,未免單調(diào)截型。對于程序本身來說,普適性也不足儒溉,所以需要在高架橋上設(shè)置數(shù)個關(guān)卡宦焦,相當于程序中的不同參數(shù),目的是使得汽車運行指定路段顿涣,從特定的出口離開波闹,即根據(jù)需求不同得到不同的輸出結(jié)果。
有的高架橋設(shè)置了兩個入口涛碑,兩輛小汽車同時運行可能會經(jīng)過同一段路程精堕,這就相當于是多個程序共用的一個模塊。程序運行得多了锌唾,就需要設(shè)置優(yōu)先度锄码,以防“堵車”。
當然晌涕,兩者最大的一個共同點,便是為了“玩”痛悯。享受高架橋的搭建過程余黎,享受程序的撰寫過程。要不程序員常說的三個字便是“去玩吧”载萌。
Have a fun!