搜尋

搜尋結果

型別對程語言的重要性
科技新知
MacauYeah・2024-07-08

JavaScript等程式語言的流行,好大一個原因是因為它很簡潔。而筆者認為,動態語言的特性,即是可以省略型別,是讓它簡潔的一個很大原因。動態、靜態與強型別、弱型別並一定對等,詳見Ref 動態語言的特性,就是同一個變數,在不同時候可能代表不同的數據類型,有時候是String,有時候是Integer。所以編寫時,乾脆就不寫數據類型,因為寫了也可能是白寫。 因此初學者並不需要處理大多導入import問題,也不用考慮很多compile error問題,至少程式可以運行一半,到了最後出錯的地方才停下,也就是不會因為型別問題而整個程式開不了。 不過筆者在接觸了JavaScript後,始終沒有大量使用。一來因為筆者慣用的Java,有著更大的基礎套件,改用JavaScript未必有優勢。而且動態語言還有一個長久的管理問題,我們該如何知道更新的影響有多大? 測試用例不是萬能藥 有一部份的人認為,動態語言管理難,是因為大家不愛寫測試用例。的確,若然大家寫的測試覆蓋率足夠多,一定可以預先發現問題。但筆者在Java上實踐了寫測試的習慣一段時間,依賴測試報錯,其實也是後知後覺。 IDE的界入 筆者認為,若想好好地管理程式碼,光寫測試是不夠的,我們還需要好好地讓IDE了解我們的程式碼,認它可以很有效地重構我們的程式碼。更強的IDE,還有機會可以提醒我們有一些設計上問題。 老實講,寫Java多的朋友,都可能都知道Intellij Ultimate的名字。筆者試用後,的確很有幫助。相較之下,vscode對於Java的支援,並不十分智能。但這裏筆者還覺得vscode對於java的編寫、重構、測試,在免費的情況下,都已經足夠是足夠佛心。對於網頁應用來講,vscode差的是對javascript的支援。 vscode對javascript的支援有限,其實不能怪它不夠努力。你想多一個免費的IDE怎樣去了解你的javascript程式? 我們連型別都沒有寫出來,它能怎樣推敲? 實時去模擬各種輸入?CPU又會不會耗乾?那麼寫到一半的程式碼又怎樣輸入? 直到最近筆者採用TypeScript之後,筆者看到曙光了 TypeScript 一個變相的JavaScript的靜態型別 原本的JavaScript其實也有型別的,只是不強制。若想IDE支援,需要以特定型式寫註解。但這樣寫註解,工作量並不比引用靜態型别來得輕鬆。所以最後,筆者還是覺得直接套用TypeScript,讓自己在每一次引用參數,都要好好地先了解函數的輸入輸出型別寫法。 說實在,從JavaScript到TypeScript並不輕鬆。一些原本很無腦的Axios, Promise, Vue語句,TypeScript寫起上來,都變得很複雜。但這個套用,對於IDE來講,真的很大幫忙。它就像突然讀懂了我們的程式一樣,可以跳入跳出,可以知道在多少處被引用。重構也變得更有信心,而不是等待事後測試報錯。 有一點要補充,TypeScript並不像Java那般需要完全預先宣告型別。例如函數的回傳結果,TypeScript就不會強制要求寫出型別,因為它可以有限度地猜得出來。當然,如果大家願意宣告,就更好。 總結 總括來講,型別就像厠所的衛生情況一樣。初期當然什麼都不處理也可以,但越用越久也沒有人理會,大家也不想用下去。若然大家都願意努力維持它的品質,大家會更有意願重複使用。 參考資訊 「靜態型別 vs. 動態型別」與「強型別 vs. 弱型別」 httpsblog.tarswork.compostprogramminglanguagetypesystem Typed JavaScript httpsdepthfirst.comarticles20211103typedjavascript

