搜尋

搜尋結果

[天川饕客] 極致奢華的早餐享受 - 倫敦人華庭
澳城餐飲
君尋・2021-01-19

原名金沙城中心,重新命名和裝修後的澳門倫敦人快將正式開幕。不過實際上酒店客房和少部份餐廳早已soft opening了一段時間,而將來亦漸漸會有一系列的新餐廳開幕,而這次要介紹的餐廳是「街客」沒法享用的「華庭 The Residence」。 要到「華庭」用餐,現有方法是入住倫敦人酒店,其Facebook上有詳細的價格和優惠介紹,在此就不詳述。回說「華庭」本身,其定位是一個專屬於酒店貴賓的高級Lounge,由早餐、午餐、下午茶,以至evening cocktail和酒吧,都是「華庭」提供的服務範圍。而這次筆者是享用「華庭」的早餐。 「華庭」位於酒店3樓,進門口侍應首先帶筆者到用餐區附近的休息室稍作等候。在等待過程也不會浪費客人絲毫的時間,因為眼睛可盡情享受極致奢華的英式裝潢風格,檯面上亦有一盤西洋棋讓客人回味和模仿Netflix人氣劇集《后翼棄兵》裡的西西里防禦(好的,我承認我入戲太深)。 坐下後除了看餐牌外,還被桌面上的餐具擺設吸引了筆者的目光。在伸手拿起刀叉之際,被前來詢問的侍應打斷了。點了杯英式伯爵茶後,侍應很快便上餐,一碰觸茶杯,觸感極為特別、與眾不同,正當仍在錯愕這件茶杯給予本人的感覺時,侍應主動提到桌面上的所有餐具及茶杯都是從法國訂制的,加上餐具極為新淨,散發出的優雅感覺非三言兩語能說清楚,坦白說過去曾用餐的米芝蓮餐廳也無法給我這種高貴及奢華的感覺。 早餐的menu有不少非常大眾的選擇,如點心、粥、豆漿。但來到倫敦人當然希望享用西式早餐,因此這天點了華庭的特式早餐「華庭龍蝦班尼迪蛋」和「烤新鮮法國生蠔配莫爾尼醬及英式奶酪」。 華庭龍蝦班尼迪蛋 最表面是班尼迪蛋,中間是豐富的龍蝦和夾雜了一些火腿和牛油果,最下面是英式鬆餅(english muffin,即是豬柳蛋漢堡的那種麵包)。第一下的口感,班尼迪蛋有少許流心的感覺,中層的火腿比蛋和龍蝦要鹹因而很突出,和上層雞蛋有兩種不同的鹹味。龍蝦有嚼勁之餘夠爽口彈牙,再配上班尼迪蛋的軟熟和融化,每口感覺都可以非常不同。配在旁邊的黃色醬汁是荷蘭醬(hollandaise sauce),或稱荷蘭酸辣醬,是一種類似美乃滋的醬料。不過略嫌麵包不夠熱。 烤新鮮法國生蠔配莫爾尼醬及英式奶酪 生蠔上有一層醬汁,menu雖然寫是莫爾尼醬,但吃上去口感更像微辣的Tabascot附有一點點蕃茄味。正因為少許的辣和酸味,完全蓋過了生蠔的海鮮味,隨後鮮度足夠的生蠔湧現強烈的蠔味。既享受廚師在醬料上的心思,同時也感受到食材本來的鮮味,非常推薦。另外,在食用前依自身習慣加了點檸檬汁,但在咀嚼過程中已找不到檸檬的存在感。 另外當然少不了餐廳附送的麵包。 此外,餐廳還有現場即叫即煮的熱食區和西餐冷盤區(事後才發現忘了拍照),選擇非常之多,由中式麵類到西式意粉,以及西式的芝士、麵包和小甜點等,與酒店的自助餐無異的選擇和質素(忘了拍照真是千錯萬錯)。不過早餐來說,剛才的份量已足夠有餘,所以亦無緣試食這兩區的食物。 餐廳:華庭 The Residence 地址︰路氹金光大道倫敦人3樓 電話︰853 2886 6888 營業時間︰0700 1100 (早餐時段) 網站:httpshk.londonermacao.comofferslondonerhotelpreopeningpackage.html 關於 天川饕客 本欄目將不定期分享筆者在澳門遇到的美食,不論是賭場酒店還是民間小店,只要是值得推薦的都有機會介紹給各位。 (備註:筆者僅從自費用餐者的角度作出評價,上述內容只代表本人極為主觀的立場) 更多關於澳門餐廳的心得: httpsppt.ccfNAd9x

