搜尋

搜尋結果

電影《媽祖回家》奪三獎項
娛樂殿堂
文創遊樂場 // 米米 Esther Lim・2021-08-26

澳門有旅遊勝地媽閣廟,電影也有述說媽祖像和福建台灣兩岸的故事,而《媽祖回家》男主角關德輝Auguste Kwan在2021年度《溫哥華華語電影節》就憑此電影奪得紅楓葉大獎的「最佳男主角」寶座。近期他再為華人爭光,在荷李活電影演出。關德輝是經歷二十多年的演藝事業才有今天的成就,他很早期已經在香港、台灣發展;除拍攝電視電影;還有出唱片等,希望以後更多人欣賞到他更多好作品。 以下是關德輝得獎後的說話:感謝原作者莆田知名詩人、小說家王鴻老師二十多年前在紐約《世界日報》連載的中篇小說《臺北來信》把我送上了2021年度《溫哥華華語電影節》紅楓葉大獎的「最佳男主角」寶座。 也要感謝傳媒大學博士研究生導師蒲劍導演及其組建的電影團隊每一位同仁,在導演的帶領下完成了觸動人心,有文化內涵和底蘊的現實主義電影《媽祖回家》;小弟有幸參與這部電影,與有榮焉。因為疫情緣故,無法親自上台是小小的遺憾,也藉這裡同時感謝我母親、我太太、我女兒她們,常年以來默默支持、忍受我身為演員的工作與生活。最後,祝願人人都健康平安,大家都趕快恢復到正常、喜樂的生活。 金句:哥林多後書417我們這至暫至輕的苦楚,要為我們成就極重無比、永遠的榮耀。 關德輝主唱彼岸 電影《媽祖回家》片尾曲 鳴謝:Rainbow amp; AK

FF16 - 心得分享
手機‧電玩
MacauYeah・2023-07-14

絕對一讚的唯美 雖然FF16這代大大改變以往的遊戲方法,但作為老牌遊戲,它的角色建模、CG過程始終都保持領先地位。這些元素,大家可以在試玩版中體驗到。試玩版的序章一開始進入遊戲,就馬上可以看到第一場召喚獸大戰,畫面精彩、夠震撼、令人興奮。序章部份還有教學及實戰,控制主角打哥布林及BOSS。其中回避、攻擊模式做得不錯,雖然只是哥布林,但BOSS表現也很有壓場感,讚、很好。 探索部份有點失落 餘下的,就要聊聊機制的部份。雖然劇情很好,也有看大片的感覺,但畢竟是遊戲,要長期遊玩還是要好好考慮難度和探索設計的問題。 在一開始遊玩時,筆者還會不停探索地圖,檢道具,清野怪以及小BOSS。但越玩就越發現,這些都並不必要,什麼覺得有點多餘。 因為隨著遊戲進程,需要買裝備或升級裝備的時候,對材料的消耗量並不多,主線中原本就會得到足夠的材料以及金錢,解支線的剛性需求不大。而且初期很快就會得到兩件紫色防具,而這兩件防具足夠用到中後期。另一方面,武器跟隨主線就可以到武器店建造,不能強化。而後期,單單做武器商的支線以及打某幾隻危險怪就可以制造最高級防具以及武器,跟本用不著到處探索找材料。 支線部分,大部分支線都十分無聊,對劇情沒什麼關係,而且獎勵雞肋,所以並沒有特別的吸引力。除了增加道具使用數量以及裝備圖紙等,其他支線做與不做真是無分別。 所以即使地圖再大再多,筆者也無任何探索欲望。 而技能方面,遊戲合共可以選擇3個召喚獸技能以及6個分支技能。每個召喚獸分支技能升到最高級可以放在不同召喚獸上使用,而且可以隨時重置。這部分就可以自行選擇自已喜愛的技能,設計尚算宜人。 總結 總括來講,今集劇情畫面一流,對得起3A大作的稱號,但其他部分遊戲吸引力就很普通,難以讓玩家流年忘返。 劇情4分、遊戲性2分、畫面5分 對比FF7重制系列的可玩性,此作不推薦。但若然為傳統劇情老玩家,或完全未玩過系列作,想以入門試水溫但怕痛苦的,反而就值得一試。