「我們的桌遊故事」書寫與圖像展已於周三開幕
文化創意
繪本與棋@黃庭熾・2022-12-24

  澳門青年桌遊教育學會「我們的桌遊故事 ── 書寫與圖像展」周三(12月21日)上午在G32 Gallery 影藝廊開幕。經過一個月的徵集,共選出12件富人文情懷、生活氣息濃厚的書寫與圖像作品,展覽期到2023年2月10日結束,歡迎蒞臨參觀。   是次展覽由澳門青年桌遊教育學會主辦,獲少權工作室、一夕桌遊、卓傑桌遊、遊戲男孩協辦,望德堂區創意產業促進會、G32 Gallery 影藝廊提供場地支持。作為澳門首次以桌遊為主題的徵集活動及展覽,活動得到了廣大桌遊玩家關注和樂於分享個人桌遊生活的參加者大支力持,參展的書寫與圖像作品內容多元,有對經典遊戲的禮讚、對體驗中旅行感的回味、對桌遊合作性與沉浸感的憶述、對過程中驚悚感的刻畫,不一而足,歡迎到場分享澳門桌遊社群對心頭好的熱情與想像。   「我們的桌遊故事 ── 書寫與圖像展」假G32 Gallery 影藝廊(聖美基街G32號地下)展出,每天上午十一時至下午六時(逢周一休息),免費參觀。   2022年第四季,「我們的桌遊故事」書寫與圖像展通過攝影作品聯乘文字的展現方式,與市民大眾分享桌遊帶來的喜悅,但不凡的旅程遠未結束,難忘的桌遊故事不勝枚舉,學會邀請愛好者們續按快門再揮毫,記下桌遊過程中的快慰時光,為美好生活留下凝練的紀錄 ── 「桌遊物語」攝影作品聯乘文字故事徵集活動由即日開始,至2023年6月12日(一)止。參加者遞交之作品如獲入選,將於澳門青年桌遊教育學會Facebook 專頁中以「每週一圖」的形式展出。   除徵集活動續杯添飲外,「我們的桌遊故事」書寫與圖像展另設有展場推廣活動,借展場的雅緻環境氣氛,推廣多元的桌上遊戲。展場推廣活動設兩單元,率先登場的為「中國桌遊體驗會」(2023年1月7日,15001600、16301730兩場),及帶人身歷其境的「桌上遊戲讀書會」(2023年1月14日,15001600、16301730兩場),務求通過特色的桌遊體驗,讓參加者感受到桌上遊戲多采的文化韻味。 延伸閱讀:挽碧藍世界於海獸肆虐時 延伸閱讀:走進「博物之門」 ── 桌上遊戲讀書會 延伸閱讀:在別致的澳門共讀點裡悦讀 ── 桌上遊戲讀書會

誰 ── 《不喜歡噴火的噴火龍》
文化創意
繪本與棋@黃庭熾・2022-04-11

  噴火龍令人著迷 ── 強大、健碩、紅色、有角hellip;hellip;還會噴火!   你也愛這樣的噴火龍嗎?但那繪本封面上的動物們,似乎並不待見落坐於牠們旁邊的噴火龍 ── 即便噴火龍手握禮物、面露笑容,但森林裡的動物,依舊如見鬼神,雞飛狗跳地拔腿狂奔。繪本《不喜歡噴火的噴火龍》似也在訴說一個關於刻板印象、偏見的故事。 延伸閱讀:《小噴火龍和白米飯》的生活美學   噴火龍莎菲受不了白霧繚繞的陡峭山峰,也受不了「理當如此」的各種噴火龍習慣,決心找一處陽光燦爛、色彩繽紛的新家。但牠的紆尊,對森林裡的「小」動物來說,就像一個大朋友強遷入螞蟻窩,對當地居民來說,這些奇想與行動,不啻是一場災難。所以莎菲的居住請求,並不受森林原居民待見,拿著逐客令的牠,怏怏地離開了自己心儀的「很可愛的家」。 延伸閱讀:《盯盯熊》的奇幻之旅   倘若你是噴火龍莎菲,接下來,你會做甚麼呢 ── 繼續尋找新家?設法讓原住民接納自己?還是回老家睡一覺、把前事當夢一場?如若請你任作者,你會如何續寫之後的故事?談談莎菲的去向,講述森林動物接下來的遭遇,或者有新朋友登場hellip;hellip;我遇見的小作者,他們這麼說。   有孩子說,莎菲採了一朵七色極漂亮的花,來交換小動物給牠定居許可;有孩子說,莎菲回山上找媽媽幫忙,烤了份極美味的薄餅,宴請動物諸君,築起了一艘嶄新的友誼之船;有孩子說,天有不測之風雲,在最惡劣的天氣下,莎菲回來營救雷鳴閃電下的動物朋友們,用行動贏得大伙的友誼;有孩子說,莎菲越飛越高,十年後,抵達火星,交了一位女朋友,二十年後,一艘人類的太空船降到火星,牠接待了這位遠道而來的太空人hellip;hellip;   有人說:「閱讀一本好書,就如同與一個卓越的靈魂對話。」若未嘗提出疑惑、發表想法、表達關懷hellip;hellip;都只是聆聽教益,聆聽教益肯定不壞,但有來有往對話引起的迥異看法與共鳴之處,卻是人與人之間可以砥礪前行的重要活動啊! 你可以從這些地方借閱到這本繪本: 澳門中央圖書館、青洲圖書館、黑沙環公園黃營均兒童圖書館 ── 實際館藏情形可以透過澳門公共圖書館館藏查詢系統瞭解。