Swarm mode 上線 5 - load balancer | proxy gateway 代理伺服器
科技新知
MacauYeah・2024-11-11

前面的例子,我們已經成功設定 ingress Network,也加了 virtual ip 。如果大家的目標是單一 web 應用,應該就已經很足夠。但作為一個足夠節儉的老闆,怎會讓一個 Swarm 只跑一個 Web 應用?但問題來了,一個 docker swarm service 就已經佔用一個公開端口 例如上述的8888,或是更常見的443。怎麼可以做到多個 service 分享同一個端口?答案就是回到傳統的 Web Server 當中,使用它們的 virtual host 及 proxy 功能,以達到這一效果。我們就以 Nginx 為例,去建立一個守門口的網關 gateway 。 以下就是一個最簡單的例子,最前端的 httpgateway nginx 對外公開端口 8080 ,它根據 virtual host,去分派對應的請求去 dmzhttp bretfisherhttpenv 及 managerhttp bretfisherhttpenv 。構架圖就是以下這樣。 ┌───────────┐ ┌──────────────►│ dmzhttp │ │ └───────────┘ │ ┌───────────────┐ │ httpgateway │ ────────►│ nginx8080 │ └──┬────────────┘ │ │ ┌─────────────┐ └─────────────►│ managerhttp │ └─────────────┘ 換成 docker stack ,就大概如下 services httpgateway image httpgateway ports 80808080 deploy replicas 1 update_config delay 10s restart_policy condition onfailure dmzhttp image bretfisherhttpenv deploy replicas 2 update_config delay 10s restart_policy condition onfailure managerhttp image bretfisherhttpenv deploy replicas 3 update_config delay 10s restart_policy condition onfailure docker stack有一個很好的功能,就是 service 名會自動成為同一段網絡中的 hostname 。即是httpgateway中,它可以經DNS,找到 dmzhttp 、 managerhttp,也就是它的 nginx 可以設定成如下的樣子。 # default.conf server listen 8080; listen 8080; server_name managerhttp; resolver 127.0.0.11 valid=30s; location set $upstream_manager managerhttp; proxy_cache off; proxy_pass http$upstream_manager8888$request_uri; server listen 8080; listen 8080; server_name dmzhttp; resolver 127.0.0.11 valid=30s; location set $upstream_dmz dmzhttp; proxy_cache off; proxy_pass http$upstream_dmz8888$request_uri; 上面的例子中,就是一般的 virtual host nginx proxy 設定。特別要說明的是 resolver 那一行,它指向 docker DNS 127.0.0.11, 而且還可以讓nginx在找不到上游時,不要馬上死亡。這樣 docker swarm 中各個 service 隨時加加減減,有保命的作用。 最後我們的 httpgateway 就是 nginx image default.conf 上述的 docker 就可以用以下方式打包。 # Dockerfile # docker image build t httpgateway . FROM nginxlatest COPY default.conf etcnginxconf.ddefault.conf 上面的 docker stack 和 nginx config,只要同步增加 service 及對應的 proxy pass,就可以o讓同一個端口,根據不同hostname做分流。當然,如果大家可以共用端口及 hostname 也可以,分流就改用 nginx location 來設定,不過這是更加偏向 nginx 的內容,日後有機會再介紹。本篇就先集中於 docker 相關的議題。 在安全性的角度, docker 還有一些配置可以做,就是讓 dmzhttp 和 managerhttp 在不同的機器上發佈。假設我們的網絡分開兩段,一段是 manager 專用,一段是 dmz 專用。在建立 docker swarm 後,我們可以為不同的節點加入對應的標簽。 docker node update labeladd zone=manager YOUR_MANAGER_NODE docker node update labeladd zone=dmz YOUR_DMZ_NODE 然後我們通過修改 docker stakc 中的 placement gt; constraints ,限制不同的 service 在不同的節點上運行。 services httpgateway image httpgateway ports 80808080 deploy replicas 1 update_config delay 10s restart_policy condition onfailure dmzhttp image bretfisherhttpenv deploy replicas 2 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==dmz managerhttp image bretfisherhttpenv deploy replicas 3 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==manager 使用上面的例子,我們就可以達到簡單分離的效果。但大家緊記,這個分離效果始終是一個規則式功能,它與防火牆的隔離還是有本質上的區別。除了利用傳統的防火牆技術外,我們的docker swarm network,其實也可以做更多隔離,我們日後再慢慢加強這個例子。

