2025年4月12日 星期六

進修6個月後, 找到工作了

這次找工作有一些感想

我是覺得, 邊準備邊找還是有點差勁的方式

這等同我前面幾家會有機會被直接浪費掉

但是面試會問的問題, 真的涵蓋的太廣, 要每個都準備熟悉, 

(突然想到一個靈感, 寫一個網頁來隨機出題, 然後自己考自己, 或許寫成app)

大約準備上, 是可以看黑馬程序員出的java面試, 幾乎都有涵蓋到

這次考的到最後, 我大概還有兩個方向的比較沒準備, 多執行續, 併發,以及JVM底層相關

至於spring boot或spring 的底層沒遇過考到的

leetcode有考簡單的大約兩家, 沒寫出來

另外可能寫一個sprin data JPA的應用專案, 可能還需要再弄一個出來要有多對多處理

------------------------------------------------------------

然後~其實邊準備還是會覺得有兩方面有缺, 一方面是交友生活圈,

另外一方面是伴侶, 我因為剛分手這部分, 除了情感上有需要支持, 生理需求也是一個要解決的部分

特別是年紀上, 其實已經到37, 差不多該成家就是

現在要重新開始找伴侶, 只能說不能all in在工作上了

我心情上還是覺得, 寧可要找到好的合適的, 不要為了年紀硬湊在一起

畢竟在一起, 分開, 都是一種時間上的消耗

但是~~我還是想主力放在工作或進修相關, 我還是比較愛錢

--------------------------------------------------------------

這次從去年借了160萬, 買美債和反指數, 這中間陸續操作到今年整波下來

基準上賺23萬去, 大概把我進修時間生活費都賺回來, 真爽

這下股市歷練算是完整, 漲的時候賺錢, 跌的時候賺錢

還記得找到自己的一套方式後, 我就豪氣地跟我弟說, 我這輩子都不會缺錢

回顧前四年, 每年都賺錢, 特別是後面兩年, 一個十幾萬, 一個二十幾萬, 今年也二十幾萬

這樣連續五年都是正向

抓到跌的時機, 簡單說就是泡沫很多, 要準備破的時候

稍微準的是巴菲特的現金持有水位, 這部分我是看掃地僧utube有的概念

另外美債殖利率升到歷史高點, 也是一個警訊, 表示美國升息來抑制泡沫產生的通膨

這次還有一個情況就是, 如果金融危機發生美債還漲不上去, 就是有問題, 要早點離開

是有可能信用危機, 或是陷入停滯型通膨, 衰退

----------------------------------------------------------------

目前進修, 比較針對工作上, 會練些設計模式, clean code, 補充一些書本知識

然後試著手寫框架來看看, 現在先全力做這部分, 等到三個月穩定下來

再重新開始個人作品的部分

---------------------------------------------------------------

社交上, 目前計畫

1 參加健身房課程-保持一下健康

2 組讀書會

3 周遊列國小排 

4 找一下比較能社交類型的英文團課

5 音樂相關, 可能找唱歌局, 或是揪唱歌之類, 未定

6 拍照, 攝影活動, 外拍活動

前面三個差不多可以同時先做

後面等工作三個月穩定再說

這個到底能不能讓我在找到老婆的路上更順利一點, 可能要三個月評估調整一下

就是說後面興趣的取向可能可以嘗試, 不過主體還是想熬技術這部分

2024年10月31日 星期四

invalid packging for parent POM com.xxxxxx:1.0SNAPSHOT must be "pom" but is "jar"

 出現在專案上面冒紅線, 並有紅字invalid packing......



在本專案的原因是, 這裡有母子專案

有在子專案pom檔中聲明parent

<parent>
<artifactId>heima-leadnews-test</artifactId>
<groupId>com.heima</groupId>
<version>1.0-SNAPSHOT</version>
</parent>

但是母專案pom檔中漏掉

<modules>
<module>freemarker-demo</module>
<module>minio-demo</module>
</modules>

補上後刷新maven就解決了

2024年10月28日 星期一

docker安裝nacos

 使用docker拉取鏡像

        docker pull nacos/nacos-server:1.2.0

創建容器

docker run --env MODE=standalone --name nacos --restart=always -d -p 8848:8848 nacos/nacos-server:1.2.0


MODE=standalone 單機版

--restart=always 開機啟動

-p 8848:8848 映射端口

-d 創建一個守護式容器在後台運行


查看容器
docker images 

查看日誌
docker logs -f 0506d2631165

跳出
ctrl+c



2024年10月25日 星期五

2024年6月26日 星期三

事務優化及一種事務失效的改正

內容來自學成在線的媒資管理事務優化

目前的邏輯是方法uploadFile中包含兩個動作

1 將文件上傳到minio

2 將文件信息存儲到資料庫

原本是整個方法上加@transactional

但是1的這部分, 你並不能保證上傳的時間會有多長

以至於說整個方法如果綁transactional會導致占用資料庫資源

