ATAT

ATAT

買了一台 ATAT 的樂高積木,放在辦公室裡。

ATAT 實在是整個《星際大戰》系列,甚至是我所看過的所有科幻作品中,最引人入勝的機械設定之一。整個機體的設定真是何等的荒謬,而就是 ATAT 的荒謬,使得 ATAT 如此讓人著迷。

在脆弱、修長的四肢上,是巨大笨重的軀體,裡頭裝載了複製人雜魚大軍。明明就是毫不堅實、搖搖欲墜的基礎,偏偏又要弄得異常高大,只要破壞其中一隻腳,立刻再起不能、失去作戰能力。ATAT 的四肢脆弱就罷了,作為運兵用途的機械,關節居然被設計成完全無法轉向,開始走動之後,就只能夠直線前進;搭配遲鈍的移動速度,把 ATAT 送上戰場之後,就是單調、不知變通地一路緩慢亂衝一陣,最後重重地、狠狠地摔落地面。這樣的機械設計出來,根本就是讓官兵趕著送死。

只能夠直線前進,我們還需要駕駛做什麼呢?頭部的駕駛艙到底有什麼作用呢?頸部的關節倒是可動的,我們可以讓當頭的東擺西擺,但不管頭怎麼擺、頭打算晃到哪個方向,腳就是無法改變方向,腳就是這麼脆弱,完全不會改變緩慢向前直線前進最後摔倒送命這種命運。

頭到底還可以做些什麼呢?你看到了那幾門砲管,於是恍然大悟—是了,是嘴砲。ATAT 左邊有一門嘴砲,右邊有一門嘴砲,下巴還有兩門嘴砲,這玩意有好多嘴砲。

這樣的東西擺在辦公室裡,實在太合適了。

有人問我 Design Pattern

我說,Design Pattern 對軟體工程師而言,就像是在格鬥電玩裡頭所謂的「連續技」(Combo)那樣的東西。

你學會了開發工具的操作與程式語言,像是學會了如何使用搖桿上每個按鈕的功能,你開始接觸函式庫,像是選擇了要使用的角色,你學會某個函式如何使用,就像是學會了某個招式。

接下來,你發現將某些招式組合起來,可以發揮更大的威力,像是,如果你玩格鬥天王系列,就知道如果讓草薙京把對手踢到空中的時候,就可以施展大蛇薙,這,我們稱之為連續技;如果你平常就熟練這些連續技,又清楚出招的時機,經常可以有效傷害對方,取得不錯的成績。

Design Pattern 就是這些年來許多軟體工程師所整理出來,在某些情況下,你可以如何用某些方式組合函式與物件之間的關係,並且給了這些關係特定的名字,讓在你日復一日的開發工作中,在遇到某些類似的時機可以用上,而且提供了一套現成的詞彙,方便你說明你做了什麼,或是打算怎麼做某個東西。

有人問我會不會注重、應不應該注重 Design Pattern,這個問題實在有點奇妙…我還沒有看過多少人玩格鬥電玩不練連續技,但也沒有看到有人每次在對戰中,都非要把某套連續技施展出來不可。

Continue reading

要求

我以為我的要求對誰來說都不算多
我只要你看著我回答問題不要閃躲
我根本並不要求你做什麼別的承諾
我只要你回答我別再消磨多一分鐘

好辛苦啊好辛苦、我只覺得好辛苦
好辛苦啊好辛苦、要個真相好辛苦
好辛苦啊好辛苦、為什麼這麼辛苦
好辛苦啊好辛苦、我只覺得好辛苦