Spring Boot - Maven Cheat sheet
科技新知
MacauYeah・2024-01-12

基礎 刪除所有結果,全部重新編譯 mvn clean compile 跑起用Spring boot寫的main class,運行Spring boot context。 mvn springbootrun # or mvn clean compile springbootrun 執行測試用例,預設只會測試test資料夾下以某些命名規則的class例如class名以Tests或Test結尾的class,其他命名規則筆者未有能力一一驗證 mvn test # or mvn clean compile test 多Profile、多組件、多測試 使用P指定編譯時的選用pom.xml中的project.profiles.profile參數。也可以用此來傳遞到spring profile,使得編譯後的spring war預設選擇特定profile。 mvn clean compile PmvnProfile # or mvn clean compile springbootrun PmvnProfile 使用pl限定mvn指令只對某個子組件生效,但有時候子組件之間也有引用關係,所以需要再額外加上am參數alsomake mvn clean compile springbootrun pl SUBMODULE_NAME am 使用Dtest=限定只執行某個class的測試用例,或單個測試函數。可以無視class名的命名規則 mvn test Dtest=TEST_CLASS_NAME # or mvn test Dtest=TEST_CLASS_NAME#TES_METHOD_NAME 若屬於多組件情況下,其他子模組找不到同樣名稱的測試,會測試失敗。需要再加上Dsurefire.failIfNoSpecifiedTests=false mvn test pl SUBMODULE_NAME am Dtest=TEST_CLASS_NAME Dsurefire.failIfNoSpecifiedTests=false # or mvn test pl SUBMODULE_NAME am Dtest=TEST_CLASS_NAME#TES_METHOD_NAME Dsurefire.failIfNoSpecifiedTests=false 打包 在本機電腦中,把java變成jar或者war。通常用於自行發佈的環境中。 mvn package 有時特定Profile沒法成功執行測試用例,或者你認為有些測試問題不影響使用,需要跳過package中的test。 mvn package Dmaven.test.skip=true # won't compile test folder mvn package DskipTests=true # compile, but won't run 例外情況 強行把一個第三方jar,種到本機電腦中的.m2repository # copy from httpsmaven.apache.orgguidesminiguide3rdpartyjarslocal.html mvn installinstallfile Dfile= DgroupId= DartifactId= Dversio

30歲錢不宜齊劉海
玄學星相
熊神進・2018-09-13

她是介懷自己失身,把寶貴的第一次送了渣男, 之後, 只懂哭, 沒有到醫院檢查,沒有燒 觀音筒香, 也沒有找政府註冊同性玄學家潔體淨心, 她只懂埋怨人生, 其他的, 沒有做. 人生有二樣東西是不可以避開, 一是ldquo;在世劫rdquo;,一是ldquo;宿世緣rdquo;, 她很trite and naiuml;ve, 她對自已說, 婚後才把自己第一次交丈夫, 可惜, 她的八字有色ldquo;劫rdquo;,筆者很不禮貌說句她的第一次是自願, 整個過程都是配合那個ldquo;渣男rdquo;, 同時她很享受, 為何筆者連這些都看出來, 玄理太simple, 我們可以看她的眼眉. 在亞洲女性中, 眉弱代表心裡有太多胡思亂想, 六魂無主, 她的八字沒有文昌星, 讀書不專一, 考不上好的大學, 在讀書日子裡, 糊裡糊塗過日子, 天天看小說, 就是在幻想中把自己看成是公主, 公主必然嫁白馬王子, 可是, 八字就是八字, 她要避開離婚必須注意下列三件事 找年齡比自己年長十三年以上的, 同時不可以是同鄉; 在床頭裡藏一個ldquo;咬桃狸rdquo;. ldquo;咬桃狸rdquo;是目前很多新娘子在婚房收藏的神獸, 大家都不想離婚. 婚後有三個孩子, 其中一個遇上不幸. 筆者認為女生的額頭要亮麗一些, 不宜齊劉海, 劉海把額頭的ldquo;神rdquo;遮了, 天是一片黑昏, 而眉弱更可怕, 要跟人家搶丈夫. 命運是掌握在強者手上,並不是決定在玄學家口中,熊老師只是善心提點有緣人,ta應該積極面對人生,而不是消極逃避問題。熊老師已為有緣人關上命盤,並祝福她。 如有任何問題,歡迎聯絡: 林小姐 13726267799晚8時後 或微信13726267799 熊神進:澳門 85366618785 Facebook httpswww.facebook.com熊神進風水法器店MasterMickeyHungFortuneWorkshop252635158482455 中國澳門風水掌相學會會長政府註冊 公共微信 macaumasterxiong 熊神進玄學信箱 httpsgoo.gljAVv8U 淘寶風水法器店:httpmacauhung.taobao.com 今日頭條作者歡迎關注

