搜尋

搜尋結果

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升級時,還是讓你可以安心一點。

Github copliot vs Intellij IDEA ultimate
科技新知
MacauYeah・2025-02-18

github copliot 最近正式開放每月限量免費使用,只要有github 帳號,就可以經過vscode copliot plugin,向 github copliot 交互式生成程式碼,又或是經 copliot 提供 code completion。大家會不會想過,加了github copliot的vscode,是不是效率暴升,可以跟傳統的付費IDE 例如intellij 的IDEA ultimate版本平起平坐? 流暢度明顯提高 是的,在生成程式碼方面,特別是code completion,在開啟copilot之後,實在好太多了。筆者長期寫java,vscode 原生的 java code completion,實在太陽春。java class name都很長,而且是強型別,很多時候都要完整打出class name。但大部份時候,筆者都要打很多個字之後,vscode才猜到你想打什麼,再給你可能的code completion,但這樣一來你也快打完了,幫助不大。要麼就是自己複制貼上,要麼就自己全拼出來。 在開了github copilot之後,在空行開始時,它就會開始猜你的意途,在打幾個字母以後,它雖然會頓一頓,但總在筆者跳去其他部份複制class name之前,就給出更新結果,實在省心太多。但猜測始終是猜測,大部份時候還是邊打邊修正。不過code completion方面,已經是追得上intellij,有些時候更是超越了intellij。例如我們有時寫 javascript 時,需要做多語言顯示,我們需要為每個語言設定一份i18n的翻譯。copilot 在這方面也能幫到忙,它會自動推薦可能的翻譯,你連問都不用問,這些功能,都不是 intellij 的本地運算會有的支援。 另一個要提提的是 copilot chat,它跟大家平時使用 chatgpt 程式碼生成的方面類似,只是它可以直接在vscode的某個檔裏直接交換生成程式碼。不過生成的品質都很一般,很初階的事可以做,深一點的就不懂。例如你很常寫java,但突然要寫javascript,有些javascript的array操作你懶得查,這時你可以叫copilot chat幫你生成。但若果你今日使用 javascript 框架,有一些 vuejs 或 reactjs 的結構參數傳遞你不太了解,你想找copilot chat,那就幫助不太。它依然可以生成一些程式碼,但對你碰釘的地方沒有修正意義。你還是需要自行從官方文件較對、研究Stack overflow中相似問題的解決方案。就跟chatgpt差不多。當然這些不是傳統IDE可以給你的。但如果現今對比的是收費的copilot chat和本地免費的ollama qwen2.5coder,copilot chat就沒有太大性價比。 可以作為付費IDE的平替嗎 如果我們拿vscode github copilot 跟 intellij IDEA ultimate來比較,前者入門價錢是120美元一年,後者入門則是169美元次年續期有優惠,但到了第三年才會比 github copilot便宜。單看價錢的話,github copilot的確比較便宜。想省點錢,github copliot絕對是一個可以考慮的選擇。但除了錢以外,或者我們還要考慮一些其他因素。 公司立場上,介不介意你的IDE上傳資料到cloud service上面? 付費IDE的除錯功能、多環境整合、程式碼品質分析,這些關係到長期維護,非程式碼生成部份,是不是可以忽略不計。 筆者在開發開源的程式,長期都使用vscdoe,在配上 github copilot 後,明顯覺得它提升了 vscode 的流暢度。但相對實際工作上,筆者還是會集中使用 intellij IDEA ultimate 。因為即使vscode 有明顯改善,但日常碰到的問題更多不是在生成部份,而是解決那些似是而非的程式碼結構陷阱,這方面還是intellij 更幫到忙。當然stack overflow和其他網路資源才是真正的救命靈藥。

營養師帶你行超市 - 餅乾選擇大解構 (中)
生活在我城
My nutridiary・2019-08-07