塞翁失馬與繪本《這是我的!這是我的!》中的青蛙得蛋
文化創意
繪本與棋@黃庭熾・2022-01-30

  繪本《這是我的!這是我的!》有《伊索寓言》的皮膚,同時骨子裡的東方韻味也奇香襲人,光封面就耐人尋味 ── 大大的書名下,姿勢驚喜的青蛙虎視著一顆蛋,到讀者全面觀察的時候,又會發現封面上方的兩角,蟄伏著遊刃有餘的倆「獵人」 ── 大有「螳螂捕蟬,黃雀在後」的懸念與蛛絲馬跡。   好的繪本封面讓讀者猜到了故事的一半,繪本《這是我的!這是我的!》有值此好評的封面 ── 果不其然,在險惡的叢林裡,小青蛙意外發現了一顆蛋,但是,沒有動物關注失蛋者誰,因為牠們馬上上演了場連鎖搶奪的戲碼,你方唱罷我登場,一時畫面好不熱鬧!   隨著衝突升溫,這顆蛋意外地砸到了局外「人」的頭上,撞出了一個包!這位局外人的份量可不得了 ── 是頭大象!大象登場了,牠會介入這場「蛋的爭奪戰」嗎?大象又會係這場爭「蛋」戰的最後一位選手嗎?到結局的時候,又會蛋落誰家呢?我請小朋友續寫他們認可的結局。   有小朋友覺得,民以食為天,動物們亦然;有小朋友認為,按故事的佈局邏輯,後來必出更大隻的動物(多半是恐龍);有小朋友相信,有能力多仗義,欺壓的循環將被打破;有小朋友指出,小時了了,大未必「惡」,有份量者更需要多的幫助......   小讀者透過猜想、推測、回饋枇來與書本連結、與作者對話,雖然難免誤讀,但藉著魚雁往返一般的過程,閱讀者必會更了解自己的心思與對作品有更立體的想法,讓讀者對作品的感受豐富,他們也會感受到自己在閱讀一事上的登高望遠。   故事的末尾,令人想起膾炙人口的塞翁故事。塞翁失馬的故事,多著墨在他對事發與果報不確定性的看法 ── 從長遠來看,他多是對的 ── 往往給一人種啟發就是,心事想成者未必如願以償,事與願違者未必命途多舛,小事情上的禍福,在大環境看來,卻是福禍......更往後看,對錯越繁複。   失馬的故事知易,塞翁的素養行難,在努力過日子的日常中,看繪本《這是我的!這是我的!》中青蛙得蛋的故事,當可以為讀者帶來會心一笑。 ── 你可以從這些地方借閱到這本繪本: 澳門中央圖書館、下環圖書館、何東圖書館、何賢公園圖書館、望廈圖書館、氹仔圖書館、沙梨頭圖書館、白鴿巢公園黃營均圖書館、石排灣圖書館、紅街市圖書館、青洲圖書館、黑沙環公園黃營均兒童圖書館 ── 實際館藏情形可以透過澳門公共圖書館館藏查詢系統瞭解。

[二維物語] 突破界限和框架的《高達創鬥者 潛網大戰 Re:Rise》
娛樂殿堂
君尋・2020-09-02

以高達模型為主題的動畫,由2013年推出的首集《高達創鬥者》到剛完結的《潛網大戰 ReRise》已有7年多。由最初於模擬器操控高達模型互相對戰,演變成操控高達模型遊玩網路遊戲,以及由日本電視台播映變為於Youtube上全世界同時上架,此系列一直添加新元素及追上潮流。但由始至終,系列的核心價值依然沒有改變,此系列四輯以來,都是講述主角們操控著自己心愛的高達模型,為完成各自的目標,努力鑽研技巧,以及發揮創意造出更強的高達模型。不過比起過往的作品,本輯的劇情發展相對慢熱。劇組幾乎用一整季的時間作為鋪陳,中途甚至有過於沈悶之感,直到第一季尾段才有出人意表的劇情發展,並因而造就毫無冷場的第二季,甚至最終成為值得一看的高達作品。 前三輯《高達創鬥者》的對象年齡越來越低 為何上兩輯都不受高達迷青睞的情況下,《潛網大戰 ReRise》能成為評價不俗的作品原因在於劇本走向和再次突破的機體設定。若要簡單形容本輯的劇情,請想像成當自己正在看「高達」動畫,但製作組卻在做「網遊」動畫,最終更發現原來這是「異世界」動畫!超越高達迷想像的劇本發展,但仍然保有高達動畫一貫以來的要素。「戰爭」、「保衛家園」、「互相理解」等元素在本輯突破既有框架後發揮得淋漓盡致。 主角機體可更換部件組合成不同型態 高達模型是自由的,以既有40年來的高達模型的基礎上,創造出全新的機體,正是《高達創鬥者》系列的魅力。不過這系列的機設越來越誇張,甚至不為部份傳統高達迷所接受。本輯尾段的高潮,竟然出現4部機動戰士合體成「再起高達」的劇情!雖然超出高達系列的常理,但當配上熱血無比的劇情,以及看到合體後的高達呈現的英姿,成功得到不少高達迷的認同,亦於動畫界引發極高討論度。不但這部正準備推出的 「再起高達」模型受到注目,連帶已推出的主角機模型,在港澳出現熱賣現象!不管高達迷如何評價本作,對Bandai來說無疑是極大的成功,因為高達動畫對製作方最大的意義,就是一套模型玩具的宣傳片。 現在要集齊全部模型部件也不容易 再起高達的合體雖不合「理」但絕對合「情」 高達動畫終究只是模型宣傳片 關於二維物語 本欄目將會分享日本的動畫漫畫資訊。未必會看到主流作品的介紹,但會在這介紹的必定是值得一看的作品。