年初五, 你想過接財神沒有?
宗教玄學
熊神進・2022-02-05

#五路財神香# 疫情持續二年, 很多讀者的收入都少了, 早上一位內地讀者給我電話, 他問我今天是不是接財神? 接財神在風水學上有很多種說法, 正月初五迎財神是民間公認的做法, 此外, 農曆三月十四的晚上11點過後即三月十五子時開始至上午12點前皆可以選一吉時祭拜為趙元帥。亦有人在年中七月廿二財帛星君的成道日去拜財神。 不同國家的接財神儀軌都是不同, 遠的不談, 就談談南方的城市如何接財神。年初五又稱為ldquo;破五rdquo;,象徵春節期間的習俗禁忌都會在今天破除,開始回歸正常生活, 話雖如此, 今天是ldquo;閉日rdquo;, 如果要開市, 筆者建議選年初八ldquo;滿日rdquo;。 初四眾神返回人間,初五祭拜神明的同時也要趕走窮氣,故稱為ldquo;送五窮rdquo;ldquo;五窮rdquo;指智窮、學窮、文窮、命窮、交窮。初五日拜拜五路財神是需要,如果公司或店內平時有已經有祭祀,則直接在財神像前關帝趙公明財神前祭拜, 燒正路財神香即可,而若沒有神檯的話, 筆者建議在營業場所的大門前, 朝外祭拜。 目前最簡易的接財神方法就是燒ldquo;五路財神香rdquo;, 我們可以在每月初二、十六也可以燒。 燒五路財神香程式 1 洗手。 2 參看第六項, 在哪裡燒五路財神香。 3 把ldquo;紅、綠rdquo;二枝香插香座, 其餘三枝插另一香座。 4 燃燒紅綠二枝, 其餘三枝繼續燃燒 5 雙手合什, 說8句吉祥說話。 6 雙手獻酒茶。 7 在一隻碟子上, 燒5個金寶一個一個燒, 不用分次序。 8 待香熄滅。 9 把灰燼放進花盆、樹下、河裡。 今日沒空燒, 可以等下月初二去燒。

筍野!7月1日起全日本提供免費WiFi供旅客使用
旅遊情報
Benjamin・2015-06-25

