軟件工程理念在現實生活的應用
本文作者Leon Ho為 Lifehack 創辦人
寫程式只要有輸入就會有輸出,這個模式可應用至現實世界。API,即應用程式介面(Application Programming Interface),可應用潛力尤高,是一套預設的溝通標準,可用以處理複雜的工作,而毋須深入了解箇中細節。只要你提出要求,它就會回應。例如:你到餐廳向侍應拿一杯水,侍應可能用電熱水壺,可能用電磁爐,甚至可能是外判從另一家店子買樽裝水,但只要你拿到水了,就不會在意過程是怎樣。因此,API其實無處不在,應用廣泛,有助我們省卻繁複的程序,把更多的時間投放到更複雜的問題。好的老闆,就會懂得在適當的時候摘要資訊,運用API,讓其他人代勞,而不會事無大小也管理,那才可以達成更遠大的目標。那麼應如何摘要呢?有四點需要注意。
API的第一要訣,是規模可擴充性。例如:要一杯攝氏80度的水,若將API定義為「製一瓶攝氏80度的水」,日後如有新要求變成了攝氏90度的水,那就要將API重新定義為「製一瓶攝氏90度的水」,還是我們可以一開始的時候將API定義為「製一瓶攝氏(X)度的水」呢?不過,彈性越大,維繫就越花工夫,兩者需要平衡。
API的第二要點,是要理解清楚需要保護甚麼、摘要甚麼,雙方都需要清楚知道溝通標準。詳情應由服務提供者提供還是用者提供?讓服務提供者決定的話可以投放少點精力,而仔細列明的話就會有更大控制。又以熱水為例,用者需要指明水的來源嗎?這情況如果是用來飲用,需確保水源的水質安全可靠,若只是用來保溫,那就無關痛癢了。
第三個要點,是重用度,同一服務可否用於不同用途呢?功能是否夠普遍?API的原意就是把大件拆小,小件就能重用,而專責那小件的人又毋須知悉大量資訊。以餐廳為例,有多個套餐,可以由一位員工專責一個套餐;又或是,若所有套餐都有同樣的前菜,那就可以由一位員工負責前菜予所有套餐,而毋須知道在供應哪款套餐。
第四個要點,是要理解清楚你的角色,是要提供一個完善的平台還是簡單的服務呢?平台的話,主要須提供資源,讓用家自行決定用途,例如:社交平台讓用家能尋找朋友、上載照片、分享照片等等,讓我們可以認識新朋友、做推廣、開設網上商店等等,任君選擇﹔而提供服務的話,就有預設的用途,郵遞服務就是一個例子,他們只會送信和派件,而絕不可能致電給收件者。另外,是要建立框架還是文庫?框架的話,即是只需提供基本的外殼,讓用家可以在基本外殼上有個人化的空間,如網誌,你可以將之個人化為影評網誌,或是食譜網誌也行。文庫的話,需要有準備妥當的功能,通常用以處理較簡易的工作,例如:facebook的share掣,可以套用至影評網或食譜網也行。
軟件工程其實不但只限應用於科技層面,當中的理念在現實生活中無處不在,好好利用的話,更可在不同領域無限發揮。
支持EJ Tech
如欲投稿、報料,發布新聞稿或採訪通知,按這裏聯絡我們。