現在有個想法, 打算只在2的步驟上加入transactional

然後在2的程式碼中加入會報錯的程式碼, 看看是否會回滾



部分程式碼



  //將文件上傳到minio
  boolean result = addMediaFilesToMinIO(localFilePath, mimeType, bucket_files, objectName);
  if(!result)XueChengPlusException.cast("上傳文件失敗");
  //文件大小
  uploadFileParamsDto.setFileSize(file.length());
  //將文件信息存儲到數據庫
  MediaFiles mediaFiles = addMediaFilesToDb(companyId, fileMd5, uploadFileParamsDto, bucket_files, objectName);
  if(mediaFiles==null)XueChengPlusException.cast("上傳後保存文件信息失敗");

方法片段



@Transactional
 public MediaFiles addMediaFilesToDb(Long companyId, String fileMd5, UploadFileParamsDto uploadFileParamsDto, String bucket, String objectName) {
  //從數據庫查詢文件
  MediaFiles mediaFiles = mediaFilesMapper.selectById(fileMd5);
  if (mediaFiles == null) {
   mediaFiles = new MediaFiles();
   //拷貝基本信息
   BeanUtils.copyProperties(uploadFileParamsDto, mediaFiles);
   mediaFiles.setId(fileMd5);
   mediaFiles.setFileId(fileMd5);
   mediaFiles.setCompanyId(companyId);
   mediaFiles.setUrl("/" + bucket + "/" + objectName);
   mediaFiles.setBucket(bucket);
   mediaFiles.setFilePath(objectName);
   mediaFiles.setCreateDate(LocalDateTime.now());
   mediaFiles.setAuditStatus("002003");
   mediaFiles.setStatus("1");
   //保存文件信息到文件表
   int insert = mediaFilesMapper.insert(mediaFiles);
   int a=1/0;
   if (insert <=0) {
    log.error("保存文件信息到數據庫失敗,{}", mediaFiles.toString());
    XueChengPlusException.cast("保存文件信息失敗");
   }
   log.debug("保存文件信息到數據庫成功,{}", mediaFiles.toString());

  }
  return mediaFiles;

 }

這時發現雖然會報錯誤, 但是事務沒有回滾, 事務失效




簡單敘述目前狀況

就是controller調用service時, 第一層是調代理對象的方法

但是方法中再調用其他方法, 則會是原對象方法, 如下圖

這裡有個技巧, 可以在方法調service中的方法前加上this.用debug斷點去看this就會發現並非proxy

而這不滿足事務的兩個要求

1 需要是代理對象調方法

2 在調的方法上加@Transactional註解

因為要求沒滿足, 事務沒法生效

課程提供一個解法

就是將當前類再注入進來, 使其變成代理對象

步驟

1 注入本service作為代理對象


@Autowired
MediaFileService currentProxy;

2 將需要事務管理的方法提成接口


public MediaFiles addMediaFilesToDb(Long companyId,String fileMd5,UploadFileParamsDto uploadFileParamsDto,String bucket,String objectName);

3 調用代理對象call方法


//寫入文件表
MediaFiles mediaFiles = currentProxy.addMediaFilesToDb(companyId, fileMd5, uploadFileParamsDto, bucket_files, objectName);



2024年6月7日 星期五

課程了解

尚品甄選

有包含架Harbor操作


udemy上搜尋large scale system可以找到kubernetes架構的專案教學


感覺可以看一下

黑馬頭條

裡面有spring cloud elasticSearch redis docker kafka


瑞吉外賣

有示範數據庫讀寫分離 linux安裝教學


閃聚支付

有示範分庫分表Sharding-JDBC 對交易服務進行分庫分表 分片鍵 插入數據根據商戶id決定要入哪個庫 短信驗證使用騰訊雲 上傳資質證件使用七牛雲


蒼窮外賣

有用到websocket

2024年6月6日 星期四

換工作想法20240607-17

這次換工作, 還是想換到能用redis開發大流量的地方

畢竟有學習過, 稍微再進修一下讓自己能面試上

大約目標就是 關於高併發問題都能回答

然後在用個幾天把面試問題準備一下, 準備去面試

希望這個過程三周能走完XX

看看能不能一天進修14hr, 目前英文停課中


------

[心得] 2024各公司面試心得 - 看板 Soft_Job - 批踢踢實業坊 (ptt.cc)

查了一下似乎還是先刷200題好點

幾家還有興趣的公司


考java考卷

Kafka Redis 高併發 DB問題

B+ tree JVM(這部分可能要放掉?!)

搜尋系統設計題目, 看考古題

2026半年度目標

 1 每個月看看能不能都做專案, 一年12專案 2 刷題每周4題 3 跑個人scrum, 並組讀書會 4規律讀英文ex每天早上8:30-9:30 5規律運動7:35-8:30 6減肥97->85 這是今年年初的目標, 有刷一點題, 但是差不多三月初AI大爆發, 不得不開始接...