收取密碼圖解 FREE WiFi PASSPORT 日本電訊公司SoftBank上月底公佈將會從今年2015年7月1日起,為訪日外國旅客提供免費WiFi服務。旅客只需在日本用自身手機撥打SoftBank的指定號碼,就可收到登入密碼,在SotfBank分佈全日本的大約400,000個免費WiFi熱點上網。SoftBank提供的這個免費WiFi服務,首階段只屬試驗性質,試驗期至2016年3月結束,試驗期後會否繼續服務,就要等官方屆時再公佈。 如何取得SoftBank免費WiFi密碼? 獲取SoftBank免費WiFi 密碼的方法很簡單,只要到日本後,在手機設定中將電訊業者設定為SoftBank;然後用撥打電話「8181」,再按通話鍵;電話打通後就會聽到一個登入密碼。 如何使用SoftBank免費WiFi? 使用免費WiFi 的方法與一般使用WiFi上網沒有分別,只要打開WiFi功能後,在WiFi 的清單中選擇「.FREE_WiFi_PASSPORT」,然後輸入帳號和密碼就可以連線上網。當然SoftBank的免費WiFi 熱點不是隨處都有,使用時要周圍試試看看清單中有沒有出現這個「.FREE_WiFi_PASSPORT」。 註 網絡供應商選項在iPhone稱為電訊業者,或在不同手機有不同的稱呼。 撥打電話的中文是8181,英文則是8180,韓文就是8182;撥打號碼不會收取任何費用。 一個密碼可以供最多5部設備手機、平板電腦、手提電腦都可以同時使用,所以多人同行時只需要獲取一個密碼就可以了。密碼有效期為14天,不過密碼過期後,可以再次撥打號碼獲取另一個密碼繼續使用。 免費WiFi服務只適用於支援WCDMA制式的手機,GSM或其他制式的手機不能使用。 登入帳號是撥打8181來獲取密碼的手機本地號碼,輸入時需要加上地區號碼,例如假設你是澳門手機,電話號碼是61234567,那麼登入帳號就是85361234567。另外,不同手機或設備同用一個登入密碼時,登入帳號也相同,即是撥打8181獲取密碼的那部手機的本地號碼。 官方新聞稿:httpwww.softbank.jpencorpgroupsbmnewspress201520150528_01

熊神进9月星座運程
玄學星相
熊神進・2018-09-01

白羊座(太陽星座) 九月份的白羊座在事業及健康方面都有不錯的消息。建議白羊座乘勝追擊,好好計劃打算事業的發展,讓這股氣勢為你加持,繼續扶搖直上。仍未合適升遷的白羊座可以利用這份工作的熱誠及魄力完成擱置已久的工作目標。 白羊座的健康尚算理想,但這不代表白羊座可以任性被勞役身體。適當時候,白羊座也需要為自己安排休閒作息的時間。良好的體魄及精力才能讓白羊座更有動力及更靈活地安排工作。 打算專門工作的白羊座,這段期間也是不錯的更換工作崗位黃金機會,建議白羊座堅持努力尋覓工作機會。 9月22號當日,太陽進入夫妻宮,白羊座的兩性關係得到改善,你們會不斷營造浪漫氣氛。單身的白羊座參與不少的宴會或聚會活動,你的情緒及氣質洋溢着求愛的訊號,人氣大增。 9月9號當日金星進入第八宮,而且逐漸迫近木星,金星與木星互相輝映,正能量互相交織,令白羊座的賺錢能力增強。此外,不少的經濟來源或收入機會都不斷向白羊座靠近。由於白羊座的儲蓄改善,白羊座應該藉此機會還清所有債務 如有任何問題,歡迎聯絡: 起名、改名、玄學教學、講座、風水、超度、選日、放生等服務預約: 義工助理林小姐電話:13726267799請晚8時後才致電聯絡她 公共微信 macaumasterxiong 淘寶風水法器店:httpt.cnRwZtztF

《講旅日記》波爾圖與波特的第一天|《Travel in PT》Porto and Potter 1st day
講旅日記
講旅日記 Travel in PT・2016-02-03