#007 最怕其實被消資格 還不知拼命掙扎
愛情婚嫁
李小時・2015-01-21

親愛的B 我承認剛才的語氣太過惡劣 但我不會說對不起 因為被欺騙的人不是 你不會了解那種感覺多麼的難受 「為甚麼是我」 我沒有聽清楚你的解釋 我知道你沒有很想我聽清楚 你只是在你的行為合理化 如此心安理得 「為甚麼是我」 我一直想問出口 奈何話到嘴邊 卻發不出聲音 可能是因為喉頭太緊 又或是自尊太重要 迫使我戴上面具 咬實牙關不讓抖音洩露其實快要崩潰的情緒 「為甚麼是我」 甚麼為我好 甚麼我很好 甚麼 甚麼 我全部都聽不懂 說到底還是謊言 都到了這個時候 你還是滿口謊言 我開始懷疑 我為甚麼會選擇相信你 相信的結果是兩面刃 刺傷了自以為是的你 還有太過天真的我 在對話結束後的第5個小時 我始究搞不懂 若是你有心欺騙 你這個逃之夭夭的騙子 怎麼可以不認真地騙我一輩子 取消資格 詞 梁芷珊 曲梁偉豐 唱陳小春 親愛的B 我承認剛才的語氣太過惡劣 但我不會說對不起 因為被欺騙的人不是 你不會了解那種感覺多麼的難受 「為甚麼是我」 我沒有聽清楚你的解釋 我知道你沒有很想我聽清楚 你只是在你的行為合理化 如此心安理得 「為甚麼是我」 我一直想問出口 奈何話到嘴邊 卻發不出聲音 可能是因為喉頭太緊 又或是自尊太重要 迫使我戴上面具 咬實牙關不讓抖音洩露其實快要崩潰的情緒 「為甚麼是我」 甚麼為我好 甚麼我很好 甚麼 甚麼 我全部都聽不懂 說到底還是謊言 都到了這個時候 你還是滿口謊言 我開始懷疑 我為甚麼會選擇相信你 相信的結果是兩面刃 刺傷了自以為是的你 還有太過天真的我 在對話結束後的第5個小時 我始究搞不懂 若是你有心欺騙 你這個逃之夭夭的騙子 怎麼可以不認真地騙我一輩子 取消資格 詞 梁芷珊 曲梁偉豐 唱陳小春

澳門銀河五星級旗艦娛樂場地【紅伶】重新啟幕
澳城餐飲
LifeMag Editor・2016-04-15