今次又到超市買餅乾,那麼多款到底應該如何選擇呢? 一般建議零食最好選擇ldquo;三低一高rdquo;,即低油,低糖,低鹽,高纖。但事實上,考慮口感,味道及製作方法,符合這個要求的零食應該沒有人會買吧! 一般營養師選購餅乾都會按這個順序: 1. 按自身條件選擇 沒有零食是十全十美的,低脂不一定低糖,低糖不一定低鹽!因此可考慮自身的飲食習慣及個人身體狀況 血壓 體重 血糖 去作篩選。 2. 篩選後,如發現同時有2款零食的脂肪,糖份及鹽分相若,可考慮哪款所含其他營養素較多 如纖維,鈣質等。 3. 考慮味道及價錢。 4. 嘗試新推出的零食或只考慮目前口腹之慾。 温馨小提示,上一篇說到建議一般人下午茶可吃 14 12 碗飯的量。現在我們到超市來實習一下: 左圖及右圖 兩款為相同口味相同性質但不同牌子的餅乾。  左圖 半碗飯的量為2小包 50克,含2茶匙油,5克飽和脂肪,2.4克纖維,243毫克鈉。 右圖 半碗飯的量為2.5小包 42克,含45茶匙油,1.9克飽和脂肪,1克纖維,219毫克鈉。 如果你是屬於素食者,或是ldquo;菜多肉少族rdquo;,以及烹調主要以烚,蒸等方式為主的話,可以選擇左圖;如果你是ldquo;外食族rdquo; 外出飲食一般攝取油分較高,或ldquo;食肉族rdquo; 肉類含脂肪及飽和脂肪,或正在減重的話,建議選擇後者。提提大家可配水果一起吃,補充纖維 左圖及右圖 同牌子不同口味的餅乾。  左圖 半碗飯的量為2.5小包 44克,含1 13茶匙油,4克飽和脂肪,2克纖維,265毫克鈉。 右圖 半碗飯的量約為2小包 37克,含45茶匙油,1.7克飽和脂肪,1.1克纖維,205毫克鈉。 以相同食用份量作對比,右圖的脂肪較低,但纖維也較低,額外添加了鈣質,大家可以依據自己的需求作選擇 考慮體重 血脂 鈣質 纖維 口味 左圖及右圖 兩款為含纖維的餅乾。  左圖 半碗飯的量為5塊,含34茶匙油,不含飽和脂肪,10克纖維 5個連皮蘋果,125毫克鈉。 右圖 半碗飯的量為1 34小包 7塊,含1.5茶匙油,4.5克飽和脂肪,0克纖維,286毫克鈉。 這兩款需要因個人需求而作出選擇了!是選擇健康零食還是口腹之慾?考慮其購買的方便性或價錢? 更多營養相關資訊可瀏覽FB 我的營養日記 httpswww.facebook.commynutrinotes 或微信 mynutrinotes 諮詢

【韓國。釜山】§美食§ 釜山超人氣MOLLE CAFE 몰레 베이커리 (西面店) ~ 傳說中的彩虹蛋糕和超足料大份甜品 (附餐牌 價錢)
全球飲食
80後愛旅行✈️・2021-11-30

和閨蜜們出遊, 好處就是可以四圍找美美的Cafe hi tea 和 拍照 盡情的打卡裝B 就來到了附近的MOLLE Cafe 西面店休息下 這就傳說中釜山的人氣Cafe 一進來的感覺就是店內有很多植物, 很清新的感覺... Cafe分為小小的兩層, 我們來的時候已經是下午1800多了, 但是店內還是坐滿了人 上層是我們離開的時候拍的, 所以人都走得差不多 剛來的時候是坐滿的... 雖然是間Cafe, 但店內的裝飾擺設不遜於精品店呢 來看看最期待的甜品櫃 MOLLE 的蛋糕真的超巨大 這裡的「一份」蛋糕足夠好幾個人吃了 有蛋卷、馬卡龍、還有韓國Cafe最有名的彩虹蛋糕, 彩虹蛋糕以前就在首爾Common Ground內的蛋糕店吃過了, 覺得其實沒什麼特別...直接點說就是吃色素 甜品櫃上的餐具也很多特色, 很想買回家呢 另一邊的甜品櫃, 這裡的蛋糕同樣是超巨型 8500₩ 約MOP60 就有這麼大的一個Cake, 其實也不算很貴 但就是因為蛋糕太大了, 沒辦法多試幾個口味 「抹茶雪芳蛋糕」 本來我很想試這個口味的, 可惜伙伴們不太喜好這個口味, 那唯有等下次囉 「覆盆子雪芳蛋糕」 我們就點了這個蛋糕, 上面那顆是士多啤梨 點好餐就找位置坐, 剛好被我們等到了靠窗邊的梳化 除了蛋糕, 我們當然也每人點了一杯飲料 這是「ROYAL MILK TEA」 用瓶子裝著很特別, 像不像以前的酒壺 「GRAPEFRUIT TEA」 葡萄柚茶 而我點的是「ORANGE ICED TEA」 飲料的口味都不錯, 果汁茶的味道都挺清新的...用來配蛋糕一流 因為我們拿完韓式證件相之後, 又要去吃晚餐了, 所以我們3個人只點了一個蛋糕一起Share了 「覆盆子雪芳蛋糕」 蛋糕裡面是「流心」的, 切開後滿滿的覆盆子流出來呢 蛋糕酸酸甜甜的, 加上外面厚厚的Cream也不會太膩不會太甜 而且分3個人吃都吃得飽飽的 最後附上餐牌 和 價錢 MOLLE Cafe 몰레 베이커리 MOLLE Cafe 몰레 베이커리 부산 부산진구 부전동 2251 1층 釜山廣域市釜山鎮區釜田洞2251 0518072272 13002300