現在越來越多朋友都會去歐遊,但時間與資金都有限,難以停留在一個城市太久。第二季的shy;shy;shy;《講旅日記》就教大家如何用兩日一夜的時間去盡情遊覽波爾圖。波爾圖位於葡國的北shy;部,是葡國的第二大港口。除了它的美酒譽滿世界外,其實它還有一樣吸引人的地方,收看shy;今季《講旅日記》,你也會發現波爾圖的迷人之處。Hoje em dia, haacute; cada vez mais pessoas fazem viagem na Europa. Contudo, por limites tempal e financeiro, natilde;o ficam muito tempo em cada siacute;tio. A secunda secccedil;atilde;o do 《Travel in PT》levavos a viajar no Porto. O Porto estaacute; localizado no norte de Portugal,tem o segundo maior porto de Portugal. Aleacute;m dos vinhos dos portos que sejam conhecidos no mundo, existem aiacute; muitas coisas maravilhosas vecirc;se esta secccedil;atilde;o do 《Travel in PT》e seja impressionado pelo PortoNowadays, there are more and more people travel in Europe, but because of the reason of time and budget, we can't stay in one city for too long. The second season of 《Travel in PT》 shows you how to explore Oporto in two days' time. Oporto locates at the north of Portugal and it is the second largest city. Besides their Port wine is famous around the world, there is something special in Oporto. Watch this season of 《Travel in PT》 and you will get the answer, you may be attracted by Oporto too.Director Kian YeungSound Sunday TangLogo Design Kaman ChengEmcees Un I Wong, Carlos Ao IeongEmail travelinpt@gmail.com我們決定如果能突破10000點擊率,我們將會沖出葡國,前往歐洲其他地方,為各大觀shy;shy;眾發掘更多quot;兩日一夜quot;旅行好去處。務求提供更多資訊俾大家,shy;讓shy;各位去旅行時可以有更多選擇。《講旅日記》與大家一起踏足歐洲。Se conseguirmos chegar a 10000 quot;vistasquot;, decidimos explorar outros siacute;tios fora de Portugal que se daacute; para fazar viagem de tipo quot;Dois Dias, Uma Noitequot; Temos como objectivo de partilhar mais informaccedil;otilde;es turiacute;sticas convosco.《Travel in PT》faz viagem convosco na EuropaWe decided if we can gain 10000 hit points, we will film outside Portugal and visit other European cities, discover more good places for quot;two days'quot; trip. We would like to provide more information to you all. 《Travel in PT》travels Europe with you

澳門美高梅呈獻十九世紀法式美饌及時令花錦鱔王饗宴
澳城餐飲
LifeMag Editor・2016-09-07

澳門美高梅於九月呈獻別具特色的中西美饌佳餚,為賓客帶來多重味覺享受。西餐方面,寶雅座法國餐廳以十九世紀末著名的新雅典咖啡廳為靈感,設計出「黃金年代」法式美饌晚宴,與賓客一起為法國藝術家舉杯。而中菜方面,金殿堂中餐廳特別於入秋之際推出滋補花錦鱔王美饌,美味又養生。 寶雅座「黃金年代」新雅典主題法式美饌 位於巴黎的新雅典咖啡廳(NOUVELLE ATHEgrave;NES)以希臘新古典風格的建築物聞名,是十九世紀一眾知識份子和藝術家的聚首之處,而印象派大師埃德加‧德加的著名畫作《苦艾酒》亦在此取景。為了重塑新雅典咖啡廳的文藝氛圍,和配合正於美高梅展出的「《動感bull;印象》mdash; 埃德加‧德加雕塑展」,寶雅座呈獻以新雅典為主題的五道菜晚宴,作為「黃金年代」法式美饌五部曲的第四章。 五道菜晚宴前菜「牛肉及田園時蔬批」以松露蛋黃醬調味,為簡單的肉批倍添驚喜;「干邑小龍蝦濃湯」中的干邑忌廉泡沫令整道佳餚散發迷人的酒香,配合濃郁的小龍蝦湯,是一道色香味俱全的湯品;主菜「水煮三文魚配番茄牛油汁」用上多種香草及香料入饌,味道層次豐富;另一道「烤羊脊肉伴蠶豆、鴨肝配小紅蔥汁」肉質細嫩,回味無窮;最後,法式經典甜點「薩瓦林蛋糕配時令鮮果」為舌尖上的藝術之旅畫上圓滿句號。「黃金年代」之新雅典五道菜晚宴於九月期間限定供應,每位澳門幣588元,包括餐前雞尾酒「月光曲」一杯及精美主題收藏卡。賓客更可以每位澳門幣200元配以特選餐酒,豐富法式懷舊美饌體驗。訂座或查詢,請致電(853)8802 2319。 金殿堂迎秋花錦鱔王滋補饗宴 花錦鱔乃鱔中之王,因產量少,且營養價值甚高,能補虛養血並滋補暖身。每年的秋季最為肥美,金殿堂中餐廳特別於入秋之際選用新鮮的花錦鱔王,配合不同烹飪方式及上佳食材推出一系列花錦鱔王精選菜色。 珍貴的花錦鱔肉質肥厚而彈牙,魚油甘香豐腴,可塑性高。金殿堂主打的花錦鱔王菜色包括冶味可口的「蒜子秋菇火腩生扣花錦鱔腩及下巴」、有祛頭風功效的「天麻北旗黨參南棗燉花錦鱔頭骨及尾湯」、經典的「豉油皇煎焗花錦鱔球」及「雲腿茸金銀蒜蒸花錦鱔球」 等,均不容錯過。金殿堂之花錦鱔王滋補饗宴只於9月9日、10日、23日及24日限量供應。賓客可於訂座時預訂自選的花錦鱔王菜色及指定部位。查詢及訂座,請致電(853) 8802 2361。 以上價格需另加收10%之服務費