「澳門銀河trade;」五星級旗艦娛樂場地【紅伶】再現風華絕代。作為世界級亞洲特色的五星級綜合渡假城,「澳門銀河」於今天隆重宣佈,華麗超凡的【紅伶】于4月15日重新啟幕,展現超越中西融合的迷人風範,並同時全面向公眾開放,讓更多賓客有機會親身體驗城中頂級娛樂聖殿的非凡魅力。 【紅伶】完美揉合當代藝術、設計及時尚設施,重塑1930年上海流金歲月,化身獨一無二的娛樂場地。【紅伶】華麗再現,不但保留了國際設計師陳幼堅的匠心設計,同時亦滿載源自畫家和設計師Erteacute;極具開創性的裝飾藝術風格。賓客只要置身【紅伶】,即會被四周前衛破格的藝術品,包括藝術家陳漫和卜樺的作品所震撼。 來自中國、亞洲及世界各地的音樂表演者將於【紅伶】輪流登場,現場演奏動人輕柔樂曲,現代與經典浪漫樂曲將共冶一爐,無論是三五知己還是商務夥伴結伴同行,也可於【紅伶】享受輕鬆醉人的晚上。 在【紅伶】華麗典雅的氛圍下,賓客更可細意品嘗全新設計的餐飲菜單,其中包括【紅伶】屢獲殊榮及招牌特色飲品「東方風尚Eastern Fashioned」,當中混合了自家調配的秘方,選用風味迥異的威士忌作為基酒,配搭拿破侖柑橘利口酒、柑橙汁、芳香苦艾酒、金萬利酒及陳皮,充分展現東方神韻。Laphroaig、Mandarine Napoleon Liqueur、橙汁和Old Time Aromatic Bitters,並加入少許橙酒、乾橙皮拌勻,最後加入冰球即成;「上海冰茶Shanghai Iced Tea」感受中西並蓄的上海氣息,以伏特加、金酒,君度橙酒、蘭姆酒、搭配歷史悠久的竹葉青酒,加入可樂及以鮮蔗作點綴,讓人怦然心動。Absolut 伏特加、Bombay Sapphire杜松子酒、Cointreau及Bacardi Superior 冧酒調製,之後再加入竹葉青酒、自家製甜酸汁及可樂,最後以新鮮甘蔗作點綴。葡萄酒愛好者則可以從特別設計的精品葡萄酒及香檳清單中挑選合適酒品,盡情享受醉人時光。 賓客可於【紅伶】開懷暢飲之外,琳瑯滿目的美食絕對能夠滿足賓客們的口腹之欲。一系列新穎菜式包括梅醬烤鴨卷餅、薄荷醋汁芒果蝦仁米紙卷以及葡式火焰香肠等。 【紅伶】璀璨重開,全面迎接一眾追求奢華娛樂的賓客,體驗華麗超凡的夜生活娛樂。【紅伶】為賓客提供驚艷醉迷的享受,以及「澳門銀河」頂級的餐飲和宴會服務,是舉行私人派對、締造難忘回憶的理想地點。 【紅伶】再現風華絕代,超越中西融合,重塑1930年上海流金歲月。賓客可享受輕柔的現場音樂表演、沉醉於美酒佳餚,置身頂級享受,體驗「傲視世界情繫亞洲」的服務理念。【紅伶】訂座電話:853 2888 0888或電郵chinarouge@galaxyentertainment.com。「澳門銀河」五星級旗艦娛樂場地【紅伶】重新啟幕,再現風華絕代。

「去澳門‧葡一葡」全新旅遊優惠推廣澳門
激安優惠
LifeMag Editor・2015-10-30

