搜尋

搜尋結果

Spring Boot 01 - 萬物始於Spring boot context
科技新知
MacauYeah・2024-01-16

Spring Boot 01 萬物始於Spring boot context 筆者早些時候向一位朋友討論,為何Java那麼不受歡迎。朋友一句就回答,Java煩爆,沒有人會喜歡。 老實講,Java在句法上,實在囉唆。但以筆者的經驗,即使使用其他語言和開發框架,在實戰到一定複雜程度下,其實也一樣煩爆。 而現在的Java框架中,就以Spring boot的入門門檻低。筆者從Spring boot 1.x用到現在的3.x,也真的感受到更多的簡化,所以筆者也加入一起推廣Spring boot的行列。筆者將會通過一系列最小的可執行程式,為大家講解Spring在Web和資料庫上的應用。 所以現在就不廢話,馬上開壇作法 快速下戴模版 使用Spring initializr,可以很容易就建立一個以Spring boot starter為底的java project。大家可以使用Spring 官網又或是vscode plugin 快速地建立一個maven或gradle project。筆者較為熟悉maven,就以maven起一個範例。 在使用Spring initializr有幾件事必需要指定的 Spring boot version 3.x.y 或以上 Language java Group Id 請選擇有意思的域名,如果你用github,可以選 io.github.yourusername artifactId 這個範例的名字,例如commandline Packaging type 本次使用jar,日後若開發web 應用,可以使用war Java version 17或以上 之後就不用選了。若你經官網起範例,你會得到一個zip檔,下載後解壓縮。若你使用vscode插件,最後插件會叫有一個位置儲存。它們都是最後也是會得到同一樣範例Java project。 你使用Vscode,Intellij打開,IDE都會自動辨識到它是java maven project,同時會顯示java和maven結構。道理上你用Intellij 應該可以無腦開始編譯Community 或Ultimate版都可以, Vscode有安裝Extension Pack for Java也會開始自動編譯。不想麻煩,也可以試用Github Codespaces java。Github Codespaces其實就是一個雲上的vscode,經網頁可以連到Github VM內的vscode,所以它也會有齊Extension Pack for Java等插件。 筆者最後也會上載已完成的範例,它也可以在Github Codespaces上以Java執行或繼續開發。 打開project中的pom.xml,它為我們添加了兩個很重要的lib org.springframework.boot springbootstarter ... ... org.springframework.boot springbootmavenplugin springbootstarter是重中之重,它定義了怎樣動態地設定日後的其他lib,它是讓我們可以無腦設定的一個關鍵。但若大家有很多客制化的設定,就要返撲歸真地逐個lib叫起。 maven在預設情況下,只會負責編譯和打包目前的project原始碼。所有相關依賴就是xml中的dependency,並不會自動包起。而springbootmavenplugin,就是幫我們把相關依據都包在一起,讓你的jar可以獨立行起來。 註 若大家在開發lib jar,並不是一個獨立執行的jar,也就是原始碼上沒有main函數,大家就不應該引用springbootstarter和springbootmavenplugin。 我們繼續看其他原始碼,整個資料夾就像以下那樣。 . HELP.md pom.xml ` src main java ` io ` github ` macauyeah ` springboot ` tutorial ` commandline ` CommandlineApplication.java ` resources ` application.properties ` test ` java ` io ` github ` macauyeah ` springboot ` tutorial ` commandline ` CommandlineApplicationTests.java CommandlineApplication是我們有main函數的java class。我像可以經過IDE運行main又或者下指令mvn springbootrun來執行。 正式開始我們的Commandline開發 我們在CommandlineApplication.class中,加入新的程式碼,實現ApplicationRunner和它的函數run。 package io.github.macauyeah.springboot.tutorial.commandline; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; other import @SpringBootApplication public class CommandlineApplication implements ApplicationRunner static Logger LOG = LoggerFactory.getLoggerCommandlineApplication.class; public static void mainString args SpringApplication.runCommandlineApplication.class, args; @Override public void runApplicationArguments args throws Exception args.getOptionNames.stream.forEachoptionName gt; LOG.debugquot;option namequot; optionName; args.getOptionValuesoptionName.forEachoptionValue gt; LOG.debugquot;option valuesquot; optionValue; ; ; LOG.debugquot;program end.quot;; ... 這個run函數很直白,就是更好地演譯main中的String args。 但大家還要看清楚,這個main並沒有直接執行run。其實它是靠SpringApplication.run及@SpringBootApplication,跑一堆自動設定,最後因為傳入CommandlineApplication.class是一個Spring 可以處理的ApplicationRunner,所以才呼叫它的CommandlineApplication.run。 換個講法,如果今天做的是web應用,傳入去的就會是SpringBootServletInitializer,這個SpringBootServletInitializer也不一定跟main是同一個class。 如果大家有興趣,可以經過反編譯器,點入@SpringBootApplication看它的原始碼,你就可以看到它其實代表了很多自動化的東西。如果我們只做一些在同一個模組下生效的事情,《自動化》極大地降低了大家入門門檻。一般來講,如果大家不在意程式碼的複用度,比較少機會自行設定,自動化已經很有用。而隨著系統規模增加,多模組就慢慢地顯得重要,在大家了解完基本的Spring後,著者再從測試用途test case入手,為大家介紹如何手動設定。 Source Code Commandline Application

澳門某大學生一個行為讓母校損失20萬!叫了你不要那麼手多的啦!
其他
澳門生活圈・2018-12-22

大家會不會覺得 有時候手多的人也挺令人討厭的 未經過別人允許 就自己擅自觸碰某件東西 導致最後不好的結果 搞得大家都不好,對吧? 本月19號,澳門某大學校方報警,事件涉及到「生物醫學實驗品」,當中損失了20多萬,這到底是誰乾的?! 原來,過去半年期間,本澳某大學一名學生因「手多多」,為經過允許,擅自拿出「生物醫學實驗品」端摩,期間因不小心將酒精沾在實驗品上,造成了該實驗品的14個細胞死亡,這一看,讓母校遭受了重大損失! 據調查,這名學生負責輔助學校另一名研究員從事一項「生物醫學實驗」,兩人關係一般,但未有結怨,過去一直相安無事。 但在半年前開始,有研究員發現14樽實驗品內的細胞相繼死亡,認為該事件不尋常,於是通報校方。 校方最終報案,警方拘捕了該名學生,被捕該名學生姓黃(27歲,內地居民,在橫琴本澳某大學正攻讀研究生)。 想必大家都知道 未經過允許的東西擅自去觸碰 往往都會被當事人警告 況且還是在實驗室裡面的東西 哪怕你是研究生都是假事 身為一名攻讀的研究生 好好安分守己、專心研究課程就行了 不要胡亂研究,最後好奇害死貓 該輪到你研究的時候總會來的 本事還沒到家就別著急吃ldquo;熱豆腐rdquo; 好奇是件好事,但過於好奇就... 素材來源:力報 圖片來源:力報、攝圖網、表情包 版權屬於原作者 編輯撰寫:小嚕

沉默之丘4:密室驚魂|一整個月都讓你有驚喜|Taiwan Speedrun Show
手機‧電玩
MacauYeah・2021-10-04

不經不覺,《Taiwan Speedrun Show》已經開始了好幾個天啦,你還不知道這是什麼? 其實《Taiwan Speedrun Show》是一個以台灣Speedrun社團主辦的活動,並開放華語區的跑者參加。 本年10月共31天,每天晚上將進行各種遊戲項目的Speedrun,隨時都觀迎花生友們,進來一起觀看神奇的快速通關精彩操作。除了作為觀眾,無論任何項目,只要你覺得準備好了,都可以一起參加Speedrun,推廣給更多華語區的朋友,認識這個競技與表演融合的特別節目。 沉默之丘4:密室驚魂 10月3日晚世界級好手quot;alqk0310quot;為我們帶來沉默之丘4Slient Hill 4的快速通關攻略,短短一小時多一點,就把恐怖遊戲重溫一遍。你可知道,Slient Hill系列可比生化危機系列要恐怖得多。而且這一代,更是在一個公寓環境進行的,代入感真的超強。要苦練這遊戲,真的不能只靠遊戲魂,個人的勇氣亦是必需元素之一。 精彩重播用手機無法自動播放的朋友,可以按這裏或手動跳到24m28s處 (quot;alqk0310quot;可是Any%Easy這個分類比賽項目的全球第二玩家呢,高手就在民間) 10月4日節目預告 今晚將會由台主quot;Pachi_zxquot;帶來quot;紙片瑪利歐quot;遊戲的Speedrun 想看現場Live,記得按Twitch的遊戲追隨喔 過去幾天發生了什麼?快看這裏

隻狼:暗影雙死 回憶模式限制挑戰|一整個月都讓你有驚喜|Taiwan Speedrun Show
手機‧電玩
MacauYeah・2021-10-29

《Taiwan Speedrun Show》已經舉行快一個月了,這個表演平台,是不是很驚艷呢? 其實《Taiwan Speedrun Show》是一個以台灣Speedrun社團主辦的活動,並開放華語區的跑者參加。 本年10月共31天,每天晚上將進行各種遊戲項目的Speedrun,隨時都觀迎花生友們,進來一起觀看神奇的快速通關精彩操作。除了作為觀眾,無論任何項目,只要你覺得準備好了,都可以一起參加Speedrun,推廣給更多華語區的朋友,認識這個競技與表演融合的特別節目。 隻狼:暗影雙死 回憶模式限制挑戰Boss Rush 10月28日大神「reessff」為我們帶來遊戲「隻狼:暗影雙死」回憶模式限制性挑戰Boss的Speedrun。隻狼,是公認的魂系高難度遊戲,而大神更限制自己不用影具,要正面硬過挑戰Boss。 限時完整重播用手機無法自動播放的朋友,可以按這裏或手動跳到34m18s處 10月29日節目預告 今天晚上,將會由台主「the_windmill」帶來「小默 奧里與迷失森林:決定版 」的全迷宮挑戰Speedrun。 Twitch的Live重播是有時間限制的喔,不想錯過任何精彩表現和重播,如果不想,記得按Twitch的遊戲追隨喔。成功追隨後,就可以看到更多沒有時限的精華剪輯。 過去幾天發生了什麼?快看這裏

東方文花帖DS|一整個月都讓你有驚喜|Taiwan Speedrun Show
手機‧電玩
MacauYeah・2021-10-22

《Taiwan Speedrun Show》已經開始了半個月有多啦,這個表演平台,是不是很驚艷呢? 其實《Taiwan Speedrun Show》是一個以台灣Speedrun社團主辦的活動,並開放華語區的跑者參加。 本年10月共31天,每天晚上將進行各種遊戲項目的Speedrun,隨時都觀迎花生友們,進來一起觀看神奇的快速通關精彩操作。除了作為觀眾,無論任何項目,只要你覺得準備好了,都可以一起參加Speedrun,推廣給更多華語區的朋友,認識這個競技與表演融合的特別節目。 東方文花帖DS 10月21日大神「yoshigospel」為我們帶來彈幕遊戲「東方文花帖DS」的Speedrun。彈幕遊戲是以前街機廳很盛行的遊戲類型呢,一不小心就Game over的機制,讓街機的輪替效率很高。這類的容錯率很低,更難像其他遊戲可以硬衝衝過去。所以這類遊戲的Speedrun,更講求技術和策略的運用。 限時完整重播用手機無法自動播放的朋友,可以按這裏或手動跳到33m0s處 10月22日節目預告 明天晚上,將會由台主「akiyamakonata」帶來「節奏醫生」遊戲的Speedrun。 Twitch的Live重播是有時間限制的喔,不想錯過任何精彩表現和重播,如果不想,記得按Twitch的遊戲追隨喔。成功追隨後,就可以看到更多沒有時限的精華剪輯。 過去幾天發生了什麼?快看這裏

空洞騎士|一整個月都讓你有驚喜|Taiwan Speedrun Show
手機‧電玩
MacauYeah・2021-10-14

不經不覺,《Taiwan Speedrun Show》已經開始了十多天啦,你還不知道這是什麼? 其實《Taiwan Speedrun Show》是一個以台灣Speedrun社團主辦的活動,並開放華語區的跑者參加。 本年10月共31天,每天晚上將進行各種遊戲項目的Speedrun,隨時都觀迎花生友們,進來一起觀看神奇的快速通關精彩操作。除了作為觀眾,無論任何項目,只要你覺得準備好了,都可以一起參加Speedrun,推廣給更多華語區的朋友,認識這個競技與表演融合的特別節目。 空洞騎士Hollow Knight 10月13日晚大神「dpes210781 」,為我們帶來類銀河惡魔城遊戲「空洞騎士Hollow Knight」112%的快速通關。空洞騎士雖然是獨立遊戲作品,但它的難度可是非常非常之高。筆者本身嘗試正常通關,已經是一件很有挑戰性的事,大神這天還112%超額完成遊戲的各種競技場挑戰,簡直就是神一般的操作。 精彩重播用手機無法自動播放的朋友,可以按這裏或手動跳到11m30s處 10月14日節目預告 今晚將會由台主「kenyy1994」帶來「Tribes of Midgard」遊戲的Speedrun Twitch的Live重播是有時間限制的喔,不想錯過任何精彩表現和重播,如果不想,記得按Twitch的遊戲追隨喔。成功追隨後,就可以看到更多沒有時限的精華剪輯。 過去幾天發生了什麼?快看這裏

[評] Days Gone
手機‧電玩
MacauYeah・2019-05-11

今年4月26日出的Days gone算是小編都期待已久的喪屍遊戲。因為可以收集、改造,又有大量喪屍潮,又是半開放世界,真是吸引力十足。 不過又係期望越大...就啫啫越大 正文開始 一開遊戲時,LOAD GAME 時間有點耐,進入遊戲後都還可以接受。不過如果你同我一樣,玩下停下,就有啲難忍。 小編另一個伙伴玩的是困難模式,照他的說法,困難模式資源都還算充足,只要不要亂,用就夠用。而且物品都可以買回來,只是前提要NPC好感值足夠。 咁遊戲預告跟遊戲本身有沒有出入呢?其實可以講無咩出入。預告的橋段都可以係遊戲裡搵到。但全遊戲數十個喪屍潮就只有預告入面的砍木場最多,大約有300隻左右甚至更多。其他的喪屍潮就是50隻至100隻左右。而在關卡設計難度上,炸彈、火炎彈都可以不用使用就可以用槍直接清光喪屍群。這就有點令筆者失望。而且地圖也不是全給你探索,一直要到了某段任務才會解鎖。 而故事方面,主角主線係救朋友酒鬼,到後期發現佢妻子沒死,再去找尋她。整個故事不停在不同的營地做事,而且任務數量是固定的,當任務全清,暴走潮全清後就無事可以做了。但NERO劇情還應該有後續,感覺未來可能要增加DLC來延長遊戲。 全遊戲主要分4個陣營 一 營地陣營,即接任務買武器改電單車等 二 安息者陣營,是一群裝扮為暴走者的吸毒人士,由於吸毒所以無痛覺。 三 掠奪者陣營,是一群掠奪其他生還者的人 四 就是暴走者,見人就攻擊見動物都會攻擊 咁遊戲比我感覺就是the last of us的造型及收集,加Dead rising 的改造系統但又要不停做任及清理營地來解鎖有關物品,無特別自由,再加上Tomb Raider的技能升級系統的單人故事遊戲。 適合遊玩人士: 時間較充足、愛好喪屍遊戲,又不想太恐怖的,這遊戲都適合。遊戲不算太伏,但又不算太好玩,性價比中等,算是可以接受。

學習寫程式,除了複制貼上還有什麼?
科技新知
MacauYeah・2025-02-07

不知道大家是如何學習特定程式語言框架的建構 也不知道大家可如何保持程式庫框架的最新狀態 筆者就分享一下最新的經驗,看看對大家有沒有得著。 制作自己的範本 跟著程式框架的導覽教學Tutorial走一偏 從零起一個新專案 設定專案,該用的基本功能全部設定好,作為概念驗證Proof of Concept,也作為日後範本Template之用。 有需要用新專案,就複制之前的範本,再逐一修改名字或路徑的設定。 上述做法,是筆者過去比較常用的策略。面對很統一要求的專案,都有效。當程式庫有更新,我們可以選擇只局部修改,範本就可以長期用。我們也不需要經常從零走一篇。 練手的Code 從零起一個新專案 上述的範本做法,對於現時需求多變的專案,可能不是很有效。例如有些專案使用Session Auth,有些則是Api Auth,有些則是Open Auth。同一個範本中有齊多種Auth的設定,原本難度就有夠高,之後複制完還要自行禁用不相關的部份,也是相當的煩人。當範本中多有個地方都有互相衝突的地方,複制範本就不是一個很易的做法。 面對那些複雜的配對,我們務必要真正了解技術的運作原理,然後為每個功能都從零建一個專案,做一個最簡單的Proof of Concept。重點不是在未來拿它們複制貼上,而是用來厘清概念,哪段程式對這個功能至關重要,哪段其實沒有作用。 如果可以,每次程式庫框架升級時,都從零建一次。這樣一來可以練手,加深記憶,二來是每次版本的變動,有些程式碼可能已經變得沒有作用,原本的寫法並不再是最簡的。當然這個也可以為每個功能獨立做成範本,到有需要的時候再抄少量的程式碼就好。 其實練手的過程中,我們亦會慢慢熟習IDE的功能,有些IDE或Plugin已經很方便地自行完成一些設定。所以筆者漸漸的也習慣了不抄程式碼,改為以IDE Plugin的方式建立,某些真的很不熟練的部份才會維持範本複制的型式。 這是筆者最近學習vue3 的練習清單,還在持續新增中。讀者們有興趣也可以一起來修訂。 httpsgithub.commacauyeahAProgrammerPreparesblobmainsrcvuejsTimeAttack.md

音樂廳級音效!HUAWEI Y6 Prime 2018 全屏強勁揚聲器
科技新知
Cheers!・2018-06-14

HUAWEI Y6 Prime 2018 配備 5.7 吋高畫質HD FullView 全螢幕,189 超窄邊框,加上2.5D弧面玻璃設計,並支援華為 Histen 音效,畫面更清晰細膩,睇片打機更過癮! 音樂廳級音效 HUAWEI Y6 2018 支援華為 Histen 音效,與前一代相比之下,能增加 78% 的音量表現,喇叭音質清澈響亮,聲音分貝可達 88dB,搭載協同播放,可支援多達 9 部手機播放同一音樂 6 個不同聲道,讓你感受影院級的立體聲體驗。 透過三指截圖功能,可輕鬆捕捉畫面。(官網圖片) 柔光美顏自拍鏡 HUAWEI Y6 2018 搭載 1,300 萬像素主相機、800 萬像素前鏡頭,配合智能柔光燈及補光效果,即使在低光源狀況下也能拍出最佳自拍照! 備有三卡槽,可同時插入雙SIM 卡及高達 256GB 的記憶卡 MicroSDtrade;。 支援臉部辨識,可精準識別臉部特徵,輕鬆解鎖。 HUAWEI Y6 2018備有金、黑、藍三色。 出機小貼士 @ 當客戶於一個月內所使用之本地流動數據用量超過 20GB 時,會視作限速不限量,即數據存取速度(上載及下載)將被限制至不低至 256kbps,直至當月截單日後便會回復原速度。 # 當客戶於一個月內所使用之本地流動數據用量超過 40GB 時,會視作限速不限量,即數據存取速度(上載及下載)將被限制至不低至 256kbps,直至當月截單日後便會回復原速度。