Spring Data Jpa 自動化的選擇 - Code First
科技新知
MacauYeah・2025-01-22

Code First vs Database First 在早期SQL資料庫盛行的年代,在設計要使用資料庫儲存資料時,很經常遇到一個策略選擇的問題Code First vs Database First 這兩個策略的差異可能越來越講不清,筆者也找了一些現時網路上的講法。 Code First 先從寫程式的角度出發,設計數據模型,再使用工具把你程式碼中的數據模型類Class,生成一個對應用SQL資料庫的表Table,自動編做好對應的數據結構Schema。這樣你在設計時,以程式設計為主導,方便熟悉程式的人使用。這常見於第一手開發設計,因為資料都是第一次收集和儲存,考慮收集程式的運作最為實際。 Database First 先從SQL資料庫的儲存、取用資料的方式出發,先用SQL成生Table及Schema,再轉變成為程式碼中的數據模型。這樣的資料庫在日後作分析用途時,比較簡單易懂,方便使用熟悉SQL的人去使用。這也常見於二次開發程式,因為這樣可以確保不會錯誤地破壞原有資料庫。 那麼筆者為何講這兩個差異越來越講不清?那是因為現在的資料庫不能單純地只考慮初次或二次開發問題,而是需要考慮多個系統協調運行的問題。 多系統共享協定 Database First 因為隨著資料系統發展,有些資料會作為數據源出現或用作共享媒界,如果一定要對設計策略作分類,在多系統協調運作下,這些應該叫使Database First。不論它們是SQL還是NoSQL資料庫,我們的程式碼都要為這個預先定義好的數據結構作出妥協。不論使用工具,還是人為分析,都要把共享的數據結構轉換成自己程式中的數據模型。 即使不是多系統協調運作,有時候因為要移植系統,但同時又要令兩個系統版本相容。新系統也是被逼使用Database First的方式設計。 自動化考量 Code First 前述我們講到,很多時候我們也是從Database First的方式思考。不過筆者就這個Database First,也弄到滿身傷痕。 首先,拋開工具轉換的誤差,我們人為的把共享數據轉化為數據模型,共享數據有時會有一些先天的缺陷,例如 資料沒有設計Primay Key 主鍵,唯一鍵、日期時間的定義不明確等。面對一些意義不明的數據來源,要整合確實很要命。而且二次開發中,不可能100%重用原有的資料庫結構,很多時都會加入新的欄位或更多表格去計數。一旦加入新欄位,在團隊多人開發中,那麼使用唯一的共享開發環境,就變很易有程式碼上的衝突。 若需要多人開發,各人有一個Code First的開發用資料庫,是很必要的。這也可以在系統正式升級前,對比開發中資料庫及舊資料庫的結構,觀看它們之間的差異,評估升級的風險。 也許Code First並不是重點,重點是可以隨時建立一個測試用的資料庫,這才方便合作開發。自動化的地方,不單只限於數據結構,範例資料也該是如此。如果有維繫一個初始範例資料,可以在有需要時自動生成,對於多變的環境一定有很幫助。 現時,筆者基本上都會人為檢視資料庫,人工對照編寫程式中的資料結構即是人工的Database First,並確保那時程式再次經自動化生成的測試用資料庫,並沒有失真即是Code First。至於範例資料,初期筆者也只使用SQL生成,但後期因為資料結構開始複雜,筆者也暫暫使用程式碼生成,雖然工作量會多了,但對於資料庫升級、品牌更換,這是很有效的手段,程式碼升級測試也更順暢,絕比SQL生成更易維護。 Ref Code First vs Database First httpsbuiltin.comarticlescodefirstvsdatabasefirstapproach