澳門旅遊局局長文綺華女士、噴射飛航副總經理康宇嫻女士,偕一眾合作伙伴代表祝酒,預祝活動成功。 澳門旅遊局局長文綺華女士 中 及噴射飛航副總經理康宇嫻女士左二出席「去澳門‧葡一葡」旅遊優惠發佈會 胡楓、朱咪咪,以及陸浩明6號,一同介紹「二人三足玩不盡的澳門」最新旅遊優惠 由噴射飛航主辦、澳門特別行政區政府旅遊局協辦的「去澳門.葡一葡」日前於上環信德中心舉行新一輪的澳門旅遊優惠發佈會。新一輪名為「二人三足玩不盡的澳門」的旅遊優惠,旅客現凡購買噴射飛航任何客位之來回船票兩套及指定商戶之旅遊產品,即可享二人價錢三人同行的旅行優惠。 「去澳門.葡一葡」是為慶祝澳門歷史城區成功申請列入《世界遺產名錄》十周年而籌辦,亦配合了澳門旅遊局今年二月推出的「論區行賞 步行路線」活動,推出以葡萄牙風情為主題的旅遊套票。「去澳門‧葡一葡」旅遊推廣活動自2015年下半年推出以來廣受歡迎,除旅遊套票銷量錄得雙位數字的增長外,更成功為訪澳旅客推介更多的「葡」點,豐富了他們的遊澳體驗。 發佈會邀請到澳門特別行政區政府旅遊局局長文綺華女士、噴射飛航副總經理康宇嫻女士擔任主禮嘉賓,更請得知名藝人胡楓先生、朱咪咪女士,以及陸浩明6號出席,一同介紹以「二人三足玩不盡的澳門」為題的最新旅遊優惠。6號即席向各位現場朋友介紹了多個商戶,包括澳門十六浦索菲特酒店、金麗華酒店、澳門旅遊塔會展娛樂中心、澳門文華東方酒店、澳門新濠天地和英記等所提供的餐飲住宿、水療按摩、表演門票、冒險或娛樂活動和手信禮品等「三人同行」優惠及贊助;而主辦單位噴射飛航於是次活動更贊助總值港幣$10,000,000船票,把現場氣氛推至巔峰。6號在夥拍修哥和咪咪姐同遊澳門之前,更特別提醒大家保留船票票尾,以享用商戶所提供的終極優惠。 此外,由噴射飛航及澳門電訊主辦的「去澳門 ‧ 葡一葡」攝影及短片比賽第二期亦已展開。參加者只需按上載切合每期主題的自拍照片或影片至活動網站,即可獲贈CTM WiFi Day Pass,免費享用一日WiFi,隨時隨地分享更多精彩作品。參賽作品會經主辦單位評審和網上公開投票,從而選出每期每組冠、亞、季軍各一名、專業評審我最喜愛的作品組大獎及網上至LIKE作品大獎,豐富獎品包括亞洲萬裡通飛行里數、Sony Xperia手機、酒店住宿、機票、船票及澳門通儲值卡等。參加網址:www.cyberctm.comeventmacau 「葡」點十足的澳門作為盛事之都,未來數月將有更多大型國際旅遊活動︰十一月的澳門格蘭披治大賽車及澳門美食節、十二月澳門購物節以及澳門旅遊塔瘋狂笨豬跳等;連串精彩活動定必吸引大批市民和旅客參與。快偕同親朋好友一齊盡享「二人三足玩不盡的澳門」的旅遊優惠! 「去澳門middot;葡一葡」 之「二人三足玩不盡的澳門」高達33.3%折扣優惠! 現凡購買噴射飛航任何客位之來回船票2套,及以下至少一項旅遊產品,即可享二人價錢三人同行優惠!澳門十六浦索菲特酒店 澳門十六浦MJ咖啡館 ldquo;$158全場任飲rdquo; 2人 海風餐廳晚市自助餐 2人 澳門十六浦3D奇幻世界主館門票 2張 樂軒華粵菜餐廳品嚐指定晚市套餐 2人 派意舫法國餐廳指定晚市套餐 2人 So SPA with Lrsquo;OCCITANE 60分鐘身體按摩或面部護理 2人 聖特羅佩酒吧或艷陽天購買兩枝樽裝啤酒 銀河酒店 群芳自助晚餐2人 亞洲美食坊精選餐飲券 2人 金麗華酒店 薈景閣咖啡室 專享週四澳葡自助晚餐2人 乘風廊 尊享桑格利亞水果酒 2人 澳門旅遊塔會展娛樂中心 360deg;旋轉餐廳下午茶套餐 2人 皇家葡萄餚之午餐自助餐 2人 南湖明月指定套餐 2人 AJ Hackett 空中漫步 2人 澳門文華東方酒店 御苑餐廳指定精選晚餐 2人 澳門新濠天地 水舞間Zone B amp; C門票 2張 Taboo釋惑Zone A, B amp; C門票2張 英記 蛋白蛋捲及迷你粒粒杏仁餅各一盒額外贈送白芝麻花生脆糖一盒 以上優惠只供參考,並須受有關條款及細則約束,詳情請瀏覽噴射飛航官方網頁www.turbojet.com.hk。

Coding Anywhere 工作方案
科技新知
MacauYeah・2024-06-13