澳門男子收買“假僱主協助申請外僱額”,萬萬沒想到...
其他
澳門生活圈・2019-03-01

在現如今的生活當中 已經沒有什麼是離不開錢的了 俗話說,有錢能使鬼推磨 金錢對部分人來說都帶有誘惑性的 例如... 某集團中介利用老人去扮演假外僱 以協申請外僱配額 協助長期留澳外籍人士居留 賺取假外僱手續費而牟利 假外僱招工 近日,治安警與勞工局聯合偵破同一個至少5名本澳男子組成的ldquo;假外僱招工rdquo;集團,以「家務工作外地僱員聘用許可」讓非本澳居民留澳。 2月22號,警方開始展開行動,一連多日分別搜查本澳多個地點。 共拘捕32名男女,同時掌握約20名「假外僱」的身份資料,大部分為女性,分別來自越南、尼泊爾及內地。 這個quot;中介quot;集團從2017年起開始運作,分工非常仔細,5名中介分上中下線成員,專門在公園內對老人家下手和物色欲長期留澳的外籍人士、遞交申請表和交收款項。 集團主腦物色有意留澳的假外僱之後,收取每人3.5萬酬勞,再由中層成員協助處理文件,3名下線成員負責以2,000至9,000元在公園或休憩區收賣假僱主協助申請外僱額。 兩年期間,這個quot;中介quot;集團至少協助20多名假外僱留澳,相關假外僱報稱家傭為主。 2月28號(昨日),治安警召開新聞發布會,指在行動中共拘捕22男10女,年齡由22至84歲,當中30名本澳居民和2名越南籍假家傭。 治安警表示,集團的骨幹成員已被拘捕,但仍有至少20名涉案假勞工,將繼續追查。 拘捕的32名嫌犯將被控以偽造文件罪,移交檢察院偵辦。 當看到84歲這個數字的時候 小編不禁歎了一口氣 找工作本該說是你情我願的 但由於觸碰到了違法行為 老人家只能靠著拐杖去局裏走一趟了 勞工局呼籲: 勞工事務局也發出新聞稿,稱有人涉嫌收取利益,以「家務工作外地僱員聘用許可」讓非居民留澳,而雙方實際上並不存在任何勞動關系。 因此,勞工局提醒市民,應按實際需要提出外僱申請,切勿以身試法,因一時貪念作虛假聘用從中圖利,或將會面臨刑責。 家務工作外地僱員是協助僱主打理日常家務,例如料理小孩、照顧長者、煮食及清潔家居等,會根據申請人的家庭具體情況、申請理由、家庭經濟狀況、擬提供予僱員的聘用條件,以及過往有否存在違規紀錄等各項因素作綜合考慮及進行審批。 一位良好市民的責任就是遵紀守法 切勿起貪念而作出違法之事 身為澳門的一員 更應該好好保護自己的家園 避免不法分子擾亂社會 素材來源:力報、網絡 圖片來源:力報、日報、表情包 如有侵權,請聯系我們刪除 版權屬於原作者 編輯撰寫:小嚕