最近筆者一直在準備軟件開發的教材,因為各種原因,例如:新舊硬件交替,沒有固定的電腦等等,讓寫稿和設計教程的進行得很慢。但其實這種情況並不旱見,即便是真正的開發團隊,也會時時刻刻面對各種新舊設備的更換。在不久的未來,這種更替速度可能更頻繁,工作模式也很可能趨向這樣,為了打造更靈活的工作方案,適筆者一直為自己的coding anywhere情境物色合適的工具。 基本假設 在分享之前,有些前題條件必需要滿足,coding anywhere的基本條件是我們可以把一些厚重的資源變成cloud或遠端工作,如果你是開發主機遊戲,你的測試必需要在PS5上跑,那就沒有條件帶著裝備走。即使你可以設定遠端連線,但你人在外,其實沒法在PS5上做互動。真正有條件實行的工作,必需要可以在外由開發至測試都行得動。 在這個前題下,筆者就開始分享一些自己嘗試過不同組合。 不可或缺的東西 滑鼠、網絡 這件事,看似不重要,但筆者一直沒法找到完美的解決方案。 無線滑鼠是標準配置,筆者曾經想去掉滑鼠,但不太可行。這個大家還是選一個不太大,而且可以穩定在不同機器切換的滑鼠吧。至於鍵盤,視乎你的主機有沒有實體鍵盤,如果最後選擇平板或掌機的話,還是需要帶鍵盤外出,亦即是不論你選擇何種方案,鍵盤的重量也是不會消失的。 另一個就是網絡流量問題。我們處身的環境,並不一定有免費網絡。有時為了安全性,我們不想配對公用Wifi。那怕不考慮安全問題,公用Wifi都很常出現因為人流太多而被踢的情況,所以一般都考慮直接使用手機的4G5G網絡。而為了節省流量,一般控制好大檔案大更新的下載時機,都是可以達到的。 不同的工作模式,不同的選擇 上述第一個問題在筆者看來,都屬於沒有選擇,但下面的選擇,可以基於價錢、功能、需要而搭配。另外,我們還要假設我們有足夠的Remote資源可以用。但如果大家的開發,必需要帶著硬件資源,就不太可能實現coding anywhere。 一台入門級的Notebook 如果我們大部份工作,都可以經Cloud Service解決的話,其實我們不必投資太多在主機之上。Notebook帶著四處跑,壞的可能性也多,入門級的Notebook就算壞了也沒有那麼心痛。 全Cloud Service還有另外一個好處是不需要擔心備份問題,壞了Notebook就狠心換機。而且Cloud Service的好處是需要更新client software的網絡流量消費不高,不過想真省錢的話,就需要好好控制cloud service。 例子1,如果大家熟識或願意使用github codespace或gitpod等全cloud IDE,Notebook只需要安全Browser就夠。所有IDE, VM都由github或gitpod提供,它們各自有各自的免費用量,也就是說,當大家真的不夠用又不想付費,可以兩著切換用。真的不夠用,就時租codespace 2G 每小時$0.18USD,約為每小時1.44MOP。 例子2,如果大家有自己Cloud VM,可以用VS Code SSH,除SSH的extension外,其他安裝及運行在VM中,對Notebook client的要求不高。Cloud VM品牌可以使用Digital Ocean、Linode等,2G機器價錢更低,每小時0.018USD左右,不過就要自己初始化各種工具。 一台高階的Notebook 這個方案可能就不需要再多解釋了,那就是你把家裏的核心電腦帶著到處走,一切都自給自足。在外的不可控因素可能就只有電量控制。另外一方面,長期的備份和維修成本也是需要考慮的。 輕便裝:一台中階大平板 跟上面的遊戲用PC掌機類似,不過螢幕更大,但缺點是配上鍵盤後,價錢比得上一台中階電腦,出門的重量也比得上電腦。在軟件上,你還必需要選擇Cloud VM,Local IDE也不一定有。所以在成本上來講,沒有很太優勢。大平板可能只對那些有專門APP需求的用戶有意義。 究極輕便裝,一台710寸入門平板 大平板最大的問題是價錢,但如果換成小平板,一切就不錯了,壞了也沒有那麼心痛。源用所有純Cloud解決方案。出門的負重最低,電量也最有保證。這是筆者最推薦的方案。 低成本高階機:遊戲用PC掌機 對,你沒有看錯,筆者指的是主打遊戲的PC掌機,也是筆者現時自己的最佳方案。假如你在工作室、家、公眾環境來回切換,很擔心傷到Notebook的話,那麼買台低成本的PC掌機絕對是可以接受。有些很重要的底層功能,需要多台Cloud VM,可能花費很高,所以還是需要經Local實現比較有性價比。 它最重主要的問題是螢幕小和沒有鍵盤,但這個程度,對比入門平板來講,其實都差不多。但它比平板有更強的CPU、RAM,作為移動核心電腦一定沒有錯。你還可以自由選擇Local VM、Cloud起VM。

澳門教育家陳康妮:AI技術與教育會碰撞出奇妙的火花
文化創意
陳康妮・2021-05-22

【作者簡介】 陳康妮 Miss Connie 澳門科技大學講師 澳州墨爾本大學主修高等教育管理學 澳門高等教育管理學專家(Digital Educator) 澳門培訓師 (Digital Trainer) 澳門教育專欄作家 (Digital Writer 全球職涯發展師 從事高等教育管理培訓工作十七年 隨著科技不斷發展,教育教學模式也在不斷更新,人工智能進入大家的視野,對傳統的教育教學的方式產生了影響。我們不能否認科技帶來的教育教學模式的全新改變,所以我想針對澳門AI教育談談我的看法。 首先,我覺得AI教育推動了教育教學模式向個性化的方向發展。由於課堂的課程時間有限、教育教學資源有限、師資力量有限以及學生的學習能力參差不齊,傳統的教育教學模式存在侷限性,可能一堂課結束後,基礎好的同學覺得有很大收穫,而基礎較差的同學一頭霧水,長此以往,學生的學習情況就會有很大的不同,成績更會有很大的差異,學得明白的學生會更加喜歡學習,而總是學不懂的學生會自暴自棄,最後放棄學習。我認為利用人工智能技術可以在很大程度上彌補這些缺失,因為人工智能可以充分地利用大數據去了解每一位學生的學習情況、學習進度和個人的學習習慣進而針對不同的學生制定出不同的學習計劃,讓學生可以更有針對性地學習,知道自己擅長與不擅長的地方,提高學生的學習效率。也可以幫助教師瞭解學生的學習情況,在接下來的日子中不斷更進教學方式。 其次,人工智能是一種效率工具,在提供素質教育的過程中,我們可以利用人工智能來降低練習和反饋部份的成本並提升效率。人工智能可以利用大數據總結學生的錯題和知識點薄弱的地方,避免學生總是在掌握得比較好的地方一邊又一遍地看,而一直忽視掌握得不好的地方。可能有些學生一直以來都知道自己的學習薄弱點在哪裡,但是出於不敢面對問題的心理,而不願攻克這些難點,導致學習成績始終無法提升。通過人工智能,家長和老師也能夠掌握學生真實的學習情況,進而幫助學生。 再者,人工智能與教育的結合也是一種理性與感性,科學與藝術的結合。教師作為教育教學的主體,不僅需要教授科學知識也要傳遞一種情感教育,幫助學生們樹立好的三觀,幫助他們更好地面對接下來的人生。而人工智能可以幫助學生們在學習中進一步掌握知識,將更多的理性邏輯投入到教育中來。總之,根據澳門的教育情況來看,AI技術與教育一定會碰撞出許多奇妙的火花。

立冬之後,讓大地光亮,讓低頻率眾生看到家
宗教玄學
熊神進・2023-11-07

煙供,是一份慈悲 熊老師風水課程導師,執業三十多年 近20年世界各地出現El Nintilde;o,人類親手種下惡因,地球多處氣候發生極端氣候變化,對於「立冬」二十四節氣來說,我們在玄學上亦有調整,再不是一成不變。 立冬,每年在11月68日之間,鬥指天門,即太陽位於黃經225deg;。立,表示冬季宣佈開始;冬,是萬物收藏,意思是說秋季農作物全部收曬完畢,收藏入庫,而很多冷血動物也藏起來準備冬眠。 立冬是長夜的冷,十方眾生的酷,筆者請大家為寒夜做次煙供,特別在晚上,你點三隻塔香放在河邊、陽臺、樹下給那些意外死亡的眾生,牠們流回路上,很孤獨,沒有家人,如果你做煙供並觀想,你的大愛無限延伸。 做煙供就是一份慈悲,願地藏菩薩加持,讓那些好兄弟有一點食糧,讓牠們可以看得到家,這三隻塔香的亮度,可以讓亡靈看到牠想念的家人。筆者在點塔香的時候,燈火照亮大地,好兄弟可以看到極樂世界,可以看到佛菩薩,所以晚上做煙供,功德很深。 你每晚做一次煙供,點三隻塔香,要念一下 ldquo;嗡阿吽rdquo;,ldquo;嗡rdquo; 就是水,變成幹凈了;ldquo;阿rdquo;,就是香,變成百萬個塔香,ldquo;吽rdquo;,這個慈悲的火,就能夠產生溫暖力量,讓大地發光,讓好兄弟看得到家人。佛教說:萬法唯心造,就是這個慈悲心、菩提心,你的日子天天都是好的。 佛經說,一個人死的時候是跟隨習性,如果在生的時候,他冷漠不仁,他要死的時候,那些不好的現象會來,但是如果你活的時候,晚上經常做煙供,那些好兄弟就會為他引路,所以各位,從今晚開始,一起做煙供。

Coding | Test Case 值得寫嗎?
科技新知
MacauYeah・2023-11-02

很多做軟件開發的朋友,其實都會聽過Testdriven的開發模式。就像Scrum一樣,名氣很高,但試過的人很少。為何會這樣呢?筆者認為,並非開發者懶,而是編寫Test Case的難度真的高。對比開發程式本身的成本,寫Test Case的時間學習成本一樣高。 造成這些高成本的原因很多。一來是因為開發者並不像過往一樣,慢慢從零寫程式,一般都應用Framework去預構建一些東西,例如打包Database connection pool,Dependency injection。Framework是好用的,但就令你要模擬Mock up特定資源,變得越來越複雜。所以一般中、小型開發,都鮮有人懂得做Test Case除了大神獨立開發者外。筆者對於Spring boot等Framework,都摸索了很久,才能模擬一些特定資源。但Framework一更新,就很多部份都要重寫。所以筆者沒有很強調要做Test Case,因為成本認真大。 最近,在摸清一些test case 基本concept後,筆者又重新開始嘗試編寫test case。以下假設用的是object oriented programming 在開發自己的class,為每個public function,都寫test case。很多IDE, 都有提供相關自動生成test case function signature的功能(就是為你的目標function,起一個只有外框的test function。)vscode雖然不是原生支援java,但只安裝基本的java test package,就可以達到同樣效果。 在不依靠framework的情況下,自己class要『引用』的其他class object,不要經過自己使用new來生成object。全部經set function來傳入你要引用的class object。除非你的class是作為Factory Pattern(工商模式)生產某些object,不然你就不會再有new字眼。 在為自己class編寫test case時,就會可以模擬被『引用』Object的行為。這個object在傳統上可以使用oop中的interface類型來達到模擬又不會影響到原結構的做法。實在不想做interface,java還可以用mackito 這個libraray來硬改Object的行為。 同理,自己class要『引用』一些外部資源,那些設定資源的config,都應該要set function傳入。這樣你在test case中才能起一個臨時的模擬外部資源。 在不使用framework的情況,要全數去自行模擬,當然很痛苦,但至少你可以做一些很簡單的測試。 在使用framework的情況下,還有些教學都是教你mockito繼續模疑。但這會是很痛苦的,因為這樣叫做unit test,單元測試,你要模擬所有東西。在折衷的情況下,應該底層元件做unit test,但上層的元件就做integration test,整合測試。 在做integration test時,就差不多等同使用framework行起部份或必要的資源。而那些必要資源,可能指是的database service, network service。我們可以在test case中設立不同的config,從而把framework指向一些備用資源。 Database好貴,腦細不會付錢set up多一套,自己電腦不夠強,也不能跑起多個開發用Database。好在還有h2 database可以幫你,它是memory可以操作的。只要你的framework支緩就好。在初次使用Framework時,你總會覺得為何Database層要設得這些抽像,其實為的就是讓你可以隨時換Database。不論做測試還是做移植,都會少很多問題。 模擬Network service還是沒有銀彈,要麼就mockito硬改行為,要麼就是提供一套測試用service。筆者曾經為模擬別人的Network Http API,也花了相當時間自己建立dummy server,提供模擬效果。無論dummy的效果有多假,有多局限,例如if id == 1,always return true,也是有一定價值。當你做source code refactoring (重構),又或是做framework升級時,還是讓你可以安心一點。